fix:子卷下线桁架任务修改

This commit is contained in:
zhouz
2025-09-24 10:12:27 +08:00
parent 6ae7704463
commit c9d6657060
9 changed files with 114 additions and 56 deletions

View File

@@ -197,6 +197,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
* @param taskCode 任务编号 * @param taskCode 任务编号
* @param actionType 动作类型 * @param actionType 动作类型
* @return 新的点位 * @return 新的点位
* @remark 当前二次分配只会做空载具的二次分配,其他满卷的二次分配不会再做
*/ */
private String getNewPoint(String taskCode, String actionType) { private String getNewPoint(String taskCode, String actionType) {
BstIvtPackageinfoivt newPoint; BstIvtPackageinfoivt newPoint;
@@ -231,6 +232,16 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) || if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) ||
baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))
) { ) {
count = taskService.count(new QueryWrapper<SchBaseTask>()
.eq("task_type", "010904")
.eq("is_delete", "0")
.ne("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))
.in("task_status", Arrays.asList(TaskStatusEnum.START_AND_POINT.getCode(),
TaskStatusEnum.ISSUE.getCode(),
TaskStatusEnum.EXECUTING.getCode())));
if (count > 0) {
throw new BadRequestException("正在执行空载具上线桁架任务");
}
newPoint = checkIvtSBlock(baseTask); newPoint = checkIvtSBlock(baseTask);
} else { } else {
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) { if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
@@ -640,10 +651,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
if (ivtInfo == null) { if (ivtInfo == null) {
throw new BadRequestException(baseTask.getTask_code() + "取货完成或放货完成失败,目标点位:" + baseTask.getPoint_code1() + "不存在!"); throw new BadRequestException(baseTask.getTask_code() + "取货完成或放货完成失败,目标点位:" + baseTask.getPoint_code1() + "不存在!");
} }
//过滤未二次分配的任务 /*//过滤未二次分配的任务
if (StringUtils.isBlank(baseTask.getResponse_param())) { if (StringUtils.isBlank(baseTask.getResponse_param())) {
throw new BadRequestException(baseTask.getTask_code() + "取货完成失败" + ",起点未进行二次分配!"); throw new BadRequestException(baseTask.getTask_code() + "取货完成失败" + ",起点未进行二次分配!");
} }*/
//只有子卷号相同才能清除库存 //只有子卷号相同才能清除库存
if (baseTask.getVehicle_code().equals(ivtInfo.getContainer_name())) { if (baseTask.getVehicle_code().equals(ivtInfo.getContainer_name())) {
upDateIvtOrTask(baseTask, baseTask.getPoint_code1()); upDateIvtOrTask(baseTask, baseTask.getPoint_code1());
@@ -983,7 +994,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@SneakyThrows @SneakyThrows
public JSONObject update(JSONObject whereJson) { public JSONObject update(JSONObject whereJson) {
RLock lock = redissonClient.getLock("updatePackageInfo------"+whereJson.getString("container_name")); RLock lock = redissonClient.getLock("updatePackageInfo------" + whereJson.getString("container_name"));
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try { try {
if (tryLock) { if (tryLock) {

View File

@@ -154,14 +154,14 @@ public class DjqTask extends AbstractAcsTask {
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")) .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code("")) .eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code(""))
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())); .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
List<SchBaseTask> SamePointtaskList = taskList.stream().filter(r -> r.getPoint_code3().equals(schBaseTask.getPoint_code1())&&!r.getTask_id().equals(schBaseTask.getTask_id())).collect(Collectors.toList()); /*List<SchBaseTask> SamePointtaskList = taskList.stream().filter(r -> r.getPoint_code3().equals(schBaseTask.getPoint_code1())&&!r.getTask_id().equals(schBaseTask.getTask_id())).collect(Collectors.toList());
if (ObjectUtils.isNotEmpty(SamePointtaskList)) { if (ObjectUtils.isNotEmpty(SamePointtaskList)) {
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>(); UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("task_id", SamePointtaskList.get(0).getTask_id()); updateWrapper1.eq("task_id", SamePointtaskList.get(0).getTask_id());
updateWrapper1.set("point_code3", schBaseTask.getPoint_code3()); updateWrapper1.set("point_code3", schBaseTask.getPoint_code3());
taskService.update(null, updateWrapper1); taskService.update(null, updateWrapper1);
} }
updateWrapper.set(SchBaseTask::getPoint_code3, ""); updateWrapper.set(SchBaseTask::getPoint_code3, "");*/
//6.判断是否存在任务组任务 //6.判断是否存在任务组任务
packageinfoivtService.handleGroupTask(schBaseTask); packageinfoivtService.handleGroupTask(schBaseTask);
} }

View File

@@ -195,6 +195,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
.task_id(org.nl.common.utils.IdUtil.getStringId()) .task_id(org.nl.common.utils.IdUtil.getStringId())
.task_code(org.nl.common.utils.IdUtil.getStringId()) .task_code(org.nl.common.utils.IdUtil.getStringId())
.handle_class(THIS_CLASS) .handle_class(THIS_CLASS)
.priority("2")
.create_id(SecurityUtils.getCurrentUserId()) .create_id(SecurityUtils.getCurrentUserId())
.create_name(SecurityUtils.getCurrentUsername()) .create_name(SecurityUtils.getCurrentUsername())
.create_time(DateUtil.now()) .create_time(DateUtil.now())

View File

@@ -31,6 +31,7 @@ import org.nl.wms.util.TaskUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -66,13 +67,14 @@ public class MzhcwTask extends AbstractAcsTask {
private DjqTask djqTask; private DjqTask djqTask;
@Resource @Resource
private GzqTask gzqTask; private GzqTask gzqTask;
@Resource
private SsxDjwTask ssxDjwTask;
@Resource @Resource
private DjqToKzjhcwTask djqToKzjhcwTask; private DjqToKzjhcwTask djqToKzjhcwTask;
@Override @Override
public List<AcsTaskDto> addTask() { public List<AcsTaskDto> addTask() {
ArrayList<AcsTaskDto> resultList = new ArrayList<>(); ArrayList<AcsTaskDto> resultList = new ArrayList<>();
@@ -91,7 +93,7 @@ public class MzhcwTask extends AbstractAcsTask {
.next_device_code2(r.getPoint_code4()) .next_device_code2(r.getPoint_code4())
//四个点任务与两个点任务类型区分 //四个点任务与两个点任务类型区分
.agv_action_type(r.getVehicle_code2()) .agv_action_type(r.getVehicle_code2())
.vehicle_code(r.getVehicle_code()) .vehicle_code(r.getVehicle_code())
.priority(r.getPriority()) .priority(r.getPriority())
.remark(r.getRemark()) .remark(r.getRemark())
.class_type(IOSEnum.ACS_TYPE.code("子卷下线行架任务")) .class_type(IOSEnum.ACS_TYPE.code("子卷下线行架任务"))
@@ -109,7 +111,7 @@ public class MzhcwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
String now = DateUtil.now(); String now = DateUtil.now();
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.FINISHED.getCode())) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.FINISHED.getCode())) return;
LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>() LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id")) .eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId()) .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
@@ -122,36 +124,48 @@ public class MzhcwTask extends AbstractAcsTask {
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode());
} }
// 完成 // 完成
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------");
//1.更改任务状态为完成 //1.更改任务状态为完成
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//2.校验桁架任务取放货完成信号 //2.校验桁架任务取放货完成信号
if (StringUtils.isNotBlank(schBaseTask.getCar_no())) { if (StringUtils.isNotBlank(schBaseTask.getCar_no())) {
//桁架放货完成信号未发送 //桁架放货完成信号未发送
if (!schBaseTask.getCar_no().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成"))) { if (!schBaseTask.getCar_no().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成"))) {
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:"+schBaseTask.getVehicle_code());
}
} else {
//桁架放货完成信号未发送
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:"+schBaseTask.getVehicle_code()); log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:" + schBaseTask.getVehicle_code());
} }
if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) { } else {
if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) { //桁架放货完成信号未发送
//桁架取货完成信号未发送 packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
if (!schBaseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:" + schBaseTask.getVehicle_code());
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3())); }
log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存"); if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) {
} if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) {
} else { //桁架取货完成信号未发送
//桁架取货完成信号未发送 if (!schBaseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) {
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3())); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3()));
log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存"); log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存");
} }
} else {
//桁架取货完成信号未发送
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3()));
log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存");
} }
} }
if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) {
//空载具缓存位缺少空载具,下发一个确定终点的空载具缓存位->输送线任务
JSONObject jo1 = new JSONObject();
//创建确定终点任务
jo1.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
jo1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
jo1.put("point_code2", "NBJ1002");
jo1.put("vehicle_code", schBaseTask.getVehicle_code());
jo1.put("task_status", TaskStatusEnum.SURE_END.getCode());
jo1.put("is_send", false);
ssxDjwTask.createTask(jo1);
}
}
// 取消 // 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) { if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
@@ -160,7 +174,7 @@ public class MzhcwTask extends AbstractAcsTask {
//任务被标记为取消 //任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(null, updateWrapper); taskService.update(null, updateWrapper);
@@ -376,8 +390,6 @@ public class MzhcwTask extends AbstractAcsTask {
} }
@Override @Override
public void cancel(String taskId) { public void cancel(String taskId) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>() SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
@@ -398,9 +410,4 @@ public class MzhcwTask extends AbstractAcsTask {
} }
} }

View File

@@ -19,6 +19,7 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.manage.TaskStatusEnum;

View File

@@ -101,13 +101,12 @@ public class AutoSendMzToDjq {
log.error(THIS_CLASS + "满轴->待检区agv自动搬运任务暂无可用空位,子卷号为:" + mzqPackageinfoivtList.get(0).getContainer_name()); log.error(THIS_CLASS + "满轴->待检区agv自动搬运任务暂无可用空位,子卷号为:" + mzqPackageinfoivtList.get(0).getContainer_name());
return; return;
} }
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("取货二次分配")); task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"));
task.put("vehicle_code", mzqPackageinfoivtList.get(0).getContainer_name()); task.put("vehicle_code", mzqPackageinfoivtList.get(0).getContainer_name());
task.put("point_code1", packageinfoivtService.getWaitPoint(mzqPackageinfoivtList.get(0).getBlock(), mzqPackageinfoivtList.get(0).getWait_point_type())); task.put("point_code1", mzqPackageinfoivtList.get(0).getPoint_code());
//如果浅库位和深库位都有空位,且为一组,优先深库位 //如果浅库位和深库位都有空位,且为一组,优先深库位
task.put("point_code2", selectEmpPoints.get(0).getPoint_code()); task.put("point_code2", selectEmpPoints.get(0).getPoint_code());
task.put("point_code3", mzqPackageinfoivtList.get(0).getPoint_code());
djqTask.createTask(task); djqTask.createTask(task);
} else { } else {
log.info("满轴->待检区agv自动搬运任务正在创建被锁住。"); log.info("满轴->待检区agv自动搬运任务正在创建被锁住。");

View File

@@ -77,7 +77,7 @@ public class TaskQueue {
.eq("vehicle_code2", block) .eq("vehicle_code2", block)
.eq("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")) .eq("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
.eq("is_delete", IOSEnum.IS_NOTANDYES.code("")) .eq("is_delete", IOSEnum.IS_NOTANDYES.code(""))
.orderByDesc("create_time", "task_step")); .orderByAsc("create_time"));
log.info("当前zxq有起点任务数量"+list.size()); log.info("当前zxq有起点任务数量"+list.size());
for (int i = 0; i < Math.min(empPointList.size(),list.size()); i++) { for (int i = 0; i < Math.min(empPointList.size(),list.size()); i++) {
String empPoin = empPointList.get(i); String empPoin = empPointList.get(i);

View File

@@ -1884,14 +1884,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("message", "满轴位无可用位置"); result.put("message", "满轴位无可用位置");
return result; return result;
} }
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService
.selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
if (CollectionUtils.isEmpty(empPoints)) {
result.put("message", "空轴位无可用位置");
return result;
}
// 创建前先判断是否有已创建相同任务 // 创建前先判断是否有已创建相同任务
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))); List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")));
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes); List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList()); List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
@@ -1899,15 +1893,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("message", "存在正在执行的输送线行架任务"); result.put("message", "存在正在执行的输送线行架任务");
return result; return result;
} }
List<BstIvtPackageinfoivt> sortEmpPoint = empPoints.stream().sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList());
JSONObject taskParam = new JSONObject(); JSONObject taskParam = new JSONObject();
taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
taskParam.put("vehicle_code", whereJson.getString("material_barcode")); taskParam.put("vehicle_code", whereJson.getString("material_barcode"));
taskParam.put("point_code1", whereJson.getString("device_code")); taskParam.put("point_code1", whereJson.getString("device_code"));
taskParam.put("point_code2", MzPoints.get(0).getPoint_code()); taskParam.put("point_code2", MzPoints.get(0).getPoint_code());
taskParam.put("point_code3", sortEmpPoint.get(0).getPoint_code()); taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
taskParam.put("point_code4", whereJson.getString("device_code"));
taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
taskParam.put("is_send", true); taskParam.put("is_send", true);
mzhcwTask.createTask(taskParam); mzhcwTask.createTask(taskParam);
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, whereJson.getString("material_barcode")); PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, whereJson.getString("material_barcode"));
@@ -1925,6 +1916,54 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return result; return result;
} }
private JSONObject getJsonObject(JSONObject whereJson, JSONObject result) {
//1.查询满轴缓存位是否有空位
List<BstIvtPackageinfoivt> MzPoints = packageinfoivtService
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code(""))
.orderByDesc(BstIvtPackageinfoivt::getSort_seq));
if (CollectionUtils.isEmpty(MzPoints)) {
result.put("message", "满轴位无可用位置");
return result;
}
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService
.selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
if (CollectionUtils.isEmpty(empPoints)) {
result.put("message", "空轴位无可用位置");
return result;
}
// 创建前先判断是否有已创建相同任务
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(existTaskList2) || !CollectionUtils.isEmpty(existTaskList3)) {
result.put("message", "存在正在执行的输送线行架任务");
return result;
}
List<BstIvtPackageinfoivt> sortEmpPoint = empPoints.stream().sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList());
JSONObject taskParam = new JSONObject();
taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
taskParam.put("vehicle_code", whereJson.getString("material_barcode"));
taskParam.put("point_code1", whereJson.getString("device_code"));
taskParam.put("point_code2", MzPoints.get(0).getPoint_code());
taskParam.put("point_code3", sortEmpPoint.get(0).getPoint_code());
taskParam.put("point_code4", whereJson.getString("device_code"));
taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
taskParam.put("is_send", true);
mzhcwTask.createTask(taskParam);
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, whereJson.getString("material_barcode"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
result.put("status", HttpStatus.OK.value());
result.put("message", "反馈成功!");
return result;
}
/** /**
* 无空载具下发确定终点的补空桁架任务 * 无空载具下发确定终点的补空桁架任务
*/ */

View File

@@ -539,7 +539,7 @@ public class BakingServiceImpl implements BakingService {
throw new BadRequestException("物料基础信息中无此物料!"); throw new BadRequestException("物料基础信息中无此物料!");
} }
/*//查询该母卷对应最近的一条入烘箱记录 //查询该母卷对应最近的一条入烘箱记录
JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + jsonHotIvt.getString("container_name") + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0); JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + jsonHotIvt.getString("container_name") + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0);
JSONObject hotParam = new JSONObject(); JSONObject hotParam = new JSONObject();
@@ -565,7 +565,7 @@ public class BakingServiceImpl implements BakingService {
} else { } else {
hotParam.put("oven_time", last_hot_mst.getString("oven_time")); hotParam.put("oven_time", last_hot_mst.getString("oven_time"));
} }
this.createHotIoMst(hotParam);*/ this.createHotIoMst(hotParam);
} }
} }
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();