From f4c93965b928e7ab020dda0245c78ae03d0abfee Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 14 Jun 2024 14:13:50 +0800 Subject: [PATCH 1/5] =?UTF-8?q?rev=EF=BC=9A=E5=87=BA=E5=BA=93=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/TwoLashTask.java | 7 + .../nl/b_lms/sch/tasks/TwoOutHeapTask.java | 178 ++++++++++++++++++ .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 41 +++- .../storage_manage/ios/enums/IOSEnum.java | 8 +- .../impl/StIvtIostorinvOutServiceImpl.java | 40 ++-- .../util/impl/LashManageServiceImpl.java | 39 +++- .../util/service/LashManageService.java | 13 +- .../src/views/wms/st/outbill/DivDialog.vue | 6 +- 8 files changed, 299 insertions(+), 33 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java index 932931144..5d462b9e9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java @@ -55,6 +55,8 @@ public class TwoLashTask extends AbstractAcsTask { /* * 下发给ACS时需要特殊处理 */ + //任务表 + WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task"); JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); // 查询木箱信息 @@ -104,6 +106,11 @@ public class TwoLashTask extends AbstractAcsTask { .interaction_json(interaction_json) .build(); resultList.add(dto); + + // 更新任务为下发 + JSONObject paramMap = new JSONObject(); + paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode()); + wo_Task.update(paramMap, "task_id ='" + json.getString("task_id") + "'"); } return resultList; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java new file mode 100644 index 000000000..353b5f2b1 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java @@ -0,0 +1,178 @@ +package org.nl.b_lms.sch.tasks; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +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.b_lms.storage_manage.ios.service.iostorInv.impl.StIvtIostorinvOutServiceImpl; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.LashManageServiceImpl; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; +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 java.util.Map; +import java.util.stream.Collectors; + +/** + * 堆垛机点位至行架点位任务(出库) + * Created by Lxy on 2021/12/22. + */ +@Service +public class TwoOutHeapTask extends AbstractAcsTask { + private final String THIS_CLASS = TwoOutHeapTask.class.getName(); + + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + //任务表 + WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task"); + + JSONArray taskArr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); + + ArrayList resultList = new ArrayList<>(); + + for (int i = 0; i < taskArr.size(); i++) { + JSONObject json = taskArr.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")) + .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_code")) + .interaction_json(json.getJSONObject("request_param")) + .priority(json.getString("priority")) + .class_type(json.getString("task_type")) + .dtl_type(String.valueOf(dtl_type)) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + + // 更新任务为下发 + JSONObject paramMap = new JSONObject(); + paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode()); + wo_Task.update(paramMap, "task_id ='" + json.getString("task_id") + "'"); + } + return resultList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateTaskStatus(JSONObject taskObj, String status) { + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 + + String task_id = taskObj.getString("task_id"); + JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0); + + if (ObjectUtil.isNotEmpty(jsonTask)) { + if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { + // 任务为执行之后就不允许取消 + if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { + throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消"); + } + + // 更新删除字段 + jsonTask.put("is_delete", "1"); + jsonTask.put("update_time", DateUtil.now()); + taskTab.update(jsonTask); + } + + if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + // 更新任务状态为执行中 + jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); + jsonTask.put("update_time", DateUtil.now()); + taskTab.update(jsonTask); + + } + + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + // 更新任务完成 + jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); + jsonTask.put("update_time", DateUtil.now()); + taskTab.update(jsonTask); + + // 下发桁架任务:捆扎 + JSONObject jsonParam = new JSONObject(); + jsonParam.put("device_code",jsonTask.getString("point_code2")); + jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code")); + + LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); + bean1.createLashTask(jsonParam); + + } + } + + } + + @Override + public void findStartPoint() { + + } + + @Override + public void findNextPoint() { + + } + + @Override + public String createTask(JSONObject form) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + + 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_name", form.getString("task_name")); + json.put("point_code1", form.getString("point_code1")); + json.put("point_code2", form.getString("point_code2")); + json.put("material_id", form.getString("material_id")); + json.put("task_group_id", form.getString("task_group_id")); + json.put("is_auto_issue", form.getString("is_auto_issue")); + json.put("table_fk", form.getString("table_fk")); + json.put("request_param", form.getString("request_param")); + json.put("sort_seq", form.getIntValue("sort_seq")); + + json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + json.put("handle_class", THIS_CLASS); + json.put("create_id", currentUserId); + json.put("create_name", currentUsername); + json.put("create_time", DateUtil.now()); + 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.IS_NOTANDYES.code("否")); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java index 43c8da7f6..0ac8617e2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java @@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -47,18 +48,44 @@ public class TwoOutTask extends AbstractAcsTask { map.put("flag", "1"); map.put("handle_class", THIS_CLASS); + // 未下发的出库任务 List arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' order by sort_seq") .getResultJSONArray(0).toJavaList(JSONObject.class); - // 根据任务组分组 + // 未下发的任务根据任务组进行分组 Map> groupMap = arr.stream() .collect(Collectors.groupingBy(row -> row.getString("task_group_id"))); + // 需要下发的集合 List taskArr = new ArrayList<>(); + // 用于判断下发几个任务组 + int flag = 2; + + // 判断当前正在执行或者下发的任务有几种规格:根据任务组进行判断,同一任务组代表同一木箱规格 + List likeAllArr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status IN ('05','06') and is_delete = '0' " ) + .getResultJSONArray(0).toJavaList(JSONObject.class); + + Map> likeArr = likeAllArr.stream() + .collect(Collectors.groupingBy(row -> row.getString("task_group_id"))); + + // 判断长度 + if (likeArr.size() >= 2) { + return null; + } + + if (likeArr.size() == 1) { + flag = 1; + } + + // 组织需要下发的任务 for(String task_group_id : groupMap.keySet()) { - taskArr = groupMap.get(task_group_id); - continue; + taskArr.addAll(groupMap.get(task_group_id)); + flag -= 1; + + if (flag == 0) { + break; + } } ArrayList resultList = new ArrayList<>(); @@ -101,7 +128,7 @@ public class TwoOutTask extends AbstractAcsTask { if (ObjectUtil.isNotEmpty(jsonTask)) { if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { // 任务为执行之后就不允许取消 - if (jsonTask.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) { + if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消"); } @@ -135,13 +162,14 @@ public class TwoOutTask extends AbstractAcsTask { JSONArray resultJSONArray = taskTab.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'") .getResultJSONArray(0); - // 下发桁架任务:捆扎 + // 下发堆垛机至行架任务(2个行架位) JSONObject jsonParam = new JSONObject(); jsonParam.put("device_code",jsonTask.getString("point_code2")); jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code")); + jsonParam.put("vehicle_type",jsonTask.getString("vehicle_type")); LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); - bean1.createLashTask(jsonParam); + bean1.createHeapTask(jsonParam); if (ObjectUtil.isEmpty(resultJSONArray)) { this.immediateNotifyAcs(null); @@ -173,6 +201,7 @@ public class TwoOutTask extends AbstractAcsTask { 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_name", form.getString("task_name")); json.put("point_code1", form.getString("point_code1")); json.put("point_code2", form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java index 4190e5649..36f0d4712 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java @@ -94,8 +94,12 @@ public enum IOSEnum { // 区域 PRODUCT_AREA(MapOf.of("BLK", "BLK")), - // 出库口点位 - OUT_POINT(MapOf.of("出库口1", "CK2026","出库口2", "CK2027")), + // 出库堆垛机点位 + OUT_POINT(MapOf.of("1","CK2036", "2","CK2038", "3","CK2040", "4","CK2042" ,"5","CK2044", + "6","CK2046", "7","7", "8","8", "9","9", "10","10")), + + // 行架点位 + OUT_HANGER(MapOf.of("行架位1", "CK2026","行架位2", "CK2027")), //acs申请任务 ACSTOLMS_TYPE(MapOf.of("成品入库任务", "1","空盘入库","2","空盘出库","3","异常处理位","4","木箱入库","5","退货入库","6","贴标","1","捆扎","2")), diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 0da224599..8840a56dc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -1223,32 +1223,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl i) { - end_device_code = IOSEnum.OUT_POINT.code("出库口1"); - } else { - end_device_code = IOSEnum.OUT_POINT.code("出库口2"); - } - } - JSONObject json = taskMangeList.get(i); + + // 确定起点 start_device_code = json.getString("struct_code"); + // 确定终点: 根据仓位所在排确定终点 + String end_device_code = IsEndCode(json); + // 过滤此仓位的分配明细 List disDaoList = disLikeList.stream() .filter(row -> row.getString("struct_code").equals(json.getString("struct_code"))) @@ -1294,6 +1278,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); @@ -1331,6 +1320,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl executeArr = WQLObject.getWQLObject("SCH_BASE_Task") + .query("handle_class = '" + TwoOutHeapTask.class.getName() + "' and task_status IN ('05','06') and is_delete = '0' " ) + .getResultJSONArray(0).toJavaList(JSONObject.class); + + // 根据终点点位进行分组 + Map> groupPointMap = executeArr.stream() + .collect(Collectors.groupingBy(row -> row.getString("point_code2"))); + + // 终点 + String next_device_code = IOSEnum.OUT_HANGER.code("行架位1"); + + List heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>()); + List heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>()); + + if (heapOne.size() > heapTwo.size()) { + next_device_code = IOSEnum.OUT_HANGER.code("行架位2"); + } + + // 创建任务并下发 + JSONObject jsonTaskParam = new JSONObject(); + jsonTaskParam.put("task_type", "010720"); + jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type")); + jsonTaskParam.put("point_code1", whereJson.getString("device_code")); + jsonTaskParam.put("point_code2", next_device_code); + jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); + jsonTaskParam.put("request_param", whereJson); + + TwoOutHeapTask bean = SpringContextHolder.getBean(TwoOutHeapTask.class); + bean.createTask(jsonTaskParam); + bean.immediateNotifyAcs(null); + } + @Override public JSONObject applyTab(JSONObject whereJson) { // 载具扩展属性表 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java index 87c4c8676..0d86dce68 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java @@ -13,7 +13,7 @@ import com.alibaba.fastjson.JSONObject; public interface LashManageService { /** - * 创建桁架任务 + * 创建 桁架-捆扎位任务 * @param whereJson { * device_code:起点 * vehicle_code: 箱号 @@ -22,6 +22,17 @@ public interface LashManageService { */ void createLashTask(JSONObject whereJson); + /** + * 创建 堆垛机点位-桁架任务 + * @param whereJson { + * device_code:起点 + * vehicle_code: 箱号 + * vehicle_type: 载具类型 + * + * } + */ + void createHeapTask(JSONObject whereJson); + /** * 申请是否贴标 * @param whereJson { diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index 4660bf3da..b76544087 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -158,7 +158,7 @@ disabled /> - + - 是否异常出库 + 是否异常出库 @@ -200,6 +200,7 @@ type="warning" icon="el-icon-check" size="mini" + v-if="mstrow.stor_id !== '1582991156504039455'" :disabled="button4" @click="oneSetPoint2" > @@ -212,6 +213,7 @@ type="warning" icon="el-icon-check" :disabled="button5" + v-if="mstrow.stor_id !== '1582991156504039455'" size="mini" @click="allSetPoint" > From a66c01549a493d50ba6e5a58bf2b329132f54b2a Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 14 Jun 2024 14:14:35 +0800 Subject: [PATCH 2/5] =?UTF-8?q?rev=EF=BC=9A=E4=BB=A3=E7=A0=81=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ios/service/iostorInv/util/impl/LashManageServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index be90639cb..3a8c61959 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -208,6 +208,7 @@ public class LashManageServiceImpl implements LashManageService { List heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>()); List heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>()); + if (heapOne.size() > heapTwo.size()) { next_device_code = IOSEnum.OUT_HANGER.code("行架位2"); } From 248746de38419abfda89c57ebb9d932520529cf5 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Fri, 14 Jun 2024 14:58:06 +0800 Subject: [PATCH 3/5] =?UTF-8?q?opt:6.15=E4=B8=8A=E7=BA=BF=E8=A3=85?= =?UTF-8?q?=E7=AE=B1=E5=8C=BA=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 391 +++++++++++------- .../service/IbstIvtPackageinfoivtService.java | 2 +- .../impl/BstIvtPackageinfoivtServiceImpl.java | 48 ++- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 37 +- .../sch/tasks/first_floor_area/DjqTask.java | 24 +- .../tasks/first_floor_area/KzjhcwTask.java | 40 +- .../sch/tasks/first_floor_area/MzhcwTask.java | 31 ++ .../sch/tasks/first_floor_area/ZxDjwTask.java | 2 +- .../sch/tasks/first_floor_area/ZxqTask.java | 156 +++---- .../auto/AutoSendMzToDjq.java | 16 +- .../first_floor_area/auto/AutoSendToZxq.java | 24 +- .../auto/AutoSendVehicleToDjq.java | 6 +- .../auto/AutoSendVehicleToKz.java | 4 +- .../auto/AutoSendZxToDjw.java | 206 +++++++++ .../util/impl/InBussManageServiceImpl.java | 9 +- .../nl/common/enums/PackageInfoIvtEnum.java | 2 +- .../java/org/nl/config/WebSocketConfig.java | 8 +- .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 375808 -> 336384 bytes .../src/views/wms/pdm/sub/MaterDialog.vue | 2 +- 19 files changed, 727 insertions(+), 281 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index e899a8eac..a088964a9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -17,10 +17,10 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; -import org.nl.b_lms.sch.tasks.first_floor_area.ZxDjwTask; -import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; +import org.nl.b_lms.sch.tasks.first_floor_area.*; import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueueManager; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; +import org.nl.common.enums.ContainerLevelEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -36,6 +36,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; /** @@ -47,25 +48,39 @@ import java.util.stream.Collectors; @Service("pdmBiSubpackagerelationService") public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl implements IpdmBiSubpackagerelationService { - @Resource private ZxqTask zxqTask; @Resource private ZxDjwTask zxDjwTask; @Resource - private OutBoxManageService outBoxManageService; + private ISysParamService iSysParamService; + @Resource - private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + private DjqTask djqTask; + @Resource + private GzqTask gzqTask; + + @Resource + private KzjhcwTask kzjhcwTask; + + @Resource + private OutBoxManageService outBoxManageService; + @Resource private IbstIvtPackageinfoivtService packageinfoivtService; @Resource private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + + + @Resource + private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + + @Resource private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper; - @Resource - private ISysParamService iSysParamService; + /** * 查询数据分页 * @@ -148,9 +163,191 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl待检 + //mzToDj(); + + //待检->装箱 + // djToZx(); + + //下发桁架任务1 + //transferToPacking1(); + + //下发桁架任务2 + //transferToPacking2(); + + return pdmBiSubpackagerelationList; } + /** + * 满轴->待检 + */ + public void mzToDj() { + //子卷号 + String containerName = "A1382211300106C8"; + //起点 + String pointCode1 = "ZXQ_01"; + //查询库位信息 + List bstIvtPackageinfoivtList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + JSONObject toDjqTask = new JSONObject(); + //获取子卷号 + toDjqTask.put("vehicle_code", containerName); + List djqPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(djqPointList)) { + toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); + toDjqTask.put("point_code1", pointCode1); + toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); + djqTask.createTask(toDjqTask); + } + + + } + + /** + * 待检->装箱 + */ + public void djToZx() { + //子卷号 + String containerName = ""; + //起点 + String pointCode1 = ""; + //木箱 + String boxSn = ""; + //装箱区点位 + List zxqPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")) + //装箱区1 + .eq(BstIvtPackageinfoivt::getBlock, "1") + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + if (CollectionUtils.isNotEmpty(zxqPointList)) { + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + jo.put("vehicle_code", containerName); + jo.put("point_code1", pointCode1); + //木箱号 + jo.put("vehicle_code2", boxSn); + jo.put("point_code2", zxqPointList.get(0).getPoint_code()); + zxqTask.createTask(jo); + } + + } + + /** + * 空木箱出库 + */ + private void outBox1() { + JSONObject boxInfo = new JSONObject(); + boxInfo.put("device_code", "ZXQ_1_1"); + boxInfo.put("material_code", "MX61103"); + //子卷个数 + boxInfo.put("num", "1"); + String boxSn = outBoxManageService.outBox(boxInfo); + if (StringUtils.isBlank(boxSn)) { + throw new BadRequestException("库位 -> 装箱对接位,木箱码不能为空!"); + } + } + + + private void transferToPacking1() { + JSONObject jo = new JSONObject(); + //子卷号 + String containerName = "A1652211050505A2"; + //获取纸管长度 + String frpDescription = "1300"; + //获取木箱高度等级 + String height = "730"; + //起点 + String point_code1 = "ZXQ_1_9"; + //终点 + String point_code2 = "ZXQ_1_1"; + //托盘类型 1小托盘 2大托盘 + String containerType = "2"; + //木箱高度等级 + String heightLevel = ""; + String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); + String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); + if (Integer.parseInt(height) <= Integer.parseInt(heightLevel1)) { + heightLevel = "1"; + } else if (Integer.parseInt(height) > Integer.parseInt(heightLevel1) && Integer.parseInt(height) <= Integer.parseInt(heightLevel2)) { + heightLevel = "2"; + } else { + heightLevel = "3"; + } + jo.put("point_code1", point_code1); + jo.put("point_code2", point_code2); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); + jo.put("vehicle_code", containerName); + jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + jo.put("is_send", "1"); + JSONObject param = new JSONObject(); + //木箱最大数量 + param.put("maxNo", "1"); + //木箱放入子卷数量 + param.put("boxNo", "1"); + //是否最后子卷 + param.put("lastOne", "1"); + //子卷号 + param.put("barcode", containerName); + //子卷长度 + param.put("len", frpDescription); + //木箱高度等级 + param.put("heightLevel", heightLevel); + //托盘类型 1小托盘 2大托盘 + param.put("containerType", containerType); + jo.put("request_param", param.toString()); + zxDjwTask.createTask(jo); + } + + /** + * 装箱区->装箱对接位桁架任务2 + */ + + public void transferToPacking2() { + //下发装箱区->装箱对接位桁架任务 + JSONObject jo = new JSONObject(); + //子卷号 + String containerName = ""; + //获取纸管长度 + String frpDescription = ""; + //起点 + String point_code1 = "ZXQ_1_8"; + //终点 + String point_code2 = "ZXQ_1_1"; + jo.put("point_code1", point_code1); + jo.put("point_code2", point_code2); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); + jo.put("vehicle_code", containerName); + jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + jo.put("is_send", "1"); + JSONObject param = new JSONObject(); + //木箱最大数量 + param.put("maxNo", "1"); + //木箱放入子卷数量 + param.put("boxNo", "1"); + //是否最后子卷 + param.put("lastOne", "1"); + //子卷号 + param.put("barcode", containerName); + //子卷长度 + param.put("len", frpDescription); + //托盘类型 1小托盘 2大托盘 + param.put("containerType", "1"); + jo.put("request_param", param.toString()); + zxDjwTask.createTask(jo); + } /** * 创建 @@ -214,90 +411,12 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList, List packagerelationList, String boxType) { - JSONObject boxInfo = new JSONObject(); - boxInfo.put("device_code", "ZXQ_2_1"); - boxInfo.put("material_code", "MX6510"); - //String workorderId = "1597797877554483219"; - //子卷个数 - boxInfo.put("num", "1"); - String boxSn = outBoxManageService.outBox(boxInfo); - if (StringUtils.isBlank(boxSn)) { - throw new BadRequestException("库位 -> 装箱对接位,木箱码不能为空!"); - } - //更新子卷包装关系更新木箱号 - // UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); - // updateWrapper1.set("package_box_sn", boxSn); - // updateWrapper1.eq("workorder_id", workorderId); - // pdmBiSubpackagerelationMapper.update(null, updateWrapper1); - } - - - - - private void transferToPacking1(List packagerelationList) { - JSONObject jo = new JSONObject(); - //子卷号 - String containerName = "A1652211050505A2"; - //获取纸管长度 - String frpDescription = "1300"; - //获取木箱高度等级 - String height = "730"; - //起点 - String point_code1 = "ZXQ_1_9"; - //终点 - String point_code2 = "ZXQ_1_1"; - //托盘类型 1小托盘 2大托盘 - String containerType = "2"; - //木箱高度等级 - String heightLevel = ""; - String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); - String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); - if (Integer.parseInt(height) <= Integer.parseInt(heightLevel1)) { - heightLevel = "1"; - } else if (Integer.parseInt(height) > Integer.parseInt(heightLevel1) && Integer.parseInt(height) <= Integer.parseInt(heightLevel2)) { - heightLevel = "2"; - } else { - heightLevel = "3"; - } - jo.put("point_code1", point_code1); - jo.put("point_code2", point_code2); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); - jo.put("vehicle_code", containerName); - jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - jo.put("is_send", "1"); - JSONObject param = new JSONObject(); - //木箱最大数量 - param.put("maxNo", "1"); - //木箱放入子卷数量 - param.put("boxNo", "1"); - //是否最后子卷 - param.put("lastOne", "1"); - //子卷号 - param.put("barcode", containerName); - //子卷长度 - param.put("len", frpDescription); - //木箱高度等级 - param.put("heightLevel", heightLevel); - //托盘类型 1小托盘 2大托盘 - param.put("containerType", containerType); - jo.put("request_param", param.toString()); - zxDjwTask.createTask(jo); - } - - /** * 空木箱出库 @@ -353,7 +472,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl装箱区agv任务 - agvTransfer(packagerelationList, deviceCode, boxSn); + //agvTransfer(packagerelationList, deviceCode, boxSn); } @@ -361,6 +480,46 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl装箱区agv任务 */ private void agvTransfer(List packagerelationList, String deviceCode, String boxSn) { + //待检区点位 + List djqPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + //todo 暂时改为合格品 + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("合格品")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + Set containerNames = packagerelationList.stream() + .map(PdmBiSubpackagerelation::getContainer_name) + .collect(Collectors.toSet()); + List djqPoints = djqPointList.stream() + .filter(djqPoint -> containerNames.contains(djqPoint.getContainer_name())) + .collect(Collectors.toList()); + //下发agv任务 + djqPoints.forEach(r -> { + //装箱区点位 + List zxqPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")) + .eq(BstIvtPackageinfoivt::getBlock, deviceCode.substring(deviceCode.indexOf("_") + 1)) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + jo.put("vehicle_code", r.getContainer_name()); + jo.put("point_code1", r.getPoint_code()); + //木箱号 + jo.put("vehicle_code2", boxSn); + if (CollectionUtils.isEmpty(zxqPointList)) { + throw new BadRequestException("装箱区点位已满!"); + } + jo.put("point_code2", zxqPointList.get(0).getPoint_code()); + zxqTask.createTask(jo); + }); + } + + + private void agvTransfer1(List packagerelationList, String deviceCode, String boxSn) { //待检区点位 List djqPointList = packageinfoivtService .list(new LambdaUpdateWrapper() @@ -375,8 +534,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl containerNames.contains(djqPoint.getContainer_name())) .collect(Collectors.toList()); //任务组id - String groupId =deviceCode.substring(deviceCode.indexOf("_") + 1); - List schBaseTaskList =new ArrayList<>(); + String groupId = deviceCode.substring(deviceCode.indexOf("_") + 1); + List schBaseTaskList = new ArrayList<>(); //确定起点,安装装箱组标识加入任务队列 djqPoints.forEach(r -> { JSONObject jo = new JSONObject(); @@ -389,58 +548,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList) { - //下发装箱区->装箱对接位桁架任务 - JSONObject jo = new JSONObject(); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); - //todo 测试,装箱点位-1-1 - jo.put("point_code1", "ZXQ_1_8"); - //todo 测试,装箱对接位01 - jo.put("point_code2", "ZXQ_1_1"); - jo.put("vehicle_code", packagerelationList.get(0).getContainer_name()); - jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - jo.put("is_send", "1"); - List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, packagerelationList.get(0).getContainer_name())); - if (productionPlanList.isEmpty()) { - throw new BadRequestException("该子卷暂无分切计划信息"); - } - //获取纸管长度 - String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description(); - int maxNum = 0; - for (String part : containerLength.split("\\|")) { - String numStr = part.replaceAll("\\D+", ""); - if (!numStr.isEmpty()) { - int num = Integer.parseInt(numStr); - if (num > maxNum) { - maxNum = num; - } - } - } - //todo 测试,扩展参数 - JSONObject param = new JSONObject(); - //木箱最大数量 - param.put("maxNo", "1"); - //木箱放入子卷数量 - param.put("boxNo", "1"); - //是否最后子卷 - param.put("lastOne", "1"); - //子卷号 - param.put("barcode", packagerelationList.get(0).getContainer_name()); - //子卷长度 - //param.put("len", maxNum); - param.put("len", maxNum); - //托盘类型 1小托盘 2大托盘 - param.put("containerType", "1"); - jo.put("request_param", param.toString()); - zxDjwTask.createTask(jo); + TaskQueueManager taskQueueManager = new TaskQueueManager(); + taskQueueManager.addTasksToQueue(deviceCode, schBaseTaskList); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java index 7dcabe2df..4fbb0c6e5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java @@ -37,7 +37,7 @@ public interface IbstIvtPackageinfoivtService extends IService */ - List checkEndPointTask(String ivtType, String ivtStatus, String pointCode,String taskType); + List checkEndPointTask(String ivtType, String ivtStatus, String pointCode); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index e1634621c..26fca6c38 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.b_lms.sch.point.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.apache.commons.collections4.CollectionUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; @@ -41,11 +42,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl checkEndPointTask(String ivtType, String ivtStatus, String pointCode,String taskType) { - List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper + public List checkEndPointTask(String ivtType, String ivtStatus, String pointCode) { + List packageinfoivtList = bstIvtPackageinfoivtMapper .selectList(new LambdaUpdateWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) .eq(BstIvtPackageinfoivt::getPoint_status, ivtType) .eq(BstIvtPackageinfoivt::getIvt_status, ivtStatus) .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); - if (pointCode.equals("1")) { - List taskList = taskService.list(new LambdaUpdateWrapper() - //起点未完成任务 - .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) - .eq(SchBaseTask::getTask_type, taskType) - .and( - r -> r.in(SchBaseTask::getPoint_code1, bstIvtPackageinfoivtList) - )); - return bstIvtPackageinfoivtList.stream().filter(r -> !taskList.stream().map(SchBaseTask::getPoint_code1).collect(Collectors.toSet()).contains(r.getPoint_code())).collect(Collectors.toList()); + Set pointIds = packageinfoivtList.stream().map(BstIvtPackageinfoivt::getPoint_code).collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(pointIds)) { + if (pointCode.equals("1")) { + List taskList = taskService.list(new LambdaUpdateWrapper() + //起点未完成任务 + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .and( + r -> r.in(SchBaseTask::getPoint_code1, pointIds) + )); + return packageinfoivtList.stream().filter(r -> !taskList.stream().map(SchBaseTask::getPoint_code1).collect(Collectors.toSet()).contains(r.getPoint_code())).collect(Collectors.toList()); + } else { + List taskList = taskService.list(new LambdaUpdateWrapper() + //终点未完成任务 + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .and( + r -> r.in(SchBaseTask::getPoint_code2, pointIds) + )); + return packageinfoivtList.stream().filter(r -> !taskList.stream().map(SchBaseTask::getPoint_code2).collect(Collectors.toSet()).contains(r.getPoint_code())).collect(Collectors.toList()); + } } else { - List taskList = taskService.list(new LambdaUpdateWrapper() - //终点未完成任务 - .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) - .eq(SchBaseTask::getTask_type, taskType) - .and( - r -> r.in(SchBaseTask::getPoint_code2, bstIvtPackageinfoivtList) - )); - return bstIvtPackageinfoivtList.stream().filter(r -> !taskList.stream().map(SchBaseTask::getPoint_code2).collect(Collectors.toSet()).contains(r.getPoint_code())).collect(Collectors.toList()); + return null; } } - /** * 创建 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java index cef07db52..8b38d44e3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java @@ -5,18 +5,30 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.apache.commons.collections4.CollectionUtils; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.common.enums.PackageInfoIvtEnum; 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.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import static org.nl.common.enums.PackageInfoIvtEnum.IVT_STATUS; import static org.nl.wms.util.TaskUtil.getRoutePlanCode; /** @@ -30,6 +42,9 @@ public class TwoOutBoxTask extends AbstractAcsTask { */ private final String THIS_CLASS = TwoOutBoxTask.class.getName(); + @Autowired + private IbstIvtPackageinfoivtService packageinfoivtService; + @Override public List addTask() { /* @@ -67,6 +82,10 @@ public class TwoOutBoxTask extends AbstractAcsTask { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + + // 仓位表 + WQLObject packageinfoivt = WQLObject.getWQLObject("bst_ivt_packageinfoivt"); + // 任务表 WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); @@ -89,11 +108,20 @@ public class TwoOutBoxTask extends AbstractAcsTask { 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",""); + jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); + jsonAttr.put("storagevehicle_code", ""); attrTab.update(jsonAttr); + //更新木箱信息 + JSONObject packageInfo = packageinfoivt.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); + packageInfo.put("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + packageInfo.put("container_name",jsonTask.getString("vehicle_code")); + packageinfoivt.update(packageInfo); + //更新木箱信息 + // packageinfoivtService.update(new LambdaUpdateWrapper() + // .eq(BstIvtPackageinfoivt::getPoint_code, jsonTask.getString("point_code2")) + // .set(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")) + // .set(BstIvtPackageinfoivt::getContainer_name, jsonTask.getString("vehicle_code"))); } - // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { if (taskObj.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) { @@ -103,7 +131,7 @@ public class TwoOutBoxTask extends AbstractAcsTask { 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("未锁定")); + jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); attrTab.update(jsonAttr); } map.put("update_optid", SecurityUtils.getCurrentUserId()); @@ -112,6 +140,7 @@ public class TwoOutBoxTask extends AbstractAcsTask { WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'"); } + @Override public void findStartPoint() { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index 0443bbe3d..489b475d9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dto.SchBaseTaskVO; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueueManager; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; @@ -30,7 +31,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 4 目标待检区, 满轴缓存位 -> 待检区,agv任务 @@ -101,7 +105,7 @@ public class DjqTask extends AbstractAcsTask { packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //3更新库存记录 //todo 暂时改为质检合格品 - packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); + packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); //4.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务 List taskList = taskService.list(new LambdaQueryWrapper() //确定起点未下发 @@ -121,6 +125,9 @@ public class DjqTask extends AbstractAcsTask { //任务下发 mzhcwTask.immediateNotifyAcs(task.getTask_id().toString()); } + //5搬运装箱区 + //sendDjqToZxq(schBaseTask); + } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -185,7 +192,20 @@ public class DjqTask extends AbstractAcsTask { return task.getTask_id(); } - + public void sendDjqToZxq(SchBaseTask schBaseTask) { + //装箱区有空位 + List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2"); + if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { + Map> ivtList = bstIvtPackageinfoivtList.stream() + .collect(Collectors.groupingBy( + BstIvtPackageinfoivt::getPoint_code, + LinkedHashMap::new, + Collectors.mapping(BstIvtPackageinfoivt::getPoint_name, Collectors.toList()) + )); + TaskQueueManager taskQueueManager =new TaskQueueManager(); + taskQueueManager.processTasks(ivtList); + } + } @Override public void forceFinish(String taskId) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java index 862c84cb5..d438daa5a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java @@ -28,6 +28,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -142,9 +143,9 @@ public class KzjhcwTask extends AbstractAcsTask { throw new BadRequestException("业务类型不能为空"); } String vehicleCode = form.getString("vehicle_code"); - if (StrUtil.isBlank(vehicleCode)) { - throw new BadRequestException("载具号不能为空"); - } + // if (StrUtil.isBlank(vehicleCode)) { + // throw new BadRequestException("载具号不能为空"); + // } String pointCode1 = form.getString("point_code1"); if (StrUtil.isBlank(pointCode1)) { throw new BadRequestException("起点不能为空"); @@ -214,9 +215,9 @@ public class KzjhcwTask extends AbstractAcsTask { /** * 装箱区->空载具缓存位补空 */ - public void toKzjHcw(String pointCode) { + public void toKzjHcw1(String pointCode) { //存在空载具缓存位无空载具的点位 - List kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"), "2", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区或管制区->空载具缓存位)")); + List kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"), "2"); String pointCode1 = null; JSONObject toKzjHcwTask = new JSONObject(); if (StringUtils.isNotBlank(pointCode)) { @@ -251,4 +252,33 @@ public class KzjhcwTask extends AbstractAcsTask { } } } + + public void toKzjHcw(String pointCode) { + //存在空载具缓存位无空载具的点位 + List kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"), "2"); + String pointCode1 = null; + JSONObject toKzjHcwTask = new JSONObject(); + if (StringUtils.isNotBlank(pointCode)) { + pointCode1 = pointCode; + } else { + //查询装箱区有空载具 + List zxqPointList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "1"); + //装箱区有空载具 + if (CollectionUtils.isNotEmpty(zxqPointList)) { + pointCode1 = zxqPointList.get(0).getPoint_code(); + } else { + //待检区有空载具 + List djqPointList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "1"); + pointCode1 = djqPointList.get(0).getPoint_code(); + } + } + //去装箱区搬运空载具 + if (CollectionUtils.isNotEmpty(kzjIvtList) && pointCode1 != null) { + toKzjHcwTask.put("point_code1", pointCode1); + //送到到任意空载具缓存位 + toKzjHcwTask.put("point_code2", kzjIvtList.get(0).getPoint_code()); + toKzjHcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区或管制区->空载具缓存位)")); + this.createTask(toKzjHcwTask); + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index d178935da..0c5e6cfe7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java @@ -75,6 +75,7 @@ public class MzhcwTask extends AbstractAcsTask { private SsxDjwTask ssxDjwTask; + @Override public List addTask() { ArrayList resultList = new ArrayList<>(); @@ -211,6 +212,36 @@ public class MzhcwTask extends AbstractAcsTask { } private void createTaskToDjq(SchBaseTask schBaseTask) { + if (StringUtils.isBlank(schBaseTask.getVehicle_code())) { + throw new BadRequestException("子卷号不能为空!"); + } + PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() + .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); + if (containerInfo == null) { + throw new BadRequestException("找不到子卷信息!"); + } + //查询库位信息 + List bstIvtPackageinfoivtList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + JSONObject toDjqTask = new JSONObject(); + //获取子卷号 + toDjqTask.put("vehicle_code", schBaseTask.getVehicle_code()); + List djqPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status()) && r.getIs_used().equals(PackageInfoIvtEnum.IS_USED.code("启用"))).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(djqPointList)) { + throw new BadRequestException("待检区暂无空余库位!"); + } + toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); + toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); + toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); + djqTask.createTask(toDjqTask); + } + + + private void createTaskToDjq1(SchBaseTask schBaseTask) { if (StringUtils.isBlank(schBaseTask.getVehicle_code())) { throw new BadRequestException("子卷号不能为空!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index 6e5952590..52646a7aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -136,7 +136,7 @@ public class ZxDjwTask extends AbstractAcsTask { bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo); } //创建装箱区->空载具缓存位补空任务 - kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1()); + //kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1()); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 746da5acc..c9cd97335 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -183,82 +183,7 @@ public class ZxqTask extends AbstractAcsTask { //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); //3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务,否,什么都不做 - PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService - .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); - if (pdmBiSubpackagerelation != null) { - //查询目标点位信息 - BstIvtPackageinfoivt zxqPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper().eq(BstIvtPackageinfoivt::getPoint_code, schBaseTask.getPoint_code2())); - //查询装箱对接位的木箱号和区域与子卷对应的木箱号与区域是否匹配 - BstIvtPackageinfoivt zxdjwPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper() - .eq(BstIvtPackageinfoivt::getContainer_name, pdmBiSubpackagerelation.getPackage_box_sn()).eq(BstIvtPackageinfoivt::getBlock, zxqPoint.getBlock())); - if (zxdjwPoint != null) { - //创建搬运任务到装箱位 - JSONObject jo = new JSONObject(); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); - jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - jo.put("point_code1", schBaseTask.getPoint_code2()); - jo.put("point_code2", zxdjwPoint.getPoint_code()); - jo.put("vehicle_code", schBaseTask.getVehicle_code()); - jo.put("is_send", "1"); - List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); - if (productionPlanList.isEmpty()) { - throw new BadRequestException("该子卷暂无分切计划信息"); - } - //获取纸管长度 - String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description(); - int maxNum = 0; - for (String part : containerLength.split("\\|")) { - String numStr = part.replaceAll("\\D+", ""); - if (!numStr.isEmpty()) { - int num = Integer.parseInt(numStr); - if (num > maxNum) { - maxNum = num; - } - } - } - //扩展参数 - JSONObject param = new JSONObject(); - //获取木箱信息,未包装的木箱 - BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).eq(BstIvtBoxinfo::getIs_packing, null)); - if (bstIvtBoxinfo == null) { - throw new BadRequestException("找不到木箱信息!"); - } - //获取木箱高度等级 - String height = ""; - String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); - String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); - String box_high = bstIvtBoxinfo.getBox_high(); - if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { - height = "1"; - } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "2"; - } else { - height = "3"; - } - //木箱高度等级 - param.put("heightLevel", height); - //木箱最大数量 - param.put("maxNo", bstIvtBoxinfo.getNum()); - //托盘类型 1小托盘 2大托盘 - param.put("containerType", bstIvtBoxinfo.getVehicle_type()); - //查询是否为最后一个子卷,相同木箱号且状态为生成 - List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0")); - if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) { - //最后子卷 - param.put("lastOne", "1"); - } else { - param.put("lastOne", "0"); - } - //木箱放入子卷数量 - param.put("boxNo", pdmBiSubpackagerelation.getQuanlity_in_box()); - //子卷号 - param.put("barcode", schBaseTask.getVehicle_code()); - //子卷长度 - param.put("len", maxNum); - jo.put("request_param", param.toString()); - zxDjwTask.createTask(jo); - } - } + //zxqToZxw(schBaseTask); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -275,6 +200,85 @@ public class ZxqTask extends AbstractAcsTask { } + private void zxqToZxw(SchBaseTask schBaseTask) { + PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService + .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); + if (pdmBiSubpackagerelation != null) { + //查询目标点位信息 + BstIvtPackageinfoivt zxqPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper().eq(BstIvtPackageinfoivt::getPoint_code, schBaseTask.getPoint_code2())); + //查询装箱对接位的木箱号和区域与子卷对应的木箱号与区域是否匹配 + BstIvtPackageinfoivt zxdjwPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getContainer_name, pdmBiSubpackagerelation.getPackage_box_sn()).eq(BstIvtPackageinfoivt::getBlock, zxqPoint.getBlock())); + if (zxdjwPoint != null) { + //创建搬运任务到装箱位 + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); + jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + jo.put("point_code1", schBaseTask.getPoint_code2()); + jo.put("point_code2", zxdjwPoint.getPoint_code()); + jo.put("vehicle_code", schBaseTask.getVehicle_code()); + jo.put("is_send", "1"); + List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); + if (productionPlanList.isEmpty()) { + throw new BadRequestException("该子卷暂无分切计划信息"); + } + //获取纸管长度 + String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description(); + int maxNum = 0; + for (String part : containerLength.split("\\|")) { + String numStr = part.replaceAll("\\D+", ""); + if (!numStr.isEmpty()) { + int num = Integer.parseInt(numStr); + if (num > maxNum) { + maxNum = num; + } + } + } + //扩展参数 + JSONObject param = new JSONObject(); + //获取木箱信息,未包装的木箱 + BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).eq(BstIvtBoxinfo::getIs_packing, null)); + if (bstIvtBoxinfo == null) { + throw new BadRequestException("找不到木箱信息!"); + } + //获取木箱高度等级 + String height = ""; + String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); + String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); + String box_high = bstIvtBoxinfo.getBox_high(); + if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { + height = "1"; + } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { + height = "2"; + } else { + height = "3"; + } + //木箱高度等级 + param.put("heightLevel", height); + //木箱最大数量 + param.put("maxNo", bstIvtBoxinfo.getNum()); + //托盘类型 1小托盘 2大托盘 + param.put("containerType", bstIvtBoxinfo.getVehicle_type()); + //查询是否为最后一个子卷,相同木箱号且状态为生成 + List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0")); + if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) { + //最后子卷 + param.put("lastOne", "1"); + } else { + param.put("lastOne", "0"); + } + //木箱放入子卷数量 + param.put("boxNo", pdmBiSubpackagerelation.getQuanlity_in_box()); + //子卷号 + param.put("barcode", schBaseTask.getVehicle_code()); + //子卷长度 + param.put("len", maxNum); + jo.put("request_param", param.toString()); + zxDjwTask.createTask(jo); + } + } + } + @Override public String createTask(JSONObject form) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java index e7786b6c5..e40c80729 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendMzToDjq.java @@ -1,6 +1,7 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto; import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -16,6 +17,7 @@ import java.util.stream.Collectors; @Slf4j @Component +@RequiredArgsConstructor public class AutoSendMzToDjq { @Resource @@ -26,24 +28,20 @@ public class AutoSendMzToDjq { //满轴->待检区agv自动搬运任务 public void run() { - this.sendMzqToDjq(); + this.sendMzqToDjq(); } void sendMzqToDjq() { JSONObject toDjqTask =new JSONObject(); //满轴有子卷且没有未完成任务 - List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), "1", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); - if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { - List djqPointList = bstIvtPackageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) - && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status()) && r.getIs_used().equals(PackageInfoIvtEnum.IS_USED.code("启用"))).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(djqPointList)) { + List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), "1"); + List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), "2"); + if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)&&CollectionUtils.isNotEmpty(djqPackageinfoivtList)) { toDjqTask.put("vehicle_code", bstIvtPackageinfoivtList.get(0).getContainer_name()); toDjqTask.put("point_code1", bstIvtPackageinfoivtList.get(0).getPoint_code()); toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); - toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); + toDjqTask.put("point_code2", djqPackageinfoivtList.get(0).getPoint_code()); djqTask.createTask(toDjqTask); - } } } // void sendMzqToDjq() { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java index 692ae9c04..5b84dc70c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendToZxq.java @@ -1,9 +1,13 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask; +import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; import org.nl.common.enums.PackageInfoIvtEnum; import org.springframework.stereotype.Component; @@ -17,10 +21,13 @@ import java.util.stream.Collectors; @Slf4j @Component +@RequiredArgsConstructor public class AutoSendToZxq { @Resource private IbstIvtPackageinfoivtService packageinfoivtService; + @Resource + private ZxqTask zxqTask; //待检区->装箱区agv自动搬运任务 public void run() { @@ -28,8 +35,23 @@ public class AutoSendToZxq { } void sendDjqToZxq() { + JSONObject toDjqTask =new JSONObject(); + //待检区有子卷且没有未完成任务 + List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), "1"); + List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), "2"); + if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)&&CollectionUtils.isNotEmpty(zxqPackageinfoivtList)) { + toDjqTask.put("vehicle_code", djqPackageinfoivtList.get(0).getContainer_name()); + toDjqTask.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code()); + toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + toDjqTask.put("point_code2", zxqPackageinfoivtList.get(0).getPoint_code()); + zxqTask.createTask(toDjqTask); + } + } + + + void sendDjqToZxq1() { //装箱区有空位 - List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2",PackageInfoIvtEnum.IVT_STATUS.code("空")); + List bstIvtPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2"); if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { Map> ivtList = bstIvtPackageinfoivtList.stream() .collect(Collectors.groupingBy( diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java index b70b7f6a1..c889ba9ea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToDjq.java @@ -27,7 +27,7 @@ public class AutoSendVehicleToDjq { //装箱区->待检区送空agv自动搬运任务 public void run() { - this.sendKzjHcwEmptyVehicle(); + //this.sendKzjHcwEmptyVehicle(); } @@ -36,12 +36,12 @@ public class AutoSendVehicleToDjq { String pointCode1=null; String pointCode2; //待检区有空位 - List djqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2",PackageInfoIvtEnum.TASK_TYPE.code("送空(装箱区->待检区或管制区)")); + List djqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2"); if (CollectionUtils.isNotEmpty(djqList)) { pointCode2=djqList.get(0).getPoint_code(); }else{ //管制区有空位 - List zxqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2",PackageInfoIvtEnum.TASK_TYPE.code("送空(装箱区->待检区或管制区)")); + List zxqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空"),"2"); pointCode2=zxqList.get(0).getPoint_code(); } //查询装箱区有空载具 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKz.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKz.java index a6d66f08e..21284bcda 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKz.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKz.java @@ -1,5 +1,6 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.sch.tasks.first_floor_area.KzjhcwTask; import org.springframework.stereotype.Component; @@ -9,6 +10,7 @@ import javax.annotation.Resource; @Slf4j @Component +@RequiredArgsConstructor public class AutoSendVehicleToKz { @Resource @@ -19,7 +21,7 @@ public class AutoSendVehicleToKz { this.sendToKzjHcw(); } - //待检区->空轴缓存位送空agv自动搬运任务 + //待检区->空轴缓存位补空agv自动搬运任务 void sendToKzjHcw() { kzjhcwTask.toKzjHcw(""); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java new file mode 100644 index 000000000..0096ba319 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java @@ -0,0 +1,206 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask; +import org.nl.b_lms.sch.tasks.first_floor_area.ZxDjwTask; +import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; +import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.system.service.param.ISysParamService; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoSendZxToDjw { + + + @Resource + private ZxDjwTask zxDjwTask; + + + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + @Resource + private IpdmBiSubpackagerelationService subpackageRelationService; + + + @Resource + private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + @Resource + private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; + + @Resource + private ISysParamService iSysParamService; + + //满轴->待检区agv自动搬运任务 + public void run() { + this.sendZxToDjw(); + } + + void sendZxToDjw() { + List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), "1"); + List zxwPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), "2"); + if (CollectionUtils.isNotEmpty(zxqPackageinfoivtList) && CollectionUtils.isNotEmpty(zxwPackageinfoivtList)) { + //3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务,否,什么都不做 + PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService + .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, zxwPackageinfoivtList.get(0).getContainer_name()), false); + if (pdmBiSubpackagerelation == null) { + throw new BadRequestException("装箱位木箱号无对应子卷包装关系的木箱号!"); + } + String containerName = pdmBiSubpackagerelation.getContainer_name(); + String boxNo = zxwPackageinfoivtList.get(0).getContainer_name(); + List zxqPoint = zxqPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(zxqPoint)) { + throw new BadRequestException("装箱区暂无该子卷信息"); + } + List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); + if (productionPlanList.isEmpty()) { + throw new BadRequestException("该子卷暂无分切计划信息"); + } + //创建搬运任务到装箱位 + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); + jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + jo.put("point_code1", zxqPoint.get(0).getPoint_code()); + jo.put("point_code2", zxwPackageinfoivtList.get(0).getPoint_code()); + jo.put("vehicle_code", pdmBiSubpackagerelation.getContainer_name()); + jo.put("is_send", "1"); + //获取纸管长度 + String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description(); + int maxNum = 0; + for (String part : containerLength.split("\\|")) { + String numStr = part.replaceAll("\\D+", ""); + if (!numStr.isEmpty()) { + int num = Integer.parseInt(numStr); + if (num > maxNum) { + maxNum = num; + } + } + } + //扩展参数 + JSONObject param = new JSONObject(); + //获取木箱信息,未包装的木箱 + // BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no,boxNo).eq(BstIvtBoxinfo::getIs_packing, null)); + BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, boxNo)); + if (bstIvtBoxinfo == null) { + throw new BadRequestException("找不到木箱信息!"); + } + //获取木箱高度等级 + String height = ""; + String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); + String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); + String box_high = bstIvtBoxinfo.getBox_high(); + if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { + height = "1"; + } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { + height = "2"; + } else { + height = "3"; + } + //木箱高度等级 + param.put("heightLevel", height); + //木箱最大数量 + param.put("maxNo", bstIvtBoxinfo.getNum()); + //托盘类型 1小托盘 2大托盘 + param.put("containerType", bstIvtBoxinfo.getVehicle_type()); + //查询是否为最后一个子卷,相同木箱号且状态为生成 + // List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0")); + // if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(containerName)) { + // //最后子卷 + // param.put("lastOne", "1"); + // } else { + // param.put("lastOne", "0"); + // } + param.put("lastOne", "1"); + //木箱放入子卷数量 + //param.put("boxNo", pdmBiSubpackagerelation.getQuanlity_in_box()); + param.put("boxNo", "1"); + //子卷号 + param.put("barcode", containerName); + //子卷长度 + param.put("len", maxNum); + jo.put("request_param", param.toString()); + zxDjwTask.createTask(jo); + } + + } + + + // void sendMzqToDjq() { + // //满轴位有子卷 + // List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper + // .selectList(new LambdaUpdateWrapper() + // .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + // .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")) + // .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("有子卷")) + // .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + // if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { + // String containerName = bstIvtPackageinfoivtList.get(0).getContainer_name(); + // String pointCode = bstIvtPackageinfoivtList.get(0).getPoint_code(); + // //查询子卷信息,去分切计划表查找定级数据,桁架任务完成根据子卷定级创建AGV任务将满轴搬运至质检区或管制区 + // PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() + // .eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); + // if (containerInfo == null) { + // throw new BadRequestException("找不到子卷信息!"); + // } + // //子卷等级 + // String level = containerInfo.getLevel() == null ? "1" : containerInfo.getLevel(); + // String finalLevel = level; + // if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(finalLevel))) { + // throw new BadRequestException("非法的子卷等级!"); + // } + // level = "1"; + // JSONObject toDjqTask = new JSONObject(); + // toDjqTask.put("vehicle_code", containerName); + // // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务 + // String finalLevel1 = level; + // if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(finalLevel1))) { + // List djqPointList = bstIvtPackageinfoivtList.stream() + // .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) + // && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status()) && r.getIs_used().equals(PackageInfoIvtEnum.IS_USED.code("启用"))).collect(Collectors.toList()); + // if (CollectionUtils.isEmpty(djqPointList)) { + // throw new BadRequestException("待检区暂无空余库位!"); + // } + // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); + // toDjqTask.put("point_code1", pointCode); + // toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); + // djqTask.createTask(toDjqTask); + // } else { + // String finalLevel2 = level; + // if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(finalLevel2))) { + // List gkqPointList = bstIvtPackageinfoivtList.stream() + // .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status()) + // && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status()) && r.getIs_used().equals(PackageInfoIvtEnum.IS_USED.code("启用"))).collect(Collectors.toList()); + // if (CollectionUtils.isEmpty(gkqPointList)) { + // throw new BadRequestException("管控区暂无空余库位!"); + // } + // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")); + // toDjqTask.put("point_code1", pointCode); + // toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code()); + // gzqTask.createTask(toDjqTask); + // } + // } + // } + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java index 2498efb90..f66041ece 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java @@ -213,15 +213,12 @@ public class InBussManageServiceImpl implements InBussManageService { if (ObjectUtil.isEmpty(jsonObject.getString("device_code"))) { throw new BadRequestException("设备号不能为空!"); } - - List pcsnList = Arrays.asList(material_barcode.split(",")); - - // 查询子卷包装关系 - List subList = subTab.query("container_name ='A1652211050505A2' and status in ('0','1')") +// List subList = subTab.query("container_name ='A1262210272905A1' and status in ('0','1')") +// .getResultJSONArray(0).toJavaList(JSONObject.class); + List subList = subTab.query("container_name in ('" + String.join("','", pcsnList) + "') and status in ('0','1')") .getResultJSONArray(0).toJavaList(JSONObject.class); - if (ObjectUtil.isEmpty(subList)) { throw new BadRequestException("未查询到子卷包装信息!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java index b269f2cf1..ff766ab84 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java @@ -18,7 +18,7 @@ import java.util.Map; @Getter public enum PackageInfoIvtEnum { //点位类型 - POINT_STATUS(MapOf.of("满轴缓存位", "1", "空载具缓存位", "2", "待检区", "3", "管制区", "4", "装箱区", "5", "装箱位", "6")), + POINT_STATUS(MapOf.of("满轴缓存位", "1", "空载具缓存位", "2", "待检区", "3", "管制区", "4", "装箱位", "5","装箱区", "6")), diff --git a/lms/nladmin-system/src/main/java/org/nl/config/WebSocketConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/WebSocketConfig.java index 33fbc159e..fce25bd45 100644 --- a/lms/nladmin-system/src/main/java/org/nl/config/WebSocketConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/config/WebSocketConfig.java @@ -31,9 +31,9 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter; @Configuration public class WebSocketConfig { - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } +// @Bean +// public ServerEndpointExporter serverEndpointExporter() { +// return new ServerEndpointExporter(); +// } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index bb93052031bcf0925fcb8fff5a86673d7853552f..14d6c3a84645677fdb607c99f8d9b37441cb9e4b 100644 GIT binary patch literal 336384 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 z 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 Sc-+OLn;%d8ABbOuf&T-FWe7$9 literal 375808 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 ArvLx| diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue index f2417fa47..e95b25516 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue @@ -66,7 +66,7 @@ export default { url: 'api/Materialbase', idField: 'material_id', sort: 'material_id,desc', - query: { search: '', material_id: '' }, + query: { search: '木箱', material_id: '' }, crudMethod: { ...crudMaterattr } }) }, From 4a1269fe45967bd36f00f293f3ab99c237e8940e Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 14 Jun 2024 16:29:05 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E6=9F=A5=E6=89=BE=E5=89=A9=E4=BD=99?= =?UTF-8?q?=E5=90=8C=E7=BB=84=E5=88=86=E5=88=87=E8=AE=A1=E5=88=92BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/PdmBiSlittingproductionplanMapper.xml | 1 + .../b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml | 4 ++-- .../slitter/service/impl/SlitterServiceImpl.java | 12 ++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml index 296520e16..b1c9dced2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml @@ -133,6 +133,7 @@ #{item} + OR p1.qzzno IS NULL ) SELECT resource_name, diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 92316591c..e1c36a0fa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -10,8 +10,8 @@ `bst_ivt_cutpointivt` bct LEFT JOIN pdm_bi_slittingproductionplan p ON p.qzzno = bct.qzz_no1 OR p.qzzno = bct.qzz_no2 WHERE bct.point_status = '2' AND p.parent_container_name = #{parent_container_name} AND p.split_group = #{split_group} - AND (LENGTH(bic.qzz_no1) = 0 OR LENGTH(bic.qzz_no2) = 0) - AND (LENGTH(bic.qzz_no1) ]]> 0 OR LENGTH(bic.qzz_no2) ]]> 0) + AND (LENGTH(bct.qzz_no1) = 0 OR LENGTH(bct.qzz_no2) = 0) + AND (LENGTH(bct.qzz_no1) ]]> 0 OR LENGTH(bct.qzz_no2) ]]> 0) AND bct.is_used = '1' LIMIT 1 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 3eeec9c40..6101f8361 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -136,7 +136,7 @@ public class SlitterServiceImpl implements SlitterService { : ""); con.put("number", ObjectUtil.isNotEmpty(point.getTube_code1()) && ObjectUtil.isNotEmpty(point.getTube_code2()) ? "2" : "1"); - res.put("code", HttpStatus.HTTP_OK); + res.put("status", HttpStatus.HTTP_OK); res.put("message", "任务请求成功!"); return res; } @@ -155,7 +155,7 @@ public class SlitterServiceImpl implements SlitterService { TaskUtils.updateOptMessageByBShaftPoint(CBJ); shafttubeivtService.updateById(CBJ); } - res.put("code", HttpStatus.HTTP_OK); + res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res; } @@ -184,7 +184,7 @@ public class SlitterServiceImpl implements SlitterService { r.put("device_code", deviceCode); SlitterTaskUtil.putCurrentPaperSpec(r, plans); r.put("pullCount", plans.size()); - res.put("code", HttpStatus.HTTP_OK); + res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res; } @@ -295,7 +295,7 @@ public class SlitterServiceImpl implements SlitterService { lockPoint.unlock(); } } - res.put("code", HttpStatus.HTTP_OK); + res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res; } @@ -332,7 +332,7 @@ public class SlitterServiceImpl implements SlitterService { param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("is_bushing", "0"); trussCallShaftCacheTask.createTask(param); - res.put("code", HttpStatus.HTTP_OK); + res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res; } @@ -639,7 +639,7 @@ public class SlitterServiceImpl implements SlitterService { taskParam.put("point_code2", one.getPoint_code()); taskParam.put("material_code", plan.getContainer_name()); taskParam.put("to_is_labeling", "0"); - res.put("code", HttpStatus.HTTP_OK); + res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功!"); res.put("data", taskParam); return res; From a0b09b83617792dc787fe823faa8735938d3cd11 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 14 Jun 2024 17:10:17 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20getCanMovePointOne=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=A0=A1=E9=AA=8C=E5=8F=AF=E7=94=A8=E7=82=B9=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml index f7545f0a4..41faca610 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/dao/mapper/BstIvtStockingivtMapper.xml @@ -40,6 +40,7 @@ LEFT JOIN md_pb_papervehicle mp ON mp.vehicle_code = bs.vehicle_code WHERE bs.point_type = #{pointType} AND bs.point_location = #{location} + AND bs.is_used = '1' AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE (t.point_code1 = bs.point_code OR t.point_code2 = bs.point_code OR