From a657c8360085d8d68e9ef87bd39d37113d51d814 Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 4 Apr 2023 10:29:48 +0800 Subject: [PATCH] =?UTF-8?q?rev:=20=E6=88=90=E5=93=81=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E8=B4=A7=E5=8C=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/sch/tasks/ProductOutTask.java | 6 +++ .../service/impl/ProductOutServiceImpl.java | 39 ++++++++++++++----- .../src/views/wms/st/productOut/DivDialog.vue | 12 +++--- .../views/wms/st/productOut/ViewDialog.vue | 2 - 4 files changed, 42 insertions(+), 17 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/ProductOutTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/ProductOutTask.java index 39be14a8..015937a7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/ProductOutTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/ProductOutTask.java @@ -29,6 +29,7 @@ public class ProductOutTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis"); // 出入库分配表 + WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表 String task_id = taskObj.getString("task_id"); JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '7'").uniqueResult(0); @@ -52,6 +53,11 @@ public class ProductOutTask extends AbstractAcsTask { disTab.update(map,"task_id = '"+task_id+"'"); + // 解锁终点点位 + JSONObject jsonPoint = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); + jsonPoint.put("lock_type", "1"); + pointTab.update(jsonPoint); + } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/out/service/impl/ProductOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/out/service/impl/ProductOutServiceImpl.java index 4f8f95eb..d45c43f2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/out/service/impl/ProductOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/out/service/impl/ProductOutServiceImpl.java @@ -709,7 +709,6 @@ public class ProductOutServiceImpl implements ProductOutService { //出库主表 WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv"); - String point_code = whereJson.getString("point_code"); // 终点 String iostorinv_id = whereJson.getString("iostorinv_id"); String iostorinvdtl_id = whereJson.getString("iostorinvdtl_id"); @@ -719,13 +718,8 @@ public class ProductOutServiceImpl implements ProductOutService { throw new BadRequestException("未查到相关出库单"); } - JSONObject jsonPoint2 = wo_Point.query("lock_type='1' and (vehicle_code='' or vehicle_code IS NULL) and point_code='" + point_code + "'").uniqueResult(0); - //如果终点站点被锁定或者有载具号,则不允许设置点位 - if (ObjectUtil.isEmpty(jsonPoint2)) { - throw new BadRequestException("该站点被锁定或者有载具号,不允许设置!"); - } - // 查询此明细的所有未生成的分配明细(根据片区、排 分组) + // 查询此明细的所有未生成的分配明细 JSONArray allArr = WQL.getWO("QST_IVT_PRODUCTOUTDIV_01") .addParam("flag", "5") .addParam("iostorinvdtl_id", iostorinvdtl_id) @@ -738,20 +732,27 @@ public class ProductOutServiceImpl implements ProductOutService { for (int i = 0; i < allArr.size(); i++) { JSONObject jsonDis = allArr.getJSONObject(i); + // 找发货区点位 + JSONObject jsonSendOut = this.findSendOut(); + // 创建任务 JSONObject jsonTask = new JSONObject(); jsonTask.put("task_type", "010502"); jsonTask.put("point_code1", jsonDis.getString("struct_code")); - jsonTask.put("point_code2", point_code); + jsonTask.put("point_code2", jsonSendOut.getString("point_code")); jsonTask.put("vehicle_code", jsonDis.getString("storagevehicle_code")); jsonTask.put("product_area", jo_mst.getString("product_code")); ProductOutTask task = new ProductOutTask(); String task_id = task.createTask(jsonTask); + // 锁定终点 + jsonSendOut.put("lock_type","3"); + wo_Point.update(jsonSendOut); + // 修改明细状态 jsonDis.put("work_status", "01"); - jsonDis.put("point_id", jsonPoint2.getString("point_id")); + jsonDis.put("point_id", jsonSendOut.getString("point_id")); jsonDis.put("task_id", task_id); wo_dis.update(jsonDis); } @@ -1056,6 +1057,13 @@ public class ProductOutServiceImpl implements ProductOutService { from_start.put("vehicle_code", ""); pointTab.update(from_start,"vehicle_code = '"+dis.getString("storagevehicle_code")+"'"); + // 解锁终点增加库存 + JSONObject jsonPoint = pointTab.query("point_id = '" + dis.getString("point_id") + "'").uniqueResult(0); + jsonPoint.put("lock_type", "1"); + jsonPoint.put("point_status", "2"); + jsonPoint.put("vehicle_code", dis.getString("storagevehicle_code")); + pointTab.update(jsonPoint); + // 更新分配明细执行状态为 - 99 JSONObject jsonDis = wo_dis.query("iostorinvdis_id = '" + dis.getString("iostorinvdis_id") + "'").uniqueResult(0); jsonDis.put("work_status", "99"); @@ -1464,4 +1472,17 @@ public class ProductOutServiceImpl implements ProductOutService { wo_mst.update(jo_mst); } + @Transactional(rollbackFor = Exception.class) + public JSONObject findSendOut() { + + WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); + JSONObject jsonPoint = pointTab.query("point_status = '1' and region_code = 'FH01' and lock_type = '1' and is_delete = '0' and is_used = '1' and IFNULL(vehicle_code,'') = '' order by point_code").uniqueResult(0); + + if (ObjectUtil.isEmpty(jsonPoint)) { + throw new BadRequestException("发货区无可用点位"); + } + + return jsonPoint; + } + } diff --git a/mes/qd/src/views/wms/st/productOut/DivDialog.vue b/mes/qd/src/views/wms/st/productOut/DivDialog.vue index 08122075..246710bf 100644 --- a/mes/qd/src/views/wms/st/productOut/DivDialog.vue +++ b/mes/qd/src/views/wms/st/productOut/DivDialog.vue @@ -150,7 +150,7 @@ disabled /> - + @@ -492,10 +492,10 @@ export default { } }, allSetPoint() { - if (this.form2.point_code === '') { + /* if (this.form2.point_code === '') { this.crud.notify('请先选择站点!', CRUD.NOTIFICATION_TYPE.INFO) return - } + }*/ if (this.currentRow === '') { this.crud.notify('请选择明细!', CRUD.NOTIFICATION_TYPE.INFO) return @@ -511,10 +511,10 @@ export default { }) }, allSetPointAllDtl() { - if (this.form2.point_code === '') { + /* if (this.form2.point_code === '') { this.crud.notify('请先选择站点!', CRUD.NOTIFICATION_TYPE.INFO) return - } + }*/ this.loadingSetAllPoint = true const data = { 'point_code': this.form2.point_code, diff --git a/mes/qd/src/views/wms/st/productOut/ViewDialog.vue b/mes/qd/src/views/wms/st/productOut/ViewDialog.vue index 08c42314..895d46c7 100644 --- a/mes/qd/src/views/wms/st/productOut/ViewDialog.vue +++ b/mes/qd/src/views/wms/st/productOut/ViewDialog.vue @@ -151,8 +151,6 @@ import { crud } from '@crud/crud' import productOut from '@/views/wms/st/productOut/productout' -// import crudStorattr from '@/views/wms/basedata/st/stor/storattr' -// import crudRawAssist from '@/views/wms/st/inbill/rawassist' import crudProductIn from '@/views/wms/st/productIn/productin' export default {