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
|
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 * * * * ? ")
|
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("AutoLocMove");
|
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());
|
}
|
}
|
}
|
}
|
|
}
|