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.service.InventoryCheckOrderDetlService; import com.zy.asrs.service.InventoryCheckOrderService; import com.zy.asrs.service.ReportToThirdService; 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 java.util.List; @Slf4j @Component public class ReportInventoryCheckOrdersScheduler { @Autowired private InventoryCheckOrderService inventoryCheckOrderService; @Autowired private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; @Autowired private ConfigService configService; @Autowired private ReportToThirdService reportToThirdService; /** * 上报盘点结果 */ @Scheduled(cron = "0/3 * * * * ? ") public void execute() { List inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper() .eq("status", 1)); if (inventoryCheckOrders.isEmpty()) { return; } for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { List checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper().eq("order_no", checkOrder.getOrderNo())); boolean complete = true; for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) { if (!checkOrderDetl.getStatus().equals("2")) { complete = false; } } if (complete) { boolean result = reportToThirdService.reportCheckOrder(checkOrder); if (!result) { continue; } checkOrder.setStatus("2"); if (!inventoryCheckOrderService.updateById(checkOrder)) { log.error("盘点单[orderNo={}]更新状态成功", checkOrder.getOrderNo()); } else { log.info("盘点单[orderNo={}]更新状态失败", checkOrder.getOrderNo()); } } } } /** * 自动删除超过1天,无明细的盘点单 */ @Scheduled(cron = "0/3 * * * * ? ") public void execute2() { List inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper()); if (inventoryCheckOrders.isEmpty()) { return; } for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { List checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper().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 inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper()); // 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 checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper().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()); // } // } // } // } }