#
Junjie
2024-11-28 a19133219811f9286fa71a0fb8c1deb628cf74a3
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
@@ -3,10 +3,14 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy;
import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
import com.zy.asrs.framework.common.DateUtils;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.system.entity.Dict;
import com.zy.asrs.wms.system.service.DictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -35,6 +39,10 @@
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private DictService dictService;
    @Autowired
    private WaveService waveService;
    @Scheduled(cron = "0/3 * * * * ? ")
    @Transactional
@@ -42,7 +50,7 @@
        InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
        try {
            //获取入库完成任务
            List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, 100));
            List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.UPDATED_IN.id));
            if (list.isEmpty()) {
                return;
            }
@@ -154,16 +162,50 @@
    public void outExecute() {
        InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
        try {
            //获取入库完成任务
            //获取出库完成任务
            List<Task> list = taskService.list(new LambdaQueryWrapper<Task>()
                    .eq(Task::getTaskSts, 200)
                    .eq(Task::getTaskSts, TaskStsType.UPDATED_OUT.id)
                    .in(Task::getTaskType, 101, 53, 57));
            if (list.isEmpty()) {
                return;
            }
            Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "taskLogDiffDays").eq(Dict::getStatus, 1));
            if(dict == null) {
                return;
            }
            for (Task task : list) {
                int diff = DateUtils.diff(task.getCreateTime(), new Date());
                int taskLogDiffDays = Integer.parseInt(dict.getValue());
                if (diff < taskLogDiffDays) {
                    continue;
                }
                Long hostId = task.getHostId();
                //保存任务明细历史档
                List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId());
                if (taskDetls.isEmpty()) {
                    throw new CoolException("任务明细不存在");
                }
                boolean flag = false;
                for (TaskDetl taskDetl : taskDetls) {
                    if (taskDetl.getWaveId() == null) {
                        continue;
                    }
                    Wave wave = waveService.getById(taskDetl.getWaveId());
                    if (wave != null) {
                        flag = true;//波次未完成
                        break;
                    }
                }
                if (flag) {
                    continue;
                }
                //保存任务历史档
                TaskLog taskLog = new TaskLog();
@@ -178,11 +220,6 @@
                    throw new CoolException("删除任务档失败");
                }
                //保存任务明细历史档
                List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId());
                if (taskDetls.isEmpty()) {
                    throw new CoolException("任务明细不存在");
                }
                for (TaskDetl taskDetl : taskDetls) {
                    TaskDetlLog taskDetlLog = new TaskDetlLog();
                    taskDetlLog.sync(taskDetl);