自动化立体仓库 - WMS系统
18516761980
2022-06-16 775d4714ca9e650631659d7467f5c43dc021f931
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -28,10 +28,8 @@
    @Value("${wcs-slave.doubleDeep}")
    private boolean confirmDeep;
    @Value("${wcs-slave.doubleLocs}")
    private String deepLocs;
    @Value("${wcs-slave.shallowLocs}")
    private String shallowLocs;
    @Value("${scheduler.autoMove}")
    private boolean autoMove;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
@@ -49,6 +47,7 @@
    @Scheduled(cron = "0/30 * * * * ?")
    private void locMoveToDeep(){
        if (!confirmDeep) return;
        if (!autoMove) return;
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .eq("crn_no",1)
@@ -56,26 +55,90 @@
        );
        if (wrkMasts.size() > 0) return;
        //遍历库存中,浅库位状态F/D,深库位状态O的数据,生成库位移转工作档将浅库位移转到对应深库位中去
        List<LocMast> locMasts = locMastService.queryShallowLocFMast();
        if (null != locMasts) {
            for (LocMast sourceLoc : locMasts) {
                String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
                LocMast destLoc = locMastService.selectById(deep);
        if (null == locMasts) return;
        for (LocMast sourceLoc : locMasts){
            String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
            LocMast destLoc = locMastService.selectById(deep);
            if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
                //查找源库位是否有转移任务,如果有,不生成库位移转
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                        .eq("source_loc_no", sourceLoc.getLocNo()));
                if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
                        (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
                    workService.locMove(sourceLoc.getLocNo(), deep, 1L);
                    break;
                if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
                    //查找源库位是否有转移任务,如果有,不生成库位移转
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("source_loc_no", sourceLoc.getLocNo()));
                    if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
                            (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
                        workService.locMove(sourceLoc.getLocNo(), deep, 1L);
                        return;
                    }
                }
            }
        }
        //遍历库存中,浅库位状态F,深库位状态D的数据,生成库位移转工作档将浅库位移转到新的库位中去
        List<LocMast> locMasts1 = locMastService.queryNeedMoveShallLocF();
        if (null != locMasts1) {
            for (LocMast sourceLoc : locMasts1) {
                LocMast destLoc = locMastService.queryEmptyDeepLoc();
                if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
                    //查找源库位是否有转移任务,如果有,不生成库位移转
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("source_loc_no", sourceLoc.getLocNo()));
                    if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
                            (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
                        workService.locMove(sourceLoc.getLocNo(), destLoc.getLocNo(), 1L);
                        return;
                    }
                }
            }
        }
        //遍历库存中,浅库位状态F,深库位状态D的数据,生成库位移转工作档将浅库位移转到新的库位中去
        List<LocMast> locMasts2 = locMastService.queryNeedMoveShallLocD();
        if (null != locMasts2) {
            for (LocMast sourceLoc : locMasts2) {
                LocMast destLoc = locMastService.queryEmptyDeepLoc();
                if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
                    //查找源库位是否有转移任务,如果有,不生成库位移转
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("source_loc_no", sourceLoc.getLocNo()));
                    if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
                            (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
                        workService.locMove(sourceLoc.getLocNo(), destLoc.getLocNo(), 1L);
                        return;
                    }
                }
            }
        }
        //遍历库存中,深库位状态D,浅库位状态为O的深库位数据,生成库位移转工作档将两个D库位合并为深浅库位
        List<LocMast> locMasts3 = locMastService.queryDeepLocDMast();
        if (null != locMasts3) {
            for (LocMast sourceLoc : locMasts3) {
                List<LocMast> locMasts4 = locMastService.queryDeepLocDMast();
                for (LocMast deepLoc : locMasts4){
                    if(sourceLoc.getLocNo().equals(deepLoc.getLocNo())){
                        continue;
                    }
                    String shallow = Utils.getShallowLoc(slaveProperties, deepLoc.getLocNo());
                    LocMast destLoc = locMastService.selectById(shallow);
                    if (!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
                        //查找源库位是否有转移任务,如果有,不生成库位移转
                        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                                .eq("source_loc_no", sourceLoc.getLocNo()));
                        if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
                                (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
                            workService.locMove(sourceLoc.getLocNo(), destLoc.getLocNo(), 1L);
                            return;
                        }
                    }
                }
            }
        }
    }
    /**