fix:增加二次分配任务完成情况校验
This commit is contained in:
@@ -6,6 +6,7 @@ import lombok.SneakyThrows;
|
||||
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.dao.mapper.BstIvtPackageinfoivtMapper;
|
||||
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.GzqToKzjhcwTask;
|
||||
@@ -15,8 +16,6 @@ import org.redisson.api.RedissonClient;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -34,6 +33,8 @@ public class AutoSendVehicleToKzj {
|
||||
private DjqToKzjhcwTask djqToKzjhcwTask;
|
||||
@Resource
|
||||
private GzqToKzjhcwTask gzqToKzjhcwTask;
|
||||
@Resource
|
||||
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
|
||||
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@@ -85,41 +86,17 @@ public class AutoSendVehicleToKzj {
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
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();
|
||||
String pointCode1 = null;
|
||||
String pointCode2;
|
||||
boolean hasEmptyVehicle;
|
||||
//判断有空载具
|
||||
List<BstIvtPackageinfoivt> vehicleList = kzjIvtList.stream()
|
||||
.filter(n -> n.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")))
|
||||
.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) {
|
||||
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)) {
|
||||
pointCode2 = kzjIvtList.get(0).getPoint_code();
|
||||
if (pointCode2 == null) {
|
||||
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 {
|
||||
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("升序"), "");
|
||||
|
||||
Reference in New Issue
Block a user