83 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Java
		
	
	
	
| package tqq9.lc123.cloud.app.api.controller;
 | |
| 
 | |
| import com.drew.lang.annotations.NotNull;
 | |
| import kd.bos.dataentity.entity.DynamicObject;
 | |
| import kd.bos.dataentity.entity.OrmLocaleValue;
 | |
| import kd.bos.openapi.common.custom.annotation.ApiController;
 | |
| import kd.bos.openapi.common.custom.annotation.ApiParam;
 | |
| import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
 | |
| import kd.bos.openapi.common.result.CustomApiResult;
 | |
| import kd.bos.orm.query.QCP;
 | |
| import kd.bos.orm.query.QFilter;
 | |
| import kd.bos.servicehelper.BusinessDataServiceHelper;
 | |
| import tqq9.lc123.cloud.app.api.model.FWInvQueryModel;
 | |
| import tqq9.lc123.cloud.app.api.result.FWInvQueryResult;
 | |
| 
 | |
| import java.math.BigDecimal;
 | |
| import java.math.RoundingMode;
 | |
| import java.util.ArrayList;
 | |
| import java.util.Date;
 | |
| import java.util.List;
 | |
| 
 | |
| @ApiController(value = "FWInvQueryController", desc = "泛微查询库存接口")
 | |
| public class FWInvQueryController {
 | |
| 
 | |
|     @ApiPostMapping(value = "/FWInvQuery", desc = "泛微查询物料库存api接口")
 | |
|     public CustomApiResult<FWInvQueryResult> invQuery
 | |
|             (@NotNull @ApiParam(value = "入参", example = "") FWInvQueryModel model) {
 | |
|         FWInvQueryResult resultExt = new FWInvQueryResult();
 | |
|         List<FWInvQueryResult.ResultBean> resultBeanList = new ArrayList<>();
 | |
|         int failCount = 0;//失败数量
 | |
| 
 | |
|         List<FWInvQueryModel.QueryModel> queryModels = model.getQueryModels();
 | |
|         for (FWInvQueryModel.QueryModel queryModel : queryModels) {
 | |
|             String materialNumber = queryModel.getMaterialNumber();
 | |
|             String lot = queryModel.getLot();
 | |
|             String warehouseNumber = queryModel.getWarehouseNumber();
 | |
|             Date producedate = queryModel.getProducedate();
 | |
|             Date expirydate = queryModel.getExpirydate();
 | |
| 
 | |
|             QFilter qf1 = new QFilter("material.number", QCP.equals, materialNumber);
 | |
|             QFilter qf2 = new QFilter("lotnum", QCP.equals, lot);
 | |
|             QFilter qf3 = new QFilter("warehouse.number", QCP.equals, warehouseNumber);
 | |
|             QFilter qf4 = new QFilter("producedate", QCP.equals, producedate);
 | |
|             QFilter qf5 = new QFilter("expirydate", QCP.equals, expirydate);
 | |
|             DynamicObject[] realbalances = BusinessDataServiceHelper.load("im_inv_realbalance", "id,org,warehouse,lotnum,avbbaseqty,qty", new QFilter[]{qf1, qf2, qf3, qf4, qf5});
 | |
|             if(realbalances != null && realbalances.length > 0){
 | |
|                 FWInvQueryResult.ResultBean resultBean = new FWInvQueryResult.ResultBean();
 | |
|                 BigDecimal totalQty = BigDecimal.ZERO;
 | |
|                 for (DynamicObject realbalance : realbalances) {
 | |
|                     //获取数量
 | |
|                     BigDecimal qty = realbalance.getBigDecimal("qty");
 | |
|                     totalQty = totalQty.add(qty);
 | |
|                     //获取组织数据
 | |
|                     DynamicObject org = realbalance.getDynamicObject("org");
 | |
|                     if (org!= null){
 | |
|                         resultBean.setOrgCode(org.getString("number"));
 | |
|                         OrmLocaleValue name = (OrmLocaleValue)org.get("name");
 | |
|                         resultBean.setOrgName(name.get("zh_CN"));
 | |
|                     }
 | |
|                     //获取仓库数据
 | |
|                     DynamicObject warehouse = realbalance.getDynamicObject("warehouse");
 | |
|                     if (warehouse!= null){
 | |
|                         resultBean.setWarehouseCode(warehouse.getString("number"));
 | |
|                         OrmLocaleValue name = (OrmLocaleValue)warehouse.get("name");
 | |
|                         resultBean.setWarehouseName(name.get("zh_CN"));
 | |
|                     }
 | |
|                 }
 | |
|                 resultBean.setNumber(materialNumber);
 | |
|                 resultBean.setLot(lot);
 | |
|                 resultBean.setQty(totalQty.setScale(2, RoundingMode.HALF_UP));
 | |
|                 resultBeanList.add(resultBean);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         resultExt.setFailCount(failCount);
 | |
|         resultExt.setSuccessCount(queryModels.size() - failCount);
 | |
|         resultExt.setResult(resultBeanList);
 | |
|         return CustomApiResult.success(resultExt);
 | |
| 
 | |
|     }
 | |
| 
 | |
| }
 |