From b95f460e35a59aa920e27f0f7e29e0fdf0da1c7c Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 01 四月 2025 14:25:01 +0800
Subject: [PATCH] 1。检验对象导入优化 2.可靠性计划产品选择
---
basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java | 2 ++
basic-server/src/main/java/com/ruoyi/basic/service/CapacityScopeService.java | 3 +++
basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java | 30 ++++++++++++++++++------------
basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java | 9 +++++++++
basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml | 7 +++++++
basic-server/src/main/java/com/ruoyi/basic/dto/StructureTestObjectDto.java | 2 ++
6 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
index 97ac1cf..113195d 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
@@ -143,6 +143,15 @@
return Result.success(capacityScopeService.getItemTree());
}
+ /**
+ * 鎴愬搧/鍘熻緟鏉�
+ */
+ @ApiOperation(value = "鑾峰彇妫�楠屽璞℃爲")
+ @GetMapping("/getItemTreeProduct")
+ public Result getItemTreeProduct(StructureTestObjectDto structureTestObjectDto) {
+ return Result.success(capacityScopeService.getItemTreeProduct(structureTestObjectDto));
+ }
+
@PostMapping("/importEquipData")
public Result importData(@RequestParam("file") MultipartFile file) {
// 璋冪敤瀵煎叆宸ュ叿
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/StructureTestObjectDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/StructureTestObjectDto.java
index 2aa9a4f..9734ab9 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/StructureTestObjectDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/StructureTestObjectDto.java
@@ -14,5 +14,7 @@
private String workShopName;
+ private String objectType;
+
private List<BasicTreeDto> children;
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
index b7e7074..e95ac18 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
@@ -29,5 +29,7 @@
int removeNoSample(@Param("sample") String sample);
List<StructureItemParameter> selectItemParameterBySample(@Param("sample") String sample);
+
+ List<TestItemDto> getItemTreeProduct(@Param("objectType") String objectType);
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CapacityScopeService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CapacityScopeService.java
index c34de55..ef27aea 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/CapacityScopeService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/CapacityScopeService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.dto.PageTestObjectDto;
+import com.ruoyi.basic.dto.StructureTestObjectDto;
import com.ruoyi.basic.dto.TestItemDto;
import com.ruoyi.basic.excel.StructureTestObjectData;
@@ -45,5 +46,7 @@
List<TestItemDto> getItemTree();
void importPartExcel(List<StructureTestObjectData> list);
+
+ List<TestItemDto> getItemTreeProduct(StructureTestObjectDto structureTestObjectDto);
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
index d59f70f..4f790a1 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.StructureTestObjectDto;
import com.ruoyi.basic.excel.StructureTestObjectData;
import com.ruoyi.basic.service.*;
import com.ruoyi.common.exception.base.BaseException;
@@ -189,25 +190,25 @@
public List<TestItemDto> getItemTree() {
return structureItemParameterMapper.getItemTree();
}
+
+ @Override
+ public List<TestItemDto> getItemTreeProduct(StructureTestObjectDto structureTestObjectDto) {
+ return structureItemParameterMapper.getItemTreeProduct(structureTestObjectDto.getObjectType());
+ }
@Transactional(rollbackFor = Exception.class)
@Override
public void importPartExcel(List<StructureTestObjectData> list) {
- // 闃舵1: 鏁版嵁棰勫鐞�
- // 鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑鏍囨湰淇℃伅
- Set<String> specimenKeys = list.stream()
- .map(i -> i.getSpecimenName() + "|" + i.getSpecimenNameEn())
- .collect(Collectors.toSet());
-
// 闃舵2: 鎵归噺鏌ヨ鐜版湁缁撴瀯娴嬭瘯瀵硅薄
Map<String, StructureTestObject> existStructureTestObjects = structureTestObjectMapper.selectList(
Wrappers.<StructureTestObject>lambdaQuery()
.in(StructureTestObject::getSpecimenName, list.stream().map(StructureTestObjectData::getSpecimenName).collect(Collectors.toSet()))
.in(StructureTestObject::getSpecimenNameEn, list.stream().map(StructureTestObjectData::getSpecimenNameEn).collect(Collectors.toSet()))
+ .in(StructureTestObject::getObjectType, list.stream().map(StructureTestObjectData::getObjectType).collect(Collectors.toSet()))
).stream().collect(Collectors.toMap(
- obj -> obj.getSpecimenName() + "|" + obj.getSpecimenNameEn(),
+ obj -> generateStructureKey(obj.getSpecimenName(), obj.getSpecimenNameEn(), obj.getObjectType()), // 缁熶竴閿敓鎴�
Function.identity(),
- (existing, replacement) -> existing // 澶勭悊閲嶅閿�
+ (existing, replacement) -> existing
));
// 闃舵3: 棰勫鐞嗚溅闂翠俊鎭�
@@ -234,7 +235,7 @@
for (StructureTestObjectData i : list) {
// 澶勭悊缁撴瀯娴嬭瘯瀵硅薄锛堥�昏緫涓嶅彉锛�
- String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn();
+ String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn() + "|" + i.getObjectType();
StructureTestObject structureTestObject = existStructureTestObjects.get(specimenKey);
if (structureTestObject == null) {
@@ -270,6 +271,11 @@
obj.setLaboratoryId(9);
}
+ // 缁熶竴閿敓鎴愭柟娉�
+ private String generateStructureKey(String name, String nameEn, String objectType) {
+ return name + "|" + nameEn + "|" + objectType;
+ }
+
// 澶勭悊浜у搧鏁版嵁
private void processProductData(StructureTestObjectData data,
Integer objectId,
@@ -277,7 +283,7 @@
List<Product> insertList,
List<Product> updateList) {
// 鏋勫缓浜у搧鍞竴鏍囪瘑
- String productKey = data.getName() + "|" + data.getNameEn();
+ String productKey = data.getName() + "|" + data.getNameEn() + "|" + data.getObjectType();
// 妫�鏌ュ唴瀛樹腑鏄惁宸插鐞嗚繃璇ヤ骇鍝�
Optional<Product> existingProduct = findProductInBatchLists(productKey, insertList, updateList);
@@ -364,7 +370,7 @@
List<StructureTestObject> insertedObjects) {
insertedObjects.forEach(obj -> {
- String key = obj.getSpecimenName() + "|" + obj.getSpecimenNameEn();
+ String key = obj.getSpecimenName() + "|" + obj.getSpecimenNameEn()+ "|" + obj.getObjectType();
existStructureTestObjects.get(key).setId(obj.getId()); // 鏇存柊缂撳瓨涓殑ID
});
}
@@ -378,7 +384,7 @@
// 闃舵5鍘熸湁浜у搧澶勭悊閫昏緫杩佺Щ鑷虫
pendingProducts.forEach(i -> {
- String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn();
+ String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn()+ "|" + i.getObjectType();
StructureTestObject sto = structureTestObjectCache.get(specimenKey);
processProductData(
diff --git a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
index 117b826..c8c4ea8 100644
--- a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
+++ b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
@@ -164,4 +164,11 @@
)
order by id asc
</select>
+
+ <select id="getItemTreeProduct" resultMap="itemDto">
+ select sto.id sId, sto.specimen_name sName, p.id pId, p.name pName
+ from structure_test_object sto
+ left join product p on p.object_id = sto.id
+ WHERE sto.object_type = #{objectType}
+ </select>
</mapper>
--
Gitblit v1.9.3