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 0ccba5603..376cbc309 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 @@ -1,15 +1,11 @@ package org.nl.b_lms.sch.point.service; - import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import com.baomidou.mybatisplus.extension.service.IService; - import java.util.List; import java.util.Map; import java.util.Set; - import com.baomidou.mybatisplus.core.metadata.IPage; -import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.common.domain.query.PageQuery; @@ -61,7 +57,13 @@ public interface IbstIvtPackageinfoivtService extends IService getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType); /** 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 e9bbd6af3..05eceb819 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 @@ -132,7 +132,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl() .eq(SchBaseTask::getTask_code, taskCode) @@ -158,19 +160,17 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl空载具缓存位)")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) ) { - //检查是否满足二次分配条件 - checkTaskInfo(baseTask); newPoint = checkIvtSBlock(baseTask); } else { if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) { @@ -179,22 +179,28 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl checkEndPointTask(String ivtType, String ivtStatus, String pointCode, String sortType, String taskType) { + List taskList; + Set pointSets; List returList = new ArrayList<>(); List packageinfoivtList = getBstIvtPackageinfoivts(ivtType, ivtStatus, sortType); Set pointIds = packageinfoivtList.stream() @@ -224,8 +232,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl taskList; - Set pointSets; if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) { taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, null); } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货分配"))) { @@ -233,7 +239,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl(); } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"))) { taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, pointIds, null); } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"))) { @@ -331,7 +339,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl getNoBlockIvt(String pointCode, List taskList, List ivtList) { - Set taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1")).collect(Collectors.toSet()); + Set taskPointSet = null; + if (CollectionUtils.isEmpty(taskList)) { + taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1")).collect(Collectors.toSet()); + } List pointList = new ArrayList<>(); //存在补空载具任务已分配却未完成的任务 if (CollectionUtils.isEmpty(taskPointSet)) { @@ -353,47 +364,73 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl taskList1 = taskService.list(new LambdaQueryWrapper() - .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) - .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - .and( - r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) - .or() - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)") - ))); - if (CollectionUtils.isNotEmpty(taskList1)) { - List taskList3 = taskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); - if (taskList3.size() == 1) { - //校验已分配的补空载具任务是否为当前请求的任务,是可重新分配,否不允许重新分配 - if (!taskList3.get(0).getTask_code().equals(baseTask.getTask_code())) { - log.info("一楼装箱区二次分配" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!"); - throw new BadRequestException("一楼装箱区二次分配" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!"); + //补空载具放货任务 + if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) || + baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) + ) { + List taskList = taskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .and( + r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) + .or() + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) + .or() + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) + .or() + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")) + )); + //是否有执行中已分配补空载具任务 + List taskList1 = taskList.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList1)) { + List taskList2 = taskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); + if (taskList2.size() == 1) { + //校验已分配的补空载具任务是否为当前请求的任务,是可重新分配,否不允许重新分配 + if (!taskList2.get(0).getTask_code().equals(baseTask.getTask_code())) { + log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!"); + throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!"); + } + } else if (taskList2.size() > 1) { + log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!"); + throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!"); } - } else if (taskList3.size() > 1) { - log.info("一楼装箱区二次分配" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!"); - throw new BadRequestException("一楼装箱区二次分配:" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!"); } - } - //是否有执行中的行架任务,有等待取空载具任务完成再分配 - List taskList2 = taskService.list(new LambdaQueryWrapper() - .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) - .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - .and( - r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) - .or() - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)") - ))); - if (CollectionUtils.isNotEmpty(taskList2)) { - if (StringUtils.isBlank(taskList2.get(0).getRequest_param())) { - log.info("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成"); - throw new BadRequestException("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成"); - } else { - if (!taskList2.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { - log.info("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成"); - throw new BadRequestException("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成"); + //是否有执行中的行架任务,有等待取空载具任务完成再分配 + List taskList3 = taskList.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList3)) { + if (StringUtils.isBlank(taskList3.get(0).getRequest_param())) { + log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!"); + throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!"); + } else { + if (!taskList3.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { + log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!"); + throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!"); + } + } + } + } else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) { + List taskList = taskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))); + //满轴缓存位->待检区agv任务如果分配了起点,是否发送取货完成信息,否,则需等待此任务发送取货完成信号才能分配第2个任务的起点 + List taskList1 = taskList.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList1)) { + //多个已分配的未完成的取满轴任务,需要全部取货完成才能继续分配 + List taskList2 = taskList1.stream().filter(r -> StringUtils.isBlank(r.getRequest_param())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList2)) { + log.info("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!"); + throw new BadRequestException("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!"); + } + List taskList3 = taskList1.stream().filter(r -> StringUtils.isNotBlank(r.getRequest_param())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList3)) { + if (taskList3.stream().anyMatch(r -> !r.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")))) { + log.info("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!"); + throw new BadRequestException("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!"); + } } } } @@ -402,8 +439,12 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType) { + public List getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) .eq(BstIvtPackageinfoivt::getPoint_status, ivtType); @@ -468,23 +509,27 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl待检区"))) { + //过滤未二次分配的任务 + if (StringUtils.isBlank(baseTask.getResponse_param())) { + throw new BadRequestException("该任务任务号为:" + baseTask.getTask_code() + ",起点未进行二次分配!"); + } List ivtList = packageinfoivtService.list(new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) .eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code1())); if (CollectionUtils.isEmpty(ivtList)) { - throw new BadRequestException("任务编号为:" + baseTask.getTask_code() + "取货完成的目标点位不存在!"); + throw new BadRequestException("任务编号为:" + baseTask.getTask_code() + "agv取货完成的目标点位不存在!"); } //只有子卷号相同才能清除库存 if (baseTask.getVehicle_code().equals(ivtList.get(0).getContainer_name())) { - upDateIvtOrTask(baseTask, baseTask.getPoint_code1(), false); + upDateIvtOrTask(baseTask, baseTask.getPoint_code1()); } } else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))) { pointCode = baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) ? baseTask.getPoint_code3() : baseTask.getPoint_code1(); if (StringUtils.isBlank(baseTask.getRequest_param())) { - upDateIvtOrTask(baseTask, pointCode, true); + upDateIvtOrTask(baseTask, pointCode); } else if (StringUtils.isNotBlank(baseTask.getRequest_param())) { if (!baseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { - upDateIvtOrTask(baseTask, pointCode, true); + upDateIvtOrTask(baseTask, pointCode); } } } @@ -503,7 +548,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("point_code", pointCode); updateWrapper.set("ivt_status", "0"); updateWrapper.set("container_name", null); - // 清空起点库存状态 + //清空起点库存状态 bstIvtPackageinfoivtMapper.update(null, updateWrapper); - if (isUpDateTask) { - //标记桁架任务取空载具完成 - UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); - updateWrapper1.eq("task_id", baseTask.getTask_id()); - updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")); - taskService.update(updateWrapper1); - } - log.info("一楼装箱区二次分配的任务编号为:" + baseTask.getTask_code() + ",取货完成执行成功,取货信息:点位:" + pointCode + "子卷号为:" + baseTask.getVehicle_code()); + log.info("一楼装箱区二次分配清空起点库存" + baseTask.getTask_code() + ",执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code()); + //标记取满轴或取空载具完成 + UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); + updateWrapper1.eq("task_id", baseTask.getTask_id()); + updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")); + taskService.update(updateWrapper1); + log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code()); } /** @@ -537,8 +581,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) { @@ -552,6 +596,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl newPointList = packageinfoivtService.checkEndPointTask(bstIvtPackageinfoivt.getPoint_status(), ivtInfo.getIvt_status(), targetPoint, ivtInfo.getSort_seq().toString(), ""); 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 b20c1d841..d260b1130 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 @@ -13,7 +13,6 @@ import org.nl.common.enums.PackageInfoIvtEnum; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Component; - import javax.annotation.Resource; import java.util.List; import java.util.concurrent.TimeUnit; @@ -25,6 +24,8 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class AutoSendVehicleToDjq { private final String THIS_CLASS = AutoSendVehicleToDjq.class.getName(); + + @Resource private RedissonClient redissonClient; @Resource @@ -32,6 +33,9 @@ public class AutoSendVehicleToDjq { @Resource private SendGzqKzjTask sendGzqKzjTask; + @Resource + private IbstIvtPackageinfoivtService ibstIvtPackageinfoivtService; + @Resource private IbstIvtPackageinfoivtService packageinfoivtService; @@ -43,32 +47,27 @@ public class AutoSendVehicleToDjq { @SneakyThrows public void sendVehicleToDjqOrGzq1() { - log.info(THIS_CLASS+"-装箱区->待检区或管制区补空任务开始执行扫描。"); + log.info(THIS_CLASS + "-装箱区->待检区或管制区补空任务开始执行扫描。"); RLock lock = redissonClient.getLock(THIS_CLASS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { - //存在装箱区有空载具的点位 - String pointCode2 = null; + String pointCode2; JSONObject task = new JSONObject(); + List ivtList =ibstIvtPackageinfoivtService.getBstIvtPackageinfoivts(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"),""); + if (CollectionUtils.isNotEmpty(ivtList)) { + return; + } + //存在装箱区有空载具的点位 List zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); if (CollectionUtils.isEmpty(zxqIvtList)) { return; } - //待检区有空位且过滤未完成任务 - List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); - if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)) { - pointCode2 = djqPackageinfoivtList.get(0).getPoint_code(); - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); - task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); + if ( Integer.parseInt(zxqIvtList.get(0).getSort_seq().toString()) % 2 != 0) { + //优先去管制区 + pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); } else { - //管制区有空位 - List gzqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); - if (CollectionUtils.isNotEmpty(gzqList)) { - pointCode2 = gzqList.get(0).getPoint_code(); - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); - task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); - } + pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); } //去装箱区搬运空载具 if (pointCode2 != null) { @@ -91,6 +90,40 @@ public class AutoSendVehicleToDjq { } + + private String getPointCode(JSONObject task, String taskType) { + String pointCode2 = null; + List packageList; + if (taskType.equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"))) { + packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); + if (CollectionUtils.isEmpty(packageList)) { + packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); + } else { + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); + } + } else { + packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); + if (CollectionUtils.isEmpty(packageList)) { + packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); + } else { + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); + } + } + if (CollectionUtils.isNotEmpty(packageList)) { + pointCode2 = packageList.get(0).getPoint_code(); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务")); + } + return pointCode2; + } + + + + + + + /** * 二次分配任务 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java index e03e2ad7d..cfad2df36 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java @@ -37,8 +37,6 @@ public class AutoSendVehicleToKzj { private DjqToKzjhcwTask djqToKzjhcwTask; @Resource private GzqToKzjhcwTask gzqToKzjhcwTask; - @Resource - private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper; @Resource private IbstIvtPackageinfoivtService packageinfoivtService; @@ -112,10 +110,10 @@ public class AutoSendVehicleToKzj { return; } if (existTask.size() % 2 != 0) { - //优先去待检区 - pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); - } else { + //优先去管制区 pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + } else { + pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); } //去待检区或管制区搬运空载具 if (pointCode1 != null) { diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue index 71165b9ce..02ceeef53 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue @@ -151,7 +151,6 @@ {{ dict.label.is_used[scope.row.is_used] }} - diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 8c3075070..612a9ef54 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -142,6 +142,7 @@ +