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 taskWrkList = taskWrkService.selectList(new EntityWrapper().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 taskWrkList = taskWrkService.selectList(new EntityWrapper().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 taskWrkList = taskWrkService.selectList(new EntityWrapper().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"); locMast.setBarcode(taskWrk.getBarcode()); 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"); locMast2.setBarcode(taskWrk.getBarcode()); 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"); locMast.setBarcode(taskWrk.getBarcode()); 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); } } } }