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 | 41 ++++++++++++++++++++++++++++++++++++-----
1 files changed, 36 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 935cb78..e87a975 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -219,6 +219,12 @@
if (purchaseLedger.getId() == null) {
purchaseLedgerMapper.insert(purchaseLedger);
} else {
+ PurchaseLedger dbLedger = purchaseLedgerMapper.selectById(purchaseLedger.getId());
+ if (dbLedger != null
+ && Objects.equals(dbLedger.getApprovalStatus(), 3)
+ && Objects.equals(dbLedger.getStockStatus(), 2)) {
+ throw new ServiceException("璇ラ噰璐鍗曞凡瀹℃壒閫氳繃涓斿凡鍏ㄩ儴鍏ュ簱锛屼笉鑳藉啀娆″彂璧峰叆搴撳鎵癸紱濡傞渶閲嶆彁璇峰厛璧板鎵逛笉閫氳繃娴佺▼");
+ }
// 鍒犻櫎閲囪喘瀹℃牳锛岄噸鏂版彁浜�
ApproveProcess one = approveProcessService.getOne(new LambdaQueryWrapper<ApproveProcess>()
.eq(ApproveProcess::getApproveType, 5)
@@ -266,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) {
@@ -856,6 +865,11 @@
}
public void addApproveByPurchase(LoginUser loginUser, PurchaseLedger purchaseLedger) throws Exception {
+ if (purchaseLedger != null
+ && Objects.equals(purchaseLedger.getApprovalStatus(), 3)
+ && Objects.equals(purchaseLedger.getStockStatus(), 2)) {
+ throw new ServiceException("璇ラ噰璐鍗曞叆搴撴暟閲忓凡婊¤冻锛屼笉鑳介噸澶嶅彂璧峰鎵�");
+ }
ApproveProcessVO approveProcessVO = new ApproveProcessVO();
approveProcessVO.setApproveType(5);
approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
@@ -920,7 +934,7 @@
}
// 闇�瑕佽川妫�锛氭壂鐮佸叆搴撹繘鍏ュ師鏉愭枡妫�楠岋紝涓嶇洿鎺ュ叆鍚堟牸搴撳瓨
if (Boolean.TRUE.equals(dbProduct.getIsChecked())) {
- // 瀛樺湪鏈�氳繃/鏈鐞嗙殑鍘熸潗鏂欐楠屽崟锛屽垯绂佹缁х画鎵爜鍏ュ簱
+ // 瀛樺湪鏈彁浜ゆ垨鍏ュ簱瀹℃壒涓殑鍘熸潗鏂欐楠屽崟锛屽垯绂佹缁х画鎵爜鍏ュ簱
Long pendingInspectCount = qualityInspectMapper.selectCount(new LambdaQueryWrapper<QualityInspect>()
.eq(QualityInspect::getInspectType, 0)
.eq(QualityInspect::getPurchaseLedgerId, purchaseId)
@@ -928,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("鍏ュ簱澶辫触,瀛樺湪鏈�氳繃鎴栨湭澶勭悊鐨勮川妫�璁板綍,璇峰厛澶勭悊鍚庡啀鎵爜鍏ュ簱");
}
@@ -945,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) {
@@ -1321,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