fix:增加二次分配任务完成情况校验
This commit is contained in:
@@ -6,6 +6,7 @@ import lombok.SneakyThrows;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
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.point.service.IbstIvtPackageinfoivtService;
|
||||||
import org.nl.b_lms.sch.tasks.first_floor_area.DjqToKzjhcwTask;
|
import org.nl.b_lms.sch.tasks.first_floor_area.DjqToKzjhcwTask;
|
||||||
import org.nl.b_lms.sch.tasks.first_floor_area.GzqToKzjhcwTask;
|
import org.nl.b_lms.sch.tasks.first_floor_area.GzqToKzjhcwTask;
|
||||||
@@ -15,8 +16,6 @@ import org.redisson.api.RedissonClient;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -34,6 +33,8 @@ public class AutoSendVehicleToKzj {
|
|||||||
private DjqToKzjhcwTask djqToKzjhcwTask;
|
private DjqToKzjhcwTask djqToKzjhcwTask;
|
||||||
@Resource
|
@Resource
|
||||||
private GzqToKzjhcwTask gzqToKzjhcwTask;
|
private GzqToKzjhcwTask gzqToKzjhcwTask;
|
||||||
|
@Resource
|
||||||
|
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||||
@@ -85,41 +86,17 @@ public class AutoSendVehicleToKzj {
|
|||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
if (tryLock) {
|
if (tryLock) {
|
||||||
//存在空载具缓存位无空载具的点位
|
|
||||||
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
|
||||||
if (CollectionUtils.isEmpty(kzjIvtList)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
JSONObject task = new JSONObject();
|
JSONObject task = new JSONObject();
|
||||||
String pointCode1 = null;
|
String pointCode1 = null;
|
||||||
String pointCode2;
|
String pointCode2;
|
||||||
boolean hasEmptyVehicle;
|
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
|
||||||
//判断有空载具
|
if (CollectionUtils.isNotEmpty(kzjIvtList)) {
|
||||||
List<BstIvtPackageinfoivt> vehicleList = kzjIvtList.stream()
|
pointCode2 = kzjIvtList.get(0).getPoint_code();
|
||||||
.filter(n -> n.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")))
|
if (pointCode2 == null) {
|
||||||
.sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
//判断空载具点位外层是否有空载具
|
|
||||||
if (CollectionUtils.isNotEmpty(vehicleList)) {
|
|
||||||
BigDecimal sortSeq = vehicleList.get(0).getSort_seq();
|
|
||||||
hasEmptyVehicle = kzjIvtList.stream()
|
|
||||||
.noneMatch(r -> r.getSort_seq().compareTo(sortSeq) < 0 &&
|
|
||||||
r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")));
|
|
||||||
//有阻挡
|
|
||||||
if (!hasEmptyVehicle) {
|
|
||||||
return;
|
return;
|
||||||
} else {
|
|
||||||
List<BstIvtPackageinfoivt> pointCodeList = kzjIvtList.stream()
|
|
||||||
.filter(r -> r.getSort_seq().compareTo(sortSeq) < 0)
|
|
||||||
.sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq).reversed())
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
if (CollectionUtils.isEmpty(pointCodeList)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
pointCode2 = pointCodeList.get(0).getPoint_code();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pointCode2 = kzjIvtList.get(0).getPoint_code();
|
return;
|
||||||
}
|
}
|
||||||
//待检区有空载具且过滤未完成任务
|
//待检区有空载具且过滤未完成任务
|
||||||
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||||
|
|||||||
Reference in New Issue
Block a user