From 3d15ecd351c025e3712c0dae22ab076e795217dd Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 9 Mar 2026 16:37:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=9B=B8=E5=85=B3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/VehicleTwoServiceImpl.java | 16 +----- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 5 +- .../service/impl/SlitterServiceImpl.java | 14 +++++- .../impl/StIvtIostorinvServiceImpl.java | 2 +- .../mes/service/impl/LmsToMesServiceImpl.java | 49 +++++++++++++++++-- .../mps/service/impl/FeedingServiceImpl.java | 1 + .../impl/SubpackagerelationServiceImpl.java | 3 +- .../instor/service/impl/CheckServiceImpl.java | 25 +++------- .../nl/wms/st/instor/wql/QST_IVT_CHECK.wql | 9 +++- .../service/impl/CheckOutBillServiceImpl.java | 8 ++- .../st/outbill/wql/QST_IVT_CHECKOUTBILL.wql | 16 ++++++ .../src/views/wms/st/outbill/AddDialog.vue | 5 +- .../src/views/wms/st/outbill/DivDialog.vue | 2 +- 13 files changed, 104 insertions(+), 51 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java index 4ce284ed7..0e45fcc0d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java @@ -217,20 +217,6 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { return result; } - public static void main(String[] args) { - ArrayList msg = new ArrayList<>(); -// msg.add("称重562不匹配564"); - msg.add("手动至异常口"); - System.out.println(msg.toString()); - System.out.println(JSONObject.toJSONString(msg)); - String a = JSONObject.toJSONString(msg); - List list = JSONObject.parseObject(a, List.class); - Optional 称重 = list.stream().filter(m -> m.contains("称重")).findAny(); - if (称重.isPresent()) { - System.out.println(称重.get()); - } - } - @Override @Transactional(rollbackFor = Exception.class) public JSONObject reback(JSONObject whereJson) { @@ -247,7 +233,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { .eq("is_delete", "0") .lt("task_status", TaskStatusEnum.FINISHED.getCode())); if (!CollectionUtils.isEmpty(list)) { - throw new BadRequestException("稍后再试,异常口存在正在执行的任务" + list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); + throw new BadRequestException("稍后再试,异常口存在正在执行的任务" + list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); } Param forceWeight = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("force_weight"); if (forceWeight != null && "1".equals(forceWeight.getValue())) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java index b67a295b8..92fc5a2b2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java @@ -71,8 +71,9 @@ public class TwoOutBoxTask extends AbstractAcsTask { * 下发给ACS时需要特殊处理 */ // 判断当前有多少个正在执行中的任务 - int num = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status IN ('05','06') and is_delete ='0'") - .getResultJSONArray(0).size(); + JSONArray task_ing = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status IN ('05','06') and is_delete ='0'") + .getResultJSONArray(0); + int num = task_ing.size(); ArrayList resultList = new ArrayList<>(); // 如果缓存了4个箱子则不下发任务 if (num >= 2) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index f0e58e379..87d0a90ee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -70,6 +70,7 @@ import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; +import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -159,6 +160,9 @@ public class SlitterServiceImpl implements SlitterService { @Autowired private IBstIvtShafttubeivtService bstIvtShafttubeivtService; + // 预编译正则表达式,提升性能 + private static final Pattern GX_PATTERN = Pattern.compile("^GX(0[1-9]|[1-9]\\d)$"); + @Override public JSONObject acsRequestShaftLoadTube(JSONObject param) { // hint: 现在的考虑都是基于B1,B2的车间,后续的B3、B4需要再次修改 @@ -1839,6 +1843,14 @@ public class SlitterServiceImpl implements SlitterService { return res; } + public static boolean isValidGXCode(String input) { + // 空值直接返回false + if (input == null) { + return false; + } + return GX_PATTERN.matcher(input).matches(); + } + @Override public JSONObject doStockAreaBinding(JSONObject param) { // param: point_code vehicle_code @@ -1852,7 +1864,7 @@ public class SlitterServiceImpl implements SlitterService { if (ObjectUtil.isEmpty(vehicleCode)) { throw new BadRequestException("托盘信息不能为空!"); } - if (!vehicleCode.contains("GX")) { + if (!isValidGXCode(vehicleCode)) { throw new BadRequestException("请扫描或输入正确的托盘码!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 9bd561044..2bbe055c6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -703,7 +703,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl map = new LinkedHashMap<>(); String status = jo.getString("status"); if (StrUtil.equals(status, "1")) { @@ -737,22 +734,12 @@ public class CheckServiceImpl implements CheckService { map.put("净重", jo.getString("base_qty")); map.put("物料编码", jo.getString("material_code")); map.put("物料名称", jo.getString("material_name")); - - if (ObjectUtil.isEmpty(jsonSub)) { - map.put("生产日期", ""); - map.put("厚度", ""); - map.put("幅宽", ""); - map.put("标准厚度", ""); - map.put("客户要求幅宽", ""); - map.put("备注", ""); - } else { - map.put("生产日期", jsonSub.getString("date_of_production")); - map.put("厚度", jsonSub.getString("thickness")); - map.put("幅宽", jsonSub.getString("width")); - map.put("标准厚度", jsonSub.getString("thickness_request")); - map.put("客户要求幅宽", jsonSub.getString("width_standard")); - map.put("备注", jo.getString("remark")); - } + map.put("生产日期", jo.getString("date_of_production")); + map.put("厚度", jo.getString("thickness")); + map.put("幅宽", jo.getString("width")); + map.put("标准厚度", jo.getString("thickness_request")); + map.put("客户要求幅宽", jo.getString("width_standard")); + map.put("备注", jo.getString("remark2")); list.add(map); } FileUtil.downloadExcel(list, response); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql index ce0195dd5..1745c8793 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql @@ -121,7 +121,7 @@ mb.material_code, mb.material_name, user1.person_name AS process_optname, - sub.date_of_production + sub.* FROM ST_IVT_CheckDtl CheckDtl LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id @@ -130,6 +130,11 @@ LEFT JOIN ( SELECT MIN(date_of_production) AS date_of_production, + MIN(thickness) AS thickness, + MIN(width) AS width, + MIN(thickness_request) AS thickness_request, + MIN(width_standard) AS width_standard, + MIN(remark) AS remark2, package_box_sn FROM pdm_bi_subpackagerelation @@ -249,7 +254,7 @@ WHERE 1 = 1 -- AND struct.lock_type = '1' - AND struct.lock_type <> '88' + -- AND struct.lock_type <> '88' AND IFNULL(struct.storagevehicle_code,'') <> '' OPTION 输入.remark <> "" diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index 672bec948..f6f00230e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -1227,7 +1227,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } @Override - @Transactional(rollbackFor = Exception.class) public void importExcel(MultipartFile file, HttpServletRequest request) { // 明细 WQLObject dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl"); @@ -1263,11 +1262,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } // 根据交货单找到主单据 - JSONObject jsonDtl = dtl.query("vbeln = '" + vbeln + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonDtl)) { + JSONObject jsonMst = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag","22").addParam("vbeln",vbeln).process().uniqueResult(0); + if (ObjectUtil.isEmpty(jsonMst)) { continue; } - JSONObject jsonMst = mst.query("iostorinv_id = '" + jsonDtl.getString("iostorinv_id") + "'").uniqueResult(0); // 物流公司名称 String cust_name = list.get(1).toString(); @@ -1285,7 +1283,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // 其他费用 String other_freight = list.get(4).toString(); - // 其他费用 + // 预估费用 String estimated_freight = list.get(5).toString(); // 更新主表 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql index 6ef79f766..88f1027f4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql @@ -1380,3 +1380,19 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "22" + QUERY + SELECT + mst.* + FROM + st_ivt_iostorinvdtl dtl + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id + WHERE + vbeln = 输入.vbeln + AND + mst.is_delete = '0' + ENDSELECT + ENDQUERY + ENDIF + diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue index 31f0c1958..875561c75 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue @@ -181,7 +181,7 @@ @@ -442,7 +442,9 @@ export default { 'data': rows } if(this.form.bill_type === '1011') { + debugger rows.forEach((item) => { + debugger if (this.form.tableData.length !== 0) { this.flagnow = false for (let i = 0; i < this.form.tableData.length; i++) { @@ -451,6 +453,7 @@ export default { } } if (!this.flagnow) { + debugger item.edit = false this.form.tableData.splice(-1, 0, item) this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty) diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index 2addcfd50..7554e43ee 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -291,7 +291,7 @@