自动化立体仓库 - WMS系统
#
Administrator
4 天以前 1ee1574b1fce92407e45438b0141121d266efd3d
src/main/java/com/zy/common/service/CommonService.java
@@ -409,7 +409,7 @@
    }
    /**
     * 当回源库位不在本巷道时,出库至1070重新检索巷道根据1,2巷道之间分配,3,4巷道全局分配规则
     * 当回源库位不在本巷道时,重新检索巷道根据1,2巷道之间分配,3,4巷道全局分配规则
     */
    @Transactional
    public StartupDto getLocNoRunV2(Integer whsType, Integer staDescId, Integer sourceStaNo, WrkMast wrkMast, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
@@ -420,10 +420,20 @@
            detl = wrkDetl.get(0);
        }
        String matnr = detl == null ? null : detl.getMatnr();
        int[] candidates = wrkMast.getCrnNo() != null && wrkMast.getCrnNo() < 3 ? new int[]{1, 2} : new int[]{1, 2, 3, 4};
        Integer sourceCrnNo = null;
        if (!Cools.isEmpty(wrkMast.getLocNo())) {
            LocMast sourceLoc = locMastService.selectById(wrkMast.getLocNo());
            if (!Cools.isEmpty(sourceLoc) && sourceLoc.getCrnNo() != null) {
                sourceCrnNo = sourceLoc.getCrnNo();
            }
        }
        int[] candidates = sourceCrnNo != null && sourceCrnNo < 5 ? new int[]{1, 2} : new int[]{1, 2, 3, 4};
        Integer chosenCrnNo = null;
        Integer chosenCount = null;
        for (int candidate : candidates) {
            if (sourceCrnNo != null && candidate == sourceCrnNo) {
                continue;
            }
            //判断该巷道是否存在空位
            LocMast candidateLoc = locMastService.selectOne(new EntityWrapper<LocMast>()
                    .eq("crn_no", candidate)
@@ -457,6 +467,9 @@
                    .eq("whs_type", 1)
                    .orderBy("lev1,bay1"));
        }
        if (!Cools.isEmpty(locMast) && sourceCrnNo != null && sourceCrnNo.equals(locMast.getCrnNo())) {
            locMast = null;
        }
        if (Cools.isEmpty(locMast)) {
            List<LocMast> anyLocs = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("loc_sts", "O")
@@ -469,6 +482,9 @@
                    if (anyLoc == null || anyLoc.getCrnNo() == null) {
                        continue;
                    }
                    if (sourceCrnNo != null && sourceCrnNo.equals(anyLoc.getCrnNo())) {
                        continue;
                    }
                    if (!basCrnpService.checkSiteError(anyLoc.getCrnNo(), true)) {
                        continue;
                    }