From c79f68a2a71cc8cc181525d233ef419745ee3d27 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 04 三月 2025 13:24:55 +0800 Subject: [PATCH] 原始记录模版修改 --- basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java | 185 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 185 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..f63a161 --- /dev/null +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java @@ -0,0 +1,185 @@ +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.common.exception.base.BaseException; +import com.ruoyi.common.utils.QueryWrappers; +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.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 StructureTestObjectPartMapper structureTestObjectPartMapper; + + private ProductPartMapper productPartMapper; + + 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) { + String partNo = pageTestObjectDto.getPartNo(); + pageTestObjectDto.setPartNo(null); + return structureTestObjectMapper.selectTestObjectList(page, QueryWrappers.queryWrappers(pageTestObjectDto),partNo); + } + + @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) { + // 浜у嚭妫�楠屽璞′骇鍝佺淮鎶� + structureTestObjectPartMapper.delete(Wrappers.<StructureTestObjectPart>lambdaQuery() + .eq(StructureTestObjectPart::getTestObjectId, id)); + + // 鍒犻櫎浜у搧缁存姢鐨勯浂浠剁粦瀹� + List<Product> products = productMapper.selectList(Wrappers.<Product>lambdaQuery() + .eq(Product::getObjectId, id)); + List<Integer> productIds = products.stream().map(Product::getId).collect(Collectors.toList()); + productPartMapper.delete(Wrappers.<ProductPart>lambdaQuery() + .in(ProductPart::getProductId, productIds)); + + // 鍒犻櫎浜у搧缁存姢 + 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