From c7e7ed6d05cd1586b37396bcabc9f3f7e6ec589f Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期三, 21 十月 2026 16:08:51 +0800
Subject: [PATCH] feat(销售台账/产品维护): 图号必填唯一、合同号唯一、明细产品编码与导入物料编码
---
src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
index dd0e7ab..c2f5ab5 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -58,9 +58,16 @@
public int addOrEditProductModel(ProductModelDto productModelDto) {
String model = StringUtils.trim(productModelDto.getModel());
String productCode = StringUtils.trim(productModelDto.getProductCode());
+ String drawingNo = StringUtils.trim(productModelDto.getDrawingNo());
productModelDto.setModel(model);
productModelDto.setProductCode(productCode);
+ productModelDto.setDrawingNo(drawingNo);
+ // 鍥惧彿蹇呭~
+ if (StringUtils.isEmpty(drawingNo)) {
+ throw new ServiceException("鍥惧彿涓嶈兘涓虹┖");
+ }
checkModelAndProductCodeUnique(model, productCode, productModelDto.getId());
+ checkDrawingNoUnique(drawingNo, productModelDto.getId());
if (productModelDto.getId() == null) {
ProductModel productModel = new ProductModel();
@@ -68,6 +75,23 @@
return productModelMapper.insert(productModel);
} else {
return productModelMapper.updateById(productModelDto);
+ }
+ }
+
+ /**
+ * 鍥惧彿鍞竴鏍¢獙锛堝叏灞�锛岀紪杈戞椂鎺掗櫎鑷韩锛�
+ */
+ private void checkDrawingNoUnique(String drawingNo, Long currentId) {
+ if (StringUtils.isEmpty(drawingNo)) {
+ return;
+ }
+ LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(ProductModel::getDrawingNo, drawingNo)
+ .ne(currentId != null, ProductModel::getId, currentId)
+ .last("limit 1");
+ ProductModel duplicateProductModel = productModelMapper.selectOne(queryWrapper);
+ if (duplicateProductModel != null) {
+ throw new ServiceException("鍥惧彿" + drawingNo + "宸茬粡瀛樺湪");
}
}
@@ -200,10 +224,17 @@
code = generateUniqueCode(generatedCodes);
}
+ // 鍥惧彿锛氬鍏ユ椂鍙�夛紝濉啓鍒欐牎楠屽敮涓�
+ String drawingNo = trimToNull(row.getDrawingNo());
+ if (drawingNo != null) {
+ checkDrawingNoUnique(drawingNo, null);
+ }
+
ProductModel productModel = new ProductModel();
productModel.setProductId(leafId);
productModel.setProductCode(code);
productModel.setModel(model);
+ productModel.setDrawingNo(drawingNo);
productModel.setUnit(trimToNull(row.getUnit()));
productModelMapper.insert(productModel);
successCount++;
--
Gitblit v1.9.3