From 5fd478fcee23bbdac0fe4fbe9becdd2a28d14c56 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期六, 13 七月 2024 14:27:04 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java | 51 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 45 insertions(+), 6 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 index 66edce3..19c3150 100644 --- 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 @@ -1,18 +1,19 @@ 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.*; 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.TaskService; +import com.zy.asrs.wcs.core.service.*; 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 @@ -22,9 +23,16 @@ @Autowired private TaskService taskService; @Autowired + private TaskLogService taskLogService; + @Autowired + private MotionService motionService; + @Autowired + private MotionLogService motionLogService; + @Autowired private LocService locService; @Scheduled(cron = "0/1 * * * * ? ") + @Transactional public synchronized void clearCompletedTask() { ArrayList<Long> taskSts = new ArrayList<>(); taskSts.add(TaskStsType.COMPLETE_INBOUND.sts); @@ -39,12 +47,18 @@ for (Task task : tasks) { //璁板綍搴撳瓨淇℃伅 updateRecordLoc(task); + //浠诲姟杞巻鍙叉。 + saveTaskLog(task); } - } //鏇存柊搴撳瓨淇℃伅 - private void updateRecordLoc(Task task) { + @Transactional + public void updateRecordLoc(Task task) { + if (task.getRecordLoc() == null) { + return; + } + if (task.getRecordLoc().equals("Y")) {//璁板綍搴撳瓨淇℃伅 //婧愬簱浣� => 绌哄簱 //鐩爣搴撲綅 => 鍦ㄥ簱 @@ -60,6 +74,7 @@ locService.updateById(destLoc); } } else if (task.getRecordLoc().equals("record-dest")) {//鍙褰曠洰鏍囧簱浣嶄俊鎭� + //鐩爣搴撲綅 => 鍦ㄥ簱 Loc destLoc = locService.selectByLocNo(task.getDestLoc()); if (destLoc != null) { destLoc.setLocSts(LocStsType.F.val()); @@ -68,4 +83,28 @@ } } + //鏇存柊鍘嗗彶妗� + @Transactional + public void saveTaskLog(Task task) { + //鍒涘缓鍘嗗彶妗� + TaskLog taskLog = new TaskLog(); + taskLog.sync(task); + taskLog.setUpdateTime(new Date()); + taskLogService.save(taskLog); + + List<Motion> motions = motionService.list(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); + for (Motion motion : motions) { + //鍒涘缓鍔ㄤ綔鍘嗗彶妗� + MotionLog motionLog = new MotionLog(); + motionLog.sync(motion); + motionLog.setUpdateTime(new Date()); + motionLogService.save(motionLog); + } + + //鍒犻櫎婧愪换鍔� + taskService.removeById(task.getId()); + //鍒犻櫎鍔ㄤ綔 + motionService.remove(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); + } + } -- Gitblit v1.9.1