| | |
| | | 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(){ |
| | | public void execute() { |
| | | List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); |
| | | if (wrkMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | ReturnT<String> start = workMastHandler.start(wrkMast); |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |