自动化立体仓库 - WMS系统
#
zwl
2025-05-20 cb5092a38a5123bd9da452ad311b9323561802b1
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);
    }
@@ -88,6 +92,15 @@
            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;
        List<WaitPakin> waitPakins = null;
        if (param.getWcsIoType() == 1) {
@@ -181,23 +194,38 @@
            WaitPakin waitPakin1=new WaitPakin();
            waitPakin1.sync(wrkDetl);
            locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1);
            if (locMast1 == null) {
                basDevp.setArea("未找到空库位");
                basDevpService.updateById(basDevp);
                throw new CoolException("未找到空库位");
            }
            //更新货物所在库位的深浅号
            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);
            if (locMast1 == null) {
                basDevp.setArea("未找到空库位");
                basDevpService.updateById(basDevp);
                throw new CoolException("未找到空库位");
            }
            int mbz=devpNo*10+Integer.valueOf(locMast1.getLocNo().substring(6));
            //正常入库
            workNo = commonService.getWorkNo(0);
@@ -229,6 +257,7 @@
                throw new CoolException("保存工作档失败");
            }
            // 生成工作档明细
            int source = locMast1.getLocAttribute();
            waitPakins.forEach(waitPakin -> {
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.sync(waitPakin);
@@ -236,6 +265,7 @@
                wrkDetl.setIoTime(wrkMast.getIoTime());
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                wrkDetl.setSource(source);
                if (!wrkDetlService.insert(wrkDetl)) {
                    basDevp.setArea("保存工作明细失败");
                    basDevpService.updateById(basDevp);