From a680563f53b7b5db7507dd0ff6027f724567ea2b Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期四, 20 六月 2024 11:21:27 +0800 Subject: [PATCH] 标准库支持无型号 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 167 insertions(+), 8 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java index 0c66337..c0339db 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java @@ -1,25 +1,32 @@ package com.yuanchu.mom.service.impl; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.dto.FactoryDto; +import com.yuanchu.mom.dto.LaboratoryDto; import com.yuanchu.mom.dto.SampleTypeDto; -import com.yuanchu.mom.mapper.StandardMethodListMapper; +import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.StandardProductListMapper; import com.yuanchu.mom.mapper.StandardTreeMapper; import com.yuanchu.mom.pojo.StandardProductList; +import com.yuanchu.mom.pojo.StandardTemplate; import com.yuanchu.mom.pojo.StandardTree; -import com.yuanchu.mom.service.StandardMethodListService; -import com.yuanchu.mom.service.StandardProductListService; -import com.yuanchu.mom.service.StandardTreeService; +import com.yuanchu.mom.service.*; import lombok.AllArgsConstructor; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; /** * @author Administrator @@ -33,17 +40,29 @@ private StandardTreeMapper standardTreeMapper; - private StandardMethodListMapper standardMethodListMapper; - private StandardMethodListService standardMethodListService; private StandardProductListMapper standardProductListMapper; private StandardProductListService standardProductListService; + private StandardTemplateService standardTemplateService; + + private EnumService enumService; + @Override public List<FactoryDto> selectStandardTreeList() { - return standardTreeMapper.selectStandardTreeList(); + List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeList(); + for (FactoryDto factoryDto : factoryDtos) { + for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { + for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { + if (sampleTypeDto.getChildren().size() == 0) { + sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); + } + } + } + } + return factoryDtos; } @Override @@ -113,11 +132,151 @@ @Override @Transactional(rollbackFor = Exception.class) public int upStandardProducts(Map<String, Object> product) { - List<Integer> ids = JSON.parseArray(product.get("ids")+""); + List<Integer> ids = JSON.parseArray(product.get("ids") + ""); StandardProductList productList = JSON.parseObject(JSON.toJSONString(product.get("standardProductList")), StandardProductList.class); + if(productList.getMethodS() != null){ + standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids).like(StandardProductList::getMethod, productList.getMethodS())); + return 1; + } standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids)); return 1; } + + @Override + public List<StandardTree> getStandTreeBySampleType(String laboratory, String sampleType) { + return standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery() + .eq(StandardTree::getLaboratory, laboratory) + .eq(StandardTree::getSampleType, sampleType) + .select(StandardTree::getModel, StandardTree::getSample)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void inExcelOfTree(MultipartFile file) { + InputStream inputStream; + try { + inputStream = file.getInputStream(); + } catch (IOException e) { + throw new RuntimeException(e); + } + List<StandardProductList> lists = new ArrayList<>(); + AtomicReference<String> laboratory = new AtomicReference<>(); + ExcelUtil.readBySax(inputStream, 0, (i, l, list) -> { + StandardProductList str = new StandardProductList(); + if (i == 0 && l == 1) { + laboratory.set(standardTreeMapper.getLaboratory(list.get(1) + "")); + if (laboratory.get() == null) { + throw new ErrorException("妫�楠屽璞′笉瀛樺湪锛�" + list.get(1)); + } + } + if (i == 0 && l >= 1) { + Integer standardMethodId = standardMethodListService.getStandardMethodId(list.get(0) + ""); + if (standardMethodId == null) { + throw new ErrorException("鏍囧噯缂栧彿涓嶅瓨鍦細" + list.get(0)); + } + str.setStandardMethodListId(standardMethodId); + str.setSampleType(list.get(1) + ""); + if (list.get(2) != null) { + str.setSample(list.get(2) + ""); + } else { + str.setSample(null); + } + if (list.get(3) != null) { + str.setModel(list.get(3) + ""); + Long aLong = standardTreeMapper.selectCount(Wrappers.<StandardTree>lambdaQuery() + .eq(StandardTree::getModel, str.getModel()) + .eq(StandardTree::getSampleType, list.get(1) + "")); + if (aLong == 0) { + StandardTree standardTree = new StandardTree(); + standardTree.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�"); + standardTree.setLaboratory(laboratory.get()); + standardTree.setSampleType(str.getSampleType()); + standardTree.setSample(str.getSample()); + standardTree.setModel(str.getModel()); + standardTreeMapper.insert(standardTree); + } + } else { + str.setModel(null); + } + str.setInspectionItem(list.get(4) + ""); + if (list.get(6) == null) { + str.setInspectionItemSubclass(""); + } else { + str.setInspectionItemSubclass(list.get(6).toString()); + } + StandardProductList db_str; + try { + db_str = standardProductListMapper.getOne(str.getStandardMethodListId(),str.getInspectionItem(),str.getSample(),str.getInspectionItemSubclass(),str.getModel()); + } catch (Exception e) { + throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); + } + if (ObjectUtils.isNotEmpty(db_str)) { + str.setId(db_str.getId()); + str.setStructureItemParameterId(db_str.getStructureItemParameterId()); + } + if (list.get(8) != null) { + str.setMethodS(list.get(8)+""); + } + + if (list.get(11) == null) { + str.setTell(null); + } else { + str.setTell(list.get(11).toString()); + } + + if (list.get(12) == null) { + str.setAsk(null); + } else { + str.setAsk(list.get(12).toString()); + } + + if (list.get(13) == null) { + str.setPrice(null); + } else { + str.setPrice((list.get(13).toString())); + } + + if (list.get(14) == null) { + str.setManHour(null); + } else { + str.setManHour(list.get(14).toString()); + } + + StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list.get(21))); + if (standTempIdByName != null) { + str.setTemplateId(standTempIdByName.getId()); + } else { + throw new ErrorException("妯℃澘涓嶅瓨鍦細" + list.get(21)); + } + str.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�"); + str.setLaboratory(laboratory.get()); + str.setState(1); + str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null?"":str.getModel())); + str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\""+str.getSampleType()+"\"", str.getInspectionItem(), str.getInspectionItemSubclass())); + if(str.getStructureItemParameterId() == null){ + throw new ErrorException("妫�楠岄」鐩笉瀛樺湪锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); + } + lists.add(str); + } + }); + lists.forEach(a->{ + if(a.getId() != null){ + standardProductListMapper.updateById(a); + }else{ + standardProductListMapper.insert(a); + } + }); + } + + @Override + public void resetTreeOfPrice(String tree, Integer standardId) { + standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId).set(StandardProductList::getPrice, null)); + } + + @Override + public void resetTreeOfHour(String tree, Integer standardId) { + standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId).set(StandardProductList::getManHour, null)); + } } -- Gitblit v1.9.3