From fba8933df9efb01516bd213a04fbddd5b760ef95 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Sat, 14 Dec 2024 23:18:15 +0800 Subject: [PATCH] =?UTF-8?q?opt=EF=BC=9A=E4=BC=98=E5=8C=96=E9=A2=86?= =?UTF-8?q?=E6=96=99=E5=8D=95=E5=92=8C=E7=94=9F=E6=88=90=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=8D=95=E6=89=B9=E5=8F=B7=EF=BC=8C=E8=BE=85=E5=8A=A9=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=EF=BC=8C=E6=89=8B=E5=B7=A5=E5=BD=95=E5=85=A5=E7=AD=89?= =?UTF-8?q?=E6=83=85=E5=86=B5=E6=95=B0=E6=8D=AE=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyncReceiptProcessHandler.java | 99 ++++++++++++++----- .../iostorage/sevice/PdaIOService.java | 2 +- .../wms/config_manage/formStruc/index.vue | 11 +++ 3 files changed, 84 insertions(+), 28 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 df0735b1..f2e305b3 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 @@ -25,7 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /* @@ -63,31 +65,8 @@ public class SyncReceiptProcessHandler implements ClassProcess { if (StringUtils.isEmpty(formid)) { throw new BadRequestException("回传失败:回传数据form_data中数据格式不是formid,data类型"); } - //判断生产入库的手工录入与MRP生成方式需回传不同的源单信息 - // if ("0".equals(formData.getString("FSrcEntryId")) && "PRD_INSTOCK".equals(formType)) { - // //查询工序汇报单 - // ErpQuery reportQuery = new ErpQuery(); - // reportQuery.setFilterString("FMoNumber ='" + formData.getString("moNumber") + "'"); - // reportQuery.setOrderString("FId desc"); - // reportQuery.setFormId("SFC_OperationReport"); - // JSONArray jsonArray = erpServiceUtils.queryBills(reportQuery); - // formData.remove("FSrcEntryId"); - // formData.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo")); - // } - // if ("PRD_PickMtrl".equals(formType)) { - // List materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper().eq(MdMeMaterialbase::getMaterial_id, formData.getString("material_id"))); - // if (ObjectUtils.isNotEmpty(materialList)) { - // MdMeMaterialbase materialInfo = materialList.get(0); - // //没有启用批次号 - // if ("0".equals(materialInfo.getPrint_no())) { - // formData.remove("FLot"); - // } - // //辅助单位 - // if (!"0".equals(materialInfo.getAssist_unit_id())) { - // formData.put("FSecUnitId", materialInfo.getAssist_unit_id()); - // } - // } - // } + + handleBillEntity(pmFormData.getForm_type(), formData); String json = formData.toJSONString(); try { IdentifyInfo identifyInfo = new IdentifyInfo(); @@ -124,12 +103,78 @@ public class SyncReceiptProcessHandler implements ClassProcess { } catch (Exception ex) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(PmFormData::getId, pmFormData.getId()); - updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:"+ex.getMessage() + ",回传Erp数据为:" + json); + updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:" + ex.getMessage() + ",回传Erp数据为:" + json); iPmFormDataService.update(updateWrapper); Log.error(ex.getMessage()); } return from; } - + private void handleBillEntity(String formType, JSONObject formData) { + JSONArray fEntityArray = formData.getJSONObject("Model").getJSONArray("FEntity"); + //判断生产入库的手工录入与MRP生成方式需回传不同的源单信息 + if ("0".equals(formData.getString("FSrcEntryId")) && "PRD_INSTOCK".equals(formType)) { + //查询工序汇报单 + ErpQuery reportQuery = new ErpQuery(); + reportQuery.setFilterString("FMoNumber ='" + formData.getString("moNumber") + "'"); + reportQuery.setOrderString("FId desc"); + reportQuery.setFormId("SFC_OperationReport"); + JSONArray jsonArray = erpServiceUtils.queryBills(reportQuery); + for (int i = 0; i < fEntityArray.size(); i++) { + JSONObject fEntity = fEntityArray.getJSONObject(i); + if (fEntity.containsKey("FSrcEntryId")) { + fEntity.remove("FSrcEntryId"); + } + Map linkedMap = new LinkedHashMap<>(); + for (String key : fEntity.keySet()) { + linkedMap.put(key, fEntity.get(key)); + } + Map tempMap = new LinkedHashMap<>(); + for (Map.Entry entry : linkedMap.entrySet()) { + tempMap.put(entry.getKey(), entry.getValue()); + if ("FMoEntryId".equals(entry.getKey())) { + //源单编号为工序汇报单号 + tempMap.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo")); + } + } + fEntity.clear(); + fEntity.putAll(tempMap); + } + } + //判断生产领料单的批次与辅助单位 + if ("PRD_PickMtrl".equals(formType)) { + for (int i = 0; i < fEntityArray.size(); i++) { + List materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper().eq(MdMeMaterialbase::getMaterial_id, formData.getString("material_id"))); + MdMeMaterialbase materialInfo = materialList.get(0); + JSONObject fEntity = fEntityArray.getJSONObject(i); + //没有启用批次号 + if ("0".equals(materialInfo.getPrint_no())) { + if (fEntity.containsKey("FLot")) { + fEntity.remove("FLot"); + } + } + //辅助单位 + Map linkedMap = new LinkedHashMap<>(); + for (String key : fEntity.keySet()) { + linkedMap.put(key, fEntity.get(key)); + } + Map tempMap = new LinkedHashMap<>(); + for (Map.Entry entry : linkedMap.entrySet()) { + tempMap.put(entry.getKey(), entry.getValue()); + if (!"0".equals(materialInfo.getAssist_unit_id()) && "FUnitID".equals(entry.getKey())) { + JSONObject fUnit = new JSONObject(); + fUnit.put("FNumber", materialInfo.getAssist_unit_id()); + tempMap.put("FSecUnitId", fUnit); + } + if ("FStockId".equals(entry.getKey())) { + JSONObject fStockId = new JSONObject(); + fStockId.put("FNumber", "25"); + linkedMap.put("FStockId", fStockId); + } + } + fEntity.clear(); + fEntity.putAll(tempMap); + } + } + } } 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 54787a52..cfda54d7 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 @@ -392,7 +392,7 @@ public class PdaIOService { if (ObjectUtils.isNotEmpty(lists)) { List dataList = lists.get(0); if (ObjectUtils.isNotEmpty(dataList)) { - //查询生产订单信息 + //查询本地生产订单信息 ReceiveBillData prdMoBillData = pmFormDataMapper.queryOrderStockId(dataList.get(11).toString(),dataList.get(12).toString()); if (prdMoBillData == null) { throw new BadRequestException("查询合格证关联的生产订单信息异常!"); diff --git a/wms_pro/qd/src/views/wms/config_manage/formStruc/index.vue b/wms_pro/qd/src/views/wms/config_manage/formStruc/index.vue index 5ba4f902..e43d899d 100644 --- a/wms_pro/qd/src/views/wms/config_manage/formStruc/index.vue +++ b/wms_pro/qd/src/views/wms/config_manage/formStruc/index.vue @@ -182,10 +182,19 @@ + + + + + + + + +