自动化立体仓库 - WMS系统
zyh
昨天 3bf6f972604761c9ac59a2cb9ea01eeacaec2189
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -8,6 +8,7 @@
import com.zy.asrs.controller.OutController;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.mes.*;
import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.asrs.task.core.ReturnT;
@@ -40,6 +41,8 @@
    private OrderService orderService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private TaskService taskService;
    @Resource
    private OrderPakinService orderPakinService;
    @Resource
@@ -69,6 +72,9 @@
    @Autowired
    private OutController  outController;
    @Autowired
    private CanFinMapper canFinMapper;
    @Scheduled(cron = "0 0 1 * * ? ")
    public void clearApiLog() {
@@ -138,7 +144,7 @@
    }
    // 入库订单完成上报-领料单,原材料
    //@Scheduled(cron = "0/30 * * * * ? ")
    @Scheduled(cron = "0/30 * * * * ? ")
    @Async("orderThreadPool")
    void inOrderCompleteReport() {
        String erpReport = Parameter.get().getErpReport();
@@ -257,11 +263,12 @@
    }
    // 装配单自动出库
    @Scheduled(cron = "0/3 * * * * ? ")
    @Scheduled(cron = "* * * * * ? ")
//    @Async("orderThreadPool")
    void AutoOutOrderPinOut() throws InterruptedException {
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            //筛选还没执行的出库任务
            List<OrderPakout> orderPakouts = orderPakoutService.selectList(new EntityWrapper<OrderPakout>()
                    .eq("settle", 1)
                    .eq("doc_type", 12)
@@ -270,6 +277,51 @@
                return;
            }
            for (OrderPakout orderPakout : orderPakouts) {
//                //筛选全部还未执行的入库任务
//                List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>()
//                        .eq("sta_no", "307")
//                        .in("wrk_sts", 301,202)
//                        .orderBy("wrk_date", true)
//                );
//                if (!wrkSts.isEmpty()) {
//                    //获取第一条入库单
//                    Task task = wrkSts.get(0);
//                    // 如果第一条还未开始的出库任务时间晚于第一条未完成的入库任务时间,跳过,不执行
//                    if (orderPakout.getCreateTime().getTime() > task.getWrkDate().getTime()){
//                        continue;
//                    }
//                }
                String sourceNo = orderPakout.getCstmrName();
                List<Task> tasks = taskService.selectList(new EntityWrapper<Task>()
                        .eq("source_sta_no", sourceNo)
                        .in("wrk_sts", 301, 302, 303));
                if (!tasks.isEmpty() && tasks != null){
                    continue;
                }
//                // 查询can_fin表中相同单号的内容
//                List<CanFin> conntOut = canFinMapper.selectList(
//                        new EntityWrapper<CanFin>()
//                                .eq("out_no", orderPakout.getOrderNo())
//                );
//                if (!conntOut.isEmpty()) {
//                    // 检查是否满足继续执行的条件:agv_type为agv-in-out且task_type为canout
//                    boolean canContinue = false;
//                    for (CanFin canFin : conntOut) {
////                        if ("agv-in-out".equals(canFin.getAgvType()) && "canout".equals(canFin.getTaskStatus())) {
//                        if ("agv-out".equals(canFin.getAgvType()) && "canout".equals(canFin.getTaskStatus())) {
//                            log.info("can_fin表有满足条件的记录,执行出库单:{}", orderPakout.getOrderNo());
//                            canContinue = true;
//                            break;
//                        }
//                    }
//                    if (!canContinue) {
//                        // 不满足条件,跳过出库单
//                        continue;
//                    }
//                }
                List<LocDto> locDtos = new ArrayList<>();
                Boolean boo = false;