Merge remote-tracking branch 'origin/master'
This commit is contained in:
		
						commit
						92868c1ce8
					
				|  | @ -0,0 +1,326 @@ | ||||||
|  | package tqq9.lc123.cloud.app.api.controller; | ||||||
|  | 
 | ||||||
|  | import com.alibaba.fastjson.JSON; | ||||||
|  | import com.alibaba.fastjson.JSONArray; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.drew.lang.annotations.NotNull; | ||||||
|  | import kd.bos.dataentity.OperateOption; | ||||||
|  | import kd.bos.dataentity.entity.DynamicObject; | ||||||
|  | import kd.bos.dataentity.entity.DynamicObjectCollection; | ||||||
|  | import kd.bos.entity.operate.result.IOperateInfo; | ||||||
|  | import kd.bos.entity.operate.result.OperationResult; | ||||||
|  | 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.QFilter; | ||||||
|  | import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
|  | import kd.bos.servicehelper.operation.OperationServiceHelper; | ||||||
|  | import kd.bos.util.StringUtils; | ||||||
|  | import tqq9.lc123.cloud.app.api.utils.ApiResultExt; | ||||||
|  | import tqq9.lc123.cloud.app.api.utils.Constants; | ||||||
|  | import tqq9.lc123.cloud.app.plugin.utils.BaseDataMatchUtils; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * WMS形态转换单接口--库存异动 | ||||||
|  |  */ | ||||||
|  | @ApiController(value = "WMSAdjustBillController", desc = "WMS-形态转换单接口bg") | ||||||
|  | public class WMSAdjustBillController { | ||||||
|  | 
 | ||||||
|  |     @ApiPostMapping(value = "/WMSAdjustBill", desc = "WMS库存异动api") | ||||||
|  |     public CustomApiResult<ApiResultExt> wmsAdjustBill | ||||||
|  |             (@NotNull @ApiParam(value = "入参", example = "") String data) { | ||||||
|  |         ApiResultExt resultExt = new ApiResultExt(); | ||||||
|  |         List<ApiResultExt.ResultBean> results = new ArrayList<>(); | ||||||
|  |         ApiResultExt.ResultBean resultBean = new ApiResultExt.ResultBean(); | ||||||
|  |         ApiResultExt.Error error = new ApiResultExt.Error(); | ||||||
|  |         ArrayList<String> rowMsg = new ArrayList<>(); | ||||||
|  |         JSONObject keys = new JSONObject(); | ||||||
|  |         boolean billStatus = true; | ||||||
|  | 
 | ||||||
|  |         JSONObject obj = JSON.parseObject(data); | ||||||
|  |         String cPACode =  obj.getString("cPACode");//调整单号 | ||||||
|  |         String cWhCode =  obj.getString("cWhCode");//仓库编码 | ||||||
|  |         String BelongTo =  obj.getString("BelongTo");//归属组织 | ||||||
|  | 
 | ||||||
|  |         if(StringUtils.isBlank(cPACode)){ | ||||||
|  |             rowMsg.add("入参调整单号字段cPACode为空"); | ||||||
|  |             billStatus = false; | ||||||
|  |         }else { | ||||||
|  |             keys.put("cPACode", cPACode); | ||||||
|  |         } | ||||||
|  |         //仓库 | ||||||
|  |         DynamicObject warehouse = null; | ||||||
|  |         if(StringUtils.isBlank(cWhCode)){ | ||||||
|  |             rowMsg.add("入参仓库编码字段cWhCode为空"); | ||||||
|  |             billStatus = false; | ||||||
|  |         }else{ | ||||||
|  |             QFilter f = new QFilter("number", "=", cWhCode); | ||||||
|  |             DynamicObject[] whArr = BusinessDataServiceHelper.load("bos_warehouse", "id,name,number", new QFilter[]{f}); | ||||||
|  |             if(whArr == null || whArr.length == 0){ | ||||||
|  |                 rowMsg.add("根据仓库编码字段cWhCode【"+cWhCode+"】在金蝶系统中没有查询到对应的仓库信息"); | ||||||
|  |                 billStatus = false; | ||||||
|  |             }else { | ||||||
|  |                 warehouse = whArr[0]; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         //库存组织 | ||||||
|  |         DynamicObject org = null; | ||||||
|  |         if(StringUtils.isBlank(BelongTo)){ | ||||||
|  |             rowMsg.add("入参归属字段BelongTo为空"); | ||||||
|  |             billStatus = false; | ||||||
|  |         }else{ | ||||||
|  |             QFilter f = new QFilter("number", "=", BelongTo); | ||||||
|  |             DynamicObject[] orgArr = BusinessDataServiceHelper.load("bos_org", "id,name,number", new QFilter[]{f}); | ||||||
|  |             if(orgArr == null || orgArr.length == 0){ | ||||||
|  |                 rowMsg.add("根据归属字段BelongTo【"+BelongTo+"】在金蝶系统中没有查询到对应的组织信息"); | ||||||
|  |                 billStatus = false; | ||||||
|  |             }else { | ||||||
|  |                 org = orgArr[0]; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         JSONArray Details = obj.getJSONArray("Details"); | ||||||
|  |         if(Details != null && Details.size() > 0){ | ||||||
|  |             for (int i = 0; i < Details.size(); i++) { | ||||||
|  |                 JSONObject detail = Details.getJSONObject(i); | ||||||
|  |                 String cInvCode = detail.getString("cInvCode");//产品编码 | ||||||
|  |                 String cOBatch = detail.getString("cOBatch");//挑战前批次 | ||||||
|  |                 String cIBatch = detail.getString("cIBatch");//调整后批次 | ||||||
|  |                 Integer iPAQuantity = detail.getInteger("iPAQuantity");//数量 | ||||||
|  | 
 | ||||||
|  |                 if(StringUtils.isBlank(cInvCode)){ | ||||||
|  |                     rowMsg.add("入参产品编码字段cInvCode为空"); | ||||||
|  |                     billStatus = false; | ||||||
|  |                 } else { | ||||||
|  |                     QFilter f = new QFilter("number", "=", cInvCode); | ||||||
|  |                     DynamicObject[] materialArr = BusinessDataServiceHelper.load("bd_material", "id,number,name", new QFilter[]{f}); | ||||||
|  |                     if(materialArr == null || materialArr.length == 0){ | ||||||
|  |                         rowMsg.add("根据产品编码字段cInvCode【"+cInvCode+"】在金蝶系统中没有查询到对应的物料信息"); | ||||||
|  |                         billStatus = false; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 if(StringUtils.isBlank(cOBatch)){ | ||||||
|  |                     rowMsg.add("入参挑战前批次字段cOBatch为空"); | ||||||
|  |                     billStatus = false; | ||||||
|  |                 }else { | ||||||
|  |                     QFilter f = new QFilter("number", "=", cOBatch); | ||||||
|  |                     DynamicObject[] lotArr = BusinessDataServiceHelper.load("bd_lot", "id,number,name", new QFilter[]{f}); | ||||||
|  |                     if(lotArr == null || lotArr.length == 0){ | ||||||
|  |                         rowMsg.add("根据挑战前批次字段cOBatch【"+cOBatch+"】在金蝶系统中没有查询到对应的批次信息"); | ||||||
|  |                         billStatus = false; | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  |                 if(StringUtils.isBlank(cIBatch)){ | ||||||
|  |                     rowMsg.add("入参调整后批次字段cIBatch为空"); | ||||||
|  |                     billStatus = false; | ||||||
|  |                 }else { | ||||||
|  |                     QFilter f = new QFilter("number", "=", cIBatch); | ||||||
|  |                     DynamicObject[] lotArr = BusinessDataServiceHelper.load("bd_lot", "id,number,name", new QFilter[]{f}); | ||||||
|  |                     if(lotArr == null || lotArr.length == 0){ | ||||||
|  |                         rowMsg.add("根据调整后批次字段cIBatch【"+cIBatch+"】在金蝶系统中没有查询到对应的批次信息"); | ||||||
|  |                         billStatus = false; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 if(iPAQuantity == null || iPAQuantity == 0){ | ||||||
|  |                     rowMsg.add("入参数量字段iPAQuantity为空或为零"); | ||||||
|  |                     billStatus = false; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }else{ | ||||||
|  |             rowMsg.add("入参明细字段Details为空"); | ||||||
|  |             billStatus = false; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         resultBean.setBillIndex(0); | ||||||
|  |         resultBean.setKeys(keys); | ||||||
|  |         resultBean.setNumber(cPACode); | ||||||
|  |         if(billStatus){ | ||||||
|  |             //出现错误后返回 | ||||||
|  |             error.setKeys(keys); | ||||||
|  |             error.setRowMsg(rowMsg); | ||||||
|  |             error.setEntityKey("im_adjustbill"); | ||||||
|  |             resultBean.setId(""); | ||||||
|  |             resultBean.setBillStatus(billStatus); | ||||||
|  |             resultBean.setErrors(error); | ||||||
|  |             results.add(resultBean); | ||||||
|  |             resultExt.setFailCount(0); | ||||||
|  |             resultExt.setSuccessCount(1); | ||||||
|  |         }else{ | ||||||
|  |             //常量准备-查询单据类型 | ||||||
|  |             QFilter f = new QFilter("number", "=", "im_Adjustbill_STD_BT_S"); | ||||||
|  |             DynamicObject[] billtypeArr = BusinessDataServiceHelper.load("bos_billtype", "id,name,number", new QFilter[]{f}); | ||||||
|  |             DynamicObject billtype = billtypeArr[0]; | ||||||
|  |             //业务类型 | ||||||
|  |             f = new QFilter("number", "=", "511"); | ||||||
|  |             DynamicObject[] biztypeArr = BusinessDataServiceHelper.load("bd_biztype", "id,name,number", new QFilter[]{f}); | ||||||
|  |             DynamicObject biztype = biztypeArr[0]; | ||||||
|  |             //出库库存类型 | ||||||
|  |             f = new QFilter("number", "=", "110"); | ||||||
|  |             DynamicObject[] invtypeArr = BusinessDataServiceHelper.load("bd_invtype", "id,number,name", new QFilter[]{f}); | ||||||
|  |             DynamicObject invtype = invtypeArr[0]; | ||||||
|  |             //出库库存状态 | ||||||
|  |             f = new QFilter("number", "=", "110"); | ||||||
|  |             DynamicObject[] invstatusArr = BusinessDataServiceHelper.load("bd_invstatus", "id,number,name", new QFilter[]{f}); | ||||||
|  |             DynamicObject invstatus = invstatusArr[0]; | ||||||
|  | 
 | ||||||
|  |             //必填校验通过,构建并保存数据 | ||||||
|  |             DynamicObject adjustbill = BusinessDataServiceHelper.newDynamicObject("im_adjustbill"); | ||||||
|  |             adjustbill.set("billno", cPACode); | ||||||
|  |             adjustbill.set("biztime", new Date()); | ||||||
|  |             adjustbill.set("org", org); | ||||||
|  |             adjustbill.set("billtype", billtype); | ||||||
|  |             adjustbill.set("biztype", biztype); | ||||||
|  |             adjustbill.set("billstatus", "A"); | ||||||
|  |             adjustbill.set("billcretype", "1"); | ||||||
|  |             DynamicObjectCollection beforeEntries = adjustbill.getDynamicObjectCollection("billentry");//调整前明细 | ||||||
|  |             for (int i = 0; i < Details.size(); i++) { | ||||||
|  |                 JSONObject detail = Details.getJSONObject(i); | ||||||
|  |                 String cInvCode = detail.getString("cInvCode");//产品编码 | ||||||
|  |                 String cOBatch = detail.getString("cOBatch");//挑战前批次 | ||||||
|  |                 Date dOMDate = detail.getDate("dOMDate");//挑战前生产日期 | ||||||
|  |                 Date dOVDate = detail.getDate("dOVDate");//挑战前有效期至 | ||||||
|  |                 String cIBatch = detail.getString("cIBatch");//调整后批次 | ||||||
|  |                 Date dIMDate = detail.getDate("dIMDate");//调整入生产日期 | ||||||
|  |                 Date dIVDate = detail.getDate("dIVDate");//调整入有效期至 | ||||||
|  |                 Integer iPAQuantity = detail.getInteger("iPAQuantity");//数量 | ||||||
|  | 
 | ||||||
|  |                 //物料 | ||||||
|  |                 f = new QFilter("number", "=", cInvCode); | ||||||
|  |                 DynamicObject[] materialArr = BusinessDataServiceHelper.load("bd_material", "id,number,name,baseunit", new QFilter[]{f}); | ||||||
|  |                 DynamicObject material = materialArr[0]; | ||||||
|  |                 //物料库存信息 | ||||||
|  |                 f = new QFilter("masterid.id", "=", material.getPkValue()); | ||||||
|  |                 DynamicObject[] materialinvArr = BusinessDataServiceHelper.load("bd_materialinventoryinfo", "id,number,name,baseunit", new QFilter[]{f}); | ||||||
|  |                 DynamicObject materialinv = materialinvArr[0]; | ||||||
|  |                 //调整前商品 | ||||||
|  |                 DynamicObject oGoods = null; | ||||||
|  |                 DynamicObject[] oGoodsArr = BaseDataMatchUtils.materialMatchGoods("cInvCode", cOBatch, true); | ||||||
|  |                 if(oGoodsArr != null && oGoodsArr.length > 0){ | ||||||
|  |                     oGoods = oGoodsArr[0]; | ||||||
|  |                 } | ||||||
|  |                 //调整后商品 | ||||||
|  |                 DynamicObject iGoods = null; | ||||||
|  |                 DynamicObject[] iGoodsArr = BaseDataMatchUtils.materialMatchGoods("cInvCode", cIBatch, true); | ||||||
|  |                 if(iGoodsArr != null && iGoodsArr.length > 0){ | ||||||
|  |                     iGoods = iGoodsArr[0]; | ||||||
|  |                 } | ||||||
|  |                 //调整前批号 | ||||||
|  |                 f = new QFilter("number", "=", cOBatch); | ||||||
|  |                 DynamicObject[] olotArr = BusinessDataServiceHelper.load("bd_lot", "id,number,name", new QFilter[]{f}); | ||||||
|  |                 DynamicObject olot = olotArr[0]; | ||||||
|  |                 //调整后批次 | ||||||
|  |                 f = new QFilter("number", "=", cIBatch); | ||||||
|  |                 DynamicObject[] ilotArr = BusinessDataServiceHelper.load("bd_lot", "id,number,name", new QFilter[]{f}); | ||||||
|  |                 DynamicObject ilot = ilotArr[0]; | ||||||
|  | 
 | ||||||
|  |                 //调整前明细 | ||||||
|  |                 DynamicObject beforeEntry = beforeEntries.addNew(); | ||||||
|  |                 beforeEntry.set("materialmasterid", material); | ||||||
|  |                 beforeEntry.set("material", materialinv); | ||||||
|  |                 beforeEntry.set("tqq9_goods", oGoods); | ||||||
|  |                 beforeEntry.set("unit", material.getDynamicObject("baseunit")); | ||||||
|  |                 beforeEntry.set("qty", iPAQuantity); | ||||||
|  |                 beforeEntry.set("baseunit", material.getDynamicObject("baseunit")); | ||||||
|  |                 beforeEntry.set("baseqty", iPAQuantity); | ||||||
|  |                 beforeEntry.set("lot", olot); | ||||||
|  |                 beforeEntry.set("lotnumber", cOBatch); | ||||||
|  |                 beforeEntry.set("producedate", dOMDate); | ||||||
|  |                 beforeEntry.set("expirydate", dOVDate); | ||||||
|  |                 beforeEntry.set("warehouse", warehouse); | ||||||
|  |                 beforeEntry.set("invtype", invtype); | ||||||
|  |                 beforeEntry.set("invstatus", invstatus); | ||||||
|  |                 beforeEntry.set("ownertype", "bos_org"); | ||||||
|  |                 beforeEntry.set("owner", org); | ||||||
|  |                 beforeEntry.set("keepertype", "bos_org"); | ||||||
|  |                 beforeEntry.set("keeper", org); | ||||||
|  |                 DynamicObjectCollection afterEntries = beforeEntry.getDynamicObjectCollection("afterentity"); | ||||||
|  |                 //调整后明细 | ||||||
|  |                 DynamicObject afterEntry = afterEntries.addNew(); | ||||||
|  |                 afterEntry.set("materialmasterid1", material); | ||||||
|  |                 afterEntry.set("material1", materialinv); | ||||||
|  |                 beforeEntry.set("tqq9_goods1", iGoods); | ||||||
|  |                 afterEntry.set("unit1", material.getDynamicObject("baseunit")); | ||||||
|  |                 afterEntry.set("qty1", iPAQuantity); | ||||||
|  |                 afterEntry.set("baseunit1", material.getDynamicObject("baseunit")); | ||||||
|  |                 afterEntry.set("baseqty1", iPAQuantity); | ||||||
|  |                 afterEntry.set("lot1", ilot); | ||||||
|  |                 afterEntry.set("lotnumber1", cIBatch); | ||||||
|  |                 afterEntry.set("producedate1", dIMDate); | ||||||
|  |                 afterEntry.set("expirydate1", dIVDate); | ||||||
|  |                 afterEntry.set("warehouse1", warehouse); | ||||||
|  |                 afterEntry.set("invtype1", invtype); | ||||||
|  |                 afterEntry.set("invstatus1", invstatus); | ||||||
|  |                 afterEntry.set("ownertype1", "bos_org"); | ||||||
|  |                 afterEntry.set("owner1", org); | ||||||
|  |                 afterEntry.set("keepertype1", "bos_org"); | ||||||
|  |                 afterEntry.set("keeper1", org); | ||||||
|  |             } | ||||||
|  |             OperationResult operationResult = OperationServiceHelper.executeOperate("save", "im_adjustbill", new DynamicObject[]{adjustbill}, OperateOption.create()); | ||||||
|  |             if(!operationResult.isSuccess()){ | ||||||
|  |                 List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo(); | ||||||
|  |                 for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) { | ||||||
|  |                     rowMsg.add(iOperateInfo.getMessage()); | ||||||
|  |                 } | ||||||
|  |                 error.setKeys(keys); | ||||||
|  |                 error.setRowMsg(rowMsg); | ||||||
|  |                 error.setEntityKey("im_adjustbill"); | ||||||
|  |                 resultBean.setId(""); | ||||||
|  |                 resultBean.setBillStatus(false); | ||||||
|  |                 resultBean.setErrors(error); | ||||||
|  |                 results.add(resultBean); | ||||||
|  |                 resultExt.setFailCount(0); | ||||||
|  |                 resultExt.setSuccessCount(1); | ||||||
|  |             }else { | ||||||
|  |                 operationResult = OperationServiceHelper.executeOperate("submit", "im_adjustbill", new DynamicObject[]{adjustbill}, OperateOption.create()); | ||||||
|  |                 if(!operationResult.isSuccess()){ | ||||||
|  |                     List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo(); | ||||||
|  |                     for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) { | ||||||
|  |                         rowMsg.add(iOperateInfo.getMessage()); | ||||||
|  |                     } | ||||||
|  |                     error.setKeys(keys); | ||||||
|  |                     error.setRowMsg(rowMsg); | ||||||
|  |                     error.setEntityKey("im_adjustbill"); | ||||||
|  |                     resultBean.setId(""); | ||||||
|  |                     resultBean.setBillStatus(false); | ||||||
|  |                     resultBean.setErrors(error); | ||||||
|  |                     results.add(resultBean); | ||||||
|  |                     resultExt.setFailCount(0); | ||||||
|  |                     resultExt.setSuccessCount(1); | ||||||
|  |                 }else { | ||||||
|  |                     operationResult = OperationServiceHelper.executeOperate("audit", "im_adjustbill", new DynamicObject[]{adjustbill}, OperateOption.create()); | ||||||
|  |                     if(!operationResult.isSuccess()){ | ||||||
|  |                         List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo(); | ||||||
|  |                         for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) { | ||||||
|  |                             rowMsg.add(iOperateInfo.getMessage()); | ||||||
|  |                         } | ||||||
|  |                         error.setKeys(keys); | ||||||
|  |                         error.setRowMsg(rowMsg); | ||||||
|  |                         error.setEntityKey("im_adjustbill"); | ||||||
|  |                         resultBean.setId(""); | ||||||
|  |                         resultBean.setBillStatus(false); | ||||||
|  |                         resultBean.setErrors(error); | ||||||
|  |                         results.add(resultBean); | ||||||
|  |                         resultExt.setFailCount(0); | ||||||
|  |                         resultExt.setSuccessCount(1); | ||||||
|  |                     }else { | ||||||
|  |                         resultBean.setId(adjustbill.getString("id")); | ||||||
|  |                         resultBean.setBillStatus(true); | ||||||
|  |                         results.add(resultBean); | ||||||
|  |                         resultExt.setFailCount(1); | ||||||
|  |                         resultExt.setSuccessCount(0); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         resultExt.setResult(results); | ||||||
|  |         return CustomApiResult.success(resultExt); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,83 @@ | ||||||
|  | package tqq9.lc123.cloud.app.plugin.utils; | ||||||
|  | 
 | ||||||
|  | import kd.bos.dataentity.entity.DynamicObject; | ||||||
|  | import kd.bos.orm.query.QFilter; | ||||||
|  | import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
|  | import org.apache.poi.util.ArrayUtil; | ||||||
|  | import scala.Dynamic; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 基础数据匹配查询 | ||||||
|  |  */ | ||||||
|  | public class BaseDataMatchUtils { | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据商品编码查询物料信息 | ||||||
|  |      * @param goodsNumber   商品编码 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static DynamicObject goodsMatchMaterial(String goodsNumber){ | ||||||
|  |         QFilter f = new QFilter("number", "=", goodsNumber); | ||||||
|  |         DynamicObject[] goodsArr = BusinessDataServiceHelper.load("tqq9_goodspackage", "id,number,name,tqq9_mater", new QFilter[]{f}); | ||||||
|  |         if(goodsArr != null && goodsArr.length > 0){ | ||||||
|  |             return goodsArr[0].getDynamicObject("tqq9_mater"); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据物料编码查找对应商品 | ||||||
|  |      * @param materialNumber    物料编码 | ||||||
|  |      * @param lotNumber         批号 | ||||||
|  |      * @param isauto            是否自动封装的商品 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static DynamicObject[] materialMatchGoods(String materialNumber, String lotNumber, boolean isauto){ | ||||||
|  |         QFilter f1 = new QFilter("tqq9_mater.number", "=", materialNumber); | ||||||
|  |         QFilter f2 = new QFilter("tqq9_entry.tqq9_lot.number", "=", lotNumber); | ||||||
|  |         QFilter f3 = new QFilter("isauto", "=", isauto); | ||||||
|  |         DynamicObject[] goodsA = BusinessDataServiceHelper.load("tqq9_goodspackage", | ||||||
|  |                 "id,number,name,tqq9_mater.baseunit,tqq9_mater.modelnum,tqq9_isauto", | ||||||
|  |                 new QFilter[]{f1, f2, f3}); | ||||||
|  |         if(goodsA != null && goodsA.length > 0){ | ||||||
|  |             List<DynamicObject> goodsList = new ArrayList<>(); | ||||||
|  |             for (DynamicObject goods : goodsA) { | ||||||
|  |                 goodsList.add(goods); | ||||||
|  |             } | ||||||
|  |             // 或预先分配大小(性能更优) | ||||||
|  |             DynamicObject[] goodsArr = goodsList.toArray(new DynamicObject[goodsList.size()]); | ||||||
|  |             return goodsArr; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 总仓匹配--外部仓库对应金蝶仓库 | ||||||
|  |      * @param wmsWhNumber   外部WMS系统仓库编码 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static DynamicObject getKDWarehouse(String wmsWhNumber){ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 总仓匹配--金蝶仓库查找对应的外部wms仓库编码 | ||||||
|  |      * @param kdWhNumber | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static String getOutWarehouse(String kdWhNumber){ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue