自动化立体仓库 - WMS系统
zwl
2025-04-16 b4b2da143af53a7422135abffd5306b282be6a39
src/main/java/com/zy/common/web/WcsController.java
@@ -58,15 +58,19 @@
        WrkMast wrkMast =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                .eq("wrk_no",param.getTaskNo())
                .in("io_type",103,107));
        if (Cools.isEmpty(wrkMast)){
        WrkMast wrkMast537 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                .eq("wrk_no",param.getTaskNo())
                .in("io_type",53,57));
        if (Cools.isEmpty(wrkMast)&&Cools.isEmpty(wrkMast537)){
            storageResult.setReturnStatus(1);
            storageResult.setErrorMessage("没有找到盘点拣料任务---------"+param.getTaskNo());
            return storageResult;
        }
        SearchLocParam searchLocParam = new SearchLocParam();
        searchLocParam.setBoxNo(wrkMast.getBarcode());
        searchLocParam.setBoxNo(Cools.isEmpty(wrkMast)?wrkMast537.getBarcode() : wrkMast.getBarcode());
        searchLocParam.setWcsIoType(1);//满板
        searchLocParam.setWcsSourceStaNo(wrkMast.getStaNo());
        searchLocParam.setWcsSourceStaNo(Cools.isEmpty(wrkMast)?wrkMast537.getSourceStaNo() : wrkMast.getStaNo());
        searchLocParam.setWcsStatus(0);
        return getLocNo(searchLocParam);
    }
@@ -85,6 +89,16 @@
        if (Cools.isEmpty(param.getWcsSourceStaNo())) {
            storageResult.setReturnStatus(1);
            storageResult.setErrorMessage("源站编号不能为空");
            return storageResult;
        }
        BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",param.getWcsSourceStaNo()));
        //
        List<WrkMast> wrkMasts=wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no",param.getWcsSourceStaNo()).in("wrk_sts",11,12,13));
        if(!Cools.isEmpty(wrkMasts)){
            storageResult.setReturnStatus(1);
            storageResult.setErrorMessage("有出库任务禁止入库");
            basDevp.setArea("有出库任务禁止入库");
            basDevpService.updateById(basDevp);
            return storageResult;
        }
        int ioType = 0;
@@ -108,6 +122,8 @@
                if (Cools.isEmpty(param.getBoxNo())) {
                    storageResult.setReturnStatus(1);
                    storageResult.setErrorMessage("条码不能为空");
                    basDevp.setArea("条码不能为空");
                    basDevpService.updateById(basDevp);
                    return storageResult;
                }
                waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
@@ -116,10 +132,14 @@
                    if (wrkMast != null && wrkMast.getIoType() == 103) {
                        storageResult.setReturnStatus(1);
                        storageResult.setErrorMessage(CodeRes.PICK_600);
                        basDevp.setArea(CodeRes.PICK_600);
                        basDevpService.updateById(basDevp);
                        return storageResult;
                    }
                    storageResult.setReturnStatus(1);
                    storageResult.setErrorMessage(CodeRes.NO_COMB_700);
                    basDevp.setArea(CodeRes.NO_COMB_700);
                    basDevpService.updateById(basDevp);
                    return storageResult;
                }
                int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBoxNo()));
@@ -127,6 +147,8 @@
                if (countLoc > 0 || countWrk > 0) {
                    storageResult.setReturnStatus(1);
                    storageResult.setErrorMessage(CodeRes.EXIST_500);
                    basDevp.setArea(CodeRes.NO_COMB_700);
                    basDevpService.updateById(basDevp);
                    return storageResult;
                }
            }else {
@@ -157,6 +179,8 @@
     */
    @Transactional
    public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins,Integer ioType) {
        BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",devpNo));
        StorageResult storageResult=new StorageResult();
        Integer[] arr=arr();
        LocMast locMast1=new LocMast();
@@ -170,24 +194,27 @@
            WaitPakin waitPakin1=new WaitPakin();
            waitPakin1.sync(wrkDetl);
            locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1);
            //更新货物所在库位的深浅号
            wrkDetl.setSource(locMast1.getLocAttribute());
            wrkDetlService.update(wrkDetl,new EntityWrapper<WrkDetl>().eq("wrk_no", wrkDetl.getWrkNo()));
            WrkMast wrkMast=wrkMastService.selectByBarcode(barcode);
            workNo = wrkMast.getWrkNo();
            int mbz=wrkMast.getStaNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
            int mbz=basDevp.getDevNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
            String ykw=wrkMast.getLocNo();
            wrkMast.setIoType(ioType-50);
            wrkMast.setWrkSts(1L);//入库
            wrkMast.setModiTime(new Date());
            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站
            wrkMast.setSourceStaNo(basDevp.getDevNo()); // 源站
            wrkMast.setStaNo(mbz); // 目标站
            wrkMast.setLocNo(locMast1.getLocNo()); // 目标库位 = 出库时的源库位
            wrkMast.setSourceLocNo(ykw); // 源库位
            wrkMastService.updateById(wrkMast);
        }else{
            int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
            // 检索库位
            locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
            int mbz=devpNo*10+Integer.valueOf(locMast1.getLocNo().substring(6));
            //正常入库
            workNo = commonService.getWorkNo(0);
            Date now = new Date();
@@ -199,6 +226,7 @@
            wrkMast.setIoType(1); // 入出库状态:1.入库
            wrkMast.setIoPri(13D); // 优先级
            wrkMast.setSourceStaNo(devpNo);
            wrkMast.setStaNo(mbz);
            wrkMast.setLocNo(locMast1.getLocNo());
            wrkMast.setBarcode(barcode); // 托盘码
            wrkMast.setFullPlt("Y"); // 满板:Y
@@ -212,9 +240,12 @@
            wrkMast.setModiTime(now);
            boolean res = wrkMastService.insert(wrkMast);
            if (!res) {
                basDevp.setArea("保存工作档失败");
                basDevpService.updateById(basDevp);
                throw new CoolException("保存工作档失败");
            }
            // 生成工作档明细
            int source = locMast1.getLocAttribute();
            waitPakins.forEach(waitPakin -> {
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.sync(waitPakin);
@@ -222,7 +253,10 @@
                wrkDetl.setIoTime(wrkMast.getIoTime());
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                wrkDetl.setSource(source);
                if (!wrkDetlService.insert(wrkDetl)) {
                    basDevp.setArea("保存工作明细失败");
                    basDevpService.updateById(basDevp);
                    throw new CoolException("保存工作明细失败");
                }
            });
@@ -234,6 +268,8 @@
            setParam.setIoStatus("Y");
            setParam.setModiTime(now);
            if (!waitPakinService.update(setParam, wrapper)) {
                basDevp.setArea("更新通知档失败");
                basDevpService.updateById(basDevp);
                throw new CoolException("更新通知档失败");
            }
        }
@@ -243,9 +279,13 @@
            locMast.setLocSts("S"); // S.入库预约
            locMast.setModiTime(new Date());
            if (!locMastService.updateById(locMast)){
                basDevp.setArea("改变库位状态失败");
                basDevpService.updateById(basDevp);
                throw new CoolException("改变库位状态失败");
            }
        } else {
            basDevp.setArea(locMast1.getLocNo()+"目标库位已被占用");
            basDevpService.updateById(basDevp);
            throw new CoolException(locMast1.getLocNo()+"目标库位已被占用");
        }