package com.zy.asrs.task;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.exception.CoolException;
|
import com.zy.asrs.domain.enums.TaskStatusType;
|
import com.zy.asrs.entity.*;
|
import com.zy.asrs.service.*;
|
import com.zy.asrs.service.impl.TaskWrkLogServiceImpl;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 定时将任务(完成、取消)转成日志
|
*/
|
@Slf4j
|
@Component
|
public class TaskLogScheduler {
|
|
@Autowired
|
private TaskWrkService taskWrkService;
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private TaskWrkLogServiceImpl taskWrkLogService;
|
|
@Scheduled(cron = "0/3 * * * * ? ")
|
public void executeIn() {
|
List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("wrk_sts", 8));
|
for (TaskWrk taskWrk : taskWrkList) {
|
Date now = new Date();
|
if (taskWrk.getIoType() == 1) {
|
if (taskWrk.getOriginStartPoint().equals("1")) {
|
//更新源库位状态为空库位
|
LocMast locMast = locMastService.selectByLocNo("0900601");
|
locMast.setLocSts("O");
|
locMastService.updateById(locMast);
|
}
|
|
//更新目标库状态为在库
|
LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getTargetPoint());
|
locMast2.setLocSts("F");
|
locMastService.updateById(locMast2);
|
|
taskWrk.setModiTime(now);//操作时间
|
taskWrk.setModiUser(9998L);//操作员
|
taskWrkService.updateById(taskWrk);
|
} else if (taskWrk.getIoType() == 3) {
|
//更新源库位状态为空库位
|
LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
|
locMast.setLocSts("O");
|
locMastService.updateById(locMast);
|
|
//更新目标库状态为在库
|
LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getTargetPoint());
|
locMast2.setLocSts("F");
|
locMastService.updateById(locMast2);
|
|
taskWrk.setModiTime(now);//操作时间
|
taskWrk.setModiUser(9998L);//操作员
|
taskWrkService.updateById(taskWrk);
|
}else {
|
throw new CoolException("任务类型异常");
|
}
|
|
TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
|
if (!taskWrkLogService.insert(taskWrkLog)) {
|
throw new CoolException("转历史档失败" + taskWrkLog);
|
}
|
if (!taskWrkService.deleteById(taskWrk)) {
|
throw new CoolException("任务档删除失败" + taskWrkLog);
|
}
|
}
|
}
|
|
@Scheduled(cron = "0/3 * * * * ? ")
|
public void executeOut() {
|
List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("wrk_sts", 18));
|
for (TaskWrk taskWrk : taskWrkList) {
|
Date now = new Date();
|
if (taskWrk.getIoType() == 2) {
|
if (taskWrk.getTargetPoint().equals("101")) {
|
//更新库位状态为在库
|
LocMast locMast = locMastService.selectByLocNo("1100601");
|
locMast.setLocSts("F");
|
locMastService.updateById(locMast);
|
}
|
|
//更新源库状态为空库位
|
LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getStartPoint());
|
locMast2.setLocSts("O");
|
locMastService.updateById(locMast2);
|
|
taskWrk.setModiTime(now);//操作时间
|
taskWrk.setModiUser(9998L);//操作员
|
taskWrkService.updateById(taskWrk);
|
}else {
|
throw new CoolException("任务类型异常");
|
}
|
|
TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
|
if (!taskWrkLogService.insert(taskWrkLog)) {
|
throw new CoolException("转历史档失败" + taskWrkLog);
|
}
|
if (!taskWrkService.deleteById(taskWrk)) {
|
throw new CoolException("任务档删除失败" + taskWrkLog);
|
}
|
}
|
}
|
|
@Scheduled(cron = "0/3 * * * * ? ")
|
public void executeCancel() {
|
List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status", TaskStatusType.CANCEL.id));
|
for (TaskWrk taskWrk : taskWrkList) {
|
Date now = new Date();
|
if(taskWrk.getIoType() == 1) {
|
if (taskWrk.getOriginStartPoint().equals("1")) {
|
//更新源库位状态为在库
|
LocMast locMast = locMastService.selectByLocNo("0900601");
|
locMast.setLocSts("F");
|
locMastService.updateById(locMast);
|
}
|
|
//更新目标库状态为空库
|
LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getTargetPoint());
|
locMast2.setLocSts("O");
|
locMastService.updateById(locMast2);
|
|
taskWrk.setModiTime(now);//操作时间
|
taskWrk.setModiUser(9998L);//操作员
|
taskWrkService.updateById(taskWrk);
|
} else if (taskWrk.getIoType() == 2) {
|
if (taskWrk.getTargetPoint().equals("101")) {
|
//更新库位状态为空库
|
LocMast locMast = locMastService.selectByLocNo("1100601");
|
locMast.setLocSts("O");
|
locMastService.updateById(locMast);
|
}
|
|
//更新源库状态为在库
|
LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getStartPoint());
|
locMast2.setLocSts("F");
|
locMastService.updateById(locMast2);
|
|
taskWrk.setModiTime(now);//操作时间
|
taskWrk.setModiUser(9998L);//操作员
|
taskWrkService.updateById(taskWrk);
|
} else if (taskWrk.getIoType() == 3) {
|
//更新源库位状态为在库
|
LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
|
locMast.setLocSts("F");
|
locMastService.updateById(locMast);
|
|
//更新目标库状态为空库位
|
LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getTargetPoint());
|
locMast2.setLocSts("O");
|
locMastService.updateById(locMast2);
|
|
taskWrk.setModiTime(now);//操作时间
|
taskWrk.setModiUser(9998L);//操作员
|
taskWrkService.updateById(taskWrk);
|
} else {
|
throw new CoolException("任务类型异常");
|
}
|
|
TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
|
if (!taskWrkLogService.insert(taskWrkLog)) {
|
throw new CoolException("转历史档失败" + taskWrkLog);
|
}
|
if (!taskWrkService.deleteById(taskWrk)) {
|
throw new CoolException("任务档删除失败" + taskWrkLog);
|
}
|
}
|
}
|
|
}
|