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.common.entity.Parameter; 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() { // String erpReport = Parameter.get().getErpReport(); // if (Cools.isEmpty(erpReport) || !erpReport.equals("true")) { // return; // } // // 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()); } } } } /** * 自动删除超过3天,已完成盘点单 */ @Scheduled(cron = "0/3 * * * * ? ") public void execute3() { List inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper() .eq("status", 2)); for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { if (System.currentTimeMillis() - checkOrder.getCreateTime().getTime() >= 1000 * 60 * 60 * 24 * 3) { inventoryCheckOrderDetlService.delete(new EntityWrapper().eq("order_no", checkOrder.getOrderNo())); 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()); // } // } // } // } }