¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | 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.core.domain.entity.SysDictData; |
| | | 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 com.ruoyi.system.mapper.SysDictTypeMapper; |
| | | import com.ruoyi.system.service.ISysDictTypeService; |
| | | import lombok.AllArgsConstructor; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.concurrent.CompletableFuture; |
| | | 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 StandardProductListMapper standardProductListMapper; |
| | | |
| | | private ThreadPoolTaskExecutor threadPoolTaskExecutor; |
| | | |
| | | private StructureItemParameterMapper structureItemParameterMapper; |
| | | |
| | | private StructureTestObjectMapper structureTestObjectMapper; |
| | | |
| | | private ProductMapper productMapper; |
| | | |
| | | private StandardProductListService standardProductListService; |
| | | |
| | | private StandardTreeMapper standardTreeMapper; |
| | | |
| | | private StructureItemParameterService structureItemParameterService; |
| | | |
| | | private ISysDictTypeService sysDictTypeService; |
| | | |
| | | @Override |
| | | public IPage<StructureItemParameter> selectItemParameterList(Page page, StructureItemParameter itemParameter) { |
| | | IPage<StructureItemParameter> parameterIPage = structureItemParameterMapper.selectItemParameterList(page, QueryWrappers.queryWrappers(itemParameter)); |
| | | //æ¥è¯¢åå
¸ |
| | | Map<String, List<SysDictData>> dictMaps = sysDictTypeService.selectEnumListByCategory(Arrays.asList("æ£éªé¡¹ç±»å", "æ¯å¦", "æ£éªå¼ç±»å", "åä½")); |
| | | parameterIPage.getRecords().forEach(ele->{ |
| | | ele.setInspectionItemTypeTwo(getLabelByValue(dictMaps.get("æ£éªé¡¹ç±»å"),ele.getInspectionItemType())); |
| | | ele.setUpdateBsm(getLabelByValue(dictMaps.get("æ¯å¦"),ele.getBsm())); |
| | | ele.setInspectionValueTypeTwo(getLabelByValue(dictMaps.get("æ£éªå¼ç±»å"),ele.getInspectionValueType())); |
| | | }); |
| | | return parameterIPage; |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®valueè·ååå
¸ |
| | | * @param dictList |
| | | * @param value |
| | | * @return |
| | | */ |
| | | private String getLabelByValue(List<SysDictData> dictList, String value){ |
| | | if(dictList.isEmpty()){ |
| | | return ""; |
| | | } |
| | | return dictList.stream().filter(ele-> Objects.equals(ele.getDictValue(),value)).map(SysDictData::getDictLabel).findFirst().orElse(""); |
| | | } |
| | | |
| | | @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 |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int upItemParameter(StructureItemParameter itemParameter) { |
| | | //è½åèå´æ´æ°ï¼åæ¶æ´æ°å¯¹åºçæ ååº |
| | | StructureItemParameter oldParameter = structureItemParameterMapper.selectById(itemParameter.getId()); |
| | | //夿æ£éªé¡¹ãæ£éªå项ãå使¯å¦æä¿®æ¹ï¼æå°±åæ¶ä¿®æ¹æ ååºå¯¹åºçæ°æ® |
| | | if( |
| | | !StringUtils.equals(itemParameter.getInspectionItem(),oldParameter.getInspectionItem()) || |
| | | !StringUtils.equals(itemParameter.getInspectionItemSubclass(),oldParameter.getInspectionItemSubclass()) || |
| | | !StringUtils.equals(itemParameter.getInspectionItemEn(),oldParameter.getInspectionItemEn()) || |
| | | !StringUtils.equals(itemParameter.getInspectionItemSubclassEn(),oldParameter.getInspectionItemSubclassEn()) || |
| | | !StringUtils.equals(itemParameter.getUnit(),oldParameter.getUnit()) |
| | | ){ |
| | | CompletableFuture.runAsync(() -> { |
| | | LambdaUpdateWrapper<StandardProductList> updateWrapper = Wrappers.<StandardProductList>lambdaUpdate() |
| | | .set(StandardProductList::getInspectionItem, itemParameter.getInspectionItem()) |
| | | .set(StandardProductList::getInspectionItemEn, itemParameter.getInspectionItemEn()) |
| | | .set(StandardProductList::getInspectionItemSubclass, itemParameter.getInspectionItemSubclass()) |
| | | .set(StandardProductList::getInspectionItemSubclassEn, itemParameter.getInspectionItemSubclassEn()) |
| | | .set(StandardProductList::getUnit, itemParameter.getUnit()) |
| | | .eq(StandardProductList::getStructureItemParameterId,itemParameter.getId()); |
| | | standardProductListMapper.update(null,updateWrapper); |
| | | },threadPoolTaskExecutor); |
| | | } |
| | | 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()); |
| | | // å é¤äº§åç»´æ¤ |
| | | if (productIds.size()>0) { |
| | | 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(); |
| | | } |
| | | } |
| | | |