fix:子卷下线桁架任务修改
This commit is contained in:
@@ -197,6 +197,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
* @param taskCode 任务编号
|
||||
* @param actionType 动作类型
|
||||
* @return 新的点位
|
||||
* @remark 当前二次分配只会做空载具的二次分配,其他满卷的二次分配不会再做
|
||||
*/
|
||||
private String getNewPoint(String taskCode, String actionType) {
|
||||
BstIvtPackageinfoivt newPoint;
|
||||
@@ -231,6 +232,16 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
if (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);
|
||||
} else {
|
||||
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
|
||||
@@ -640,10 +651,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
if (ivtInfo == null) {
|
||||
throw new BadRequestException(baseTask.getTask_code() + "取货完成或放货完成失败,目标点位:" + baseTask.getPoint_code1() + "不存在!");
|
||||
}
|
||||
//过滤未二次分配的任务
|
||||
/*//过滤未二次分配的任务
|
||||
if (StringUtils.isBlank(baseTask.getResponse_param())) {
|
||||
throw new BadRequestException(baseTask.getTask_code() + "取货完成失败" + ",起点未进行二次分配!");
|
||||
}
|
||||
}*/
|
||||
//只有子卷号相同才能清除库存
|
||||
if (baseTask.getVehicle_code().equals(ivtInfo.getContainer_name())) {
|
||||
upDateIvtOrTask(baseTask, baseTask.getPoint_code1());
|
||||
@@ -983,7 +994,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SneakyThrows
|
||||
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);
|
||||
try {
|
||||
if (tryLock) {
|
||||
|
||||
@@ -154,14 +154,14 @@ public class DjqTask extends AbstractAcsTask {
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code("否"))
|
||||
.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)) {
|
||||
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
|
||||
updateWrapper1.eq("task_id", SamePointtaskList.get(0).getTask_id());
|
||||
updateWrapper1.set("point_code3", schBaseTask.getPoint_code3());
|
||||
taskService.update(null, updateWrapper1);
|
||||
}
|
||||
updateWrapper.set(SchBaseTask::getPoint_code3, "");
|
||||
updateWrapper.set(SchBaseTask::getPoint_code3, "");*/
|
||||
//6.判断是否存在任务组任务
|
||||
packageinfoivtService.handleGroupTask(schBaseTask);
|
||||
}
|
||||
|
||||
@@ -195,6 +195,7 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
|
||||
.task_id(org.nl.common.utils.IdUtil.getStringId())
|
||||
.task_code(org.nl.common.utils.IdUtil.getStringId())
|
||||
.handle_class(THIS_CLASS)
|
||||
.priority("2")
|
||||
.create_id(SecurityUtils.getCurrentUserId())
|
||||
.create_name(SecurityUtils.getCurrentUsername())
|
||||
.create_time(DateUtil.now())
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.nl.wms.util.TaskUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -66,13 +67,14 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
private DjqTask djqTask;
|
||||
@Resource
|
||||
private GzqTask gzqTask;
|
||||
@Resource
|
||||
private SsxDjwTask ssxDjwTask;
|
||||
|
||||
|
||||
@Resource
|
||||
private DjqToKzjhcwTask djqToKzjhcwTask;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
@@ -91,7 +93,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
.next_device_code2(r.getPoint_code4())
|
||||
//四个点任务与两个点任务类型区分
|
||||
.agv_action_type(r.getVehicle_code2())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.vehicle_code(r.getVehicle_code())
|
||||
.priority(r.getPriority())
|
||||
.remark(r.getRemark())
|
||||
.class_type(IOSEnum.ACS_TYPE.code("子卷下线行架任务"))
|
||||
@@ -109,7 +111,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
String now = DateUtil.now();
|
||||
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>()
|
||||
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
|
||||
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||
@@ -122,36 +124,48 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
// 完成
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------");
|
||||
//1.更改任务状态为完成
|
||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
||||
//2.校验桁架任务取放货完成信号
|
||||
if (StringUtils.isNotBlank(schBaseTask.getCar_no())) {
|
||||
//桁架放货完成信号未发送
|
||||
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 {
|
||||
//桁架放货完成信号未发送
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------");
|
||||
//1.更改任务状态为完成
|
||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
||||
//2.校验桁架任务取放货完成信号
|
||||
if (StringUtils.isNotBlank(schBaseTask.getCar_no())) {
|
||||
//桁架放货完成信号未发送
|
||||
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());
|
||||
log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:" + schBaseTask.getVehicle_code());
|
||||
}
|
||||
if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) {
|
||||
if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) {
|
||||
//桁架取货完成信号未发送
|
||||
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()));
|
||||
log.info(schBaseTask.getTask_code() + "检查检查->四个点任务,桁架取货完成信号未发送!已在手动点击完成时清除空载具位:" + schBaseTask.getPoint_code3() + "的库存");
|
||||
}
|
||||
} else {
|
||||
//桁架取货完成信号未发送
|
||||
} 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()));
|
||||
log.info(schBaseTask.getTask_code() + "检查检查->输送线点位-满轴缓存位,桁架放货完成信号未发送!已在手动点击完成时增加满轴位:" + schBaseTask.getPoint_code2() + "的库存,子卷号为:" + schBaseTask.getVehicle_code());
|
||||
}
|
||||
if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) {
|
||||
if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) {
|
||||
//桁架取货完成信号未发送
|
||||
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()));
|
||||
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 (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::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);
|
||||
@@ -376,8 +390,6 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
@@ -398,9 +410,4 @@ public class MzhcwTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
|
||||
@@ -101,13 +101,12 @@ public class AutoSendMzToDjq {
|
||||
log.error(THIS_CLASS + "满轴->待检区agv自动搬运任务暂无可用空位,子卷号为:" + mzqPackageinfoivtList.get(0).getContainer_name());
|
||||
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("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_code3", mzqPackageinfoivtList.get(0).getPoint_code());
|
||||
djqTask.createTask(task);
|
||||
} else {
|
||||
log.info("满轴->待检区agv自动搬运任务正在创建被锁住。");
|
||||
|
||||
@@ -77,7 +77,7 @@ public class TaskQueue {
|
||||
.eq("vehicle_code2", block)
|
||||
.eq("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
|
||||
.eq("is_delete", IOSEnum.IS_NOTANDYES.code("否"))
|
||||
.orderByDesc("create_time", "task_step"));
|
||||
.orderByAsc("create_time"));
|
||||
log.info("当前zxq有起点任务数量"+list.size());
|
||||
for (int i = 0; i < Math.min(empPointList.size(),list.size()); i++) {
|
||||
String empPoin = empPointList.get(i);
|
||||
|
||||
@@ -1884,14 +1884,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
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<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> 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());
|
||||
@@ -1899,15 +1893,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
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("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"));
|
||||
@@ -1925,6 +1916,54 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 无空载具下发确定终点的补空桁架任务
|
||||
*/
|
||||
|
||||
@@ -539,7 +539,7 @@ public class BakingServiceImpl implements BakingService {
|
||||
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 hotParam = new JSONObject();
|
||||
@@ -565,7 +565,7 @@ public class BakingServiceImpl implements BakingService {
|
||||
} else {
|
||||
hotParam.put("oven_time", last_hot_mst.getString("oven_time"));
|
||||
}
|
||||
this.createHotIoMst(hotParam);*/
|
||||
this.createHotIoMst(hotParam);
|
||||
}
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
Reference in New Issue
Block a user