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.util.*; import static org.apache.batik.svggen.SVGStylingAttributes.set; @ApiController(value = "FWInvQueryController", desc = "泛微查询库存接口") public class FWInvQueryController { @ApiPostMapping(value = "/FWInvQuery", desc = "泛微查询物料库存api接口") public CustomApiResult invQuery (@NotNull @ApiParam(value = "入参", example = "") FWInvQueryModel model) { FWInvQueryResult resultExt = new FWInvQueryResult(); List resultBeanList = new ArrayList<>(); // List> resultBeanList = new ArrayList<>(); int failCount = 0;//失败数量 List queryModels = model.getQueryModels(); for (FWInvQueryModel.QueryModel queryModel : queryModels) { // List resultBeans = new ArrayList<>(); String materialNumber = queryModel.getMaterialNumber(); String lot = queryModel.getLot(); QFilter qf1 = new QFilter("material.number", QCP.equals, materialNumber); QFilter qf2 = new QFilter("lotnum", QCP.in, lot); DynamicObject[] realbalances = BusinessDataServiceHelper.load("im_inv_realbalance", "id,org,warehouse,lotnum,avbbaseqty,qty", new QFilter[]{qf1, qf2}); if(realbalances != null && realbalances.length > 0){ for (DynamicObject realbalance : realbalances) { FWInvQueryResult.ResultBean resultBean = new FWInvQueryResult.ResultBean(); //获取数量 BigDecimal qty = realbalance.getBigDecimal("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(qty); resultBeanList.add(resultBean); } } // resultBeanList.add(resultBeans); } resultExt.setFailCount(failCount); resultExt.setSuccessCount(queryModels.size() - failCount); resultExt.setResult(resultBeanList); return CustomApiResult.success(resultExt); } }