lc/lc123/cloud/app/api/controller/FWInvQueryController.java

76 lines
3.6 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.util.*;
import static org.apache.batik.svggen.SVGStylingAttributes.set;
@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<>();
// List<List<FWInvQueryResult.ResultBean>> resultBeanList = new ArrayList<>();
int failCount = 0;//失败数量
List<FWInvQueryModel.QueryModel> queryModels = model.getQueryModels();
for (FWInvQueryModel.QueryModel queryModel : queryModels) {
// List<FWInvQueryResult.ResultBean> 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);
}
}