From 7828b982da116070fe11526733609ecce23631b6 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 15 五月 2026 19:55:28 +0800
Subject: [PATCH] feat: 设备维修新增报修人、验收人、维修人
---
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 337e972..e87a975 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -272,6 +272,9 @@
qualityInspect.setProductModelId(saleProduct.getProductModelId());
qualityInspect.setUnit(saleProduct.getUnit());
qualityInspect.setQuantity(saleProduct.getQuantity());
+ qualityInspect.setQualifiedQuantity(saleProduct.getQuantity());
+ qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO);
+ qualityInspect.setPassRate(BigDecimal.valueOf(100).setScale(2, RoundingMode.HALF_UP));
qualityInspectMapper.insert(qualityInspect);
List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0, null);
if (qualityTestStandard.size() > 0) {
@@ -931,7 +934,7 @@
}
// 闇�瑕佽川妫�锛氭壂鐮佸叆搴撹繘鍏ュ師鏉愭枡妫�楠岋紝涓嶇洿鎺ュ叆鍚堟牸搴撳瓨
if (Boolean.TRUE.equals(dbProduct.getIsChecked())) {
- // 瀛樺湪鏈�氳繃/鏈鐞嗙殑鍘熸潗鏂欐楠屽崟锛屽垯绂佹缁х画鎵爜鍏ュ簱
+ // 瀛樺湪鏈彁浜ゆ垨鍏ュ簱瀹℃壒涓殑鍘熸潗鏂欐楠屽崟锛屽垯绂佹缁х画鎵爜鍏ュ簱
Long pendingInspectCount = qualityInspectMapper.selectCount(new LambdaQueryWrapper<QualityInspect>()
.eq(QualityInspect::getInspectType, 0)
.eq(QualityInspect::getPurchaseLedgerId, purchaseId)
@@ -939,9 +942,8 @@
.and(w -> w
.isNull(QualityInspect::getInspectState)
.or(q0 -> q0.eq(QualityInspect::getInspectState, 0))
- // inspect_state=1 涔熻涓衡�滄湭澶勭悊鈥�
.or(q1 -> q1.eq(QualityInspect::getInspectState, 1)
- .isNull(QualityInspect::getCheckResult))));
+ .in(QualityInspect::getApprovalStatus, 1, 2))));
if (pendingInspectCount != null && pendingInspectCount > 0) {
throw new ServiceException("鍏ュ簱澶辫触,瀛樺湪鏈�氳繃鎴栨湭澶勭悊鐨勮川妫�璁板綍,璇峰厛澶勭悊鍚庡啀鎵爜鍏ュ簱");
}
@@ -956,9 +958,11 @@
.or(q1 -> q1.eq(QualityInspect::getInspectState, 1)
.and(r -> r.isNull(QualityInspect::getCheckResult)
.or()
- .eq(QualityInspect::getCheckResult, "鍚堟牸")))))
+ .eq(QualityInspect::getCheckResult, "鍚堟牸")
+ .or()
+ .eq(QualityInspect::getCheckResult, "閮ㄥ垎鍚堟牸")))))
.stream()
- .map(QualityInspect::getQuantity)
+ .map(this::resolveInspectCountedQuantity)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
if (inspectQty.add(inboundThisLine).compareTo(orderQty) > 0) {
@@ -1332,4 +1336,20 @@
}
return sb.toString();
}
+
+ private BigDecimal resolveInspectCountedQuantity(QualityInspect inspect) {
+ if (inspect == null) {
+ return BigDecimal.ZERO;
+ }
+ if (inspect.getInspectState() == null || inspect.getInspectState() == 0) {
+ return inspect.getQuantity() == null ? BigDecimal.ZERO : inspect.getQuantity();
+ }
+ if (inspect.getQualifiedQuantity() != null) {
+ return inspect.getQualifiedQuantity();
+ }
+ if ("鍚堟牸".equals(inspect.getCheckResult()) || "閮ㄥ垎鍚堟牸".equals(inspect.getCheckResult())) {
+ return inspect.getQuantity() == null ? BigDecimal.ZERO : inspect.getQuantity();
+ }
+ return BigDecimal.ZERO;
+ }
}
--
Gitblit v1.9.3