From cec9880ed419129a57e5689f48da8fcfaf61b02a Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Mon, 16 Dec 2024 14:36:07 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E5=A2=9E=E5=8A=A0=E5=A1=91?= =?UTF-8?q?=E6=96=99=E4=BB=B6=E5=80=92=E5=BA=93=E6=89=AB=E6=8F=8F=E8=AF=86?= =?UTF-8?q?=E5=88=ABOP=E5=8D=95=E5=9C=A8=E7=BA=BF=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyncReceiptProcessHandler.java | 3 +- .../iostorage/sevice/PdaIOService.java | 149 +++++++++++++----- 2 files changed, 112 insertions(+), 40 deletions(-) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java index 6f2406e1..bf844fd3 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java @@ -145,7 +145,7 @@ public class SyncReceiptProcessHandler implements ClassProcess { if ("RECEIPT_PickMtrl".equals(formType)) { for (int i = 0; i < fEntityArray.size(); i++) { JSONObject fEntity = fEntityArray.getJSONObject(i); - List materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper().eq(MdMeMaterialbase::getMaterial_code,JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber") )); + List materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper().eq(MdMeMaterialbase::getMaterial_code,JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber"))); MdMeMaterialbase materialInfo = materialList.get(0); //没有启用批次号 if ("0".equals(materialInfo.getPrint_no())) { @@ -168,6 +168,7 @@ public class SyncReceiptProcessHandler implements ClassProcess { } if ("FStockId".equals(entry.getKey())) { JSONObject fStockId = new JSONObject(); + //tofix 目前都入料箱库 fStockId.put("FNumber", "25"); linkedMap.put("FStockId", fStockId); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java index cfda54d7..8e5e5d4e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java @@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.kingdee.bos.webapi.entity.IdentifyInfo; import com.kingdee.bos.webapi.sdk.K3CloudApi; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -41,7 +40,9 @@ import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty; import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; -import org.springframework.beans.BeanUtils; +import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping; +import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl; +import org.nl.wms.system_manage.service.quartz.task.SyncErpBillsScheduleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,6 +62,14 @@ public class PdaIOService { @Autowired private ErpSec erpSec; + + @Autowired + private ErpServiceUtils erpServiceUtils; + + @Autowired + private SyncErpBillsScheduleService syncErpBillsScheduleService; + @Autowired + private SyncFormMappingServiceImpl syncFormMappingServiceImpl; @Autowired private IBmFormStrucService iBmFormStrucService; @Autowired @@ -75,6 +84,7 @@ public class PdaIOService { private StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl; @Autowired private MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl; + @Resource private PmFormDataMapper pmFormDataMapper; @Autowired @@ -301,11 +311,12 @@ public class PdaIOService { } public PmFormData getCertificateInfo(String id) { + K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi(); PmFormData result = new PmFormData(); try { if (id.contains("OP") || id.contains("op")) { //生产入库 - getOpBills(id, result); + getOpBills(id, result, k3CloudApi); } else { //采购入库 ReceiveBillData receiveBillData = pmFormDataMapper.queryReceiveBill(id); @@ -357,10 +368,19 @@ public class PdaIOService { } if (StringUtils.isNotBlank(result.getMaterial_id())) { List materialbaseList = mdMeMaterialbaseServiceImpl.list(new LambdaQueryWrapper().eq(MdMeMaterialbase::getMaterial_id, result.getMaterial_id())); + //本地存在改物料信息 if (ObjectUtils.isNotEmpty(materialbaseList)) { result.setMaterial_code(materialbaseList.get(0).getMaterial_code()); result.setMaterial_spec(materialbaseList.get(0).getMaterial_spec()); result.setMaterial_name(materialbaseList.get(0).getMaterial_name()); + } else { + SyncFormMapping syncFormMapping = syncFormMappingServiceImpl.getOne(new LambdaQueryWrapper().in(SyncFormMapping::getForm_type, "BD_MATERIAL")); + String materialMappingString = JSON.toJSONString(syncFormMapping.getMapping_json()); + syncErpBillsScheduleService.queryMaterialInfo(materialMappingString, "BD_MATERIAL", false, result.getMaterial_id(), k3CloudApi); + List materialList = mdMeMaterialbaseServiceImpl.list(new LambdaQueryWrapper().eq(MdMeMaterialbase::getMaterial_id, result.getMaterial_id())); + result.setMaterial_code(materialList.get(0).getMaterial_code()); + result.setMaterial_spec(materialList.get(0).getMaterial_spec()); + result.setMaterial_name(materialList.get(0).getMaterial_name()); } } if (StringUtils.isNotBlank(result.getStockId())) { @@ -377,10 +397,7 @@ public class PdaIOService { /** * */ - private void getOpBills(String id, PmFormData result) throws Exception { - IdentifyInfo identifyInfo = new IdentifyInfo(); - BeanUtils.copyProperties(erpSec, identifyInfo); - K3CloudApi cloudApi = new K3CloudApi(identifyInfo); + private void getOpBills(String id, PmFormData result, K3CloudApi k3CloudApi) throws Exception { String filterString = "FBillNo = '" + id + "'"; ErpQuery query = new ErpQuery(); query.setFilterString(filterString); @@ -388,43 +405,97 @@ public class PdaIOService { query.setFieldKeys("FBillNo,FProOrgId,FStockInOrgId,FProductId,FProductName,FProSpecification,FMOQty,FMOUnitId,FOwnerId,FLot,FProDepartmentId,FMONumber,FMOEntrySeq,FOwnerTypeId"); query.setLimit(1); String jsonString = JSON.toJSONString(query); - List> lists = cloudApi.executeBillQuery(jsonString); + List> lists = k3CloudApi.executeBillQuery(jsonString); if (ObjectUtils.isNotEmpty(lists)) { List dataList = lists.get(0); if (ObjectUtils.isNotEmpty(dataList)) { + String moNumber = dataList.get(11).toString(); + String moSeq = dataList.get(12).toString(); + String moEntryId; + String moId; + String prdOrgId; + String stockOrgId; + String ownerIdHead_Id; + String workShopId1; + BigDecimal qty; + String ownerId_Id; + String stockId; + String keeperId; + String srcBillNo; + JSONObject pFormJson; + JSONObject dFormJson; //查询本地生产订单信息 - ReceiveBillData prdMoBillData = pmFormDataMapper.queryOrderStockId(dataList.get(11).toString(),dataList.get(12).toString()); - if (prdMoBillData == null) { - throw new BadRequestException("查询合格证关联的生产订单信息异常!"); - } - String pForm_data = prdMoBillData.getPForm_data(); - String dForm_data = prdMoBillData.getDForm_data(); - JSONObject pFormJson = JSONObject.parseObject(pForm_data); - JSONObject dFormJson = JSONObject.parseObject(dForm_data); - if (ObjectUtils.isNotEmpty(dFormJson) && ObjectUtils.isNotEmpty(pFormJson)) { - String moNumber = dataList.get(11).toString(); - result.setBillNo(dataList.get(0).toString()); - result.setPrdOrgId((pFormJson.getString("PrdOrgId"))); - result.setStockOrgId((dFormJson.getString("StockOrgId"))); - result.setOwnerIdHead_Id((dFormJson.getString("InStockOwnerId"))); - result.setMoNumber(moNumber); - result.setMoId(prdMoBillData.getPId().substring(0, prdMoBillData.getPId().indexOf("$"))); - result.setMoEntryId(prdMoBillData.getDId().substring(0, prdMoBillData.getDId().indexOf("$"))); - result.setMaterial_id(dataList.get(3).toString()); - result.setPcsn(dataList.get(11).toString()); - result.setUnit_id(dataList.get(7).toString()); - result.setWorkShopId1(dFormJson.getString("product_code")); - result.setQty(prdMoBillData.getQty()); - result.setMustQty(prdMoBillData.getQty()); - result.setInStockType("1"); - result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); - result.setOwnerId_Id(dFormJson.getString("InStockOwnerId")); - result.setStockStatusId("10000"); - result.setStockId(dFormJson.getString("stockId")); - result.setKeeperId((dFormJson.getString("StockOrgId"))); - result.setKeeperTypeId("BD_KeeperOrg"); - result.setSrcBillNo(dFormJson.getString("saleOrderEntryId")); + ReceiveBillData prdMoBillData = pmFormDataMapper.queryOrderStockId(dataList.get(11).toString(), dataList.get(12).toString()); + if (prdMoBillData != null) { + String pForm_data = prdMoBillData.getPForm_data(); + String dForm_data = prdMoBillData.getDForm_data(); + pFormJson = JSONObject.parseObject(pForm_data); + dFormJson = JSONObject.parseObject(dForm_data); + if (ObjectUtils.isEmpty(dFormJson) || ObjectUtils.isEmpty(pFormJson)) { + throw new BadRequestException("查询合格证关联的生产订单信息异常!"); + } + moId = prdMoBillData.getPId().substring(0, prdMoBillData.getPId().indexOf("$")); + prdOrgId = pFormJson.getString("PrdOrgId"); + moEntryId = prdMoBillData.getDId().substring(0, prdMoBillData.getDId().indexOf("$")); + stockOrgId = dFormJson.getString("StockOrgId"); + ownerIdHead_Id = dFormJson.getString("InStockOwnerId"); + workShopId1 = dFormJson.getString("product_code"); + qty = prdMoBillData.getQty(); + ownerId_Id = dFormJson.getString("InStockOwnerId"); + //tofix 目前都入料箱库 + stockId = "25"; + keeperId = dFormJson.getString("StockOrgId"); + srcBillNo = dFormJson.getString("saleOrderEntryId"); + } else { + query.setFieldKeys("FID"); + query.setFilterString("FBillNo ='" + moNumber + "'"); + query.setFormId("PRD_MO"); + JSONArray moBills = erpServiceUtils.queryBills(query); + JSONObject moBill = moBills.getJSONObject(0); + moId = moBill.getString("Id"); + prdOrgId = JSON.parseObject(moBill.getString("PrdOrgId")).getString("FNumber"); + JSONArray moTreeEntity = moBills.getJSONObject(0).getJSONArray("TreeEntity"); + JSONObject entity = moTreeEntity.stream() + .map(r -> (JSONObject) r) + .filter(json -> moSeq.equals(json.getString("Seq"))) + .findFirst() + .orElse(null); + if (entity != null) { + moEntryId = entity.getString("Id"); + stockOrgId = JSON.parseObject(entity.getString("StockInOrgId")).getString("FNumber"); + ownerIdHead_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber"); + workShopId1 = JSON.parseObject(entity.getString("WorkShopID")).getString("FNumber"); + qty = new BigDecimal(entity.getString("Qty")); + ownerId_Id = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber"); + keeperId = JSON.parseObject(entity.getString("InStockOwnerId")).getString("FNumber"); + srcBillNo = entity.getString("SaleOrderEntryId"); + //tofix 目前都入料箱库 + stockId = "25"; + } else { + throw new BadRequestException("查询合格证关联的生产订单明细信息异常!"); + } } + result.setBillNo(dataList.get(0).toString()); + result.setPrdOrgId(prdOrgId); + result.setStockOrgId(stockOrgId); + result.setOwnerIdHead_Id(ownerIdHead_Id); + result.setMoNumber(moNumber); + result.setMoId(moId); + result.setMoEntryId(moEntryId); + result.setMaterial_id(dataList.get(3).toString()); + result.setPcsn(dataList.get(11).toString()); + result.setUnit_id(dataList.get(7).toString()); + result.setWorkShopId1(workShopId1); + result.setQty(qty); + result.setMustQty(qty); + result.setInStockType("1"); + result.setOwnerTypeId(StringUtils.isBlank(dataList.get(13).toString()) ? "BD_OwnerOrg" : dataList.get(13).toString()); + result.setOwnerId_Id(ownerId_Id); + result.setStockStatusId("10000"); + result.setStockId(stockId); + result.setKeeperId(keeperId); + result.setKeeperTypeId("BD_KeeperOrg"); + result.setSrcBillNo(srcBillNo); } else { throw new BadRequestException("查询合格证关联的生产订单信息异常!"); }