From 578bfcb3f58c5458d2c60fe37c3e56ebcda98e18 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 05 三月 2025 15:15:03 +0800
Subject: [PATCH] 标准功能搬迁

---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 172 insertions(+), 0 deletions(-)

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
new file mode 100644
index 0000000..6bc9025
--- /dev/null
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
@@ -0,0 +1,172 @@
+package com.ruoyi.basic.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+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.PageTestObjectDto;
+import com.ruoyi.basic.dto.TestItemDto;
+import com.ruoyi.basic.mapper.*;
+import com.ruoyi.basic.pojo.*;
+import com.ruoyi.basic.service.CapacityScopeService;
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.basic.service.StandardProductListService;
+import com.ruoyi.basic.service.StructureItemParameterService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 妫�楠岄」鐩弬鏁�(StructureItemParameter)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-02-26 16:21:17
+ */
+@Service
+@AllArgsConstructor
+public class CapacityScopeServiceImpl extends ServiceImpl<StructureItemParameterMapper, StructureItemParameter> implements CapacityScopeService {
+
+    private LaboratoryMapper laboratoryMapper;
+
+    private StructureItemParameterMapper structureItemParameterMapper;
+
+    private StructureTestObjectMapper structureTestObjectMapper;
+
+    private ProductMapper productMapper;
+
+    private StandardProductListService standardProductListService;
+
+    private StandardTreeMapper standardTreeMapper;
+
+    private StructureItemParameterService structureItemParameterService;
+
+    @Override
+    public IPage<StructureItemParameter> selectItemParameterList(Page page, StructureItemParameter itemParameter) {
+       return structureItemParameterMapper.selectItemParameterList(page, QueryWrappers.queryWrappers(itemParameter));
+    }
+
+    @Override
+    public int addItemParameter(StructureItemParameter itemParameter) {
+        if (itemParameter.getBsm().equals("")||itemParameter.getBsm()==null){
+            itemParameter.setBsm("0");
+        }
+        int insert = structureItemParameterMapper.insert(itemParameter);
+        return insert;
+    }
+
+    @Override
+    public int delItemParameter(Integer id) {
+        return structureItemParameterMapper.deleteById(id);
+    }
+
+    @Override
+    public int upItemParameter(StructureItemParameter itemParameter) {
+        return structureItemParameterMapper.updateById(itemParameter);
+    }
+
+    @Override
+    public IPage<PageTestObjectDto> selectTestObjectList(Page page, PageTestObjectDto pageTestObjectDto) {
+        return structureTestObjectMapper.selectTestObjectList(page, QueryWrappers.queryWrappers(pageTestObjectDto));
+    }
+
+    @Override
+    public int addTestObject(StructureTestObject testObject) {
+        Long count = structureTestObjectMapper.selectCount(Wrappers.<StructureTestObject>lambdaQuery().eq(StructureTestObject::getSpecimenName, testObject.getSpecimenName()));
+        if(count.compareTo(0L) > 0){
+            throw new BaseException("妫�楠屽璞′笉鑳介噸澶�");
+        }
+
+        return structureTestObjectMapper.insert(testObject);
+    }
+
+    @Override
+    public int delTestObject(Integer id) {
+        // 鍒犻櫎浜у搧缁存姢鐨勯浂浠剁粦瀹�
+        List<Product> products = productMapper.selectList(Wrappers.<Product>lambdaQuery()
+                .eq(Product::getObjectId, id));
+        List<Integer> productIds = products.stream().map(Product::getId).collect(Collectors.toList());
+        // 鍒犻櫎浜у搧缁存姢
+        productMapper.delete(Wrappers.<Product>lambdaQuery()
+                .in(Product::getId, productIds));
+
+        return structureTestObjectMapper.deleteById(id);
+    }
+
+    @Override
+    public int upTestObject(StructureTestObject testObject) {
+        // 鏌ヨ鏃х殑妫�楠屽璞�
+        StructureTestObject oldTestObject = structureTestObjectMapper.selectById(testObject.getId());
+
+        if (!oldTestObject.getSpecimenName().equals(testObject.getSpecimenName())) {
+            // 鏌ヨ鎵�鏈夊璞′竴鏍风殑妫�楠岄」鐩�
+            List<StandardProductList> standardProductLists = standardProductListService.list(Wrappers.<StandardProductList>lambdaUpdate()
+                    .eq(StandardProductList::getSampleType, oldTestObject.getSpecimenName()));
+            if (CollectionUtils.isNotEmpty(standardProductLists)){
+                for (StandardProductList standardProductList : standardProductLists) {
+                    // 淇敼鎵�鏈夌殑瀵硅薄鍚嶇О鍜屾暟鍨嬬粨鏋�
+                    standardProductList.setSampleType(testObject.getSpecimenName());
+                    // 闇�瑕佹埅鍙栫涓夌骇, 閬垮厤涓夊洓绾у悕绉颁竴鏍蜂慨鏀归敊璇�
+                    String[] trees = standardProductList.getTree().split(" - ");
+                    trees[2] = testObject.getSpecimenName();
+                    List<String> list = CollUtil.newArrayList(trees);
+                    String newName = CollUtil.join(list, " - ");
+                    standardProductList.setTree(newName);
+                }
+                standardProductListService.updateBatchById(standardProductLists);
+            }
+            // 淇敼妫�楠岄」鐩弬鏁扮殑妫�楠屽璞�
+            // 鎷兼帴 ["object", 鏌ヨ妫�楠岄」鐩弬鏁颁慨鏀圭粦瀹氱殑妫�楠屽璞�
+            String format = "[\"{}\",";
+            String sampleOld = StrUtil.format(format, oldTestObject.getSpecimenName());
+            List<StructureItemParameter> itemParameterList = structureItemParameterService.list(Wrappers.<StructureItemParameter>lambdaQuery()
+                    .like(StructureItemParameter::getSample, sampleOld));
+            if (CollectionUtils.isNotEmpty(itemParameterList)) {
+                for (StructureItemParameter structureItemParameter : itemParameterList) {
+                    // 淇敼缁戝畾鐨勬牱鍝佸悕绉�
+                    String sampleNew = StrUtil.format(format, testObject.getSpecimenName());
+                    String sampleUp = structureItemParameter.getSample().replace(sampleOld, sampleNew);
+                    structureItemParameter.setSample(sampleUp);
+                }
+                structureItemParameterService.updateBatchById(itemParameterList);
+            }
+
+            // 淇敼鏍戠殑鍨嬪彿
+            standardTreeMapper.update(null, Wrappers.<StandardTree>lambdaUpdate()
+                    .eq(StandardTree::getSampleType, oldTestObject.getSpecimenName())
+                    .set(StandardTree::getSampleType, testObject.getSpecimenName()));
+        }
+
+        Long count = structureTestObjectMapper.selectCount(Wrappers.<StructureTestObject>lambdaQuery()
+                .eq(StructureTestObject::getSpecimenName, testObject.getSpecimenName())
+                .ne(StructureTestObject::getId, testObject.getId()));
+        if(count.compareTo(0L) > 0){
+            throw new BaseException("妫�楠屽璞′笉鑳介噸澶�");
+        }
+
+        return structureTestObjectMapper.updateById(testObject);
+    }
+
+    @Override
+    public List<StructureTestObject> selectTestObjectByName() {
+        return structureTestObjectMapper.selectList(Wrappers.<StructureTestObject>lambdaQuery().select(StructureTestObject::getSpecimenName,StructureTestObject::getId));
+    }
+
+    //璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)
+    @Override
+    public List<Map<String, Object>> getInsProduction() {
+        return structureItemParameterMapper.getInsProduction();
+    }
+
+    @Override
+    public List<TestItemDto> getItemTree() {
+        return structureItemParameterMapper.getItemTree();
+    }
+}
+

--
Gitblit v1.9.3