add:增加复称和NG搬出与搬入卷临时管制点相关逻辑

This commit is contained in:
2024-07-15 18:40:41 +08:00
parent f085095da5
commit fbc75a982e
4 changed files with 77 additions and 22 deletions

View File

@@ -782,17 +782,49 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
@Override @Override
public JSONObject update(JSONObject whereJson) { public JSONObject update(JSONObject whereJson) {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
if (!whereJson.containsKey("ivt_status") || !whereJson.containsKey("container_name")) { if (StringUtils.isBlank(whereJson.getString("ivt_status"))) {
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value()); result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
result.put("message", "子卷号或子卷品质为空"); result.put("message", "子卷检验结果为空");
return result;
}
//"空","0","空载具","1","有子卷","2","合格品","3","管制品","4"
BstIvtPackageinfoivt dto = null;
//子卷质检
if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isBlank(whereJson.getString("pointCode"))) {
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
subpackagerelationService.createSubTest(whereJson);
}
dto = bstIvtPackageinfoivtMapper.selectOne(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getContainer_name, whereJson.getString("container_name")));
}
//复称
else if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isNotBlank(whereJson.getString("pointCode"))) {
dto = bstIvtPackageinfoivtMapper.selectOne(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode")));
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
subpackagerelationService.createSubTest(whereJson);
dto.setIvt_status(PackageInfoIvtEnum.IVT_STATUS.code("合格品"));
dto.setContainer_name(whereJson.getString("container_name"));
} else {
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
result.put("message", "该点位只能放复称的合格品!");
return result;
}
}
//取放空载具
else if (StringUtils.isNotBlank(whereJson.getString("pointCode")) && StringUtils.isBlank(whereJson.getString("container_name"))) {
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
result.put("message", "该点位只能设置为合格品,空载具或空点位,如需设置合格品,需要先扫描子卷号");
return result;
}
dto = bstIvtPackageinfoivtMapper.selectOne(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode").equals("1") ? "ZXQ_135" : "ZXQ_136"));
} else {
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
result.put("message", "请输入子卷号或管制点位信息!");
return result; return result;
} }
subpackagerelationService.createSubTest(whereJson);
//"有子卷","2","合格品","3","管制品","4"
BstIvtPackageinfoivt dto = bstIvtPackageinfoivtMapper.selectOne(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getContainer_name, whereJson.getString("container_name")));
if (dto == null) { if (dto == null) {
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value()); result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
result.put("message", "子卷号有误,请核对是否存在!"); result.put("message", "子卷号或管制点位信息有误,请核对是否存在!");
return result; return result;
} }
dto.setIvt_status(whereJson.getString("ivt_status")); dto.setIvt_status(whereJson.getString("ivt_status"));

View File

@@ -55,15 +55,20 @@ public class AutoSendDjqToGzq {
return; return;
} }
//管制区有空位且过滤未完成任务 //管制区有空位且过滤未完成任务
List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code(""), ""); List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code(""), "");
if (CollectionUtils.isEmpty(gzqPackageinfoivtList)) { //todo 新增NG卷放置临时管制区107108只取空不补空
List<BstIvtPackageinfoivt> ivtLists =
gzqPackageinfoivtList.stream()
.filter(r -> r.getPoint_code().equals("ZXQ_135") || r.getPoint_code().equals("ZXQ_136"))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(ivtLists)) {
return; return;
} }
JSONObject task = new JSONObject(); JSONObject task = new JSONObject();
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->管制区"));
task.put("vehicle_code", djqPackageinfoivtList.get(0).getContainer_name()); task.put("vehicle_code", djqPackageinfoivtList.get(0).getContainer_name());
task.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code());
task.put("point_code2", gzqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code2", ivtLists.get(0).getPoint_code());
gzqTask.createTask(task); gzqTask.createTask(task);
} else { } else {
log.info("放满与取空桁架任务正在创建被锁住。"); log.info("放满与取空桁架任务正在创建被锁住。");

View File

@@ -7,13 +7,18 @@ 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.service.IbstIvtPackageinfoivtService; 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.SendDjqKzjTask; import org.nl.b_lms.sch.tasks.first_floor_area.SendDjqKzjTask;
import org.nl.b_lms.sch.tasks.first_floor_area.SendGzqKzjTask; import org.nl.b_lms.sch.tasks.first_floor_area.SendGzqKzjTask;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; 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.util.ArrayList;
import java.util.Collections;
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;
@@ -24,6 +29,8 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoSendVehicleToDjq { public class AutoSendVehicleToDjq {
private final String THIS_CLASS = AutoSendVehicleToDjq.class.getName(); private final String THIS_CLASS = AutoSendVehicleToDjq.class.getName();
@Resource
private IschBaseTaskService taskService;
@Resource @Resource
@@ -54,21 +61,25 @@ public class AutoSendVehicleToDjq {
if (tryLock) { if (tryLock) {
String pointCode2; String pointCode2;
JSONObject task = new JSONObject(); JSONObject task = new JSONObject();
// List<BstIvtPackageinfoivt> ivtList =ibstIvtPackageinfoivtService.getBstIvtPackageinfoivts(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"),""); //存在装箱任务,暂不补空
// if (CollectionUtils.isNotEmpty(ivtList)) { List<String> taskTypes = new ArrayList<>(Collections.singletonList(PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")));
// return; List<SchBaseTask> existTaskList = taskService.getExistTasks(taskTypes);
// } if (CollectionUtils.isNotEmpty(existTaskList)) {
return;
}
//存在装箱区有空载具的点位 //存在装箱区有空载具的点位
List<BstIvtPackageinfoivt> zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); List<BstIvtPackageinfoivt> zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", "");
if (CollectionUtils.isEmpty(zxqIvtList)) { if (CollectionUtils.isEmpty(zxqIvtList)) {
return; return;
} }
if ( Integer.parseInt(zxqIvtList.get(0).getSort_seq().toString()) % 2 != 0) { // if ( Integer.parseInt(zxqIvtList.get(0).getSort_seq().toString()) % 2 != 0) {
//优先去管制区 // //优先去管制区
pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); // pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
} else { // } else {
pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); // pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
} // }
//todo 新增NG卷放置临时管制区107108只取空不补空
pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
//去装箱区搬运空载具 //去装箱区搬运空载具
if (pointCode2 != null) { if (pointCode2 != null) {
task.put("point_code2", pointCode2); task.put("point_code2", pointCode2);
@@ -97,13 +108,20 @@ public class AutoSendVehicleToDjq {
if (taskType.equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"))) { 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("升序"), ""); packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
if (CollectionUtils.isEmpty(packageList)) { if (CollectionUtils.isEmpty(packageList)) {
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); //todo 新增NG卷放置临时管制区107108只取空不补空
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
packageList = packageList.stream()
.filter(r -> !r.getPoint_code().equals("ZXQ_135") && !r.getPoint_code().equals("ZXQ_136"))
.collect(Collectors.toList());
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
} else { } else {
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
} }
} else { } else {
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
packageList = packageList.stream()
.filter(r -> !r.getPoint_code().equals("ZXQ_135") && !r.getPoint_code().equals("ZXQ_136"))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(packageList)) { if (CollectionUtils.isEmpty(packageList)) {
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); 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("补空(装箱区->待检区)")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));

View File

@@ -111,7 +111,7 @@ public class AutoSendVehicleToKzj {
} }
if (existTask.size() % 2 != 0) { if (existTask.size() % 2 != 0) {
//优先去待检区 //优先去待检区
pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区待检区->空载具缓存位)"));
} else { } else {
pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
} }