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