From f6f8bb8d5dfc7f663bdce8a0fbf5062a030de2f6 Mon Sep 17 00:00:00 2001 From: ytfl <ytfl@qq.com> Date: 星期六, 14 六月 2025 20:07:12 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 110 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java index 67a2abb..5f241c3 100644 --- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java +++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java @@ -1,21 +1,128 @@ package com.zy.asrs.task; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.zy.asrs.entity.InventoryCheckOrder; +import com.zy.asrs.entity.InventoryCheckOrderDetl; +import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.InventoryCheckOrderDetlService; +import com.zy.asrs.service.InventoryCheckOrderService; +import com.zy.asrs.service.WrkMastService; +import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkMastHandler; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; 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; /** * Created by vincent on 2020/7/7 */ -//@Component +@Component public class WorkMastScheduler { + private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class); + + @Autowired + private WrkMastService wrkMastService; @Autowired private WorkMastHandler workMastHandler; + @Autowired + private InventoryCheckOrderService inventoryCheckOrderService; + + + @Autowired + private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; + + + @Autowired + private ConfigService configService; + + @Scheduled(cron = "0/3 * * * * ? ") - private void execute(){ - workMastHandler.start(); + public void execute() { + List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); + if (wrkMasts.isEmpty()) { + return; + } + for (WrkMast wrkMast : wrkMasts) { + ReturnT<String> returnT = workMastHandler.start(wrkMast); + if (!returnT.isSuccess()) { + wrkMast.setUpdMk("X"); + wrkMast.setErrorMemo(returnT.getMsg()); + wrkMast.setErrorTime(new Date()); + if (!wrkMastService.updateById(wrkMast)) { + log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo()); + } + } + } + } + + /** + * 鑷姩鍒犻櫎瓒呰繃1澶╋紝鏃犳槑缁嗙殑鐩樼偣鍗� + */ + @Scheduled(cron = "0/3 * * * * ? ") + public void execute2() { + List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()); + if (inventoryCheckOrders.isEmpty()) { + return; + } + for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { + List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); + if (checkOrderDetls.isEmpty() && System.currentTimeMillis() - checkOrder.getCreateTime().getTime() >= 1000 * 60 * 60 * 24) { + if (!inventoryCheckOrderService.deleteById(checkOrder)) { + log.error("鐩樼偣鍗昜orderNo={}]鍒犻櫎澶辫触", checkOrder.getOrderNo()); + } else { + log.info("鐩樼偣鍗昜orderNo={}]鍒犻櫎鎴愬姛", checkOrder.getOrderNo()); + } + } + } + } + + /** + * 鑷姩瀹岀粨杈惧埌涓�瀹氭暟閲忕殑鐩樼偣鍗� + */ + @Scheduled(cron = "0/30 * * * * ? ") + public void execute3() { + List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()); + if (inventoryCheckOrders.isEmpty()) { + return; + } + int num = 20; + try { + Config config = configService.selectConfigByCode("CheckOrderNum"); + if (Cools.isEmpty(config) || config.getValue().equals("false")) { + + } else { + num = Integer.parseInt(config.getValue()); + } + } catch (Exception e) { + + } + for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { + List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); + boolean complete = true; + for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) { + if (!checkOrderDetl.getStatus().equals("2")) { + complete = false; + } + } + if (complete && checkOrderDetls.size() >= num) { + checkOrder.setStatus("2"); + if (!inventoryCheckOrderService.updateById(checkOrder)) { + log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo()); + } else { + log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo()); + } + } + } } } -- Gitblit v1.9.1