#
Junjie
2023-12-28 9312af7cd78b3ff901c8986f00307cd1aa32af24
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -5,9 +5,7 @@
import com.zy.asrs.common.domain.dto.LocTypeDto;
import com.zy.asrs.common.domain.dto.StartupDto;
import com.zy.asrs.common.domain.param.FullStoreParam;
import com.zy.asrs.common.wms.entity.BasDevp;
import com.zy.asrs.common.wms.entity.LocMast;
import com.zy.asrs.common.wms.entity.WrkMast;
import com.zy.asrs.common.wms.entity.*;
import com.zy.asrs.common.wms.service.*;
import com.zy.asrs.framework.common.BaseRes;
import com.zy.asrs.framework.common.Cools;
@@ -38,6 +36,8 @@
    private WrkDetlService wrkDetlService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private MatService matService;
    @Override
    @Transactional
@@ -58,7 +58,6 @@
        wrkMast.setWrkSts(1L); // 工作状态:生成入库
        wrkMast.setIoType(1); // 入出库状态:1.入库
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setCrnNo(dto.getCrnNo());
        wrkMast.setSourceStaNo(dto.getSourceStaNo());
        wrkMast.setStaNo(dto.getStaNo());
        wrkMast.setLocNo(dto.getLocNo());
@@ -87,26 +86,41 @@
                detlDtos.add(detlDto);
            }
        });
//        wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId);
//        // 更新源站点信息
//        sourceStaNo.setWrkNo(workNo);
//        sourceStaNo.setModiUser(userId);
//        sourceStaNo.setModiTime(now);
//        if (!basDevpService.updateById(sourceStaNo)){
//            throw new CoolException("更新源站失败");
//        }
//        // 更新目标库位状态
//        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, dto.getLocNo()));
//        if (locMast.getLocSts().equals("O")){
//            locMast.setLocSts("S"); // S.入库预约
//            locMast.setModiUser(userId);
//            locMast.setModiTime(now);
//            if (!locMastService.updateById(locMast)){
//                throw new CoolException("改变库位状态失败");
//            }
//        } else {
//            throw new CoolException(dto.getLocNo()+"目标库位已被占用");
//        }
        for (DetlDto detlDto : detlDtos) {
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, hostId));
            if (Cools.isEmpty(mat)){
                throw new CoolException(detlDto.getMatnr() + "商品维护失败");
            }
            // 保持工作档明细
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(mat);
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setIoTime(now);
            wrkDetl.setBatch(detlDto.getBatch());
            wrkDetl.setAnfme(detlDto.getAnfme()); // 数量
            wrkDetl.setZpallet(param.getBarcode()); // 托盘条码
            wrkDetl.setAppeUser(userId);
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiUser(userId);
            wrkDetl.setModiTime(now);
            if (!wrkDetlService.save(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
        }
        // 更新目标库位状态
        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, dto.getLocNo()).eq(LocMast::getHostId, hostId));
        if (locMast.getLocSts().equals("O")){
            locMast.setLocSts("S"); // S.入库预约
            locMast.setModiUser(userId);
            locMast.setModiTime(now);
            if (!locMastService.updateById(locMast)){
                throw new CoolException("改变库位状态失败");
            }
        } else {
            throw new CoolException(dto.getLocNo()+"目标库位已被占用");
        }
        return dto.getLocNo();
    }