Junjie
1 天以前 ccab5f516f055c5e8d8015442d9860a18072f508
src/main/java/com/zy/common/service/CommonService.java
@@ -415,6 +415,86 @@
        return true;
    }
    //移库任务(返回WrkMast,供跑库等场景获取工作号)
    public WrkMast createLocMoveTaskReturnMast(CreateLocMoveTaskParam param) {
        Date now = new Date();
        LocMast sourceLocMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == sourceLocMast) {
            throw new CoolException(param.getSourceLocNo() + "源库位不存在");
        }
        if (!sourceLocMast.getLocSts().equals("F")) {
            throw new CoolException(sourceLocMast.getLocNo() + "源库位不处于在库状态");
        }
        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
        if (null == locMast) {
            throw new CoolException(param.getLocNo() + "目标库位不存在");
        }
        if (!locMast.getLocSts().equals("O")) {
            throw new CoolException(locMast.getLocNo() + "目标库位不处于空库状态");
        }
        double ioPri = 800D;
        if (param.getTaskPri() != null) {
            ioPri = param.getTaskPri().doubleValue();
        }
        FindCrnNoResult sourceCrnResult = this.findCrnNoByLocNo(sourceLocMast.getLocNo());
        if (sourceCrnResult == null) {
            throw new CoolException("未找到对应堆垛机");
        }
        FindCrnNoResult targetCrnResult = this.findCrnNoByLocNo(locMast.getLocNo());
        if (targetCrnResult == null) {
            throw new CoolException("未找到对应堆垛机");
        }
        if (!sourceCrnResult.getCrnNo().equals(targetCrnResult.getCrnNo())) {
            throw new CoolException("源库位和目标库位不在同一巷道");
        }
        int workNo = getWorkNo(WrkIoType.LOC_MOVE.id);
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts);
        wrkMast.setIoType(WrkIoType.LOC_MOVE.id);
        wrkMast.setIoPri(ioPri);
        wrkMast.setSourceLocNo(param.getSourceLocNo());
        wrkMast.setLocNo(param.getLocNo());
        wrkMast.setWmsWrkNo(param.getTaskNo());
        wrkMast.setBarcode(sourceLocMast.getBarcode());
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        if (targetCrnResult.getCrnType().equals(SlaveType.Crn)) {
            wrkMast.setCrnNo(targetCrnResult.getCrnNo());
        } else if (targetCrnResult.getCrnType().equals(SlaveType.DualCrn)) {
            wrkMast.setDualCrnNo(targetCrnResult.getCrnNo());
        } else {
            throw new CoolException("未知设备类型");
        }
        boolean res = wrkMastService.save(wrkMast);
        if (!res) {
            News.error("移库任务 --- 保存工作档失败!");
            throw new CoolException("保存工作档失败");
        }
        wrkAnalysisService.initForTask(wrkMast);
        sourceLocMast.setLocSts("R");
        sourceLocMast.setModiTime(new Date());
        locMastService.updateById(sourceLocMast);
        locMast.setLocSts("S");
        locMast.setModiTime(new Date());
        locMastService.updateById(locMast);
        return wrkMast;
    }
    //入库任务
    public WrkMast createInTask(CreateInTaskParam param) {
        Date now = new Date();