opt:修改update方式只修改条件

This commit is contained in:
2024-07-16 13:09:15 +08:00
parent 70a68acebc
commit 9938bf4237
13 changed files with 385 additions and 195 deletions

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -100,6 +101,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
@SneakyThrows @SneakyThrows
public Map<String, Object> secondaryAllocationPoint(String taskCode, String actionType) { public Map<String, Object> secondaryAllocationPoint(String taskCode, String actionType) {
String pointCode = ""; String pointCode = "";
String action = "";
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
RLock lock = redissonClient.getLock(taskCode); RLock lock = redissonClient.getLock(taskCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
@@ -110,18 +112,21 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
case "2": case "2":
// 取货分配, 放货分配 // 取货分配, 放货分配
pointCode = getNewPoint(taskCode, actionType); pointCode = getNewPoint(taskCode, actionType);
result.put("data", pointCode);
result.put("message", taskCode + "取放货分配成功,新点位为:" + pointCode);
break; break;
case "3": case "3":
case "4": case "4":
// 取货完成,放货完成 // 取货完成,放货完成
updatePointStatus(taskCode, actionType); updatePointStatus(taskCode, actionType);
action = taskCode + "取放货完成!";
result.put("data", action);
result.put("message", taskCode + "取放货完成!");
break; break;
default: default:
return null; return null;
} }
result.put("status", HttpStatus.OK.value()); result.put("status", HttpStatus.OK.value());
result.put("message", "操作成功!");
result.put("data", pointCode);
} else { } else {
log.info("一楼装箱区点位二次分配接口异常,正在分配中!"); log.info("一楼装箱区点位二次分配接口异常,正在分配中!");
result.put("status", HttpStatus.BAD_REQUEST.value()); result.put("status", HttpStatus.BAD_REQUEST.value());
@@ -181,20 +186,22 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
} }
//分配的点位 //分配的点位
if (newPoint != null) { if (newPoint != null) {
LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, baseTask.getTask_id());
if (StringUtils.isNotBlank(newPoint.getPoint_code())) { if (StringUtils.isNotBlank(newPoint.getPoint_code())) {
//更新任务起点或终点 //更新任务起点或终点
if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) { if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
baseTask.setPoint_code1(newPoint.getPoint_code()); updateWrapper.set(SchBaseTask::getPoint_code1, newPoint.getPoint_code());
if (StringUtils.isNotBlank(newPoint.getContainer_name())) { if (StringUtils.isNotBlank(newPoint.getContainer_name())) {
//更新子卷号 //更新子卷号
baseTask.setVehicle_code(newPoint.getContainer_name()); updateWrapper.set(SchBaseTask::getVehicle_code,newPoint.getContainer_name());
} }
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) { } else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
baseTask.setPoint_code2(newPoint.getPoint_code()); updateWrapper.set(SchBaseTask::getPoint_code2,newPoint.getPoint_code());
} }
//标记二次分配已分配过点位 //标记二次分配已分配过点位
baseTask.setResponse_param(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getResponse_param,IOSEnum.IS_NOTANDYES.code(""));
taskService.updateById(baseTask); taskService.update(null, updateWrapper);
log.info("一楼装箱区二次分配" + taskCode + ",接口返回最新点位:---------------------------------------------" + newPoint.getPoint_code()); log.info("一楼装箱区二次分配" + taskCode + ",接口返回最新点位:---------------------------------------------" + newPoint.getPoint_code());
return newPoint.getPoint_code(); return newPoint.getPoint_code();
} else { } else {
@@ -556,7 +563,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>(); UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("task_id", baseTask.getTask_id()); updateWrapper1.eq("task_id", baseTask.getTask_id());
updateWrapper1.set("car_no", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成")); updateWrapper1.set("car_no", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成"));
taskService.update(updateWrapper1); taskService.update(null,updateWrapper1);
log.info("一楼装箱区二次放货完成" + baseTask.getTask_code() + ",放货完成执行成功,放货信息:点位:" + baseTask.getPoint_code2() + "子卷号为:" + baseTask.getVehicle_code()); log.info("一楼装箱区二次放货完成" + baseTask.getTask_code() + ",放货完成执行成功,放货信息:点位:" + baseTask.getPoint_code2() + "子卷号为:" + baseTask.getVehicle_code());
} else { } else {
throw new BadRequestException("该点位已有库存!"); throw new BadRequestException("该点位已有库存!");
@@ -580,7 +587,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>(); UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("task_id", baseTask.getTask_id()); updateWrapper1.eq("task_id", baseTask.getTask_id());
updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")); updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"));
taskService.update(updateWrapper1); taskService.update(null,updateWrapper1);
log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成信号接收成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code()); log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成信号接收成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
} }

View File

@@ -52,6 +52,8 @@ public class DjqTask extends AbstractAcsTask {
private IschBaseTaskService taskService; private IschBaseTaskService taskService;
@Resource @Resource
private IbstIvtPackageinfoivtService packageinfoivtService; private IbstIvtPackageinfoivtService packageinfoivtService;
@Resource @Resource
private TaskQueueManager taskQueueManager; private TaskQueueManager taskQueueManager;
@@ -89,33 +91,45 @@ public class DjqTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
//1.改变起点点位状态,满轴->待检,二次分配取货完成信号发送就改起点库存 //1.改变起点点位状态,满轴->待检,二次分配取货完成信号发送就改起点库存,检查起点库存是否清空
//packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); BstIvtPackageinfoivt ivtPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, schBaseTask.getPoint_code1()));
//2.更新库存记录 //如果起点库存未清空,则清空
if (ivtPoint.getContainer_name().equals(schBaseTask.getVehicle_code())) {
packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
}
//2.更新终点库存记录
String ivtStatus; String ivtStatus;
if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) { if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) {
if (schBaseTask.getRequest_param().equals("99")) { if (schBaseTask.getRequest_param().equals("98")) {
//管制区送空载具任务
ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("空载具");
}
else if (schBaseTask.getRequest_param().equals("99")) {
//管制品重新质检 //管制品重新质检
ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("合格品"); ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("合格品");
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
} else { } else {
ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("有子卷"); ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("有子卷");
} }
packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
} else { } else {
ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("有子卷"); ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("有子卷");
} }
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", ivtStatus).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", ivtStatus).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
//3.更改任务状态为完成 //3.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//4.清除首次分配目标点位 //4.清除首次分配目标点位
schBaseTask.setPoint_code3(""); updateWrapper.set(SchBaseTask::getPoint_code3, "");
//5.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务 //5.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>() // List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定起点未下发 // //确定起点未下发
@@ -141,11 +155,11 @@ public class DjqTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@@ -158,9 +172,9 @@ public class DjqTask extends AbstractAcsTask {
throw new BadRequestException("业务类型不能为空"); throw new BadRequestException("业务类型不能为空");
} }
String vehicleCode = form.getString("vehicle_code"); String vehicleCode = form.getString("vehicle_code");
if (StrUtil.isBlank(vehicleCode)) { // if (StrUtil.isBlank(vehicleCode)) {
throw new BadRequestException("载具号不能为空"); // throw new BadRequestException("载具号不能为空");
} // }
String pointCode1 = form.getString("point_code1"); String pointCode1 = form.getString("point_code1");
if (StrUtil.isBlank(pointCode1)) { if (StrUtil.isBlank(pointCode1)) {
throw new BadRequestException("起点不能为空"); throw new BadRequestException("起点不能为空");
@@ -233,11 +247,16 @@ public class DjqTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("满轴缓存位 -> 待检区取消接口任务号为空!"); throw new BadRequestException("满轴缓存位 -> 待检区取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null,updateWrapper);
} }

View File

@@ -86,21 +86,25 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
//1.改变起点点位状态 //1.改变起点点位状态
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//2.更新库存记录 //2.更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2())); packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
//3.更改任务状态为完成 //3.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//4.清除首次分配目标点位 //4.清除首次分配目标点位
schBaseTask.setPoint_code4(""); updateWrapper.set(SchBaseTask::getPoint_code4, "");
//3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务 //3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>() // List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定终点未下发 // //确定终点未下发
@@ -123,11 +127,11 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@Override @Override
@@ -191,6 +195,7 @@ public class DjqToKzjhcwTask 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>()
@@ -198,13 +203,20 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("待检区->空载具缓存位取消接口任务号为空!"); throw new BadRequestException("待检区->空载具缓存位取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null,updateWrapper);
} }
// /** // /**
// * 装箱区->空载具缓存位补空 // * 装箱区->空载具缓存位补空
// */ // */

View File

@@ -84,20 +84,25 @@ public class GzqTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //1.改变起点点位状态
//2.改变起点点位状态 packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //2.更新库存记录
//更新库存记录 packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("管制品")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
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.更改任务状态为完成
//3.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务 updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//3.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>() // List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定起点未下发 // //确定起点未下发
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) // .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
@@ -120,11 +125,11 @@ public class GzqTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null,updateWrapper);
} }
@Override @Override
@@ -188,6 +193,8 @@ public class GzqTask 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>()
@@ -195,10 +202,20 @@ public class GzqTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("满轴缓存位 -> 管制区取消接口任务号为空!"); throw new BadRequestException("满轴缓存位 -> 管制区取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null,updateWrapper);
} }
} }

View File

@@ -88,21 +88,25 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成 //1.改变起点点位状态
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//2.改变起点点位状态 //2.更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("载具")).eq("point_code", schBaseTask.getPoint_code2()));
//清除首次分配目标点位 //3.更改任务状态为完成
schBaseTask.setPoint_code4(""); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//更新库存记录 //4.清除首次分配目标点位
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2())); updateWrapper.set(SchBaseTask::getPoint_code4, "");
//3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务 //3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>() // List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
// //确定终点未下发 // //确定终点未下发
@@ -125,11 +129,11 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@Override @Override
@@ -193,6 +197,7 @@ public class GzqToKzjhcwTask 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>()
@@ -200,12 +205,19 @@ public class GzqToKzjhcwTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("管制区->空载具缓存位取消接口任务号为空!"); throw new BadRequestException("管制区->空载具缓存位取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null,updateWrapper);
} }
} }

View File

@@ -112,25 +112,29 @@ public class MzhcwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
// 执行中 // 执行中
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
//1.更改任务状态为完成 //1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//2.更新库存记录 //2.更新库存记录
// packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().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("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
//3.任务一、待检区AGV搬运任务查询子卷信息去分切计划表查找定级数据桁架任务完成根据子卷定级创建AGV任务将满轴搬运至质检区或管制区 //3.任务一、待检区AGV搬运任务查询子卷信息去分切计划表查找定级数据桁架任务完成根据子卷定级创建AGV任务将满轴搬运至质检区或管制区
//createTaskToDjq(schBaseTask); //createTaskToDjq(schBaseTask);
//4.创建空载具到输送线任务,完成后需要创建空载具缓存位->输送线任务 //4.创建空载具到输送线任务,完成后需要创建空载具缓存位->输送线任务
// if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) { // if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))) {
//四个点任务改变pointCode3点位状态 //四个点任务改变pointCode3点位状态
// packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3())); // packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code3()));
//校验任务是否存在 //校验任务是否存在
// List<String> taskTypes = new ArrayList<>(Collections.singletonList(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))); // List<String> taskTypes = new ArrayList<>(Collections.singletonList(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")));
// List<SchBaseTask> existTask = taskService.getExistTasks(taskTypes); // List<SchBaseTask> existTask = taskService.getExistTasks(taskTypes);
@@ -158,13 +162,13 @@ public class MzhcwTask extends AbstractAcsTask {
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
// 更新任务表删除字段 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
private void sendVehicle(SchBaseTask schBaseTask) { private void sendVehicle(SchBaseTask schBaseTask) {
@@ -352,6 +356,8 @@ 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>()
@@ -359,12 +365,22 @@ public class MzhcwTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("输送线点位 -> 满轴缓存位取消接口任务号为空!"); throw new BadRequestException("输送线点位 -> 满轴缓存位取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null,updateWrapper);
} }
} }

View File

@@ -18,7 +18,6 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; 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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
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;
@@ -82,20 +81,24 @@ public class SendDjqKzjTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
//1.更改任务状态为完成 //1.改变起点点位状态
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//2.改变起点点位状态 //2.更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("载具")).eq("point_code", schBaseTask.getPoint_code2()));
//3.更新库存记录 //3.更改任务状态为完成
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2())); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
} }
// 取消 // 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) { if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
@@ -103,11 +106,11 @@ public class SendDjqKzjTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@Override @Override
@@ -178,11 +181,16 @@ public class SendDjqKzjTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("装箱区->待检区送空载具取消接口任务号为空!"); throw new BadRequestException("装箱区->待检区送空载具取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark, "任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null, updateWrapper);
} }

View File

@@ -18,7 +18,6 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; 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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
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;
@@ -83,19 +82,23 @@ public class SendGzqKzjTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
//1.更改任务状态为完成 //1.改变起点点位状态
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//2.改变起点点位状态 //2.更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("载具")).eq("point_code", schBaseTask.getPoint_code2()));
//3.更新库存记录 //3.更改任务状态为完成
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2())); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
} }
// 取消 // 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) { if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
@@ -103,11 +106,11 @@ public class SendGzqKzjTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@Override @Override
@@ -178,12 +181,22 @@ public class SendGzqKzjTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("装箱区->管制区送空载具取消接口任务号为空!"); throw new BadRequestException("装箱区->管制区送空载具取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark, "任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null, updateWrapper);
} }
} }

View File

@@ -86,17 +86,21 @@ public class SsxDjwTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------");
//1.更改任务状态为完成 //1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//2.改变起点点位状态 //2.改变起点点位状态
//packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //packageinfoivtService.update(null,new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//3.空载具缓存位到输送线送空任务完成,去待检区或管制区补空载具 //3.空载具缓存位到输送线送空任务完成,去待检区或管制区补空载具
// List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService // List<BstIvtPackageinfoivt> zxqPointList = packageinfoivtService
// .list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>() // .list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
@@ -120,11 +124,11 @@ public class SsxDjwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@Override @Override
@@ -186,6 +190,9 @@ public class SsxDjwTask extends AbstractAcsTask {
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode()); updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode());
} }
@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>()
@@ -193,10 +200,24 @@ public class SsxDjwTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("空载具缓存位 -> 输送线取消接口任务号为空!"); throw new BadRequestException("空载具缓存位 -> 输送线取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null,updateWrapper);
} }
} }

View File

@@ -25,7 +25,6 @@ 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.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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
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;
@@ -99,14 +98,18 @@ public class ZxDjwTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>() PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper<PdmBiSlittingproductionplan>()
.eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code()));
if (containerInfo == null) { if (containerInfo == null) {
@@ -114,11 +117,8 @@ public class ZxDjwTask extends AbstractAcsTask {
} else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) {
throw new BadRequestException("子卷号不能为空!"); throw new BadRequestException("子卷号不能为空!");
} }
//1.更改任务状态为完成
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //1.判断是否最后一个子卷相同木箱号的子卷包装关系如果生成状态0,且个数等于1且子卷号等于当前载具号就是最后一个子卷
//2.改变起点点位状态
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//3.判断是否最后一个子卷相同木箱号的子卷包装关系如果生成状态0,且个数等于1且子卷号等于当前载具号就是最后一个子卷
List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0")); List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0"));
if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) { if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) {
//4.更改木箱信息为已装箱:1 //4.更改木箱信息为已装箱:1
@@ -129,13 +129,17 @@ public class ZxDjwTask extends AbstractAcsTask {
bstIvtBoxinfo.setIs_packing(IOSEnum.IS_NOTANDYES.code("")); bstIvtBoxinfo.setIs_packing(IOSEnum.IS_NOTANDYES.code(""));
bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo); bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo);
//5.最后一个子卷,清除装箱位木箱信息 //5.最后一个子卷,清除装箱位木箱信息
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code2())); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code2()));
} }
//6.改变子卷包装状态为已装箱1 //6.改变子卷包装状态为已装箱1
PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService
.getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); .getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false);
pdmBiSubpackagerelation.setStatus(IOSEnum.IS_NOTANDYES.code("")); pdmBiSubpackagerelation.setStatus(IOSEnum.IS_NOTANDYES.code(""));
subpackageRelationService.updateById(pdmBiSubpackagerelation); subpackageRelationService.updateById(pdmBiSubpackagerelation);
//2.更改任务状态为完成
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//3.改变起点点位状态
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//创建装箱区->空载具缓存位补空任务 //创建装箱区->空载具缓存位补空任务
//kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1()); //kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1());
} }
@@ -145,11 +149,11 @@ public class ZxDjwTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@@ -214,6 +218,7 @@ public class ZxDjwTask extends AbstractAcsTask {
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode()); updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode());
} }
@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>()
@@ -221,10 +226,22 @@ public class ZxDjwTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("装箱区 -> 装箱对接位取消接口任务号为空!"); throw new BadRequestException("装箱区 -> 装箱对接位取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark, "任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null, updateWrapper);
} }
} }

View File

@@ -25,7 +25,6 @@ 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.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.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.ISysParamService;
import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.AcsTaskDto;
@@ -111,10 +110,14 @@ public class ZxqTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject taskObj, String status) { public void updateTaskStatus(JSONObject taskObj, String status) {
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)) return; if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return;
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(SchBaseTask::getUpdate_time, DateUtil.now());
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中 // 更新任务状态为执行中
schBaseTask.setTask_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() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------"); log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------");
@@ -125,12 +128,12 @@ public class ZxqTask extends AbstractAcsTask {
// } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { // } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) {
// throw new BadRequestException("子卷号不能为空!"); // throw new BadRequestException("子卷号不能为空!");
// } // }
//1.更改任务状态为完成 //1.改变起点点位状态
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
//2.改变起点点位状态 //2.更新库存记录
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
//更新库存记录 //3.更改任务状态为完成
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
//3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务,否,什么都不做 //3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务,否,什么都不做
//zxqToZxw(schBaseTask); //zxqToZxw(schBaseTask);
} }
@@ -140,11 +143,11 @@ public class ZxqTask extends AbstractAcsTask {
throw new BadRequestException("任务已执行不能取消"); throw new BadRequestException("任务已执行不能取消");
} }
//任务被标记为取消 //任务被标记为取消
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
} }
taskService.update(schBaseTask); taskService.update(null, updateWrapper);
} }
@@ -344,6 +347,7 @@ public class ZxqTask extends AbstractAcsTask {
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode()); updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode());
} }
@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>()
@@ -351,11 +355,17 @@ public class ZxqTask extends AbstractAcsTask {
if (schBaseTask == null) { if (schBaseTask == null) {
throw new BadRequestException("待检区 -> 装箱区取消接口任务号为空!"); throw new BadRequestException("待检区 -> 装箱区取消接口任务号为空!");
} }
TaskUtils.updateOptMessageByTask(schBaseTask); LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("")); .eq(SchBaseTask::getTask_id, taskId)
schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); .set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); .set(SchBaseTask::getUpdate_optname, SecurityUtils.getCurrentUsername())
taskService.update(schBaseTask); .set(SchBaseTask::getUpdate_time, DateUtil.now());
//任务被标记为取消
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
updateWrapper.set(SchBaseTask::getRemark, "任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。");
taskService.update(null, updateWrapper);
} }
} }

View File

@@ -5,10 +5,10 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; 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.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask; import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
@@ -50,7 +50,43 @@ public class AutoSendGzqToDjq {
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try { try {
if (tryLock) { if (tryLock) {
//管制区有合格品且过滤未完成任务 //临时管制区135、136->待检区送空载具任务
JSONObject task1 = new JSONObject();
String pointCode3;
String pointCode4;
List<BstIvtPackageinfoivt> gzqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
//todo 新增NG卷放置临时管制区107108只取空不补空
List<BstIvtPackageinfoivt> ivtLists =
gzqIvtList.stream()
.filter(r -> r.getPoint_code().equals("ZXQ_135") || r.getPoint_code().equals("ZXQ_136"))
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(ivtLists)) {
pointCode3 = gzqIvtList.get(0).getPoint_code();
if (StringUtils.isBlank(pointCode3)) {
return;
}
} else {
return;
}
List<BstIvtPackageinfoivt> packageList;
packageList = packageinfoivtService.checkEndPointTask(
PackageInfoIvtEnum.POINT_STATUS.code("待检区"),
PackageInfoIvtEnum.IVT_STATUS.code(""),
PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"),
PackageInfoIvtEnum.SORT_TYPE.code("升序"),
""
);
if (CollectionUtils.isNotEmpty(packageList)) {
pointCode4 = packageList.get(0).getPoint_code();
task1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区"));
task1.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
task1.put("point_code1", pointCode3);
task1.put("point_code2", pointCode4);
task1.put("request_param", "98");
djqTask.createTask(task1);
}
//管制区->待检区送合格品任务
List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
if (CollectionUtils.isEmpty(gzqPackageinfoivtList)) { if (CollectionUtils.isEmpty(gzqPackageinfoivtList)) {
return; return;

View File

@@ -5,6 +5,7 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; 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.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
@@ -91,8 +92,9 @@ public class AutoSendVehicleToKzj {
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try { try {
if (tryLock) { if (tryLock) {
JSONObject task = new JSONObject(); JSONObject task = new JSONObject();
String pointCode1 = null; String pointCode1;
String pointCode2; String pointCode2;
//todo 只允许2个补空任务,后期需要根据区域动态获取任务数量 //todo 只允许2个补空任务,后期需要根据区域动态获取任务数量
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))); List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
@@ -103,7 +105,7 @@ public class AutoSendVehicleToKzj {
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
if (CollectionUtils.isNotEmpty(kzjIvtList)) { if (CollectionUtils.isNotEmpty(kzjIvtList)) {
pointCode2 = kzjIvtList.get(0).getPoint_code(); pointCode2 = kzjIvtList.get(0).getPoint_code();
if (pointCode2 == null) { if (StringUtils.isBlank(pointCode2)) {
return; return;
} }
} else { } else {