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<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
|
.eq("status", 1));
|
if (inventoryCheckOrders.isEmpty()) {
|
return;
|
}
|
|
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) {
|
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<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());
|
// }
|
// }
|
// }
|
// }
|
|
}
|