From c5a63cd8b69b85f27fc65946ae9bc9a2d7610856 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 26 May 2025 15:07:43 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E4=B8=8EMES=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E6=9B=B4=E6=96=B0=E5=88=86=E5=88=87=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E5=92=8C=E8=AE=A2=E5=8D=95BOM=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/ext/mes/rest/MesToLmsController.java | 7 + .../wms/ext/mes/service/MesToLmsService.java | 2 + .../mes/service/impl/MesToLmsServiceImpl.java | 174 +++++++++++++++++- 3 files changed, 180 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java index c30b5bca2..58a87e670 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java @@ -190,4 +190,11 @@ public class MesToLmsController { public ResponseEntity boxIsPass(@RequestBody JSONObject jo) { return new ResponseEntity<>(mesToLmsService.boxIsPass(jo), HttpStatus.OK); } + + @PostMapping("/changeBomInfo") + @Log("MES更新LMS分切工单、订单BOM信息") + @SaIgnore + public ResponseEntity changeBomInfo(@RequestBody JSONObject jo) { + return new ResponseEntity<>(mesToLmsService.changeBomInfo(jo), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java index 4998f11b9..12ecebdd3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java @@ -85,4 +85,6 @@ public interface MesToLmsService { JSONObject WasteFoilSuccess(JSONObject param); JSONObject boxIsPass(JSONObject jo); + + JSONObject changeBomInfo(JSONObject jo); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index 5f30db8cc..c1a654d4e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -420,7 +420,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { } else { if (containerName.startsWith("B1") || containerName.startsWith("B3")) { point_code = jsonCoolIvt.getString("point_code"); - }else { + } else { point_code = jsonCoolIvt.getString("full_point_code"); } } @@ -457,7 +457,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { JSONObject jsonPoint = pointTab.query("material_code = '" + containerName + "' and is_delete = '0' and is_used = '1'").uniqueResult(0); JSONObject cool_jo = new JSONObject(); if (ObjectUtil.isEmpty(jsonPoint)) { - cool_jo = coolIvtTab.query("container_name = '"+containerName+"'").uniqueResult(0); + cool_jo = coolIvtTab.query("container_name = '" + containerName + "'").uniqueResult(0); if (ObjectUtil.isEmpty(cool_jo)) { throw new BadRequestException("当前AGV已启用,且母卷不存在烘箱对接位上!"); } @@ -466,7 +466,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { // 调用接口输入参数 if (ObjectUtil.isEmpty(jsonPoint)) { jsonParam.put("point_code", cool_jo.getString("point_code")); - }else { + } else { jsonParam.put("point_code", jsonPoint.getString("point_code")); } jsonParam.put("container_name", containerName); @@ -2453,4 +2453,172 @@ public class MesToLmsServiceImpl implements MesToLmsService { } return resultParam; } + + @Override + public JSONObject changeBomInfo(JSONObject param) { + log.info("changeBomInfo输入参数为:-------------------" + param.toString()); + WQLObject plan_tab = WQLObject.getWQLObject("pdm_bi_slittingproductionplan"); + WQLObject bom_tab = WQLObject.getWQLObject("pdm_bi_orderbominfo"); + + /* MES传递的入参内容 + { + ChangType:1 + "MfgOrderName": "25529502-20230926$02#02", + "ContainerName":"A2512505050203B2", + "ProductName": "44151000900045", + "Description": "木制包装容器及板材|木箱|650|4|3|1290*750*494", + "CarrierName": "48221000000001", + "CarrierDescription": "纸制筒管|纸管|3英寸|650", + "Type": "RW2", + "HL01": "A+", + "HL02": "520", + "HL03": "1,538.000", + "HL031": "2,000.000", + "HL04": "100.000", + "HL041": "130.000", + "HL05": "20,000.000", + "HL06": "CC", + "HL07": "4", + "HL08": "ZT1(纸筒-3寸)", + "HL081": "650", + "HL09": "ROF(毛面朝外)", + "HL10": "纸管长度650,中性包装", + "HL11": null + } + */ + Long id = IdUtil.getSnowflake(1, 1).nextId(); + //变更类型 + String change_type = param.getString("ChangeType"); + //子卷号 + String container_name = param.getString("ContainerName"); + //设备级工单号 + String mfg_order = param.getString("MfgOrderName"); + //木箱物料编码 + String product_name = param.getString("ProductName"); + //木箱描述 + String description = param.getString("Description"); + //管芯编码 + String carrier_name = param.getString("CarrierName"); + //管芯描述 + String carrier_description = param.getString("CarrierDescription"); + //类型 + String type = param.getString("Type"); + //等级 + String level = param.getString("HL01"); + //幅宽 + String thickness = param.getString("HL02"); + //单卷长度下限 + String length_floor = param.getString("HL03"); + //单卷长度上限 + String length_ceiling = param.getString("HL031"); + //单卷重量下限 + String weight_floor = param.getString("HL04"); + //单卷重量上限 + String weight_ceiling = param.getString("HL041"); + //订单重量 + String order_weight = param.getString("HL05"); + //包装方案 + String package_type = param.getString("HL06"); + //单箱装卷数 + String package_num = param.getString("HL07"); + //管芯选配 + String paper_type = param.getString("HL08"); + //客户要求管芯长度 + String need_paper_length = param.getString("HL081"); + //收卷方式 + String rolling_type = param.getString("HL09"); + //客户特殊包装要求 + String package_request = param.getString("HL10"); + //客户指定生箔机台 + String request_machine = param.getString("HL11"); + + JSONObject resultParam = new JSONObject(); + + try { + if (change_type.equals("1")) { + HashMap plan_map = new HashMap(); + //变更分切计划的管件信息及订单号 + //1、判断变更的属于FRP管还是纸管,通过判断类型。Type:RW2(FRP管),RW3(纸管) + if (type.equals("RW2")) { + plan_map.put("paper_tube_or_FRP", "2"); + plan_map.put("FRP_material", carrier_name); + plan_map.put("FRP_description", carrier_description); + plan_map.put("FRP_model", carrier_description); + plan_map.put("mfg_order_name", mfg_order); + } else { + plan_map.put("paper_tube_or_FRP", "1"); + plan_map.put("paper_tube_material", carrier_name); + plan_map.put("paper_tube_description", carrier_description); + plan_map.put("paper_tube_model", carrier_description); + plan_map.put("mfg_order_name", mfg_order); + } + plan_tab.update(plan_map, "container_name = '" + container_name + "'"); + } + + //变更订单BOM的信息 + //判断当前订单BOM是否存在,如果存在则更新,否则保存 + IPdmBiOrderbominfoService orderbominfoService = SpringContextHolder.getBean(IPdmBiOrderbominfoService.class); + PdmBiOrderbominfo orderbominfo = orderbominfoService.getOne(new LambdaQueryWrapper().eq(PdmBiOrderbominfo::getMfgOrder, mfg_order)); + if (ObjectUtil.isEmpty(orderbominfo)) { + PdmBiOrderbominfo bom_info = PdmBiOrderbominfo.builder() + .id(id) + .mfgOrder(mfg_order) + .productName(product_name) + .description(description) + .carrierName(carrier_name) + .carrierDescription(carrier_description) + .type(type) + .level(level) + .thickness(thickness) + .lengthFloor(length_floor) + .lengthCeiling(length_ceiling) + .weightFloor(weight_floor) + .weightCeiling(weight_ceiling) + .orderWeight(order_weight) + .packageType(package_type) + .packageNum(package_num) + .paperType(paper_type) + .needPaperLength(need_paper_length) + .rollingType(rolling_type) + .packageRequest(package_request) + .requestMachine(request_machine) + .inputTime(DateUtil.now()) + .build(); + orderbominfoService.save(bom_info); + } else { + + orderbominfo.setProductName(product_name); + orderbominfo.setDescription(description); + orderbominfo.setCarrierName(carrier_name); + orderbominfo.setCarrierDescription(carrier_description); + orderbominfo.setType(type); + orderbominfo.setLevel(level); + orderbominfo.setThickness(thickness); + orderbominfo.setLengthFloor(length_floor); + orderbominfo.setLengthCeiling(length_ceiling); + orderbominfo.setWeightFloor(weight_floor); + orderbominfo.setWeightCeiling(weight_ceiling); + orderbominfo.setOrderWeight(order_weight); + orderbominfo.setPackageType(package_type); + orderbominfo.setPackageNum(package_num); + orderbominfo.setPaperType(paper_type); + orderbominfo.setNeedPaperLength(need_paper_length); + orderbominfo.setRollingType(rolling_type); + orderbominfo.setPackageRequest(package_request); + orderbominfo.setRequestMachine(request_machine); + orderbominfoService.updateById(orderbominfo); + } + + resultParam.put("RTYPE", "S"); + resultParam.put("RTMSG", "操作成功!"); + resultParam.put("RTOAL", 1); + resultParam.put("RTDAT", null); + } catch (Exception e) { + resultParam.put("RTYPE", "E"); + resultParam.put("RTMSG", "操作失败!" + e.getMessage()); + resultParam.put("RTOAL", 0); + resultParam.put("RTDAT", null); + } + return resultParam; + } }