opt:优化一楼装箱区任务类相关校验

This commit is contained in:
2024-07-02 13:12:34 +08:00
parent 9ecc870369
commit 1a72a6cb78
15 changed files with 197 additions and 213 deletions

View File

@@ -1,34 +1,33 @@
package org.nl.b_lms.sch.point.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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 cn.hutool.core.date.DateUtil;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.utils.SecurityUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@@ -38,8 +37,6 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static java.util.Collections.emptyList;
/**
* {@code @Description:} 装箱区点位库存表(BstIvtPackageInfoIvt)服务实现层
@@ -82,6 +79,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
if (CollectionUtils.isEmpty(pointIds)) {
return Collections.emptyList();
}
if (pointCode == null) {
return packageinfoivtList;
}
List<SchBaseTask> taskList;
Set<String> pointSets;
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) {
@@ -90,9 +90,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, null);
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, pointIds);
} else if(pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))){
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, pointIds);
}else{
} else {
return packageinfoivtList;
}
// 过滤未完成任务的任务
@@ -222,7 +222,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
result.put("status", HttpStatus.OK.value());
result.put("message", "操作成功!");
result.put("data", pointCode);
log.info("一楼装箱区点位二次分配接口请求返回结果:---------------------------------------------" + result);
} else {
log.info("一楼装箱区点位二次分配接口异常,正在分配中!");
result.put("status", HttpStatus.BAD_REQUEST.value());
@@ -233,6 +232,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
lock.unlock();
}
}
log.info("一楼装箱区点位二次分配接口请求返回结果:---------------------------------------------" + result);
return result;
}
@@ -247,6 +247,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
//执行中的任务
SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_code, taskCode)
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()));
if (baseTask == null) {
throw new BadRequestException("该任务未执行或不存在!");
@@ -277,9 +278,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
)));
if (CollectionUtils.isNotEmpty(taskList)) {
if (taskList.get(0).getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) {
newPoint.setPoint_code(taskList.get(0).getPoint_code3());
if (!checkIvtSBlock(taskList.get(0).getPoint_code3())) {
newPoint.setPoint_code(taskList.get(0).getPoint_code3());
}
} else {
newPoint.setPoint_code(taskList.get(0).getPoint_code1());
if (!checkIvtSBlock(taskList.get(0).getPoint_code1())) {
newPoint.setPoint_code(taskList.get(0).getPoint_code1());
}
}
} else {
//newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask);
@@ -307,6 +312,18 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
}
}
/**
* 实时判断点位外层是否有空载具
*/
private boolean checkIvtSBlock(String pointCode) {
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, null, PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
BigDecimal sortSeq = kzjIvtList.stream().filter(r -> r.getPoint_code().equals(pointCode)).collect(Collectors.toList()).get(0).getSort_seq();
return kzjIvtList.stream()
.anyMatch(r -> r.getSort_seq().compareTo(sortSeq) < 0 &&
r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")));
}
private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) {
BstIvtPackageinfoivt newPoint;
//1取货任务2放货任务
@@ -350,6 +367,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")));
}
if (hasEmptyVehicle) {
//有阻挡,无可以放货空位
return newPoint;
}
return emptyList.get();

View File

@@ -6,13 +6,11 @@ import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
@@ -22,6 +20,7 @@ import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueueManager;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -91,12 +90,14 @@ public class DjqTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态,二次分配,取货完成就改起点库存
@@ -106,24 +107,21 @@ public class DjqTask extends AbstractAcsTask {
//清除首次分配目标点位
schBaseTask.setPoint_code3("");
//4.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
//确定起点未下发
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
.eq(SchBaseTask::getPoint_code1, "NBJ1002")
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))
);
if (CollectionUtils.isNotEmpty(taskList)) {
SchBaseTask task = taskList.get(0);
task.setPoint_code2(schBaseTask.getPoint_code1());
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task.setUpdate_time(DateUtil.now());
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
task.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(task);
//任务下发
mzhcwTask.immediateNotifyAcs(task.getTask_id().toString());
}
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定起点未下发
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
// .eq(SchBaseTask::getPoint_code1, "NBJ1002")
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))
// .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
// );
// if (CollectionUtils.isNotEmpty(taskList)) {
// SchBaseTask task = taskList.get(0);
// task.setPoint_code2(schBaseTask.getPoint_code1());
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
// taskService.update(task);
// //任务下发
// mzhcwTask.immediateNotifyAcs(task.getTask_id().toString());
// }
//5搬运装箱区
//sendDjqToZxq(schBaseTask);
}
@@ -134,10 +132,9 @@ public class DjqTask extends AbstractAcsTask {
}
//任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -225,11 +222,10 @@ public class DjqTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("满轴缓存位 -> 待检区取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -6,13 +6,10 @@ import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
@@ -21,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -33,7 +31,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
@@ -92,11 +89,13 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -106,23 +105,20 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
//更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
//3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
//确定终点未下发
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
.eq(SchBaseTask::getPoint_code2, "NBJ1002")
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))
);
if (CollectionUtils.isNotEmpty(taskList)) {
SchBaseTask task = taskList.get(0);
task.setPoint_code1(schBaseTask.getPoint_code2());
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task.setUpdate_time(DateUtil.now());
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
task.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(task);
//任务下发
ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
}
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定终点未下发
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
// .eq(SchBaseTask::getPoint_code2, "NBJ1002")
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
// );
// if (CollectionUtils.isNotEmpty(taskList)) {
// SchBaseTask task = taskList.get(0);
// task.setPoint_code1(schBaseTask.getPoint_code2());
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
// taskService.update(task);
// //任务下发
// ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
// }
}
// 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
@@ -130,12 +126,10 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -207,11 +201,10 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("待检区->空载具缓存位取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -6,12 +6,10 @@ import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.RequiredArgsConstructor;
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.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
@@ -20,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -88,11 +87,13 @@ public class GzqTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -100,24 +101,21 @@ public class GzqTask extends AbstractAcsTask {
//更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
//3.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
//确定起点未下发
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
.eq(SchBaseTask::getPoint_code1, "NBJ1002")
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))
);
if (CollectionUtils.isNotEmpty(taskList)) {
SchBaseTask task = taskList.get(0);
task.setPoint_code2(schBaseTask.getPoint_code1());
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task.setUpdate_time(DateUtil.now());
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
task.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(task);
//任务下发
mzhcwTask.immediateNotifyAcs(task.getTask_id().toString());
}
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定起点未下发
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
// .eq(SchBaseTask::getPoint_code1, "NBJ1002")
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))
// .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
// );
// if (CollectionUtils.isNotEmpty(taskList)) {
// SchBaseTask task = taskList.get(0);
// task.setPoint_code2(schBaseTask.getPoint_code1());
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
// taskService.update(task);
// //任务下发
// mzhcwTask.immediateNotifyAcs(task.getTask_id().toString());
// }
}
// 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
@@ -125,12 +123,10 @@ public class GzqTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -201,11 +197,10 @@ public class GzqTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("满轴缓存位 -> 管制区取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}
}

View File

@@ -6,13 +6,10 @@ import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
@@ -21,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -33,7 +31,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
@@ -91,12 +88,14 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -106,23 +105,20 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
//更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
//3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
//确定终点未下发
.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
.eq(SchBaseTask::getPoint_code2, "NBJ1002")
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))
);
if (CollectionUtils.isNotEmpty(taskList)) {
SchBaseTask task = taskList.get(0);
task.setPoint_code1(schBaseTask.getPoint_code2());
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task.setUpdate_time(DateUtil.now());
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
task.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(task);
//任务下发
ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
}
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定终点未下发
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
// .eq(SchBaseTask::getPoint_code2, "NBJ1002")
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
// );
// if (CollectionUtils.isNotEmpty(taskList)) {
// SchBaseTask task = taskList.get(0);
// task.setPoint_code1(schBaseTask.getPoint_code2());
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
// taskService.update(task);
// //任务下发
// ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
// }
}
// 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
@@ -130,12 +126,10 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -207,11 +201,10 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("管制区->空载具缓存位取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -23,6 +23,7 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.enums.ContainerLevelEnum;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -109,13 +110,15 @@ public class MzhcwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
// 执行中
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
// 完成
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.更新库存记录
@@ -135,15 +138,13 @@ public class MzhcwTask extends AbstractAcsTask {
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
toSsxTask.put("vehicle_code", schBaseTask.getVehicle_code());
//判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具
//判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具,如果暂时没有空载具,定时任务会不断判断是否有空载具
if (CollectionUtils.isNotEmpty(kzjPointList)) {
//直接创建搬运空载具任务
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
//终点为输送线点位
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
ssxDjwTask.createTask(toSsxTask);
} else {
//sendVehicle(schBaseTask);
}
} else {
//四个点任务改变pointCode3点位状态
@@ -156,12 +157,11 @@ public class MzhcwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
// 更新任务表删除字段
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -357,11 +357,10 @@ public class MzhcwTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("输送线点位 -> 满轴缓存位取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -18,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -82,11 +83,13 @@ public class SendDjqKzjTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -100,12 +103,10 @@ public class SendDjqKzjTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -177,11 +178,10 @@ public class SendDjqKzjTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("装箱区->待检区送空载具取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -18,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -81,12 +82,14 @@ public class SendGzqKzjTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -100,12 +103,10 @@ public class SendGzqKzjTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -177,11 +178,10 @@ public class SendGzqKzjTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("装箱区->管制区送空载具取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -18,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -85,11 +86,13 @@ public class SsxDjwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -117,14 +120,10 @@ public class SsxDjwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -194,11 +193,10 @@ public class SsxDjwTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("空载具缓存位 -> 输送线取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}
}

View File

@@ -26,6 +26,7 @@ import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapp
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -103,11 +104,13 @@ public class ZxDjwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
.eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
if (containerInfo == null) {
@@ -149,13 +152,10 @@ public class ZxDjwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setRemark("任务被强制取消,不执行任何逻辑!");
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -228,12 +228,10 @@ public class ZxDjwTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("装箱区 -> 装箱对接位取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setRemark("任务被强制取消,不执行任何逻辑!");
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}
}

View File

@@ -26,6 +26,7 @@ import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapp
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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.system.service.param.ISysParamService;
import org.nl.wms.sch.AcsTaskDto;
@@ -33,7 +34,6 @@ import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.util.TaskUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -114,19 +114,21 @@ public class ZxqTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
// PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
// .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
// if (containerInfo == null) {
// throw new BadRequestException("该子卷信息不存在!");
// } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) {
// throw new BadRequestException("子卷号不能为空!");
// }
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
// PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
// .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
// if (containerInfo == null) {
// throw new BadRequestException("该子卷信息不存在!");
// } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) {
// throw new BadRequestException("子卷号不能为空!");
// }
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态
@@ -142,12 +144,10 @@ public class ZxqTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消");
}
//任务被标记为取消
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
}
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
taskService.update(schBaseTask);
}
@@ -300,11 +300,10 @@ public class ZxqTask extends AbstractAcsTask {
if (schBaseTask == null) {
throw new BadRequestException("待检区 -> 装箱区取消接口任务号为空!");
}
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
TaskUtils.updateOptMessageByTask(schBaseTask);
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setUpdate_time(DateUtil.now());
schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId());
schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName());
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(schBaseTask);
}

View File

@@ -1,6 +1,5 @@
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor;
@@ -10,7 +9,6 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
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.DjqTask;
import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask;
import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
@@ -22,9 +20,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j

View File

@@ -47,8 +47,6 @@ public class TaskUtils {
/**
* 根据任务维护分切点位库存
* @param taskObj 任务
* @param endPointObj 点位
* @param status 状态
*/
public static void pointMaintenanceInventory(SchBaseTask task, BstIvtCutpointivt target, String status) {

View File

@@ -1792,7 +1792,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
// 这个情况是有agv任务在搬去待检区或管制区的路上还没有更新任务状态需要查询是否有这种任务等这个任务更新完后
// 再补发之前创建的输送线到满轴缓存位任务;
log.info("二楼到一楼,成品子卷到达一楼输送线sendProductToFirstFloor--------------------------" + whereJson.toString());
log.info("二楼到一楼,成品子卷到达一楼输送线接口sendProductToFirstFloor被调用--------------------------" + whereJson.toString());
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
throw new BadRequestException("接口sendProductToFirstFloor目标站点或子卷号参数为空");
}
@@ -1855,15 +1855,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("message", "满轴缓存位暂无空位!");
}
} else {
log.info("二楼到一楼成品子卷到达一楼输送线,异常,任务正在创建");
log.info("二楼到一楼成品子卷到达一楼输送线任务正在创建被锁住。");
result.put("status", HttpStatus.BAD_REQUEST.value());
result.put("message", "任务正在创建中!");
result.put("message", "二楼到一楼成品子卷到达一楼输送线任务正在创建被锁住。");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
log.info("二楼到一楼成品子卷到达一楼输送线接口sendProductToFirstFloor调用成功--------------------------" + result.toString());
return result;
}

View File

@@ -134,7 +134,7 @@ public class TaskServiceImpl implements TaskService {
taskObj.put("update_optid", SecurityUtils.getCurrentUserId());
taskObj.put("update_optname", SecurityUtils.getCurrentUsername());
taskObj.put("update_time", DateUtil.now());
taskObj.put("remark", "任务被强制完成,不执行任何逻辑!");
taskObj.put("remark", "任务被用户:" + SecurityUtils.getCurrentUsername() + "在:" + DateUtil.now() + "强制完成。");
WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj);
} else {
// 任务处理类