自动化立体仓库 - WMS系统
whycq
2024-07-05 010dc23827d3b1020356b6741ec47f7ce81497ab
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -296,7 +296,7 @@
                }
                // 校验是否为bom入库  bom入库的数量不能超过库存原有数量
                if (!Cools.isEmpty(param.getBomCode())) {
                    BomMat bomMat = bomMatService.selectOne(new EntityWrapper<BomMat>().eq("unit_num", param.getBomCode()).eq("element_num", detlDto.getMatnr()));
                    BomMat bomMat = bomMatService.selectOne(new EntityWrapper<BomMat>().eq("bom_num", param.getBomCode()).eq("element_num", detlDto.getMatnr()));
                    Double bomQyt = locDetlService.getBomQyt(param.getBomCode(), detlDto.getMatnr());
                    if (!Cools.isEmpty(bomQyt)) {
                        bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQyt);
@@ -386,6 +386,60 @@
            }
        }
    }
    @Override
    @Transactional
    public void mergeComb(CombParam param, Long userId) {
        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
            throw new CoolException(BaseRes.PARAM);
        }
        if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null)){
            throw new CoolException("入库物料数量不能为空");
        }
        // 判断是否有相同条码的数据
        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
            throw new CoolException(param.getBarcode() + "数据正在进行入库");
        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
        WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
        //设置非null批号,
        for (CombParam.CombMat combMat : param.getCombMats()) {
            if (combMat.getBatch() == null){
                combMat.setBatch("");
            }
        }
        Date now = new Date();
        for (CombParam.CombMat combMat : param.getCombMats()) {
            Mat mat = matService.selectByMatnr(combMat.getMatnr());
            LocDetl locDetl = new LocDetl();
            locDetl.sync(mat);
            locDetl.setLocNo(wrkMast.getSourceLocNo());
            locDetl.setZpallet(param.getBarcode());
            locDetl.setBomCode(param.getBomCode());
            locDetl.setAnfme(combMat.getAnfme());
            locDetl.setAppeTime(now);
            locDetl.setAppeUser(userId);
            locDetl.setModiTime(now);
            locDetl.setModiUser(userId);
            locDetlService.insert(locDetl);
        }
    }
@@ -978,5 +1032,33 @@
        return R.ok("下架完成");
    }
    @Override
    @Transactional
    public void adjustNew(MobileAdjustParam param, Boolean re, Long userId) {
        Date now = new Date();
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
        if (Cools.isEmpty(wrkMast)){
            throw new CoolException("托盘码:"+param.getBarcode()+" 无有效工作档");
        }else if (wrkMast.getIoType()!=103){
            throw new CoolException("托盘码:"+param.getBarcode()+" 所属工作档非拣料任务");
        }else if (wrkMast.getWrkSts()!=14.0){
            throw new CoolException("托盘码:"+param.getBarcode()+" 所属工作档工作状态不是出库完成");
        }
//        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
        List<WrkDetl> wrkDetls = param.getWrkDetls();
        for (WrkDetl wrkDetl : wrkDetls) {
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setZpallet(param.getBarcode());
            wrkDetl.setMatnr("B"+wrkDetl.getMatnr());
            wrkDetl.setAnfme(-wrkDetl.getAnfme());
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(userId);
            wrkDetl.setModiTime(now);
            wrkDetl.setModiUser(userId);
            wrkDetlService.insert(wrkDetl);
        }
    }
}