From 13b690312e3397305fb20c2d3dc60be9e9452049 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期六, 18 五月 2024 10:43:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/Four-Way-Rack' into Four-Way-Rack --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 0 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java new file mode 100644 index 0000000..cf5f724 --- /dev/null +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java @@ -0,0 +1,98 @@ +package com.zy.asrs.wcs.core.timer; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.wcs.core.entity.Loc; +import com.zy.asrs.wcs.core.entity.Task; +import com.zy.asrs.wcs.core.entity.TaskLog; +import com.zy.asrs.wcs.core.model.enums.LocStsType; +import com.zy.asrs.wcs.core.model.enums.TaskStsType; +import com.zy.asrs.wcs.core.service.LocService; +import com.zy.asrs.wcs.core.service.TaskLogService; +import com.zy.asrs.wcs.core.service.TaskService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +public class TaskTimer { + + @Autowired + private TaskService taskService; + @Autowired + private TaskLogService taskLogService; + @Autowired + private LocService locService; + + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public synchronized void clearCompletedTask() { + ArrayList<Long> taskSts = new ArrayList<>(); + taskSts.add(TaskStsType.COMPLETE_INBOUND.sts); + taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts); + taskSts.add(TaskStsType.COMPLETE_CHARGE.sts); + taskSts.add(TaskStsType.COMPLETE_MOVE.sts); + taskSts.add(TaskStsType.COMPLETE_MANUAL.sts); + + List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() + .eq(Task::getStatus, 1) + .in(Task::getTaskSts, taskSts)); + for (Task task : tasks) { + //璁板綍搴撳瓨淇℃伅 + updateRecordLoc(task); + //浠诲姟杞巻鍙叉。 + saveTaskLog(task); + } + } + + //鏇存柊搴撳瓨淇℃伅 + @Transactional + public void updateRecordLoc(Task task) { + if (task.getRecordLoc().equals("Y")) {//璁板綍搴撳瓨淇℃伅 + //婧愬簱浣� => 绌哄簱 + //鐩爣搴撲綅 => 鍦ㄥ簱 + Loc originLoc = locService.selectByLocNo(task.getOriginLoc()); + if (originLoc != null) { + originLoc.setLocSts(LocStsType.O.val()); + locService.updateById(originLoc); + } + + Loc destLoc = locService.selectByLocNo(task.getDestLoc()); + if (destLoc != null) { + destLoc.setLocSts(LocStsType.F.val()); + locService.updateById(destLoc); + } + } else if (task.getRecordLoc().equals("record-dest")) {//鍙褰曠洰鏍囧簱浣嶄俊鎭� + //鐩爣搴撲綅 => 鍦ㄥ簱 + Loc destLoc = locService.selectByLocNo(task.getDestLoc()); + if (destLoc != null) { + destLoc.setLocSts(LocStsType.F.val()); + locService.updateById(destLoc); + } + } + } + + //鏇存柊鍘嗗彶妗� + @Transactional + public void saveTaskLog(Task task) { + //鍒涘缓鍘嗗彶妗� + Date date = new Date(); + TaskLog taskLog = new TaskLog(); + taskLog.setTaskNo(task.getTaskNo()); + taskLog.setTaskData(JSON.toJSONString(task)); + taskLog.setCreateTime(date); + taskLog.setUpdateTime(date); + taskLogService.save(taskLog); + + //鍒犻櫎婧愪换鍔� + taskService.removeById(task.getId()); + } + +} -- Gitblit v1.9.1