From 85f9e4465f7cf545f3bd2cdc0661a9ce938751dc Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 18 九月 2026 15:56:39 +0800
Subject: [PATCH] fix: 质检是否入库
---
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 70 +++++++++++++++++++++++-----------
src/main/java/com/ruoyi/quality/dto/QualityInspectDto.java | 6 +++
2 files changed, 53 insertions(+), 23 deletions(-)
diff --git a/src/main/java/com/ruoyi/quality/dto/QualityInspectDto.java b/src/main/java/com/ruoyi/quality/dto/QualityInspectDto.java
index 0a51a19..0b74cd5 100644
--- a/src/main/java/com/ruoyi/quality/dto/QualityInspectDto.java
+++ b/src/main/java/com/ruoyi/quality/dto/QualityInspectDto.java
@@ -29,4 +29,10 @@
private String workOrderNo;
private String purchaseContractNo;
+ /**
+ * 缂栬緫鏃舵槸鍚﹀叆搴�(0:鍚�;1:鏄�)
+ */
+ @TableField(exist = false)
+ private Integer isStockIn;
+
}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 8ea03f0..8a4fe8c 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -113,28 +113,10 @@
qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO);
}
- // 鍚堟牸鐩存帴鍏ュ簱
- if(qualityInspect.getQualifiedQuantity().compareTo(BigDecimal.ZERO) > 0){
- //浠呮坊鍔犲叆搴撹褰�
- StockInventoryDto stockInventoryDto = new StockInventoryDto();
- //濡傛灉鏄噰璐川妫�鍚堟牸鍏ュ簱閫夌敤CUSTOMIZATION_UNSTOCK_OUT,鍏朵綑鍚堟牸鍏ュ簱閫夌敤QUALITYINSPECT_STOCK_IN
- stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode()));
- if (ObjectUtils.isNotEmpty(qualityInspect.getPurchaseLedgerId())){
- stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_OUT.getCode()));
- }
- stockInventoryDto.setRecordId(qualityInspect.getId());
- stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
- stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity());
- stockInventoryDto.setBatchNo(resolveProductionBatchNo(
- qualityInspect.getProductMainId(),
- qualityInspect.getId(),
- qualityInspect.getProductModelId()));
- stockInventoryService.addStockInRecordOnly(stockInventoryDto);
- //StockInRecord stockInRecord = stockInRecordService.getOne(Wrappers.<StockInRecord>lambdaQuery()
- // .eq(StockInRecord::getRecordId, qualityInspect.getId())
- // .eq(StockInRecord::getRecordType, stockInventoryDto.getRecordType())
- //);
- //stockInRecordService.batchApprove(Collections.singletonList(stockInRecord.getId()),1);
+ // 鍚堟牸鐩存帴鍏ュ簱锛堝凡鐢熸垚杩囧叆搴撹褰曞垯璺宠繃锛岄伩鍏嶇紪杈戝叆搴撳悗鎻愪氦瀵艰嚧閲嶅鍏ュ簱锛�
+ if(qualityInspect.getQualifiedQuantity().compareTo(BigDecimal.ZERO) > 0
+ && !hasStockInRecord(qualityInspect)){
+ stockInQualified(qualityInspect);
}
// 涓嶅悎鏍煎鐞�
if(qualityInspect.getUnqualifiedQuantity().compareTo(BigDecimal.ZERO) > 0){
@@ -189,6 +171,40 @@
.last("limit 1"),
false);
return inspectRecord == null ? null : inspectRecord.getBatchNo();
+ }
+
+ /**
+ * 鍚堟牸鏁伴噺鐢熸垚鍏ュ簱璁板綍涓庡簱瀛�
+ */
+ private void stockInQualified(QualityInspect qualityInspect) {
+ //浠呮坊鍔犲叆搴撹褰�
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordType(resolveStockInRecordType(qualityInspect));
+ stockInventoryDto.setRecordId(qualityInspect.getId());
+ stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
+ stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity());
+ stockInventoryDto.setBatchNo(resolveProductionBatchNo(
+ qualityInspect.getProductMainId(),
+ qualityInspect.getId(),
+ qualityInspect.getProductModelId()));
+ stockInventoryService.addStockInRecordOnly(stockInventoryDto);
+ }
+
+ private String resolveStockInRecordType(QualityInspect qualityInspect) {
+ if (ObjectUtils.isNotEmpty(qualityInspect.getPurchaseLedgerId())) {
+ return StockInQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_OUT.getCode();
+ }
+ return StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode();
+ }
+
+ /**
+ * 鍒ゆ柇璇ユ楠屽崟鏄惁宸茬敓鎴愯繃鍏ュ簱璁板綍
+ */
+ private boolean hasStockInRecord(QualityInspect qualityInspect) {
+ return stockInRecordService.count(Wrappers.<StockInRecord>lambdaQuery()
+ .eq(StockInRecord::getRecordId, qualityInspect.getId())
+ .eq(StockInRecord::getProductModelId, qualityInspect.getProductModelId())
+ .eq(StockInRecord::getRecordType, resolveStockInRecordType(qualityInspect))) > 0;
}
/*鐢熸垚妫�楠屾姤鍛�*/
@@ -254,7 +270,15 @@
}
QualityInspect qualityInspect = new QualityInspect();
BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
- return qualityInspectMapper.updateById(qualityInspect);
+ int result = qualityInspectMapper.updateById(qualityInspect);
+ // 缂栬緫鏃堕�夋嫨"鍏ュ簱"鍒欑敓鎴愬叆搴撹褰曚笌搴撳瓨锛岄�夋嫨"涓嶅叆搴�"鍒欏彧淇濆瓨璐ㄦ璁板綍
+ if (Integer.valueOf(1).equals(qualityInspectDto.getIsStockIn())) {
+ if (hasStockInRecord(qualityInspect)) {
+ throw new ServiceException("璇ユ楠屽崟宸茬敓鎴愯繃鍏ュ簱璁板綍锛岃鍕块噸澶嶅叆搴�");
+ }
+ stockInQualified(qualityInspect);
+ }
+ return result;
}
@Override
--
Gitblit v1.9.3