From 4103b9c21e94c6de31b554a06c8ccc03d7a89312 Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Tue, 5 Mar 2024 19:27:23 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/PdmBiSubpackagerelation.java | 1 + .../sch/point/dao/BstIvtPackageinfoivt.java | 1 + .../nl/b_lms/sch/point/dao/SchBasePoint.java | 2 +- .../sch/point/dao/StIvtCoolpointivt.java | 1 + .../sch/point/dao/StIvtCoolregionio.java | 1 + .../sch/point/dao/StIvtDeliverypointivt.java | 1 + .../sch/point/dao/StIvtEmptytubeivt.java | 1 + .../point/dao/StIvtEmptyvehiclerecord.java | 1 + .../b_lms/sch/point/dao/StIvtHotpointivt.java | 1 + .../b_lms/sch/point/dao/StIvtSbpointivt.java | 1 + .../nl/b_lms/sch/point/dao/StIvtShaftivt.java | 1 + .../sch/tasks/first_floor_area/DjqTask.java | 21 ++-- .../sch/tasks/first_floor_area/GzqTask.java | 5 +- .../tasks/first_floor_area/KzjhcwTask.java | 5 +- .../sch/tasks/first_floor_area/MzhcwTask.java | 9 +- .../tasks/first_floor_area/SsxDjwTask.java | 5 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 51 +++++++--- .../sch/tasks/first_floor_area/ZxqTask.java | 28 ++++-- .../auto/AutoSendEmptyVehicle.java | 98 +++++++++++++++++++ .../nl/common/enums/PackageInfoIvtEnum.java | 2 +- 20 files changed, 191 insertions(+), 45 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendEmptyVehicle.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java index 91da401fb..0b55ab7c1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java @@ -35,6 +35,7 @@ public class PdmBiSubpackagerelation extends Model { /** * 子卷包装标识 */ + @TableId(value = "workorder_id", type = IdType.NONE) private Long workorder_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java index 342f599d0..9b846b80c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/BstIvtPackageinfoivt.java @@ -28,6 +28,7 @@ public class BstIvtPackageinfoivt extends Model { /** * 库存记录标识 */ + @TableId(value = "ivt_id", type = IdType.NONE) private Long ivt_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java index 2f2f66719..22dd57362 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java @@ -28,7 +28,7 @@ public class SchBasePoint extends Model { /** * 点位标识 */ - @TableId + @TableId(value = "point_id", type = IdType.NONE) private Long point_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolpointivt.java index 6ad410780..4a3b33579 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolpointivt.java @@ -28,6 +28,7 @@ public class StIvtCoolpointivt extends Model { /** * 库存记录标识 */ + @TableId(value = "ivt_id", type = IdType.NONE) private Long ivt_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java index c73f98260..cf5a0af56 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java @@ -28,6 +28,7 @@ public class StIvtCoolregionio extends Model { /** * 出入单标识 */ + @TableId(value = "iostorinv_id", type = IdType.NONE) private Long iostorinv_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java index d8ac789b6..fb2f13560 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtDeliverypointivt.java @@ -28,6 +28,7 @@ public class StIvtDeliverypointivt extends Model { /** * 库存记录标识 */ + @TableId(value = "ivt_id", type = IdType.NONE) private Long ivt_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java index 8945479a1..2e9c520cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptytubeivt.java @@ -28,6 +28,7 @@ public class StIvtEmptytubeivt extends Model { /** * 库存记录标识 */ + @TableId(value = "ivt_id", type = IdType.NONE) private Long ivt_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java index 376488d9f..4aede78ff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtEmptyvehiclerecord.java @@ -28,6 +28,7 @@ public class StIvtEmptyvehiclerecord extends Model { /** * 记录标识 */ + @TableId(value = "record_uuid", type = IdType.NONE) private Long record_uuid; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java index dc6d3b8c6..a58f06b06 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtHotpointivt.java @@ -28,6 +28,7 @@ public class StIvtHotpointivt extends Model { /** * 库存记录标识 */ + @TableId(value = "ivt_id", type = IdType.NONE) private Long ivt_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java index a73ec7fd1..3631a4595 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtSbpointivt.java @@ -27,6 +27,7 @@ public class StIvtSbpointivt extends Model { /** * 点位标识 */ + @TableId(value = "point_id", type = IdType.NONE) private Long point_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java index cf2e649b0..b7801195a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtShaftivt.java @@ -28,6 +28,7 @@ public class StIvtShaftivt extends Model { /** * 库存记录标识 */ + @TableId(value = "ivt_id", type = IdType.NONE) private Long ivt_id; 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 91fa4456c..d94f7d0b9 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 @@ -10,14 +10,13 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; -import org.nl.b_lms.sch.region.dao.SchBaseRegion; 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.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -27,7 +26,6 @@ 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; @@ -46,6 +44,8 @@ public class DjqTask extends AbstractAcsTask { private IschBaseTaskService taskService; @Resource private IbstIvtPackageinfoivtService packageinfoivtService; + @Resource + private OutBoxManageService outBoxManageService; @Resource private MzhcwTask mzhcwTask; @@ -104,6 +104,10 @@ public class DjqTask 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())); //todo 3.手持确认包装关系,生产包装关系表数据 //todo 4.根据子卷包装关系查询木箱号,调刘先源的空木箱出库服务创建出库任务 + //device_code:终点,box_length: 长,box_width: 宽,box_high: 高,num: 子卷数 + // JSONObject boxInfo = new JSONObject(); + // boxInfo.put("device_code", schBaseTask.getPoint_code2()); + // outBoxManageService.outBox(boxInfo); //5.查询是否有未下发的输送线->满轴位任务,有就下发 List notIssueTaskList = taskService.list(new LambdaUpdateWrapper() //确定起点 @@ -132,8 +136,9 @@ public class DjqTask extends AbstractAcsTask { jo.put("vehicle_code", schBaseTask.getVehicle_code()); zxqTask.createTask(jo); } - //todo 装箱区没有点位 - + else{ + throw new BadRequestException("装箱区暂无空余库位!"); + } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -179,7 +184,7 @@ public class DjqTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -195,14 +200,12 @@ public class DjqTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } @Override public void forceFinish(String taskId) { - - SchBaseRegion ss =new SchBaseRegion(); SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper() .eq(SchBaseTask::getTask_id, taskId), false); if (schBaseTask == null) { 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 3717483d8..2f7093faa 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 @@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; 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.dao.SchBaseTask; @@ -153,7 +152,7 @@ public class GzqTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -169,7 +168,7 @@ public class GzqTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } 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 f21017373..2b2c57319 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 @@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; 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.dao.SchBaseTask; @@ -170,7 +169,7 @@ public class KzjhcwTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -186,7 +185,7 @@ public class KzjhcwTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } @Override 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 baadcee08..10d57eb01 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 @@ -190,7 +190,7 @@ public class MzhcwTask extends AbstractAcsTask { List packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper() .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))); - //todo 查找正在搬运到待检区的任务,假设只有一个 + //todo 查找正在搬运到待检区的任务,假设只有一个 List taskList = taskService.list(new LambdaUpdateWrapper() //执行中 .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) @@ -199,7 +199,7 @@ public class MzhcwTask extends AbstractAcsTask { )); //没有正在搬运空载具过来的任务,创建搬运空载具任务 if (CollectionUtils.isEmpty(taskList)) { - //查询待检区库位有空载具的 + //查询待检区或管制区有空载具的 List djqOrGzqPointList = packageinfoivtService .list(new LambdaUpdateWrapper() .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) @@ -226,7 +226,6 @@ public class MzhcwTask extends AbstractAcsTask { toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name()); kzjhcwTask.createTask(toKzjhcwTask); } - //todo 待检区和管制区都无空载具情况 } } } @@ -274,7 +273,7 @@ public class MzhcwTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -290,7 +289,7 @@ public class MzhcwTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } @Override 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 b9600e980..2847280ac 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 @@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; 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.dao.SchBaseTask; @@ -164,7 +163,7 @@ public class SsxDjwTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -180,7 +179,7 @@ public class SsxDjwTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } @Override 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 fbaa7b7b9..c99a2a85b 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 @@ -9,14 +9,15 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +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.sch.point.dao.BstIvtPackageinfoivt; 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.storage_manage.ios.enums.IOSEnum; -import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -26,9 +27,11 @@ 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; +import java.util.stream.Collectors; /** * 6 目标装箱对接位, 装箱区 -> 装箱对接位,桁架任务 @@ -40,12 +43,17 @@ import java.util.List; @RequiredArgsConstructor @Slf4j public class ZxDjwTask extends AbstractAcsTask { + + + @Resource + private ZxqTask zxqTask; @Resource private IschBaseTaskService taskService; @Resource - private OutBoxManageService outBoxManageService; - @Resource private IbstIvtPackageinfoivtService packageinfoivtService; + @Resource + private IPdmBiSlittingproductionplanService productionPlanService; + private final String THIS_CLASS = ZxDjwTask.class.getName(); @Override @@ -81,7 +89,7 @@ public class ZxDjwTask 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("满轴缓存位 -> 管制区更新接口任务号为空!"); } @@ -90,17 +98,36 @@ public class ZxDjwTask extends AbstractAcsTask { schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() + .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); + if (containerInfo == null) { + throw new BadRequestException("找不到子卷信息!"); + } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { + throw new BadRequestException("子卷号不能为空!"); + } //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); - //3.创建空木箱出库任务 - //device_code:终点,box_length: 长,box_width: 宽,box_high: 高,num: 子卷数 - JSONObject boxInfo = new JSONObject(); - boxInfo.put("device_code", schBaseTask.getPoint_code2()); - outBoxManageService.outBox(boxInfo); + //3.创建搬运空载具任务,放空(装箱区->待检区) + 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()); + JSONObject toDjqOrGzqTask = new JSONObject(); + toDjqOrGzqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(装箱区->待检区)")); + toDjqOrGzqTask.put("point_code1", schBaseTask.getPoint_code1()); + if (CollectionUtils.isNotEmpty(djqPointList)) { + //优先送到待检区 + toDjqOrGzqTask.put("point_code2", djqPointList.get(0).getPoint_code()); + } else { + toDjqOrGzqTask.put("point_code2", djqOrGzqPointList.get(0).getPoint_code()); + } + toDjqOrGzqTask.put("vehicle_code", containerInfo.getContainer_name()); + zxqTask.createTask(toDjqOrGzqTask); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -146,7 +173,7 @@ public class ZxDjwTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -162,7 +189,7 @@ public class ZxDjwTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } 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 a18b42f2e..f31a4049d 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 @@ -9,7 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +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.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -42,17 +43,20 @@ import java.util.List; @RequiredArgsConstructor @Slf4j public class ZxqTask extends AbstractAcsTask { - @Resource - private IschBaseTaskService taskService; + @Resource private ZxDjwTask zxDjwTask; - + @Resource + private DjqTask djqTask; + @Resource + private IschBaseTaskService taskService; @Resource private IbstIvtPackageinfoivtService packageinfoivtService; @Resource private IpdmBiSubpackagerelationService subpackageRelationService; - + @Resource + private IPdmBiSlittingproductionplanService productionPlanService; private final String THIS_CLASS = ZxqTask.class.getName(); @Override @@ -88,7 +92,7 @@ public class ZxqTask 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("待检区 -> 装箱区更新接口任务号为空!"); } @@ -97,6 +101,13 @@ public class ZxqTask extends AbstractAcsTask { schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() + .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); + if (containerInfo == null) { + throw new BadRequestException("找不到子卷信息!"); + } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { + throw new BadRequestException("子卷号不能为空!"); + } //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -140,6 +151,7 @@ public class ZxqTask extends AbstractAcsTask { } + @Override public String createTask(JSONObject form) { Assert.notNull(form, "请求参数不能为空"); @@ -170,7 +182,7 @@ public class ZxqTask extends AbstractAcsTask { .point_code4(form.getString("point_code4")) .task_id(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId()) - .handle_class(this.getClass().getName()) + .handle_class(THIS_CLASS) .create_id(SecurityUtils.getCurrentUserId()) .create_name(SecurityUtils.getCurrentUsername()) .create_time(DateUtil.now()) @@ -186,7 +198,7 @@ public class ZxqTask extends AbstractAcsTask { if (isSend) { this.immediateNotifyAcs(null); } - return task.getTask_id().toString(); + return task.getTask_id(); } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendEmptyVehicle.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendEmptyVehicle.java new file mode 100644 index 000000000..0e575bffe --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendEmptyVehicle.java @@ -0,0 +1,98 @@ +package org.nl.b_lms.sch.tasks.first_floor_area.auto; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.first_floor_area.KzjhcwTask; +import org.nl.common.enums.PackageInfoIvtEnum; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + + +@Slf4j +@Component +public class AutoSendEmptyVehicle { + + @Resource + private KzjhcwTask kzjhcwTask; + + + @Resource + private IschBaseTaskService taskService; + + + @Resource + private IbstIvtPackageinfoivtService packageinfoivtService; + + public void run() { + this.sendKzjHcwEmptyVehicle(); + } + + void sendKzjHcwEmptyVehicle() { + //查询空载具缓存位是否有空载具 + List bstIvtPackageinfoivtList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + 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.isEmpty(kzjPointList)) { + //空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建 + //没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。 + 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 (CollectionUtils.isNotEmpty(djqPointList)) { + //优先去待检区取空载具 + toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code()); + } else { + 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()); + //todo 载具号 + toKzjhcwTask.put("vehicle_code", "containerInfo.getContainer_name()"); + kzjhcwTask.createTask(toKzjhcwTask); + } + } + } + } + + +} 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 a58275c5b..f994ce1d5 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")), + "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710")), //ACS任务类型 ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),