From 1d6c5111cf4aafc076aa3f8ddf488f6cc3cf6cb1 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期四, 13 二月 2025 16:56:11 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/WrkMastScheduler.java | 242 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 241 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java index ce73eb2..7b5a025 100644 --- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java +++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java @@ -1,15 +1,29 @@ package com.zy.asrs.task; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.zy.asrs.domain.enums.NotifyMsgType; +import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastLogService; import com.zy.asrs.service.WrkMastService; +import com.zy.asrs.utils.NotifyUtils; +import com.zy.common.utils.HttpHandler; +import com.zy.core.enums.LocStsType; +import com.zy.core.enums.SlaveType; +import com.zy.core.enums.WrkIoType; import com.zy.core.enums.WrkStsType; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; 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.Date; import java.util.List; @@ -21,9 +35,163 @@ private WrkMastService wrkMastService; @Autowired private WrkMastLogService wrkMastLogService; + @Autowired + private LocMastService locMastService; + @Autowired + private NotifyUtils notifyUtils; @Scheduled(cron = "0/1 * * * * ? ") - private void executeMove(){ + @Transactional + public void executeIn(){ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_INBOUND.sts)); + if (wrkMasts.isEmpty()) { + return; + } + + for (WrkMast wrkMast : wrkMasts) { + String locNo = wrkMast.getLocNo(); + LocMast locMast = locMastService.queryByLoc(locNo); + if (locMast == null) { + log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo()); + continue; + } + + if (!locMast.getLocSts().equals("S")) { + log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬S", wrkMast.getWrkNo()); + continue; + } + + locMast.setLocSts("F"); + locMast.setModiTime(new Date()); + boolean result = locMastService.updateById(locMast); + if (!result) { + log.info("[workNo={}]搴撲綅鐘舵�丗鏇存柊澶辫触", wrkMast.getWrkNo()); + continue; + } + + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo()); + } + // 鍒犻櫎宸ヤ綔涓绘。 + if (!wrkMastService.deleteById(wrkMast)) { + log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); + } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast)); + } + } + + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public void executeOut(){ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_OUTBOUND.sts)); + if (wrkMasts.isEmpty()) { + return; + } + + for (WrkMast wrkMast : wrkMasts) { + String locNo = wrkMast.getSourceLocNo(); + LocMast locMast = locMastService.queryByLoc(locNo); + if (locMast == null) { + log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo()); + continue; + } + + if (!locMast.getLocSts().equals("R")) { + log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬R", wrkMast.getWrkNo()); + continue; + } + + locMast.setLocSts("O"); + locMast.setModiTime(new Date()); + boolean result = locMastService.updateById(locMast); + if (!result) { + log.info("[workNo={}]搴撲綅鐘舵�丱鏇存柊澶辫触", wrkMast.getWrkNo()); + continue; + } + + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo()); + } + // 鍒犻櫎宸ヤ綔涓绘。 + if (!wrkMastService.deleteById(wrkMast)) { + log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); + } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast)); + } + } + + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public void executeLocMove(){ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_LOC_MOVE.sts)); + if (wrkMasts.isEmpty()) { + return; + } + + for (WrkMast wrkMast : wrkMasts) { + String sourceLocNo = wrkMast.getSourceLocNo(); + String locNo = wrkMast.getLocNo(); + LocMast locMast = locMastService.queryByLoc(locNo); + if (locMast == null) { + log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo()); + continue; + } + + if (!locMast.getLocSts().equals("S")) { + log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬S", wrkMast.getWrkNo()); + continue; + } + + LocMast sourceLocMast= locMastService.queryByLoc(sourceLocNo); + if (sourceLocMast == null) { + log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo()); + continue; + } + + if (!sourceLocMast.getLocSts().equals("R")) { + log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬R", wrkMast.getWrkNo()); + continue; + } + + locMast.setLocSts("F"); + locMast.setModiTime(new Date()); + boolean result = locMastService.updateById(locMast); + if (!result) { + log.info("[workNo={}]搴撲綅鐘舵�丗鏇存柊澶辫触", wrkMast.getWrkNo()); + continue; + } + + sourceLocMast.setLocSts("O"); + sourceLocMast.setModiTime(new Date()); + boolean result2 = locMastService.updateById(sourceLocMast); + if (!result2) { + log.info("[workNo={}]搴撲綅鐘舵�丱鏇存柊澶辫触", wrkMast.getWrkNo()); + continue; + } + + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo()); + } + // 鍒犻櫎宸ヤ綔涓绘。 + if (!wrkMastService.deleteById(wrkMast)) { + log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); + } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast)); + } + } + + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public void executeMove(){ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_MOVE.sts)); if (wrkMasts.isEmpty()) { return; @@ -41,4 +209,76 @@ } } + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public void executeCharge(){ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_CHARGE.sts)); + if (wrkMasts.isEmpty()) { + return; + } + + for (WrkMast wrkMast : wrkMasts) { + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo()); + } + // 鍒犻櫎宸ヤ綔涓绘。 + if (!wrkMastService.deleteById(wrkMast)) { + log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); + } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_CHARGE_COMPLETE, JSON.toJSONString(wrkMast)); + } + } + + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public void executeCancelTask(){ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("mk", "taskCancel")); + if (wrkMasts.isEmpty()) { + return; + } + + for (WrkMast wrkMast : wrkMasts) { + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo()); + } + // 鍒犻櫎宸ヤ綔涓绘。 + if (!wrkMastService.deleteById(wrkMast)) { + log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); + } + + if (wrkMast.getIoType() == WrkIoType.IN.id) { + LocMast locMast = locMastService.queryByLoc(wrkMast.getLocNo()); + locMast.setLocSts(String.valueOf(LocStsType.O)); + locMast.setModiTime(new Date()); + locMastService.updateById(locMast); + } else if (wrkMast.getIoType() == WrkIoType.OUT.id) { + LocMast locMast = locMastService.queryByLoc(wrkMast.getSourceLocNo()); + locMast.setLocSts(String.valueOf(LocStsType.O)); + locMast.setModiTime(new Date()); + locMastService.updateById(locMast); + } else if (wrkMast.getIoType() == WrkIoType.LOC_MOVE.id) { + LocMast sourceLocMast = locMastService.queryByLoc(wrkMast.getSourceLocNo()); + LocMast locMast = locMastService.queryByLoc(wrkMast.getLocNo()); + if (sourceLocMast.getLocSts().equals(String.valueOf(LocStsType.R))) { + sourceLocMast.setLocSts(String.valueOf(LocStsType.F)); + sourceLocMast.setModiTime(new Date()); + locMastService.updateById(sourceLocMast); + } + + if (locMast.getLocSts().equals(String.valueOf(LocStsType.S))) { + locMast.setLocSts(String.valueOf(LocStsType.O)); + locMast.setModiTime(new Date()); + locMastService.updateById(locMast); + } + } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_CANCEL, JSON.toJSONString(wrkMast)); + } + } + } -- Gitblit v1.9.1