自动化立体仓库 - WMS系统
#
yxFwq
2025-04-01 74fd6eb7fb0322078f7946f51073f20e90231df1
src/main/java/com/zy/common/web/WcsController.java
@@ -2,7 +2,9 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -10,6 +12,7 @@
import com.zy.asrs.entity.result.KeyValueVo;
import com.zy.asrs.service.*;
import com.zy.common.CodeRes;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
import com.zy.common.model.enums.WorkNoType;
@@ -53,6 +56,8 @@
    private WorkService workService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private MatService matService;
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
@@ -109,6 +114,115 @@
        }
        log.info("WCS入库接口返参:{},托盘码:{}", dto, param.getBarcode());
        return R.ok().add(dto);
    }
//
//    @PostMapping("/pakin/yx/loc/v33")
//    @ResponseBody
//    public synchronized R getLocNo33(@RequestBody SearchLocParam param) {
//        if (Cools.isEmpty(param.getBarcode(), param.getSourceStaNo())) {
//            throw new CoolException(BaseRes.PARAM);
//        }
//        // 判断是否有相同条码的数据
//        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
//                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
//            throw new CoolException(param.getBarcode() + "数据正在进行入库");
//        }
//
//        if(param.getBarcode().length()!=8){
//            throw new CoolException("条码长度不是8位===>>" + param.getBarcode());
//        }
//
//        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
//        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
//        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode()));
//        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
//            throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + param.getBarcode());
//        }
//        BasDevp basDevp = basDevpService.selectById(param.getSourceStaNo());
//        if (Cools.isEmpty(basDevp)){
//            throw new CoolException("参数:站点号 devNo不存在");
//        }
//        if (Cools.isEmpty(basDevp.getGrossWt())){
//            throw new CoolException("参数:站点号 "+param.getSourceStaNo()+"重量信息不存在");
//        }
//
//        Date now = new Date();
//        // 生成入库通知档
//        Mat mat = matService.selectByMatnr("6-6405H");
//        if (Cools.isEmpty(mat)) {
//            throw new CoolException("6-6405H商品档案不存在");
//        }
//        WaitPakin waitPakin = new WaitPakin();
//        waitPakin.sync(mat);
//        waitPakin.setBatch("");
////        waitPakin.setWeight(basDevp.getGrossWt());
//        waitPakin.setWeight(basDevp.getGrossWt());
//        waitPakin.setZpallet(param.getBarcode());   // 托盘码
//        waitPakin.setIoStatus("N");     // 入出状态
//        waitPakin.setAnfme(1.0);  // 数量
//        waitPakin.setStatus("Y");    // 状态
//        waitPakin.setAppeUser(7777L);
//        waitPakin.setAppeTime(now);
//        waitPakin.setModiUser(7777L);
//        waitPakin.setModiTime(now);
//        if (!waitPakinService.insert(waitPakin)) {
//            throw new CoolException("保存入库通知档失败");
//        }
//        return R.ok();
//    }
    @PostMapping("/pakin/yx/loc/v464")
    @ResponseBody
    public synchronized R getLocNo464(@RequestBody SearchLocParam param) {
        if (Cools.isEmpty(param.getBarcode(), param.getSourceStaNo())) {
            throw new CoolException(BaseRes.PARAM);
        }
        // 判断是否有相同条码的数据
        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
            throw new CoolException(param.getBarcode() + "数据正在进行入库");
        }
        if(param.getBarcode().length()!=8){
            throw new CoolException("条码长度不是8位===>>" + param.getBarcode());
        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode()));
        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
            throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + param.getBarcode());
        }
        BasDevp basDevp = basDevpService.selectById(param.getSourceStaNo());
        if (Cools.isEmpty(basDevp)){
            throw new CoolException("参数:站点号 devNo不存在");
        }
        if (Cools.isEmpty(basDevp.getGrossWt())){
            throw new CoolException("参数:站点号 "+param.getSourceStaNo()+"重量信息不存在");
        }
        Date now = new Date();
        // 生成入库通知档
        Mat mat = matService.selectByMatnr(basDevp.getDecDesc());
        if (Cools.isEmpty(mat)) {
            throw new CoolException(basDevp.getDecDesc()+"商品档案不存在");
        }
        WaitPakin waitPakin = new WaitPakin();
        waitPakin.sync(mat);
        waitPakin.setBatch(DateUtils.convert(new Date(), DateUtils.yyyyMMdd));
//        waitPakin.setWeight(basDevp.getGrossWt());
        waitPakin.setWeight(basDevp.getGrossWt());
        waitPakin.setZpallet(param.getBarcode());   // 托盘码
        waitPakin.setIoStatus("N");     // 入出状态
        waitPakin.setAnfme(1.0);  // 数量
        waitPakin.setStatus("Y");    // 状态
        waitPakin.setAppeUser(8888L);
        waitPakin.setAppeTime(now);
        waitPakin.setModiUser(8888L);
        waitPakin.setModiTime(now);
        if (!waitPakinService.insert(waitPakin)) {
            throw new CoolException("保存入库通知档失败");
        }
        return R.ok();
    }
    /*
@@ -485,9 +599,10 @@
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        List<KeyValueVo> list = waitPakins.stream().map(item-> new KeyValueVo(item.getMatnr(), item.getBatch())).distinct().collect(Collectors.toList());
//        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
        StartupDto dto = commonService.getLocNo(1, 1, devpNo, null,null,null, locTypeDto);
        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
//        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto);
        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0),null,null, locTypeDto);
        int workNo = dto.getWorkNo();
        Date now = new Date();
        // 生成工作档