add:增加子卷包装关系更新木箱长宽高,增加过滤条件非空校验
This commit is contained in:
@@ -266,7 +266,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
BigDecimal totalWeight;
|
||||
totalWeight = planList.stream()
|
||||
.map(PdmBiSlittingproductionplan::getWeight)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(p -> p != null && !p.trim().isEmpty())
|
||||
.filter(r -> !r.isEmpty())
|
||||
.map(BigDecimal::new)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
@@ -278,7 +278,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
.selectList(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getSale_order_name, packagerelationList.get(0).getSale_order_name()));
|
||||
Integer maxBoxGroup = pdmBiSubpackagerelationList.stream()
|
||||
.map(PdmBiSubpackagerelation::getBox_group)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(r -> r != null && !r.trim().isEmpty())
|
||||
.map(Integer::parseInt)
|
||||
.max(Integer::compareTo)
|
||||
.orElse(0) + 1;
|
||||
@@ -343,7 +343,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
String weightTotal = totalWeight.toString();
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
updateBoxGroup(maxBoxGroup, workIdList, boxSn, whereJson.getString("checked"), weightTotal);
|
||||
updateBoxGroup(maxBoxGroup, workIdList, boxDao, weightTotal);
|
||||
} catch (Exception e) {
|
||||
log.error("子卷装箱异常,updateBoxGroup更新子卷包装关系异常,木箱号为:" + boxSn + ",异常信息:" + e);
|
||||
}
|
||||
@@ -367,14 +367,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void updateBoxGroup(Integer maxBoxGroup, List<String> entityList, String boxSn, String boxType, String totalWeight) {
|
||||
private void updateBoxGroup(Integer maxBoxGroup, List<String> entityList, BstIvtBoxinfo boxDao, String totalWeight) {
|
||||
UpdateWrapper<PdmBiSubpackagerelation> updateWrapper = new UpdateWrapper<>();
|
||||
//理论毛重
|
||||
updateWrapper.set("box_weight", totalWeight);
|
||||
updateWrapper.set("package_box_sn", boxSn);
|
||||
updateWrapper.set("package_box_sn", boxDao.getBox_no());
|
||||
updateWrapper.set("quanlity_in_box", entityList.size());
|
||||
updateWrapper.set("box_type", boxType);
|
||||
updateWrapper.set("box_type", boxDao.getMaterial_code());
|
||||
updateWrapper.set("box_length", boxDao.getBox_length());
|
||||
updateWrapper.set("box_width", boxDao.getBox_width());
|
||||
updateWrapper.set("box_high", boxDao.getBox_high());
|
||||
updateWrapper.set("box_group", maxBoxGroup);
|
||||
updateWrapper.set("status", "0");
|
||||
updateWrapper.in("workorder_id", entityList);
|
||||
|
||||
@@ -288,14 +288,14 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
task.getPoint_code1(),
|
||||
task.getPoint_code3()
|
||||
))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(point -> point != null && !point.trim().isEmpty() )
|
||||
.collect(Collectors.toSet());
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务分配"))) {
|
||||
pointSets = taskList.stream()
|
||||
.flatMap(task -> Stream.of(
|
||||
task.getPoint_code1()
|
||||
))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(point -> point != null && !point.trim().isEmpty())
|
||||
.collect(Collectors.toSet());
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"))) {
|
||||
pointSets = taskList.stream()
|
||||
@@ -303,13 +303,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
task.getPoint_code2(),
|
||||
task.getPoint_code4()
|
||||
))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(point -> point != null && !point.trim().isEmpty() && !point.equals("ZXQ_01_1") && !point.equals("ZXQ_01_2"))
|
||||
.collect(Collectors.toSet());
|
||||
List<BstIvtPackageinfoivt> ivtList = packageinfoivtList.stream().filter(r -> r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具"))).collect(Collectors.toList());
|
||||
Set<String> ivtpointSets = ivtList.stream().map(BstIvtPackageinfoivt::getPoint_code).collect(Collectors.toSet());
|
||||
if (CollectionUtils.isNotEmpty(ivtpointSets)) {
|
||||
//存在任务数量+已有库存数量大于3,不创建任务
|
||||
if (pointSets.size() + ivtpointSets.size() > 3) {
|
||||
if (pointSets.size() + ivtpointSets.size() >= 3) {
|
||||
return returList;
|
||||
}
|
||||
}
|
||||
@@ -319,7 +319,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
task.getPoint_code1(),
|
||||
task.getPoint_code2()
|
||||
))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(point -> point != null && !point.trim().isEmpty() )
|
||||
.collect(Collectors.toSet());
|
||||
} else {
|
||||
pointSets = taskList.stream()
|
||||
@@ -329,7 +329,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
task.getPoint_code3(),
|
||||
task.getPoint_code4()
|
||||
))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(point -> point != null && !point.trim().isEmpty() )
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
//符合条件的库存点位过滤掉已存在任务的点位
|
||||
@@ -346,11 +346,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
|
||||
/**
|
||||
* 获取没有阻挡的点位
|
||||
* ivtList 没分配任务的点位
|
||||
* taskList 已分配任务的点位
|
||||
*/
|
||||
private List<BstIvtPackageinfoivt> getNoBlockIvt(String pointCode, List<SchBaseTask> taskList, List<BstIvtPackageinfoivt> ivtList) {
|
||||
Set<String> taskPointSet = null;
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1")).collect(Collectors.toSet());
|
||||
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||
taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1") && !pointCode2.equals("ZXQ_01_2")).collect(Collectors.toSet());
|
||||
}
|
||||
List<BstIvtPackageinfoivt> pointList = new ArrayList<>();
|
||||
//存在补空载具任务已分配却未完成的任务
|
||||
|
||||
@@ -20,20 +20,22 @@ public enum PackageInfoIvtEnum {
|
||||
//点位类型
|
||||
POINT_STATUS(MapOf.of("满轴缓存位", "1", "空载具缓存位", "2", "待检区", "3", "管制区", "4", "装箱位", "5", "装箱区", "6","等待点", "7")),
|
||||
|
||||
//深浅位类型
|
||||
DEPTH_TYPE(MapOf.of("浅货位", "0", "深货位", "1")),
|
||||
|
||||
//任务类型
|
||||
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010901", "满轴缓存位->待检区", "010902", "满轴缓存位->管制区",
|
||||
"010903", "放空(空载具缓存位->输送线)", "010904", "补空(待检区->空载具缓存位)", "010905", "待检区->管制区",
|
||||
"010906", "管制区->待检区", "010907", "待检区->装箱区", "010908", "装箱区->装箱对接位", "010909",
|
||||
"补空(装箱区->待检区)", "010910", "输送线四个点任务", "010911", "补空(装箱区->管制区)", "010912",
|
||||
"补空(管制区->空载具缓存位)","010913")),
|
||||
"补空(管制区->空载具缓存位)","010913","待检区移库任务","010914","管制区移库任务","010915")),
|
||||
|
||||
//ACS任务类型
|
||||
ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),
|
||||
|
||||
|
||||
//agv二次分配类型
|
||||
AGV_ACTION_TYPE(MapOf.of("普通任务", "1", "取货二次分配", "2", "放货二次分配", "3", "取放货二次分配", "4")),
|
||||
AGV_ACTION_TYPE(MapOf.of("普通任务", "1", "取货二次分配", "2", "放货二次分配", "3", "取放货二次分配", "4", "移库任务", "5")),
|
||||
|
||||
|
||||
//二次分配请求类型
|
||||
|
||||
Reference in New Issue
Block a user