自动化立体仓库 - WMS系统
dubin
11 小时以前 edb03c5169709da2e6d39a999328ce9bf92affff
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -11,6 +11,7 @@
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.param.OffSaleParam;
import com.zy.asrs.entity.param.PickInParam;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
@@ -702,7 +703,7 @@
            adjDetl.setMatnr(wrkDetl.getMatnr());
            adjDetl.setBatch(wrkDetl.getBatch());
//            adjDetl.setBatch(wrkDetl.getBatch());
            adjDetl.setAdjQty(wrkDetl.getAnfme());
            if (Cools.isEmpty(wrkDetlOld)) {
@@ -716,7 +717,7 @@
                adjDetlService.insert(adjDetl);
            } else if (wrkDetlOld.getAnfme() != wrkDetl.getAnfme()) {
                wrkDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                wrkDetlService.updateAnfme(wrkDetl.getAnfme() + wrkDetlOld.getAnfme(), wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                recordRecordLog = recordRecordLog + "\n" + "更新一条明细:" + "\t商品编号:" + wrkDetl.getMatnr() + "\t批号:" + wrkDetl.getBatch() + "\t原数量:" + wrkDetlOld.getAnfme() + "\t新数量:" + wrkDetl.getAnfme();
                adjDetl.setOriQty(wrkDetlOld.getAnfme());
                adjDetlService.insert(adjDetl);
@@ -730,4 +731,71 @@
        }
        log.info(recordRecordLog);
    }
    @Override
    public void combToWms(WaitPakin waitPakin) {
        // 判断是否有相同条码的数据
//        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
//                eq("zpallet", waitPakin.getBarcode()).eq("io_status", "N")) > 0) {
//            throw new CoolException(waitPakin.getBarcode() + "数据正在进行入库");
//        }
        if (waitPakin.getBarcode().length() != 8) {
            throw new CoolException("条码长度不是8位===>>" + waitPakin.getBarcode());
        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", waitPakin.getBarcode()));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", waitPakin.getBarcode()));
        WrkMast wrkMast = wrkMastService.selectByBarcode(waitPakin.getBarcode());
        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getBarcode()));
        if (countLoc > 0 || (countWrk > 0 && wrkMast.getWrkSts() != 15)) {
            throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + waitPakin.getBarcode());
        }
        Date now = new Date();
        // 生成入库通知档
        List<DetlDto> detlDtos = new ArrayList<>();
        Mat byId = matService.selectById(waitPakin.getModiUser());
        DetlDto detlDto = new DetlDto(byId.getMatnr(), waitPakin.getBatch(), waitPakin.getAnfme(), waitPakin.getProType(), waitPakin.getTemp2(), waitPakin.getOutOrderNo());
            detlDto.setMemo(detlDto.getMemo());
            if (DetlDto.has(detlDtos, detlDto)) {
                DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                assert one != null;
                one.setAnfme(one.getAnfme() + detlDto.getAnfme());
            } else {
                detlDtos.add(detlDto);
            }
        for (DetlDto dto : detlDtos) {
            Mat mat = matService.selectByMatnr(dto.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(dto.getMatnr() + "商品档案不存在");
            }
            //校验当前物料与托盘绑定信息是否正确
            MatBarcode mb = matBarcodeService.selectbyMatnr(dto.getMatnr());
            if (mb != null){
                if (!mb.getZpallet().equals(waitPakin.getBarcode())){
                    throw new CoolException(detlDto.getMatnr() + "该物料与其他托盘绑定,请先解绑");
                }
            }
            WaitPakin waitPakin1 = new WaitPakin();
            waitPakin1.sync(mat);
            waitPakin1.setProType(dto.getProType());
            waitPakin1.setTemp2(dto.getTemp2());
            waitPakin1.setOutOrderNo(dto.getOutOrderNo());
            waitPakin1.setBatch(dto.getBatch());
            waitPakin1.setZpallet(waitPakin.getBarcode());   // 托盘码
            waitPakin1.setIoStatus("N");     // 入出状态
            waitPakin1.setAnfme(dto.getAnfme());  // 数量
            waitPakin1.setStatus("Y");    // 状态
            waitPakin1.setAppeUser(waitPakin.getAppeUser());
            waitPakin1.setAppeTime(now);
            waitPakin1.setModiUser(waitPakin.getAppeUser());
            waitPakin1.setModiTime(now);
            waitPakin1.setMemo(detlDto.getMemo());
            if (!waitPakinService.insert(waitPakin1)) {
                throw new CoolException("保存入库通知档失败");
            }
        }
    }
}