From 40c2cf86b517ca4049d51d7ca72299fccab0e0f6 Mon Sep 17 00:00:00 2001 From: "DESKTOP-5DIJMF9\\admin" <2388969634@qq.com> Date: Tue, 25 Feb 2025 16:41:12 +0800 Subject: [PATCH 01/12] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=9B=9E=E4=BC=A0=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/InAndOutRetrunServiceImpl.java | 2 ++ .../st/returns/wql/QST_IVT_INANDOUTRETRUN.wql | 8 +++++ .../src/views/wms/st/inAndOutReturn/index.vue | 34 +++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java index 03ba23639..7a01f1afe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -62,6 +62,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { map.put("bill_status", MapUtil.getStr(whereJson, "bill_status")); map.put("bill_type", MapUtil.getStr(whereJson, "bill_type")); map.put("is_upload", MapUtil.getStr(whereJson, "is_upload")); + map.put("upload_mes", MapUtil.getStr(whereJson, "upload_mes")); + map.put("upload_sap", MapUtil.getStr(whereJson, "upload_sap")); String begin_time = MapUtil.getStr(whereJson, "begin_time"); if (StrUtil.isNotEmpty(begin_time)) { map.put("begin_time", begin_time.substring(0,10)+" 00:00:00"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql index 503c8882e..e16262171 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql @@ -21,6 +21,8 @@ 输入.stor_id TYPEAS s_string 输入.bill_status TYPEAS s_string 输入.is_upload TYPEAS s_string + 输入.upload_mes TYPEAS s_string + 输入.upload_sap TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string 输入.vbeln TYPEAS s_string @@ -96,6 +98,12 @@ OPTION 输入.is_upload <> "" mst.is_upload = 输入.is_upload ENDOPTION + OPTION 输入.upload_mes <> "" + mst.upload_mes = 输入.upload_mes + ENDOPTION + OPTION 输入.upload_sap <> "" + mst.upload_sap = 输入.upload_sap + ENDOPTION OPTION 输入.begin_time <> "" mst.input_time >= 输入.begin_time ENDOPTION diff --git a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue index 3dde7c437..076973ecb 100644 --- a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue @@ -139,6 +139,40 @@ /> + + + + + + + + + + Date: Wed, 26 Feb 2025 13:00:00 +0800 Subject: [PATCH 02/12] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E6=88=90=E5=93=81?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OutBillQueryServiceImpl.java | 89 ++++++++++---- .../nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql | 112 +++++++++++++++++- 2 files changed, 174 insertions(+), 27 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java index 3dfcca964..58a9d7f54 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; @@ -59,6 +60,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { } map.put("with", with); map.put("begin_time", begin_time); + map.put("pcsn", pcsn); map.put("end_time", end_time); if (ObjectUtil.isNotEmpty(customer_name)) { @@ -90,7 +92,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { map.put("bill_type", joiner.toString()); } map.put("with", with); - map.put("pcsn", pcsn); + // 空格查询 + if (StrUtil.isNotEmpty(pcsn)){ + // 判断是否有空格 + boolean matches = pcsn.matches(".*\\s.*"); + + if (matches) { + String[] s = pcsn.split(" "); + String pcsn_in = String.join("','", Arrays.asList(s)); + + map.put("pcsn_in", "('"+pcsn_in+"')"); + map.put("pcsn", ""); + } else { + map.put("pcsn", pcsn); + } + } if (ObjectUtil.isNotEmpty(customer_name)) { map.put("customer_name", "%" + customer_name + "%"); } @@ -189,7 +205,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String customer_name = MapUtil.getStr(map, "customer_name"); JSONObject mapParam = new JSONObject(); - mapParam.put("flag", "1"); + mapParam.put("flag", "11"); mapParam.put("stor_id", stor_id); if (ObjectUtil.isNotEmpty(bill_types)) { StringJoiner joiner = new StringJoiner(",", "(", ")"); @@ -263,7 +279,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String pcsn = MapUtil.getStr(map, "pcsn"); String customer_name = MapUtil.getStr(map, "customer_name"); - map.put("flag", "2"); + map.put("flag", "22"); map.put("stor_id", stor_id); if (ObjectUtil.isNotEmpty(bill_types)) { StringJoiner joiner = new StringJoiner(",", "(", ")"); @@ -273,7 +289,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { map.put("bill_type", joiner.toString()); } map.put("with", with); - map.put("pcsn", pcsn); + // 空格查询 + if (StrUtil.isNotEmpty(pcsn)){ + // 判断是否有空格 + boolean matches = pcsn.matches(".*\\s.*"); + + if (matches) { + String[] s = pcsn.split(" "); + String pcsn_in = String.join("','", Arrays.asList(s)); + + map.put("pcsn_in", "('"+pcsn_in+"')"); + map.put("pcsn", ""); + } else { + map.put("pcsn", pcsn); + } + } if (ObjectUtil.isNotEmpty(customer_name)) { map.put("customer_name", "%" + customer_name + "%"); } @@ -379,33 +409,40 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { mp.put("管件描述", json.getString("paper_name")); mp.put("客户编码", json.getString("customer_name")); mp.put("发货客户名称", json.getString("customer_description")); - if (ObjectUtil.isEmpty(json.getString("sale_order_name"))) { - throw new BadRequestException("子卷" + json.getString("pcsn") + "销售订单为空!"); - } - try { - mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("销售订单", json.getString("sale_order_name")); - mp.put("行号", ""); - } + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { + try { + mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); + } + } // 原销售订单 if (ObjectUtil.isEmpty(jsonSub)) { - try { - mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", json.getString("sale_order_name")); - mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { + try { + mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + } } } else { - try { - mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", jsonSub.getString("sale_order_name")); - mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) { + try { + mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", jsonSub.getString("sale_order_name")); + mp.put("原行号", ""); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql index cfe934ba7..4c0bacbcd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql @@ -21,6 +21,7 @@ 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string 输入.customer_name TYPEAS s_string + 输入.pcsn_in TYPEAS f_string [临时表] @@ -148,6 +149,109 @@ ENDPAGEQUERY ENDIF + IF 输入.flag = "11" + QUERY + SELECT + mst.stor_name, + dis.sect_name, + mst.bill_type, + dtl.vbeln, + base.cust_name, + mst.estimated_freight, + dis.box_no, + mater.material_code, + mater.material_name, + dis.pcsn, + sub.sap_pcsn, + sub.net_weight, + dis.qty_unit_name, + sub.customer_name, + sub.customer_description, + sub.sale_order_name, + mst.input_time, + sub.width, + sub.thickness, + sub.mass_per_unit_area, + mst.input_optname, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, + mst.remark, + stor.stor_name AS in_stor_name + FROM + ( + SELECT + MAX( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '1' + OPTION 输入.bill_type <> "" + b.bill_type IN 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + ) AS c + LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + LEFT JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id + LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code + LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = mst.out_stor_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name + WHERE + mst.io_type = '1' + AND mst.is_delete = '0' + AND mst.bill_status = '99' + + OPTION 输入.stor_id <> "" + mst.stor_id = 输入.stor_id + ENDOPTION + + OPTION 输入.bill_type <> "" + mst.bill_type IN 输入.bill_type + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.input_time >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.input_time <= 输入.end_time + ENDOPTION + + OPTION 输入.with <> "" + CONCAT(sub.width,'*',sub.thickness) = 输入.with + ENDOPTION + + OPTION 输入.customer_name <> "" + (sub.customer_name LIKE 输入.customer_name OR + sub.customer_description LIKE 输入.customer_name) + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "2" PAGEQUERY SELECT @@ -200,6 +304,9 @@ OPTION 输入.pcsn <> "" a.pcsn = 输入.pcsn ENDOPTION + OPTION 输入.pcsn_in <> "" + a.pcsn IN 输入.pcsn_in + ENDOPTION OPTION 输入.begin_time <> "" b.confirm_time >= 输入.begin_time ENDOPTION @@ -316,6 +423,9 @@ OPTION 输入.pcsn <> "" a.pcsn = 输入.pcsn ENDOPTION + OPTION 输入.pcsn_in <> "" + a.pcsn IN 输入.pcsn_in + ENDOPTION OPTION 输入.begin_time <> "" b.confirm_time >= 输入.begin_time ENDOPTION @@ -376,7 +486,7 @@ plan1.is_delete = '0' GROUP BY container_name) plan ON plan.container_name = sub.container_name WHERE 1=1 - limit 0,10000 + limit 0,50000 ENDSELECT ENDQUERY ENDIF \ No newline at end of file From f71e2aeb641fa9d55c877c9ddc3412f883e63197 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 26 Feb 2025 18:35:13 +0800 Subject: [PATCH 03/12] =?UTF-8?q?add=EF=BC=9A=E4=BA=8C=E6=9C=9F=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=A9=BA=E6=9C=A8=E7=AE=B1=E5=87=BA=E5=BA=93=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductOutTwoController.java | 7 + .../pda/service/ProductOutTwoService.java | 6 + .../impl/ProductOutTwoServiceImpl.java | 15 ++ .../b_lms/sch/tasks/TwoOutBoxExcepTask.java | 198 ++++++++++++++++++ .../util/impl/OutBoxManageServiceImpl.java | 129 ++++++++++++ .../util/service/OutBoxManageService.java | 8 + 6 files changed, 363 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java index f3c5c7786..bb42a7cb1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/ProductOutTwoController.java @@ -83,4 +83,11 @@ public class ProductOutTwoController { return new ResponseEntity<>(TableDataInfo.build(productOutTwoService.woodenBoxPoint(whereJson)), HttpStatus.OK); } + @PostMapping("/boxOut") + @Log("木箱出库") + @SaIgnore + public ResponseEntity boxOut(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(productOutTwoService.boxOut(whereJson),HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java index d6e1824aa..59ed6c3ef 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/ProductOutTwoService.java @@ -84,4 +84,10 @@ public interface ProductOutTwoService { */ List woodenBoxPoint(JSONObject whereJson); + /** + * 要出库的木箱明细 + * @param whereJson 、 + * @return 、 + */ + JSONObject boxOut(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java index 0c0d53299..4f280fb72 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java @@ -13,6 +13,7 @@ import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxlashboundService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound; import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; @@ -46,6 +47,9 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService { @Autowired private IPdmBiOrderbominfoService iPdmBiOrderbominfoService; + @Autowired + private OutBoxManageService outBoxManageService; + @Override public JSONObject ivtQuery(JSONObject whereJson) { @@ -190,4 +194,15 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService { } return null; } + + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject boxOut(JSONObject whereJson) { + List data = whereJson.getJSONArray("data").toJavaList(JSONObject.class); + outBoxManageService.publicBoxOut(data); + + JSONObject result = new JSONObject(); + result.put("message", "下发出库成功!"); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java new file mode 100644 index 000000000..cb67893ea --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java @@ -0,0 +1,198 @@ +package org.nl.b_lms.sch.tasks; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.manage.AbstractAcsTask; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +import static org.nl.wms.util.TaskUtil.getRoutePlanCode; + +/** + * 二期空木箱出库任务类(异常口) + * Created by Lxy on 2024/1/19. + */ +@Service +public class TwoOutBoxExcepTask extends AbstractAcsTask { + + /** + * 处理类 + */ + private final String THIS_CLASS = TwoOutBoxExcepTask.class.getName(); + + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + // 任务表 + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + JSONArray arr = taskTab.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' AND point_code2 = 'CK2001' order by create_time").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .route_plan_code(getRoutePlanCode(json.getString("point_code1"))) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code2")) + .vehicle_code2(json.getString("vehicle_code")) + .interaction_json(json.getJSONObject("request_param")) + .priority(json.getString("priority")) + .class_type(json.getString("task_type")) + .dtl_type(String.valueOf(dtl_type)) + .product_area(IOSEnum.PRODUCT_AREA.code("BLK")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + + // 更新任务为下发 + JSONObject paramMap = new JSONObject(); + paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode()); + taskTab.update(paramMap, "task_id ='" + json.getString("task_id") + "'"); + } + return resultList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateTaskStatus(JSONObject taskObj, String status) { + // 仓位表 + WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + // 任务表 + WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); + // 载具信息表 + WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + + JSONObject jsonTask = taskTab.query("task_id = '" + taskObj.getString("task_id") + "'").uniqueResult(0); + + // 更新任务的参数 + JSONObject map = new JSONObject(); + + /* + * 1-执行中, 2-完成 ,0-acs取消 + */ + // 执行中 + if (status.equals(TaskStatusEnum.EXECUTING.getCode())) { + + map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); + } + + // 完成 + if (status.equals(TaskStatusEnum.FINISHED.getCode())) { + map.put("task_status", TaskStatusEnum.FINISHED.getCode()); + // 更新仓位 + JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); + jsonAttr.put("storagevehicle_code", ""); + attrTab.update(jsonAttr); + + // 更新载具信息表 + JSONObject param = new JSONObject(); + param.put("pcsn", ""); + extTab.update(param,"pcsn = '"+jsonTask.getString("vehicle_code") +"'"); + + } + // 取消 + if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { + if (taskObj.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) { + throw new BadRequestException("任务已执行不能取消"); + } + // 更新任务表删除字段 + map.put("is_delete", IOSEnum.IS_NOTANDYES.code("是")); + // 解锁仓位 + JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); + attrTab.update(jsonAttr); + } + map.put("update_optid", SecurityUtils.getCurrentUserId()); + map.put("update_optname", SecurityUtils.getCurrentNickName()); + map.put("update_time", DateUtil.now()); + WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'"); + } + + + @Override + public void findStartPoint() { + + } + + @Override + public void findNextPoint() { + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String createTask(JSONObject form) { + + if (StrUtil.isBlank(form.getString("task_type"))) { + throw new BadRequestException("业务类型不能为空!"); + } + + if (StrUtil.isBlank(form.getString("start_device_code"))) { + throw new BadRequestException("起点不能为空!"); + } + + if (StrUtil.isBlank(form.getString("next_device_code"))) { + throw new BadRequestException("终点不能为空!"); + } + + if (StrUtil.isBlank(form.getString("vehicle_code"))) { + throw new BadRequestException("木箱号不能为空!"); + } + + JSONObject json = new JSONObject(); + json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + json.put("task_type", form.getString("task_type")); + json.put("vehicle_code", form.getString("vehicle_code")); + json.put("vehicle_code2", form.getString("vehicle_code2")); + json.put("vehicle_type", form.getString("vehicle_type")); + json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + json.put("task_group_id", form.getLongValue("task_group_id")); + json.put("point_code1", form.getString("start_device_code")); + json.put("point_code2", form.getString("next_device_code")); + json.put("request_param", form.getString("request_param")); + json.put("handle_class", this.getClass().getName()); + json.put("create_id", SecurityUtils.getCurrentUserId()); + json.put("create_name", SecurityUtils.getCurrentUsername()); + json.put("create_time", DateUtil.now()); + json.put("priority", form.getString("priority")); + json.put("acs_task_type", "7"); + + WQLObject.getWQLObject("SCH_BASE_Task").insert(json); + return json.getString("task_id"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void forceFinish(String task_id) { + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); + } + + @Override + public void cancel(String task_id) { + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index ecefd6d26..3c42fe5be 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -8,6 +8,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask; import org.nl.b_lms.sch.tasks.TwoMoveBoxTask; +import org.nl.b_lms.sch.tasks.TwoOutBoxExcepTask; import org.nl.b_lms.sch.tasks.TwoOutBoxTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; @@ -737,4 +738,132 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { return jsonTaskParam.getString("task_group_id"); } + @Override + @Transactional(rollbackFor = Exception.class) + public void publicBoxOut(List list) { + WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + + // 查询需要出库的仓位信息 + String struct_code_in = list.stream() + .map(row -> row.getString("struct_code")) + .collect(Collectors.joining("','")); + + List attrList = attrTab.query("struct_code in ('" + struct_code_in + "') AND sect_code = 'BZC01'") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + // 获取这些仓位的每排仓位 + String row_num_in = attrList.stream() + .map(row -> row.getString("row_num")) + .distinct() + .collect(Collectors.joining("','")); + + List allList = attrTab.query("row_num IN ('" + row_num_in + "') AND sect_code = 'BZC01' AND is_delete = '0'") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + // 查询木箱对应的托盘号 + String box_no_in = list.stream() + .map(row -> row.getString("box_no")) + .collect(Collectors.joining("','")); + + List extList = extTab.query("pcsn IN ('" + box_no_in + "')") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + // 需要移库的木箱仓位 + ArrayList moveList = new ArrayList<>(); + + // 创建任务 + for (JSONObject json : attrList) { + // 判断是否是深货位 + if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { + // 查询对应的浅货位 + JSONObject jsonShallow = allList.stream() + .filter(row -> row.getString("row_num").equals(json.getString("row_num")) && + row.getString("col_num").equals(json.getString("col_num")) && + row.getString("layer_num").equals(json.getString("layer_num")) && + row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) + ) + .findFirst().orElse(null); + if (ObjectUtil.isEmpty(jsonShallow)) { + throw new BadRequestException("仓位【"+json.getString("struct_code")+"】对应的浅货位信息错误!"); + } + + // 判断浅货位是否有空木箱 + if (ObjectUtil.isNotEmpty(jsonShallow.getString("storagevehicle_code"))) { + // 判断是否是当前需要出库的集合当中 + int size = (int) attrList.stream() + .filter(row -> row.getString("struct_code").equals(jsonShallow.getString("struct_code"))).count(); + + // 不在要出库的集合当中 + if (size == 0) { + // 判断是否被锁定 + if (jsonShallow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + // 加入要移库的集合当中 + moveList.add(jsonShallow); + } else if (!jsonShallow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁")) + && (!jsonShallow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("移出锁"))) + ) { + throw new BadRequestException("仓位【"+jsonShallow.getString("struct_code")+"】被锁定,无法生成移库任务!"); + } + } + } + } + // 校验木箱是否绑定了托盘 + JSONObject jsonExt = extList.stream() + .filter(row -> row.getString("pcsn").equals(json.getString("storagevehicle_code"))) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(jsonExt)) { + throw new BadRequestException("此木箱【"+json.getString("storagevehicle_code")+"】没有绑定托盘,请核查"); + } + + // 创建任务 + JSONObject jsonTaskParam = new JSONObject(); + jsonTaskParam.put("task_type", "010704"); + jsonTaskParam.put("start_device_code", json.getString("struct_code")); + jsonTaskParam.put("next_device_code", IOSEnum.EXCEP_OUT.code("异常出库口")); + jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code")); + jsonTaskParam.put("vehicle_code2", jsonExt.getString("storagevehicle_code")); + jsonTaskParam.put("task_group_id", IdUtil.getStringId()); + jsonTaskParam.put("priority", json.getString("zdepth")); + JSONObject request_param = new JSONObject(); + request_param.put("containerType", json.getString("storagevehicle_type")); + jsonTaskParam.put("request_param", request_param.toString()); + TwoOutBoxExcepTask twoOutBoxExcepTask = new TwoOutBoxExcepTask(); + twoOutBoxExcepTask.createTask(jsonTaskParam); + + // 更新仓位锁定状态 + json.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱出库锁")); + attrTab.update(json); + } + + // 查询移库木箱对应的托盘 + String storagevehicle_code_in = moveList.stream() + .map(row -> row.getString("storagevehicle_code")) + .collect(Collectors.joining("','")); + List extMoveList = extTab.query("pcsn IN ('" + storagevehicle_code_in + "')") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + // 此循环为防止下发一部分后报错无法回滚 + moveList.forEach(item -> { + // 校验木箱和托盘是否绑定 + JSONObject jsonExtMove = extMoveList.stream() + .filter(row -> row.getString("pcsn").equals(item.getString("storagevehicle_code"))) + .findFirst().orElse(null); + + if (ObjectUtil.isEmpty(jsonExtMove)) { + throw new BadRequestException("此移库木箱【"+jsonExtMove.getString("storagevehicle_code")+"】没有绑定托盘,请核查"); + } + }); + + // 生成移库任务 + for (JSONObject jsonMove : moveList) { + // 调用接口生成木箱移库任务 + this.createBoxMove(jsonMove); + } + + // 下发木箱出库任务 + new TwoOutBoxExcepTask().immediateNotifyAcs(null); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java index 3f979a9be..bee2a6954 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java @@ -2,6 +2,8 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service; import com.alibaba.fastjson.JSONObject; +import java.util.List; + /** *

* 空木箱业务处理 服务类 @@ -52,4 +54,10 @@ public interface OutBoxManageService { */ public String createBoxMove(JSONObject jsonObject); + /** + * 根据木箱号出库公共方法(多条数据) + * @param list 需要出库的木箱集合 + */ + void publicBoxOut(List list); + } From e061f75623879f156c6b1204256b21cdeacdedc8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-5DIJMF9\\admin" <2388969634@qq.com> Date: Thu, 27 Feb 2025 10:51:00 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=AA=8C=E7=AE=B1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=9B=9E=E4=BC=A0mes=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4120s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/ext/mes/rest/LmsToMesController.java | 7 ++ .../wms/ext/mes/service/LmsToMesService.java | 2 + .../mes/service/impl/LmsToMesServiceImpl.java | 88 ++++++++++++++++++- 3 files changed, 96 insertions(+), 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java index 3d544f2f2..b49ede7f5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java @@ -140,6 +140,13 @@ public class LmsToMesController { return new ResponseEntity<>(lmsToMesService.momBoxPackageSubmit(jo), HttpStatus.OK); } + @PostMapping("/momBoxCheckSubmit") + @Log("LMS将验箱信息传递给MES") + @SaIgnore + public ResponseEntity momBoxCheckSubmit(@RequestBody JSONObject jo) { + return new ResponseEntity<>(lmsToMesService.BoxDataCollectionSubmit2(jo), HttpStatus.OK); + } + @PostMapping("/GetInspectionResult") @Log("LMS获取MES称重后子卷信息") @SaIgnore diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java index d4804dca1..fab22b2ce 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java @@ -183,5 +183,7 @@ public interface LmsToMesService { JSONObject momBoxPackageSubmit(JSONObject jo); + JSONObject BoxDataCollectionSubmit2(JSONObject jo); + JSONObject getInspectionResult(JSONObject jo); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java index f4a89cc4c..682d61d52 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java @@ -38,6 +38,8 @@ public class LmsToMesServiceImpl implements LmsToMesService { private static String is_connect_mes = "1"; + private static Integer time_out = 120000; + @Autowired private IBstIvtBoxinfoService bstIvtBoxinfoService; @@ -72,6 +74,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("momRollFoilWeighing接口输出参数为:-------------------" + result.toString()); @@ -131,6 +134,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("momRollBakeInBound接口输出参数为:-------------------" + result.toString()); @@ -194,6 +198,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("momRollBakeOutBound接口输出参数为:-------------------" + result.toString()); @@ -234,6 +239,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("momRollSemiFGInboundComplete接口输出参数为:-------------------" + result.toString()); @@ -288,6 +294,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(jo)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString()); @@ -346,6 +353,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(jo)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString()); @@ -396,6 +404,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(jo)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("airSwellWithPaperTubeAssArrival接口输出参数为:-------------------" + result.toString()); @@ -449,8 +458,10 @@ public class LmsToMesServiceImpl implements LmsToMesService { String api = "CamstarApi/ChildRollFGInboundComplete"; url = url + api; try { - String resultMsg = HttpRequest.post(url) + String resultMsg = HttpRequest + .post(url) .body(String.valueOf(jo)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("childRollFGInboundComplete接口输出参数为:-------------------" + result.toString()); @@ -493,6 +504,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("childRollFGOutboundComplete接口输出参数为:-------------------" + result.toString()); @@ -540,6 +552,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("LMSUnPackage接口输出参数为:-------------------" + result.toString()); @@ -587,6 +600,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("LMSPackakge接口输出参数为:-------------------" + result.toString()); @@ -623,6 +637,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("scrapAudit接口输出参数为:-------------------" + result.toString()); @@ -659,6 +674,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("proudDayData接口输出参数为:-------------------" + result.toString()); @@ -700,6 +716,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("ChildScrapUpdate接口输出参数为:-------------------" + result.toString()); @@ -736,6 +753,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("sendSalesIvtMsg接口输出参数为:-------------------" + result.toString()); @@ -771,6 +789,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("sendSalesIvtMsgParam接口输出参数为:-------------------" + result.toString()); @@ -825,6 +844,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { /*String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("momAutoTransterMoveIn接口输出参数为:-------------------" + result.toString()); @@ -868,6 +888,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); log.info("momGetPackingInfo接口输出参数为:-------------------" + result.toString()); @@ -931,6 +952,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); IpdmBiSubpackagerelationService subpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class); @@ -958,6 +980,69 @@ public class LmsToMesServiceImpl implements LmsToMesService { return result; } + @Override + public JSONObject BoxDataCollectionSubmit2(JSONObject param) { + + log.info("BoxDataCollectionSubmit2接口输入参数为:-------------------" + param.toString()); + + + String box_no = param.getString("box_no"); + String box_weight = param.getString("box_weight"); + + if (StrUtil.isEmpty(box_no)) { + throw new BadRequestException("木箱号不能为空!"); + } + + if (StrUtil.isEmpty(box_weight)) { + throw new BadRequestException("木箱毛重不能为空!"); + } + + JSONObject result = new JSONObject(); + + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_URL2").getValue(); + String api = "CamstarApi/BoxDataCollectionSubmit2"; + url = url + api; + + String UserName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String Password = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + param.put("UserName", UserName); + param.put("Password", Password); + param.put("BoxContainerName", box_no); + param.put("BoxWeight", box_weight); + JSONArray rows = new JSONArray(); + + JSONObject row1 = new JSONObject(); + row1.put("DataPointName","保护棉是否填充"); + row1.put("DataType","7"); + row1.put("DataValue","true"); + row1.put("DataCollectionDefId","001c61800000004f"); + row1.put("DataCollectionDefName","PACKAGE"); + row1.put("DataCollectionDefName","PACKAGE"); + rows.add(row1); + row1.put("DataPointName","信息核对准确"); + rows.add(row1); + row1.put("DataPointName","木箱是否防护"); + rows.add(row1); + param.put("DataPoints", rows); + + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("BoxDataCollectionSubmit2接口输出参数为:-------------------" + result.toString()); + + String RTYPE = result.getString("RTYPE"); + if ("E".equals(RTYPE)) { + throw new BadRequestException(result.getString("RTMSG")); + } + } catch (Exception e) { + throw new BadRequestException("MES提示错误:" + e.getMessage()); + } + return result; + } + public JSONObject getInspectionResult(JSONObject param) { log.info("getInspectionResult接口输出参数为:-------------------" + param.toString()); @@ -988,6 +1073,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(param)) + .timeout(time_out)//超时时间,毫秒 .execute().body(); result = JSONObject.parseObject(resultMsg); IpdmBiSubpackagerelationService subpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class); From b614ed079278d138831fe2dae386fcb916fb3a78 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 27 Feb 2025 10:52:35 +0800 Subject: [PATCH 05/12] =?UTF-8?q?rev=EF=BC=9A=E7=A9=BA=E6=9C=A8=E8=A1=8C?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=A2=9E=E5=8A=A0=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/service/impl/ProductOutTwoServiceImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java index 4f280fb72..7136e178f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/ProductOutTwoServiceImpl.java @@ -19,6 +19,7 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pda.st.service.impl.ProductionOutServiceImpl; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -198,6 +199,15 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject boxOut(JSONObject whereJson) { + // 判断当前是否有正在出库的空托盘任务 + JSONArray resultJSONArray = WQLObject.getWQLObject("sch_base_task") + .query("task_type = '010706' and task_status < '" + TaskStatusEnum.FINISHED.getCode() + "' and is_delete = '0'") + .getResultJSONArray(0); + + if (ObjectUtil.isNotEmpty(resultJSONArray)) { + throw new BadRequestException("当前正在执行空托盘出库任务,请稍后再出库!"); + } + List data = whereJson.getJSONArray("data").toJavaList(JSONObject.class); outBoxManageService.publicBoxOut(data); From 0796ca073d0e8e0c982227d446d0bb0e64f27659 Mon Sep 17 00:00:00 2001 From: "DESKTOP-5DIJMF9\\admin" <2388969634@qq.com> Date: Thu, 27 Feb 2025 19:40:52 +0800 Subject: [PATCH 06/12] =?UTF-8?q?opt:=E6=8F=90=E4=BA=A4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=20=E9=83=A8=E9=97=A8=E5=92=8C=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=9C=AA=E5=9B=9E=E6=98=BE=EF=BC=8C=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/user/dao/mapper/SysUserMapper.xml | 87 ++++++--------- .../wms/sch/service/impl/TaskServiceImpl.java | 4 +- .../nl/wms/sch/service/wql/QSCH_TASK_01.wql | 105 +++++++++--------- .../src/views/wms/sch/task/index.vue | 29 ++++- 4 files changed, 113 insertions(+), 112 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml index 73cc228e7..e073f6a82 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml @@ -25,38 +25,40 @@ sys_user.extuser_id as extuserId - INSERT INTO sys_user_data_permission(user_id, permission_scope_type, permission_id) - VALUES (#{dataPermission.user_id}, #{dataPermission.permission_scope_type}, #{dataPermission.permission_id}) + INSERT INTO sys_user_data_permission(user_id, permission_scope_type, permission_id) VALUES (#{dataPermission.user_id}, #{dataPermission.permission_scope_type}, #{dataPermission.permission_id}) - DELETE - FROM sys_user_data_permission - WHERE user_id = #{userId} + DELETE FROM sys_user_data_permission WHERE user_id = #{userId} - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - +