From 85a9aacd0e7651ca3594993403cb94c01c9d35ee Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 06 三月 2025 11:43:23 +0800
Subject: [PATCH] 搬迁6资源要求
---
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