自动化立体仓库 - 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);
@@ -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;