diff --git a/src/main/java/com/xujie/modules/inspection/service/impl/InspectionRequestServiceImpl.java b/src/main/java/com/xujie/modules/inspection/service/impl/InspectionRequestServiceImpl.java index 73b86a5..c6ecaeb 100644 --- a/src/main/java/com/xujie/modules/inspection/service/impl/InspectionRequestServiceImpl.java +++ b/src/main/java/com/xujie/modules/inspection/service/impl/InspectionRequestServiceImpl.java @@ -74,60 +74,40 @@ public class InspectionRequestServiceImpl extends ServiceImpl subList = inspectionRequestDetailSubMapper.selectByRequestNo(site, requestNo); - - if (subList == null || subList.isEmpty()) { - log.info("subList 为空,返回 false"); - return false; + + List subList = + inspectionRequestDetailSubMapper.selectByRequestNo(site, requestNo); + + if (subList == null || subList.isEmpty()) { + return false; + } + + for (InspectionRequestDetailSub sub : subList) { + + Map poInfo = + poDetailMapper.getPoDetailInspectInfo( + site, + sub.getPoNo(), + sub.getPoItemNo()); + + if (poInfo == null) { + continue; } - - log.info("subList 大小: {}", subList.size()); - - // 2. 逐条检查:比较 sub.qty 与 waitInspectQty - for (InspectionRequestDetailSub sub : subList) { - log.info("检查 sub: poNo={}, itemNo={}, qty={}", sub.getPoNo(), sub.getPoItemNo(), sub.getQty()); - - // 查询 PODetail 表中的信息 - java.util.Map poInfo = poDetailMapper.getPoDetailInspectInfo( - site, sub.getPoNo(), sub.getPoItemNo()); - - if (poInfo != null) { - log.info("PODetail 信息: {}", poInfo); - - // 获取未验货数量(注意:MyBatis返回的Map键名是下划线命名) - BigDecimal remainQty = new BigDecimal(poInfo.get("remain_qty").toString()); - BigDecimal subQty = sub.getQty(); - - log.info("remainQty={}, subQty={}", remainQty, subQty); - - // 计算原始的 waitInspectQty = 当前 remainQty + sub.qty - BigDecimal originalWaitInspectQty = remainQty.add(subQty); - - log.info("originalWaitInspectQty={}", originalWaitInspectQty); - - // 如果 sub.qty != 原始 waitInspectQty,说明有修改 - if (subQty.compareTo(originalWaitInspectQty) != 0) { - log.info("检测到数量修改: requestNo={}, poNo={}, itemNo={}, subQty={}, originalWaitInspectQty={}", - requestNo, sub.getPoNo(), sub.getPoItemNo(), subQty, originalWaitInspectQty); - return true; - } else { - log.info("数量未修改: subQty == originalWaitInspectQty"); - } - } else { - log.warn("PODetail 信息查询结果为空"); - } + + // PO总数量 + BigDecimal poQty = + new BigDecimal(poInfo.get("qty").toString()); + + // 本次申请数量 + BigDecimal subQty = sub.getQty(); + + // 不等于PO总数量 => 部分验货 => 标红 + if (subQty.compareTo(poQty) != 0) { + return true; } - - log.info("所有 sub 都未检测到修改,返回 false"); - return false; - } catch (Exception e) { - log.error("检查验货数量修改状态失败: site={}, requestNo={}", site, requestNo, e); - return false; } + + return false; }