自动化立体仓库 - WMS系统
#
lsh
2024-01-17 be25fdca12071375d82a09f78c1235322b4106d0
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -13,7 +13,9 @@
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
@@ -857,107 +859,109 @@
//        }
        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0
                || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0
                || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()))!=0){
            throw new CoolException("托盘条码:"+param.getBarcode()+"已存在,请勿重复组托");
        }
        Date now = new Date();
        List<WaitPakin> waitPakins = new ArrayList<>();
        String matnr = null;
        for (PalletizingCompleteParam.MatList matList:param.getMatLists()){
            long rollUp = new Date().getTime();
            Mat mat = matService.selectByMatnr(matList.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(matList.getMatnr() + "商品档案不存在");
            }
            matnr = mat.getMatnr();
            WaitPakin waitPakin = new WaitPakin();
            waitPakin.sync(mat);
            waitPakin.setModel(matList.getBatch());     //批次
            waitPakin.setSpecs(matList.getSpecs());     //规格
            waitPakin.setBatch(matList.getBoxNo());       //木箱编码
            waitPakin.setBrand(param.getBoxType());     //木箱类型
            waitPakin.setZpallet(param.getBarcode());   //托盘码
            waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置
            waitPakin.setIoStatus("Y");     // 入出状态
            waitPakin.setAnfme(matList.getAnfme().doubleValue());  // 木箱中铜箔数量
            waitPakin.setStatus("Y");    // 状态
            waitPakin.setAppeUser(userId);
            waitPakin.setAppeTime(now);
            waitPakin.setModiUser(userId);
            waitPakin.setModiTime(now);
            waitPakin.setRollUp(rollUp);
            if (!Cools.isEmpty(matList.getMatDetlList())){
                for (PalletizingCompleteParam.MatDetlList matDetlList:matList.getMatDetlList()){
                    LocDetlRullUpDetail locDetlRullUpDetail = new LocDetlRullUpDetail();
                    locDetlRullUpDetail.setUuid(rollUp);
                    locDetlRullUpDetail.setRollNo(matDetlList.getBoxNoDetl());
                    locDetlRullUpDetail.setRollWeight(matDetlList.getWeightDetl().toString());
                    locDetlRullUpDetailService.insert(locDetlRullUpDetail);
                }
            }
            if (!waitPakinService.insert(waitPakin)) {
                throw new CoolException("保存入库通知档失败");
            }
            waitPakins.add(waitPakin);
        }
        LocTypeDto locTypeDto = new LocTypeDto();
        locTypeDto.setLocType1((short)1);
        StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo2(), matnr,null,null, locTypeDto);
        int workNo = dto.getWorkNo();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(new Date());
        wrkMast.setWrkSts(1L); // 工作状态:生成入库ID
        wrkMast.setIoType(1); // 入出库状态:1.入库
        wrkMast.setIoPri(13D); // 优先级
        wrkMast.setCrnNo(dto.getCrnNo());
        wrkMast.setSourceStaNo(dto.getSourceStaNo());
        wrkMast.setStaNo(dto.getStaNo());
        wrkMast.setLocNo(dto.getLocNo());
        wrkMast.setBarcode(param.getBarcode()); // 托盘码
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("Y");
        wrkMast.setCtnType(0); // 容器类型
        // 操作人员数据
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            throw new CoolException("保存工作档失败");
        }
        // 生成工作档明细
        waitPakins.forEach(waitPakin -> {
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(waitPakin);
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiTime(now);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
        });
        // 更新目标库位状态
        LocMast locMast = locMastService.selectById(dto.getLocNo());
        if (locMast.getLocSts().equals("O")){
            locMast.setLocSts("S"); // S.入库预约
            locMast.setModiTime(now);
            if (!locMastService.updateById(locMast)){
                throw new CoolException("改变库位状态失败");
            }
        } else {
            throw new CoolException(dto.getLocNo()+"目标库位已被占用");
        }
//        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0
//                || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0
//                || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()))!=0){
//            throw new CoolException("托盘条码:"+param.getBarcode()+"已存在,请勿重复组托");
//        }
//
//
//        Date now = new Date();
//        List<WaitPakin> waitPakins = new ArrayList<>();
//        String matnr = null;
//        for (PalletizingCompleteParam.MatList matList:param.getMatLists()){
//            long rollUp = new Date().getTime();
//            Mat mat = matService.selectByMatnr(matList.getMatnr());
//            if (Cools.isEmpty(mat)) {
//                throw new CoolException(matList.getMatnr() + "商品档案不存在");
//            }
//            matnr = mat.getMatnr();
//            WaitPakin waitPakin = new WaitPakin();
//            waitPakin.sync(mat);
//            waitPakin.setModel(matList.getBatch());     //批次
//            waitPakin.setSpecs(matList.getSpecs());     //规格
//            waitPakin.setBatch(matList.getBoxNo());       //木箱编码
//            waitPakin.setBrand(param.getBoxType());     //木箱类型
//            waitPakin.setZpallet(param.getBarcode());   //托盘码
//            waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置
//            waitPakin.setIoStatus("Y");     // 入出状态
//            waitPakin.setAnfme(matList.getAnfme().doubleValue());  // 木箱中铜箔数量
//            waitPakin.setStatus("Y");    // 状态
//            waitPakin.setAppeUser(userId);
//            waitPakin.setAppeTime(now);
//            waitPakin.setModiUser(userId);
//            waitPakin.setModiTime(now);
//            waitPakin.setRollUp(rollUp);
//            if (!Cools.isEmpty(matList.getMatDetlList())){
//                for (PalletizingCompleteParam.MatDetlList matDetlList:matList.getMatDetlList()){
//                    LocDetlRullUpDetail locDetlRullUpDetail = new LocDetlRullUpDetail();
//                    locDetlRullUpDetail.setUuid(rollUp);
//                    locDetlRullUpDetail.setRollNo(matDetlList.getBoxNoDetl());
//                    locDetlRullUpDetail.setRollWeight(matDetlList.getWeightDetl().toString());
//                    locDetlRullUpDetailService.insert(locDetlRullUpDetail);
//                }
//            }
//            if (!waitPakinService.insert(waitPakin)) {
//                throw new CoolException("保存入库通知档失败");
//            }
//            waitPakins.add(waitPakin);
//        }
//        LocTypeDto locTypeDto = new LocTypeDto();
//        locTypeDto.setLocType1((short)1);
//
//        StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo2(), matnr,null,null, locTypeDto);
//
//        int workNo = dto.getWorkNo();
//        // 生成工作档
//        WrkMast wrkMast = new WrkMast();
//        wrkMast.setWrkNo(workNo);
//        wrkMast.setIoTime(new Date());
//        wrkMast.setWrkSts(1L); // 工作状态:生成入库ID
//        wrkMast.setIoType(1); // 入出库状态:1.入库
//        wrkMast.setIoPri(13D); // 优先级
//        wrkMast.setCrnNo(dto.getCrnNo());
//        wrkMast.setSourceStaNo(dto.getSourceStaNo());
//        wrkMast.setStaNo(dto.getStaNo());
//        wrkMast.setLocNo(dto.getLocNo());
//        wrkMast.setBarcode(param.getBarcode()); // 托盘码
//        wrkMast.setFullPlt("Y"); // 满板:Y
//        wrkMast.setPicking("N"); // 拣料
//        wrkMast.setExitMk("N"); // 退出
//        wrkMast.setEmptyMk("N"); // 空板
//        wrkMast.setLinkMis("Y");
//        wrkMast.setCtnType(0); // 容器类型
//        // 操作人员数据
//        wrkMast.setAppeTime(now);
//        wrkMast.setModiTime(now);
//        boolean res = wrkMastService.insert(wrkMast);
//        if (!res) {
//            throw new CoolException("保存工作档失败");
//        }
//        // 生成工作档明细
//        waitPakins.forEach(waitPakin -> {
//            WrkDetl wrkDetl = new WrkDetl();
//            wrkDetl.sync(waitPakin);
//            wrkDetl.setWrkNo(wrkMast.getWrkNo());
//            wrkDetl.setIoTime(wrkMast.getIoTime());
//            wrkDetl.setAppeTime(now);
//            wrkDetl.setModiTime(now);
//            if (!wrkDetlService.insert(wrkDetl)) {
//                throw new CoolException("保存工作明细失败");
//            }
//        });
//        // 更新目标库位状态
//        LocMast locMast = locMastService.selectById(dto.getLocNo());
//        if (locMast.getLocSts().equals("O")){
//            locMast.setLocSts("S"); // S.入库预约
//            locMast.setModiTime(now);
//            if (!locMastService.updateById(locMast)){
//                throw new CoolException("改变库位状态失败");
//            }
//        } else {
//            throw new CoolException(dto.getLocNo()+"目标库位已被占用");
//        }
    }