自动化立体仓库 - WMS系统
pang.jiabao
2024-06-22 8d6042713c2e2d9719c64322ef26450a9f221523
src/main/java/com/zy/common/service/CommonService.java
@@ -7,6 +7,7 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
@@ -46,6 +47,9 @@
    private LocDetlService locDetlService;
    @Autowired
    private SlaveProperties slaveProperties;
    @Autowired
    private LocMastMapper locMastMapper;
    /**
     * 生成工作号
@@ -109,9 +113,12 @@
        if (sourceStaNo < 200) {
            whsType = 1;
            crnNo=1;
        } else if (sourceStaNo >= 200) {
        } else if (sourceStaNo < 300) {
            whsType = 2;
            crnNo=2;
        }else {
            whsType = 3;
            crnNo=3;
        }
        int workNo = getWorkNo(0);
@@ -218,7 +225,13 @@
                } else {
                    curRow = sRow;
                }
                crnNo = whsType;
                basCrnpService.checkSiteStatus(crnNo, true);
            }else {
                if (curRow == sRow) {
                    curRow = eRow;
                } else {
                    curRow = sRow;
                }
                basCrnpService.checkSiteStatus(crnNo, true);
            }
        }
@@ -496,4 +509,84 @@
        }
    }
    public StartupDto emptyIngetLocNo(Integer devpNo) {
        int crnNo = 0;
        // 目标库位
        LocMast locMast = null;
        if (devpNo == 304) {
            crnNo = 3;
            locMast = locMastMapper.queryEmptyLocNoByStaNo(crnNo);
        }
        if (locMast == null) {
            throw new CoolException("没有空库位");
        }
        // 获取目标站
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", 10)
                .eq("stn_no", devpNo)
                .eq("crn_no", crnNo);
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (Cools.isEmpty(staDesc)) {
            log.error("入库路径不存在, staDescId={}, sourceStaNo={}, crnNo={}", 10, devpNo, crnNo);
            throw new CoolException("入库路径不存在");
        }
        // 检测目标站
        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
        if (!staNo.getAutoing().equals("Y")) {
            throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用");
        }
        basCrnpService.checkSiteStatus(crnNo, true);
        // 返回dto
        StartupDto startupDto = new StartupDto();
        startupDto.setWorkNo(getWorkNo(0));
        startupDto.setCrnNo(crnNo);
        startupDto.setSourceStaNo(devpNo);
        startupDto.setStaNo(devpNo);
        startupDto.setLocNo(locMast.getLocNo());
        return startupDto;
    }
    public StartupDto getLocNoBy304(String barcode) {
        int crnNo = 3;
        int devpNo = 304;
        int row = barcode.charAt(0) == '5' ? 7 : 6;
        // 目标库位
        LocMast locMast = locMastMapper.queryLocByBarCode(row);
        if (locMast == null) {
            throw new CoolException("304入库没有空库位");
        }
        // 获取目标站
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", 1)
                .eq("stn_no", devpNo)
                .eq("crn_no", crnNo);
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (Cools.isEmpty(staDesc)) {
            log.error("入库路径不存在, staDescId={}, sourceStaNo={}, crnNo={}", 1, devpNo, crnNo);
            throw new CoolException("入库路径不存在");
        }
        // 检测目标站
        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
        if (!staNo.getAutoing().equals("Y")) {
            throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用");
        }
        basCrnpService.checkSiteStatus(crnNo, true);
        // 返回dto
        StartupDto startupDto = new StartupDto();
        startupDto.setWorkNo(getWorkNo(0));
        startupDto.setCrnNo(crnNo);
        startupDto.setSourceStaNo(devpNo);
        startupDto.setStaNo(devpNo);
        startupDto.setLocNo(locMast.getLocNo());
        return startupDto;
    }
}