From 10cb9c8718925717b51039d1e7ddf60f4c33a840 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sun, 27 Nov 2022 16:08:29 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-ui/src/views/wms/pdm/bi/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue b/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue index 13109665e..45a9d76d6 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue @@ -365,7 +365,7 @@ - + From d8c7d47f311f48267b64b91ef2174d3c10a5da36 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sun, 27 Nov 2022 18:40:25 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../st/service/impl/StructivtServiceImpl.java | 4 + .../wms/basedata/st/wql/QST_STRUCTIVT001.wql | 4 + .../inbill/service/CheckOutBillService.java | 2 + .../outbill/rest/CheckOutBillController.java | 6 + .../service/impl/CheckOutBillServiceImpl.java | 113 ++++++++++++++---- .../st/outbill/wql/QST_IVT_CHECKOUTBILL.wql | 40 +++++++ .../src/views/wms/basedata/st/ivt/index.vue | 12 +- .../src/views/wms/st/outbill/AddDtl.vue | 11 +- .../src/views/wms/st/outbill/ViewDialog.vue | 8 +- .../src/views/wms/st/outbill/checkoutbill.js | 9 +- 10 files changed, 181 insertions(+), 28 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java index 1e11b60c2..298f2f872 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java @@ -43,6 +43,7 @@ public class StructivtServiceImpl implements StructivtService { String material = MapUtil.getStr(whereJson, "material"); String struct = MapUtil.getStr(whereJson, "struct"); String region_id = MapUtil.getStr(whereJson, "region_id"); + String pcsn = MapUtil.getStr(whereJson, "pcsn"); JSONObject map = new JSONObject(); map.put("flag", "1"); map.put("region_id", region_id); @@ -52,6 +53,9 @@ public class StructivtServiceImpl implements StructivtService { if (StrUtil.isNotEmpty(struct)) { map.put("struct", "%" + struct + "%"); } + if (StrUtil.isNotEmpty(pcsn)) { + map.put("pcsn", "%" + pcsn + "%"); + } JSONObject jsonObject = WQL.getWO("QST_STRUCTIVT001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ivt.instorage_time desc"); return jsonObject; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql index 340879ab7..944053185 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql @@ -17,6 +17,7 @@ 输入.struct TYPEAS s_string 输入.material TYPEAS s_string 输入.region_id TYPEAS f_string + 输入.pcsn TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -75,6 +76,9 @@ mater.material_name like 输入.material ) ENDOPTION + OPTION 输入.pcsn <> "" + ivt.pcsn like 输入.pcsn + ENDOPTION OPTION 输入.region_id <> "" ivt.region_id = 输入.region_id diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java index 3d1312b6d..8c488cbd3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java @@ -194,4 +194,6 @@ public interface CheckOutBillService { * @param whereJson / */ JSONArray queryBox(JSONObject whereJson); + + JSONArray getOutBillTask2(Map whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index c76b142b9..4de247ff6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -123,6 +123,12 @@ public class CheckOutBillController { public ResponseEntity getOutBillTask(@RequestParam Map whereJson){ return new ResponseEntity<>(checkOutBillService.getOutBillTask(whereJson), HttpStatus.OK); } + @PostMapping("/getOutBillTask2") + @Log("详情查询出库单分配任务2") + @ApiOperation("详情查询出库单分配任务2") + public ResponseEntity getOutBillTask2(@RequestBody Map whereJson){ + return new ResponseEntity<>(checkOutBillService.getOutBillTask2(whereJson), HttpStatus.OK); + } @GetMapping("/getStructIvt") @Log("查询可分配库存") @ApiOperation("查询可分配库存") 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 6ba394109..0aae32591 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 @@ -88,6 +88,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { map.put("flag", "7"); map.put("begin_time", MapUtil.getStr(whereJson, "begin_time")); map.put("end_time", MapUtil.getStr(whereJson, "end_time")); + map.put("canuse_qty", "0"); if (StrUtil.isNotEmpty(map.get("material_code"))) { map.put("material_code", "%" + map.get("material_code") + "%"); @@ -203,18 +204,25 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_StructIvt"); //明细另一种写法 //JSONArray jsonArr = JSONArray.fromObject(whereJson.get("tableData")); - JSONArray rows = map.getJSONArray("tableData"); + JSONArray array = map.getJSONArray("tableData"); + JSONArray rows = new JSONArray(); // 过滤相同箱号的明细 HashSet boxSet = new HashSet<>(); - for (int i = 0; i < rows.size(); i++) { - JSONObject json = rows.getJSONObject(i); - boxSet.add(json.getString("box_no")); + for (int i = 0; i < array.size(); i++) { + JSONObject json = array.getJSONObject(i); + if (ObjectUtil.isNotEmpty(json.getString("box_no"))) { + boxSet.add(json.getString("box_no")); + } else { + rows.add(json); + } } - rows.clear(); - // 遍历 - for (String box_no : boxSet) { - JSONObject jsonObject = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "7").addParam("box_no", box_no).process().uniqueResult(0); - rows.add(jsonObject); + if (ObjectUtil.isNotEmpty(boxSet)) { +// rows.clear(); + // 遍历 + for (String box_no : boxSet) { + JSONObject jsonObject = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "7").addParam("box_no", box_no).process().uniqueResult(0); + rows.add(jsonObject); + } } map.remove("tableData"); @@ -265,6 +273,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { int num = rows.size(); // 明细数 for (int i = 0; i < rows.size(); i++) { JSONObject row = rows.getJSONObject(i); + // 校验计划数量不能为零 + double plan_qty = row.getDoubleValue("plan_qty"); + if (plan_qty == 0.0) { + throw new BadRequestException("数量不能为0"); + } JSONObject jsonDtl = new JSONObject(); jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); @@ -301,7 +314,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { for (int j = 0; j < ivtArr.size(); j++) { JSONObject jsonIvt = ivtArr.getJSONObject(j); JSONObject jsonDtl2 = new JSONObject(); - jsonDtl2.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); jsonDtl2.put("iostorinv_id", iostorinv_id); jsonDtl2.put("seq_no", i + 2 + j); @@ -317,6 +329,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonDtl2.put("assign_qty", "0"); jsonDtl2.put("unassign_qty", jsonIvt.get("canuse_qty")); jsonDtl2.put("source_billdtl_id", jsonDtl.getString("iostorinvdtl_id")); + // 校验计划数量不能为零 + double plan_qty2 = jsonDtl2.getDoubleValue("plan_qty"); + if (plan_qty2 == 0.0) { + throw new BadRequestException("数量不能为0"); + } WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(jsonDtl2); qty += jsonDtl2.getDoubleValue("plan_qty"); @@ -388,6 +405,12 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { int num = rows.size(); // 明细数 for (int i = 0; i < rows.size(); i++) { JSONObject row = rows.getJSONObject(i); + // 校验计划数量不能为零 + double plan_qty = row.getDoubleValue("plan_qty"); + if (plan_qty == 0.0) { + throw new BadRequestException("数量不能为0"); + } + JSONObject jsonDtl = new JSONObject(); jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); @@ -440,6 +463,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonDtl2.put("assign_qty", "0"); jsonDtl2.put("unassign_qty", jsonIvt.get("canuse_qty")); jsonDtl2.put("source_billdtl_id", jsonDtl.getString("iostorinvdtl_id")); + // 校验计划数量不能为零 + double plan_qty2 = jsonDtl2.getDoubleValue("plan_qty"); + if (plan_qty2 == 0.0) { + throw new BadRequestException("数量不能为0"); + } WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(jsonDtl2); qty += jsonDtl2.getDoubleValue("plan_qty"); @@ -502,6 +530,33 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { return jo; } + @Override + public JSONArray getOutBillTask2(Map whereJson) { + HashMap map = new HashMap<>(whereJson); + map.put("flag", "101"); + JSONArray jo = new JSONArray(); + if (map.containsKey("iostorinvdtl_id")) { + jo = WQL.getWO("QST_IVT_CHECKOUTBILL") + .addParamMap(map) + .process() + .getResultJSONArray(0); + } + for (int i = 0; i < jo.size(); i++) { + JSONObject json = jo.getJSONObject(i); + String task_status = json.getString("task_status"); + if (ObjectUtil.isEmpty(task_status)) { + String work_status = json.getString("work_status"); + if (StrUtil.equals(work_status, "01")) { + json.put("task_status","01"); + } + if (StrUtil.equals(work_status, "99")) { + json.put("task_status","07"); + } + } + } + return jo; + } + @Override @Transactional(rollbackFor = Exception.class) public void update(JSONObject whereJson) { @@ -522,24 +577,38 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { String iostorinv_id = (String) whereJson.get("iostorinv_id"); wo_dtl.delete("iostorinv_id = '" + iostorinv_id + "'"); - JSONArray rows = whereJson.getJSONArray("tableData"); + JSONArray array = whereJson.getJSONArray("tableData"); + JSONArray rows = new JSONArray(); + // 过滤相同箱号的明细 HashSet boxSet = new HashSet<>(); - for (int i = 0; i < rows.size(); i++) { - JSONObject json = rows.getJSONObject(i); - boxSet.add(json.getString("box_no")); + for (int i = 0; i < array.size(); i++) { + JSONObject json = array.getJSONObject(i); + if (ObjectUtil.isNotEmpty(json.getString("box_no"))) { + boxSet.add(json.getString("box_no")); + } else { + rows.add(json); + } } - rows.clear(); - // 遍历 - for (String box_no : boxSet) { - JSONObject jsonObject = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "7").addParam("box_no", box_no).process().uniqueResult(0); - rows.add(jsonObject); + if (ObjectUtil.isNotEmpty(boxSet)) { +// rows.clear(); + // 遍历 + for (String box_no : boxSet) { + JSONObject jsonObject = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "7").addParam("box_no", box_no).process().uniqueResult(0); + rows.add(jsonObject); + } } double qty = 0.0; // 主表重量 int num = rows.size(); // 明细数 for (int i = 0; i < rows.size(); i++) { JSONObject row = rows.getJSONObject(i); + // 校验计划数量不能为零 + double plan_qty = row.getDoubleValue("plan_qty"); + if (plan_qty == 0.0) { + throw new BadRequestException("数量不能为0"); + } + JSONObject jsonDtl = new JSONObject(); jsonDtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); jsonDtl.put("iostorinv_id", iostorinv_id); @@ -576,7 +645,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { for (int j = 0; j < ivtArr.size(); j++) { JSONObject jsonIvt = ivtArr.getJSONObject(j); JSONObject jsonDtl2 = new JSONObject(); - jsonDtl2.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); jsonDtl2.put("iostorinv_id", iostorinv_id); jsonDtl2.put("seq_no", i + 2 + j); @@ -592,6 +660,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { jsonDtl2.put("assign_qty", "0"); jsonDtl2.put("unassign_qty", jsonIvt.get("canuse_qty")); jsonDtl2.put("source_billdtl_id", jsonDtl.getString("iostorinvdtl_id")); + // 校验计划数量不能为零 + double plan_qty2 = jsonDtl2.getDoubleValue("plan_qty"); + if (plan_qty2 == 0.0) { + throw new BadRequestException("数量不能为0"); + } WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").insert(jsonDtl2); qty += jsonDtl2.getDoubleValue("plan_qty"); 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 6446e4722..5fda3a1be 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 @@ -44,6 +44,7 @@ 输入.deptIds TYPEAS f_string 输入.sale_order_name TYPEAS s_string 输入.box_no TYPEAS s_string + 输入.canuse_qty TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -485,6 +486,10 @@ attr.storagevehicle_code = 输入.box_no ENDOPTION + OPTION 输入.canuse_qty <> "" + ivt.canuse_qty > 输入.canuse_qty + ENDOPTION + ENDSELECT ENDPAGEQUERY ENDIF @@ -572,6 +577,41 @@ ENDQUERY ENDIF + IF 输入.flag = "101" + QUERY + SELECT + dis.*, + mater.material_code, + mater.material_name, + point.point_code AS next_point_code, + task.task_code, + task.task_type, + task.task_status + FROM + st_ivt_iostorinvdis dis + LEFT JOIN md_me_materialbase mater ON dis.material_id = mater.material_id + LEFT JOIN sch_base_point point ON dis.point_id = point.point_id + LEFT JOIN sch_base_task task ON dis.task_id = task.task_id + WHERE + 1=1 + + OPTION 输入.iostorinvdtl_id <> "" + dis.iostorinvdtl_id = 输入.iostorinvdtl_id + ENDOPTION + OPTION 输入.iostorinv_id <> "" + dis.iostorinv_id = 输入.iostorinv_id + ENDOPTION + OPTION 输入.is_issued <> "" + dis.is_issued = 输入.is_issued + ENDOPTION + OPTION 输入.struct_id <> "" + dis.struct_id = 输入.struct_id + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "11" QUERY SELECT diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue index 60af11694..5eca86464 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue @@ -31,6 +31,16 @@ class="filter-item" /> + + + - + diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue b/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue index 70a08e9de..5e79d1508 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/AddDtl.vue @@ -95,7 +95,8 @@ export default { return { dialogVisible: false, opendtlParam: '', - rows: [] + rows: [], + openShow: true } }, watch: { @@ -113,6 +114,12 @@ export default { methods: { [CRUD.HOOK.beforeRefresh]() { this.crud.query.mater_type = this.opendtlParam + if (this.openShow) { + this.openShow = false + return false + } else { + return true + } }, close() { this.crud.resetQuery(false) @@ -120,7 +127,7 @@ export default { }, open() { this.crud.query.mater_type = this.opendtlParam - this.crud.toQuery() + // this.crud.toQuery() }, submit() { this.rows = this.$refs.multipleTable.selection diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue index 093d70fec..7cf4783a6 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue @@ -136,10 +136,10 @@ > - - + + - + @@ -253,7 +253,7 @@ export default { }, queryTableDdis() { if (this.currentdtl !== null) { - checkoutbill.getOutBillTask({ 'iostorinvdtl_id': this.currentdtl.iostorinvdtl_id }).then(res => { + checkoutbill.getOutBillTask2({ 'iostorinvdtl_id': this.currentdtl.iostorinvdtl_id }).then(res => { this.tabledis = res }).catch(() => { this.tabledis = [] diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js index 0a9775309..bcaffd69e 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js +++ b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js @@ -183,4 +183,11 @@ export function queryBox(data) { data }) } -export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox } +export function getOutBillTask2(data) { + return request({ + url: '/api/checkoutbill/getOutBillTask2', + method: 'post', + data + }) +} +export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, setPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2 } From ac8848ec12ea06d660d315a20bb1a4019aaf71db Mon Sep 17 00:00:00 2001 From: liuxy Date: Sun, 27 Nov 2022 19:59:31 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProductionOutServiceImpl.java | 3 +- .../service/impl/VirtualOutServiceImpl.java | 53 +++++++++++-------- .../service/impl/CheckOutBillServiceImpl.java | 36 +++++++++---- 3 files changed, 60 insertions(+), 32 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductionOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductionOutServiceImpl.java index c4440c175..d454c53f7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductionOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductionOutServiceImpl.java @@ -63,7 +63,8 @@ public class ProductionOutServiceImpl implements ProductionOutService { WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表 - JSONObject box_no = whereJson.getJSONObject("box_no"); + String box_no = whereJson.getString("box_no"); + if (ObjectUtil.isEmpty(box_no)) throw new BadRequestException("木箱不能为空"); JSONObject jsonPoint = pointTab.query("vehicle_code = '" + box_no + "' and is_delete = '0' and is_used = '1'").uniqueResult(0); /* diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java index 2437ea1a2..7e09c815e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/VirtualOutServiceImpl.java @@ -16,6 +16,8 @@ import org.nl.wms.st.outbill.service.impl.CheckOutBillServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashSet; + /** * @author liuxy * @description 服务实现 @@ -91,30 +93,39 @@ public class VirtualOutServiceImpl implements VirtualOutService { WQLObject disTab = WQLObject.getWQLObject("ST_IVT_IOStorInvDis"); // 出入库分配明细表 WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl"); // 出入库明细表 - String box_no = whereJson.getString("box_no"); // 箱号 + JSONArray box_rows = whereJson.getJSONArray("box_rows"); - JSONArray disArr = WQL.getWO("PDA_ST_01").addParam("flag", "7").addParam("box_no", box_no).process().getResultJSONArray(0); - for (int i = 0; i < disArr.size(); i++) { - JSONObject jsonDis = disArr.getJSONObject(i); - // 更新状态为完成 - jsonDis.put("work_status", "99"); - disTab.update(jsonDis); + HashSet boxSet = new HashSet<>(); - // 判断分配明细是否全部完成 - JSONArray disNoArr = disTab.query("iostorinvdtl_id = '" + jsonDis.getString("iostorinvdtl_id") + "' and work_status <> '99'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(disNoArr)) { - // 更新明细表状态为完成 - JSONObject jsonDtl = dtlTab.query("iostorinvdtl_id = '" + jsonDis.getString("iostorinvdtl_id") + "'").uniqueResult(0); - jsonDtl.put("bill_status", "99"); - dtlTab.update(jsonDtl); + for (int i = 0; i < box_rows.size(); i++) { + JSONObject json = box_rows.getJSONObject(i); + boxSet.add(json.getString("package_box_sn")); + } - // 判断此明细是否全部完成 - JSONArray dtlNoArr = dtlTab.query("iostorinv_id = '" + jsonDis.getString("iostorinv_id") + "' and bill_status <> '99'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(dtlNoArr)) { - // 调用强制完成接口 - JSONObject param = new JSONObject(); - param.put("iostorinv_id",jsonDis.getString("iostorinv_id")); - checkOutBillService.confirm(param); + for (String box_no : boxSet) { + JSONArray disArr = WQL.getWO("PDA_ST_01").addParam("flag", "7").addParam("box_no", box_no).process().getResultJSONArray(0); + for (int i = 0; i < disArr.size(); i++) { + JSONObject jsonDis = disArr.getJSONObject(i); + // 更新状态为完成 + jsonDis.put("work_status", "99"); + disTab.update(jsonDis); + + // 判断分配明细是否全部完成 + JSONArray disNoArr = disTab.query("iostorinvdtl_id = '" + jsonDis.getString("iostorinvdtl_id") + "' and work_status <> '99'").getResultJSONArray(0); + if (ObjectUtil.isEmpty(disNoArr)) { + // 更新明细表状态为完成 + JSONObject jsonDtl = dtlTab.query("iostorinvdtl_id = '" + jsonDis.getString("iostorinvdtl_id") + "'").uniqueResult(0); + jsonDtl.put("bill_status", "99"); + dtlTab.update(jsonDtl); + + // 判断此明细是否全部完成 + JSONArray dtlNoArr = dtlTab.query("iostorinv_id = '" + jsonDis.getString("iostorinv_id") + "' and bill_status <> '99'").getResultJSONArray(0); + if (ObjectUtil.isEmpty(dtlNoArr)) { + // 调用强制完成接口 + JSONObject param = new JSONObject(); + param.put("iostorinv_id",jsonDis.getString("iostorinv_id")); + checkOutBillService.confirm(param); + } } } } 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 0aae32591..1a458b3ff 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 @@ -1988,7 +1988,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { param.put("HEAD", paramSapMstArr); // 调用接口回传 - new LmsToSapServiceImpl().returnDelivery(param); + try { + new LmsToSapServiceImpl().returnDelivery(param); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } // 2.回传mes JSONObject paramMesMst = new JSONObject(); @@ -2015,8 +2019,13 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } paramMesMst.put("item", paramArr); - // 调用接口回传 - new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); + try { + // 调用接口回传 + new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst); + } catch (Exception e) { + throw new BadRequestException("回传mes失败:"+e.getMessage()); + } + } // 手工出库 if (StrUtil.equals(bill_type, "1009")) { @@ -2080,8 +2089,13 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { param.put("HEAD", paramSapMstArr); if (ObjectUtil.isNotEmpty(vbeln)) { - // 调用接口回传 - new LmsToSapServiceImpl().returnDelivery(param); + try { + // 调用接口回传 + new LmsToSapServiceImpl().returnDelivery(param); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } + } } @@ -2134,9 +2148,13 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } paramMst.put("T_ITEM", paramArr); - // 调用接口回传 - System.out.println(paramMst.toString()); - new LmsToSapServiceImpl().returnMoveDtl(paramMst); + try { + // 调用接口回传 + System.out.println(paramMst.toString()); + new LmsToSapServiceImpl().returnMoveDtl(paramMst); + } catch (Exception e) { + throw new BadRequestException("回传sap失败:"+e.getMessage()); + } //调用母卷配送到位接口 JSONObject mes_jo = new JSONObject(); @@ -2163,8 +2181,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - - } @Override From abf16a9b1355541d3050df3f864dea26fd53b2f2 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sun, 27 Nov 2022 21:38:26 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/service/impl/MesToLmsServiceImpl.java | 14 +++++++++++--- .../service/impl/CheckOutBillServiceImpl.java | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) 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 8e60537a7..bcab6a7b8 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 @@ -2,6 +2,7 @@ package org.nl.wms.ext.mes.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -25,6 +26,8 @@ import org.nl.wms.sch.tasks.CoolCutTask; import org.nl.wms.st.inbill.service.CheckOutBillService; import org.springframework.stereotype.Service; +import java.util.HashMap; + @Service @RequiredArgsConstructor @Slf4j @@ -689,7 +692,6 @@ public class MesToLmsServiceImpl implements MesToLmsService { if (StrUtil.equals(is_mesTolms, "1")) { String isUnPlanProductionBox = param.getString("isUnPlanProductionBox"); // 生产订单 String QuanlityInBox = param.getString("QuanlityInBox"); // 产品编码 - String BoxWeight = param.getString("BoxWeight"); // 产品名称 String QualityGuaranPeriod = param.getString("QualityGuaranPeriod"); // 分切机台编码 String ProductName = param.getString("ProductName"); // 来源卷位置 String Description = param.getString("Description"); // 来源卷位置 @@ -699,10 +701,12 @@ public class MesToLmsServiceImpl implements MesToLmsService { String box_width = param.getString("Attribute3"); // 木箱料号 String box_high = param.getString("Attribute4"); // 木箱料号 - JSONArray details = param.getJSONArray("details"); + double BoxWeight = 0; // 木箱自身重量 + JSONArray details = param.getJSONArray("details"); for (int i = 0; i < details.size(); i++) { JSONObject detail = details.getJSONObject(i); + BoxWeight = NumberUtil.add(BoxWeight, detail.getDoubleValue("NetWeight")); String PackageBoxSN = detail.getString("PackageBoxSN"); // 分切订单类型 String ContainerName = detail.getString("ContainerName"); // 子卷号 @@ -730,7 +734,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { jo.put("box_width", box_width); jo.put("box_high", box_high); jo.put("quanlity_in_box", QuanlityInBox); - jo.put("box_weight", BoxWeight); +// jo.put("box_weight", BoxWeight); jo.put("quality_guaran_period", QualityGuaranPeriod); jo.put("sale_order_name", SaleOrderName); jo.put("customer_name", CustomerName); @@ -755,6 +759,10 @@ public class MesToLmsServiceImpl implements MesToLmsService { jo.put("create_time", DateUtil.now()); WQLObject tab = WQLObject.getWQLObject("PDM_BI_SubPackageRelation"); tab.insert(jo); + + HashMap map = new HashMap<>(); + map.put("box_weight", String.valueOf(BoxWeight)); + tab.update(map,"package_box_sn = '"+PackageBoxSN+"'"); } } JSONObject result = new JSONObject(); 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 1a458b3ff..390125c7d 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 @@ -1927,7 +1927,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { * 销售出库:sap、mes * 改切出库:sap */ - String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue(); + /*String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue(); if (StrUtil.equals(isUpload, "1")) { String bill_type = jo_mst.getString("bill_type"); // 销售出库 @@ -2167,7 +2167,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo); } - } + }*/ } @Override