From 7404047f8f14e528fe5cb3b847fc2fd26fe4a9b0 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 13 Mar 2024 14:17:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=B7=E7=A2=BE<>=E5=8E=8B=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/sch/manage/PointStatus.java | 15 +++++- .../sch/task/call/empty/HLCallEmptyTask.java | 5 ++ .../call/material/YZCallMaterialTask.java | 9 +++- .../sch/task/send/empty/YZSendEmptyTask.java | 47 +++++++++++++++---- .../task/send/empty/wql/SEND_EMPTY_TASK.wql | 11 +++++ .../send/material/HLSendMaterialTask.java | 34 +++++++++----- .../send/material/wql/SEND_MATERIAL_TASK.wql | 17 +++++++ 7 files changed, 114 insertions(+), 24 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/PointStatus.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/PointStatus.java index e22df5a..f14d826 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/PointStatus.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/PointStatus.java @@ -10,9 +10,22 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum PointStatus { + /** + * 空位 + */ EMPTY("空位", "1"), + /** + * 空载具 + */ EMPTY_VEHICLE("空载具", "2"), - HAS_GOODS("有箱有料", "3"); + /** + * 有箱有料 + */ + HAS_GOODS("有箱有料", "3"), + /** + * 等待 + */ + WAITING("等待", "4"); private final String label; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java index 0b084cb..6ac869b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java @@ -103,6 +103,11 @@ public class HLCallEmptyTask extends AbstractAcsTask { point.put("task_code", task.getString("task_code")); TaskUtils.addAutoUpdateColum(point); point_table.update(point); + } else { + task.put("task_status", TaskStatus.CREATED.value()); + task.put("remark", "任务转为等待压机空盅直接下来"); + TaskUtils.addAutoUpdateColum(task); + task_table.update(task); } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java index cb7e07b..1923ab7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java @@ -90,7 +90,14 @@ public class YZCallMaterialTask extends AbstractAcsTask { return task.getString("task_code"); } else { - throw new BadRequestException("[" + point.get("point_code") + "] 的叫料任务未找到起点!"); + // update: 设置点位状态为等待(4),设置所需要的参数到remark中:materialId + point.put("point_status", PointStatus.WAITING.value()); + point.put("remark", workorder.getString("material_id")); + TaskUtils.addFormUpdateColum(point, form); + WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); + point_table.update(point); + return null; +// throw new BadRequestException("[" + point.get("point_code") + "] 的叫料任务未找到起点!"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java index 3945254..a12670b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java @@ -93,23 +93,50 @@ public class YZSendEmptyTask extends AbstractAcsTask { for (int i = 0; i < tasks.size(); i++) { JSONObject task = tasks.getJSONObject(i); - JSONObject point = WQL + // 获取混料叫空盘的半条任务, 补齐任务信息, 并且取消本条任务 + // org.nl.wms.sch.task.call.empty.HLCallEmptyTask + // TaskStatus.CREATED.value() + JSONObject task2 = WQL .getWO("SEND_EMPTY_TASK") - .addParam("flag", "1") + .addParam("flag", "3") .process() .uniqueResult(0); + if (ObjectUtil.isNotEmpty(task2)) { + JSONObject jsonObject = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0); + jsonObject.put("lock_type", LockType.TASK_LOCKED.value()); + jsonObject.put("task_code", task2.getString("task_code")); + TaskUtils.addAutoUpdateColum(jsonObject); + point_table.update(jsonObject); - if (ObjectUtil.isNotEmpty(point)) { - task.put("task_status", TaskStatus.START_AND_END.value()); - task.put("point_code2", point.getString("point_code")); - task.put("remark", ""); + task2.put("task_status", TaskStatus.START_AND_END.value()); + task2.put("point_code2", task.getString("point_code1")); + task2.put("remark", ""); + TaskUtils.addAutoUpdateColum(task2); + task_table.update(task2); + + task.put("task_status", TaskStatus.CANCELLED.value()); + task.put("remark", "任务以转移致混料叫空盅任务编码:" + task2.getString("task_code")); TaskUtils.addAutoUpdateColum(task); task_table.update(task); + } else { + JSONObject point = WQL + .getWO("SEND_EMPTY_TASK") + .addParam("flag", "1") + .process() + .uniqueResult(0); - point.put("lock_type", LockType.TASK_LOCKED.value()); - point.put("task_code", task.getString("task_code")); - TaskUtils.addAutoUpdateColum(point); - point_table.update(point); + if (ObjectUtil.isNotEmpty(point)) { + task.put("task_status", TaskStatus.START_AND_END.value()); + task.put("point_code2", point.getString("point_code")); + task.put("remark", ""); + TaskUtils.addAutoUpdateColum(task); + task_table.update(task); + + point.put("lock_type", LockType.TASK_LOCKED.value()); + point.put("task_code", task.getString("task_code")); + TaskUtils.addAutoUpdateColum(point); + point_table.update(point); + } } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql index a718738..55e314f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql @@ -67,3 +67,14 @@ ENDSELECT ENDQUERY ENDIF + IF 输入.flag = "3" + QUERY + SELECT + * + FROM + `sch_base_task` t + WHERE t.handle_class = 'org.nl.wms.sch.task.call.empty.HLCallEmptyTask' + AND t.task_status = '1' + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java index bbff6f1..a3ddac1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java @@ -13,7 +13,6 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.basedata.eum.TrueOrFalse; import org.nl.wms.sch.manage.*; import org.nl.wms.sch.task.util.TaskUtils; -import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; /** @@ -85,7 +84,7 @@ public class HLSendMaterialTask extends AbstractAcsTask { JSONArray tasks = task_table .query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_START.value() + "' AND handle_class = '" + HLSendMaterialTask.class.getName() + "'", "priority DESC, create_time ASC") .getResultJSONArray(0); - + boolean flag = true; if (ObjectUtil.isNotEmpty(tasks)) { WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); @@ -103,33 +102,43 @@ public class HLSendMaterialTask extends AbstractAcsTask { .addParam("material_id", task.getString("material_id")) .process() .uniqueResult(0); + flag = false; } else if ("2".equals(startPointType)) { - // 通过工单的关联压机送到对应位置,如果不满足就走以下流程 + // 判断压机上是否有点位状态是4,物料对应 nextPoint = WQL.getWO("SEND_MATERIAL_TASK") - .addParam("flag", "8") - .addParam("device_code", startPoint.getString("device_code")) + .addParam("flag", "10") + .addParam("material_id", task.getString("material_id")) .process() .uniqueResult(0); if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) { - // 先去普通压机困料货位 + flag = false; + // 通过工单的关联压机送到对应位置,如果不满足就走以下流程 nextPoint = WQL.getWO("SEND_MATERIAL_TASK") - .addParam("flag", "4") - .addParam("material_id", task.getString("material_id")) + .addParam("flag", "8") + .addParam("device_code", startPoint.getString("device_code")) .process() .uniqueResult(0); - if (ObjectUtil.isEmpty(nextPoint)) { - // 公共货位 + if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) { + // 先去普通压机困料货位 nextPoint = WQL.getWO("SEND_MATERIAL_TASK") - .addParam("flag", "5") + .addParam("flag", "4") + .addParam("material_id", task.getString("material_id")) .process() .uniqueResult(0); + if (ObjectUtil.isEmpty(nextPoint)) { + // 公共货位 + nextPoint = WQL.getWO("SEND_MATERIAL_TASK") + .addParam("flag", "5") + .process() + .uniqueResult(0); + } } } } if (ObjectUtil.isNotEmpty(nextPoint)) { task.put("task_status", TaskStatus.START_AND_END.value()); task.put("point_code2", nextPoint.getString("point_code")); - task.put("remark", ""); + task.put("remark", flag ? "直接送到布料机" : ""); TaskUtils.addAutoUpdateColum(task); task_table.update(task); @@ -251,6 +260,7 @@ public class HLSendMaterialTask extends AbstractAcsTask { JSONObject point2 = new JSONObject(); point2.put("lock_type", LockType.UNLOCKED.value()); point2.put("task_code", ""); + point2.put("remark", ""); point2.put("vehicle_type", task.getString("vehicle_type")); point2.put("vehicle_code", task.getString("vehicle_code")); point2.put("vd_id", task.getString("group_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql index d63447f..1ff52ec 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql @@ -187,3 +187,20 @@ ENDSELECT ENDPAGEQUERY ENDIF + + IF 输入.flag = "10" + QUERY + SELECT + p.* + FROM + sch_base_point p + WHERE + p.is_used = '1' + AND p.lock_type = '1' + AND p.point_status = '4' + AND p.region_code = 'YZ' + AND p.point_type = '2' + AND p.remark = 输入.material_id + ENDSELECT + ENDQUERY + ENDIF