自动化立体仓库 - WMS系统
zwl
2025-10-27 8aaf98abf54109252764f9c7f8bd5bf28c073241
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -81,6 +81,9 @@
    @Override
    @Transactional
    public void comb(CombParam param, Long userId, String fxId) {
        if (Cools.isEmpty(fxId)){
            throw new CoolException("请用自己的账号组托");
        }
        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
            throw new CoolException(BaseRes.PARAM);
        }
@@ -89,6 +92,7 @@
                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()));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
@@ -105,26 +109,26 @@
        Date now = new Date();
        //进行批号筛选,批号只能唯一
        Set<String> batchs = new HashSet<>();
        List<String> strings = new ArrayList<>();
//        Set<String> batchs = new HashSet<>();
//        List<String> strings = new ArrayList<>();
        for (CombParam.CombMat mat : param.getCombMats()) {
            if (Cools.isEmpty(mat.getBatch())) {
                continue;
            }
            batchs.add(mat.getBatch());
            strings.add(mat.getBatch());
            WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("batch", mat.getBatch()));
            WrkDetl batch = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("batch", mat.getBatch()));
            LocDetl batch1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", mat.getBatch()));
            if (!Cools.isEmpty(batch) || !Cools.isEmpty(batch1) || !Cools.isEmpty(waitPakin)) {
                throw new CoolException("该物料批号" + mat.getBatch() + "已在入库通知档、任务明细和库存中存在");
            }
        }
        if (batchs.size() < strings.size()) {
            throw new CoolException("有重复的物料批号");
        }
//        for (CombParam.CombMat mat : param.getCombMats()) {
//            if (Cools.isEmpty(mat.getBatch())) {
//                continue;
//            }
//            batchs.add(mat.getBatch());
//            strings.add(mat.getBatch());
//            WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("batch", mat.getBatch()));
//            WrkDetl batch = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("batch", mat.getBatch()));
//            LocDetl batch1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", mat.getBatch()));
//            if (!Cools.isEmpty(batch) || !Cools.isEmpty(batch1) || !Cools.isEmpty(waitPakin)) {
//                throw new CoolException("该物料批号" + mat.getBatch() + "已在入库通知档、任务明细和库存中存在");
//            }
//        }
//        if (batchs.size() < strings.size()) {
//            throw new CoolException("有重复的物料批号");
//        }
        int i = 1;
        // 无单组托
        if (Cools.isEmpty(param.getOrderNo())) {
@@ -132,7 +136,16 @@
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                // 判断是否有相同条码的数据
                if (!Cools.isEmpty(elem.getBc())){
                    if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                            eq("three_code", elem.getBc())) > 0) {
                        throw new CoolException( elem.getBc() + "数据组托档中已存在");
                    }
                }
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
                detlDto.setBc(elem.getBc());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    assert one != null;
@@ -153,7 +166,8 @@
                }
                WaitPakin waitPakin = new WaitPakin();
                waitPakin.sync(mat);
                waitPakin.setBatch(detlDto.getBatch());
                waitPakin.setBatch(detlDto.getBc());
                waitPakin.setThreeCode(detlDto.getBc());
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
@@ -161,6 +175,7 @@
                waitPakin.setAppeUser(userId);
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setColor(userId+"");
                waitPakin.setModiTime(now);
                waitPakin.setBrand(param.getCk());//仓库
                waitPakin.setInspect(param.isType() ? 1 : 0);
@@ -223,7 +238,7 @@
                WaitPakin waitPakin = new WaitPakin();
                waitPakin.sync(mat);
                waitPakin.setOrderNo(order.getOrderNo());   // 单据编号
                waitPakin.setBatch(detlDto.getBatch());     // 序列码
                waitPakin.setBatch(detlDto.getBatch());     // 批号
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
@@ -232,6 +247,7 @@
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                waitPakin.setColor(userId+"");
                waitPakin.setBrand(param.getCk());//仓库
                waitPakin.setInspect(param.isType() ? 1 : 0);
                if (i == 1) {