From ca892b7644f27e068591e204ed273a6655924f24 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Mon, 20 May 2024 17:30:01 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BF=AE=E6=94=B9=E8=BE=93=E9=80=81?= =?UTF-8?q?=E7=BA=BF=E5=88=B0=E6=BB=A1=E8=BD=B4=E4=BD=8D=E5=9B=9B=E4=B8=AA?= =?UTF-8?q?=E7=82=B9=E4=BB=BB=E5=8A=A1=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/TwoOutBoxTask.java | 6 + .../sch/tasks/first_floor_area/DjqTask.java | 2 +- .../sch/tasks/first_floor_area/GzqTask.java | 2 +- .../tasks/first_floor_area/KzjhcwTask.java | 2 +- .../sch/tasks/first_floor_area/MzhcwTask.java | 175 +++++++++--------- .../tasks/first_floor_area/SsxDjwTask.java | 2 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 4 +- .../nl/common/enums/PackageInfoIvtEnum.java | 2 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 33 ++-- 9 files changed, 124 insertions(+), 104 deletions(-) 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 7e7e082ab..1b1f51a79 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 @@ -91,6 +91,12 @@ public class TwoOutBoxTask extends AbstractAcsTask { jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); jsonAttr.put("storagevehicle_code",""); attrTab.update(jsonAttr); + + + + + + } // 取消 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 9694d59a0..e258f040d 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 @@ -167,7 +167,7 @@ public class DjqTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 556d6dd8e..b9a81ce8b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -159,7 +159,7 @@ public class GzqTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); 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 c4c0da3ad..cb7be9a16 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 @@ -176,7 +176,7 @@ public class KzjhcwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); 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 aa4aed031..8ff13657c 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 @@ -1,4 +1,5 @@ package org.nl.b_lms.sch.tasks.first_floor_area; + import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.BooleanUtil; @@ -28,6 +29,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.Arrays; @@ -72,7 +74,6 @@ public class MzhcwTask extends AbstractAcsTask { private SsxDjwTask ssxDjwTask; - @Override public List addTask() { ArrayList resultList = new ArrayList<>(); @@ -106,7 +107,7 @@ public class MzhcwTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false); + SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (schBaseTask == null) { throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!"); } @@ -133,98 +134,100 @@ public class MzhcwTask extends AbstractAcsTask { throw new BadRequestException("找不到子卷信息!"); } //子卷等级 - String level = containerInfo.getLevel(); - if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) { - throw new BadRequestException("非法的子卷等级!"); - } + String level = containerInfo.getLevel() == null ? "1" : containerInfo.getLevel(); + // if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) { + // 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", containerInfo.getContainer_name()); - // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务 - if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) { - 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.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); - } else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) { - List gkqPointList = 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.isEmpty(gkqPointList)) { - throw new BadRequestException("管控区暂无空余库位!"); - } - toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")); - toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); - toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code()); - gzqTask.createTask(toDjqTask); - } + // JSONObject toDjqTask = new JSONObject(); + // //获取子卷号 + // toDjqTask.put("vehicle_code", containerInfo.getContainer_name()); + // // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务 + // if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) { + // 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.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); + // } else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) { + // List gkqPointList = 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.isEmpty(gkqPointList)) { + // throw new BadRequestException("管控区暂无空余库位!"); + // } + // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")); + // toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); + // toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code()); + // gzqTask.createTask(toDjqTask); + // } //4.创建空载具到输送线任务 - List kzjPointList = bstIvtPackageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status()) - && PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList()); - JSONObject toSsxTask = new JSONObject(); - toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); - toSsxTask.put("vehicle_code", containerInfo.getContainer_name()); - //判断空载具缓存位是否有空载具库存,有就叫agv去任一一个位置搬空载具 - if (CollectionUtils.isNotEmpty(kzjPointList)) { - //直接创建搬运空载具任务 - toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code()); - //终点为输送线点位 - toSsxTask.put("point_code2", schBaseTask.getPoint_code1()); - ssxDjwTask.createTask(toSsxTask); - } else { - //空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建 - //没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。 - List packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper() - .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) - .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))); - //todo 查找正在搬运到待检区的任务,假设只有一个 - List taskList = taskService.list(new LambdaUpdateWrapper() - //执行中 - .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) - .and( - r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList) - )); - //没有正在搬运空载具过来的任务,创建搬运空载具任务 - if (CollectionUtils.isEmpty(taskList)) { - //查询待检区或管制区有空载具的 - List djqOrGzqPointList = packageinfoivtService - .list(new LambdaUpdateWrapper() - .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) - .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); - List djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); - //待检区库位有空载具 - if (CollectionUtils.isNotEmpty(djqPointList)) { - List kzjPoint = packageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())) - .sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)) - .collect(Collectors.toList()); - //创建搬运空载具任务 - JSONObject toKzjhcwTask = new JSONObject(); + if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) { + List kzjPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList()); + JSONObject toSsxTask = new JSONObject(); + toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); + toSsxTask.put("vehicle_code", containerInfo.getContainer_name()); + //判断空载具缓存位是否有空载具库存,有就叫桁架去任一一个位置搬空载具 + if (CollectionUtils.isNotEmpty(kzjPointList)) { + //直接创建搬运空载具任务 + toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code()); + //终点为输送线点位 + toSsxTask.put("point_code2", schBaseTask.getPoint_code1()); + ssxDjwTask.createTask(toSsxTask); + } else { + //空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建 + //没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。 + List packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))); + //todo 查找正在搬运到待检区的任务,假设只有一个 + List taskList = taskService.list(new LambdaUpdateWrapper() + //执行中 + .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .and( + r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList) + )); + //没有正在搬运空载具过来的任务,创建搬运空载具任务 + if (CollectionUtils.isEmpty(taskList)) { + //查询待检区或管制区有空载具的 + List djqOrGzqPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + List djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); + //待检区库位有空载具 if (CollectionUtils.isNotEmpty(djqPointList)) { - //优先去待检区取空载具 - toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code()); - } else { + List kzjPoint = packageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())) + .sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)) + .collect(Collectors.toList()); + //创建搬运空载具任务 + JSONObject toKzjhcwTask = new JSONObject(); + if (CollectionUtils.isNotEmpty(djqPointList)) { + //优先去待检区取空载具 + toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code()); + } else { - toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code()); + toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code()); + } + toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)")); + //送到到任意空载具缓存位 + toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code()); + toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name()); + kzjhcwTask.createTask(toKzjhcwTask); } - toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)")); - //送到到任意空载具缓存位 - toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code()); - toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name()); - kzjhcwTask.createTask(toKzjhcwTask); } } } @@ -280,7 +283,7 @@ public class MzhcwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index af41f8467..a7f4267db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -170,7 +170,7 @@ public class SsxDjwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); 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 ee9323579..a5cb1a534 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 @@ -32,6 +32,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; @@ -49,7 +50,6 @@ import java.util.stream.Collectors; public class ZxDjwTask extends AbstractAcsTask { - @Resource private DjqTask djqTask; @Resource @@ -202,7 +202,7 @@ public class ZxDjwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); 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 a2acd3a5d..2b7cf7dd3 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 @@ -22,7 +22,7 @@ public enum PackageInfoIvtEnum { //任务类型 TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)", - "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710")), + "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710","输送线四个点任务", "010711")), //ACS任务类型 ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")), diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 541b62244..edc04bb0c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -65,6 +65,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; @Service @@ -1738,25 +1739,35 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject result = new JSONObject(); if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) { throw new BadRequestException("接口sendProductToFirstFloor,任务号或子卷号参数为空!"); - } //1.查询满轴缓存位是否有空位 List bstIvtPackageinfoivtList = 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("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + .list(new LambdaUpdateWrapper().eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + List mzPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); JSONObject jo = new JSONObject(); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")); jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - //todo 获取子卷号,子卷号就是载具号? jo.put("vehicle_code", whereJson.getString("material_barcode")); //2.创建输送线->满轴位桁架任务, String point_code1 = whereJson.getString("device_code"); jo.put("point_code1", point_code1); - if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { + if (CollectionUtils.isNotEmpty(mzPointList)) { //任意一个满轴缓存位为终点 - jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code()); + jo.put("point_code2", mzPointList.get(0).getPoint_code()); + List kzjPointList = 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(kzjPointList)) { + jo.put("point_code3", kzjPointList.get(0).getPoint_code()); + //终点为输送线点位 + jo.put("point_code4", whereJson.getString("device_code")); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")); + } else { + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")); + } jo.put("is_send", true); mzhcwTask.createTask(jo); result.put("status", HttpStatus.OK.value()); @@ -1875,9 +1886,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String material_barcode = ""; for (int i = 0; i < resultJSONArray.size(); i++) { JSONObject resultObj = resultJSONArray.getJSONObject(i); - if (i==0){ + if (i == 0) { material_barcode = resultObj.getString("container_name"); - }else { + } else { material_barcode += "," + resultObj.getString("container_name"); } }