自动化立体仓库 - WMS系统
#
pang.jiabao
2024-08-18 41ba1903cb7a2b6e26e5ba43033c1266c422c201
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1167,37 +1167,43 @@
    @Override
    @Transactional
    public void pakoutFhqr(Integer workNo, Integer check) {
    public R pakoutFhqr(PdckqrParam param) {
         // 获取工作档
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
        if (wrkMast == null) {
            throw new CoolException("工作档不存在:" + workNo);
            throw new CoolException("工作档不存在:" + param.getBarcode());
        }
        if (wrkMast.getIoType() != 101 || wrkMast.getWrkSts() != 20) {
            throw new CoolException(wrkMast.getWrkNo() + ",工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配");
        }
        if (wrkMast.getWrkSts() != 20) {
            throw new CoolException("工作档当前状态异常:" + workNo + ",状态:" + wrkMast.getWrkSts());
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        List<PdckqrParam.Material> materials = param.getMaterials();
        if (check == 1) {
            // 复核确认,更新状态为15出库完成更新
            wrkMast.setWrkSts(14L);
            wrkMastService.updateById(wrkMast);
        boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials);
        if (isFullyCancelled) {
                // 复核确认,更新状态为15出库完成更新
                wrkMast.setWrkSts(14L);
                wrkMastService.updateById(wrkMast);
        } else {
            throw new CoolException("出口复核失败");
        }
        return R.ok("出口复核成功");
    }
    @Override
    @Transactional
    public R pdckqr(PdckqrParam param) {
        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
        if (wrkMast == null) {
            throw new CoolException("工作档不存在:" + param.getWorkNo());
            throw new CoolException("工作档不存在:" + param.getBarcode());
        }
        if (wrkMast.getIoType() != 107 || wrkMast.getWrkSts() != 2) {
            throw new CoolException(param.getWorkNo() + "工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配");
            throw new CoolException(wrkMast.getWrkNo() + ",工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(param.getWorkNo());
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        List<PdckqrParam.Material> materials = param.getMaterials();
        boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials);
@@ -1238,7 +1244,7 @@
            }
            // 推送给gwcs执行命令
            openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo());
            openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo(),wrkMast.getBarcode());
            return R.ok("盘点确认成功");
@@ -1285,7 +1291,7 @@
        locTypeDto.setLocType1((short)1);
        // 根据源站点寻找库位
        StartupDto dto = commonService.getLocNo(1, sourceStaNo, locTypeDto);
        StartupDto dto = commonService.getLocNo(1, sourceStaNo, locTypeDto,0);
        int workNo = dto.getWorkNo();
        Date now = new Date();
@@ -1406,7 +1412,7 @@
        }
        // 推送GWCS目标消息
        openServiceImpl.pushStaNoToGwcs(sourceStaNo,dto.getStaNo(),dto.getWorkNo());
        openServiceImpl.pushStaNoToGwcs(sourceStaNo,dto.getStaNo(),dto.getWorkNo(),barcode);
        return R.ok("入库启动成功");
    }
@@ -1480,7 +1486,7 @@
            for (WrkDetl p1 : list1) {
                boolean cancelled = false;
                for (PdckqrParam.Material p2 : remainingList2) {
                    if (p1.getBatch().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 卷号和箱号相同
                    if (p1.getUnit().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 卷号和箱号相同
                        remainingList2.remove(p2);
                        cancelled = true;
                        break;