From 97bb7a8832281eafe0ef947ea095258d355e52f5 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 30 十二月 2024 15:57:51 +0800 Subject: [PATCH] 无源器件的数采+电路模版查询 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java | 81 +++++++++++++++++++++++++++++++++------- 1 files changed, 67 insertions(+), 14 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 8a3deb0..c728dec 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,19 +1,20 @@ package com.yuanchu.mom.service.impl; import cn.hutool.poi.excel.ExcelUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy; 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.dto.*; 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.pojo.*; import com.yuanchu.mom.service.*; import lombok.AllArgsConstructor; import org.apache.commons.lang3.ObjectUtils; @@ -21,12 +22,16 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; /** * @author Administrator @@ -66,9 +71,31 @@ } @Override + public List<SampleTypeDto> selectStandardTreeList2() { + List<SampleTypeDto> sampleTypeDtos= new ArrayList<>(); + 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())); + } + sampleTypeDtos.add(sampleTypeDto); + } + } + } + return sampleTypeDtos; + } + + @Override @Transactional(rollbackFor = Exception.class) public int addStandardTree(StandardTree standardTree) { - StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getModel, standardTree.getModel())); + StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery() + .eq(StandardTree::getFactory, standardTree.getFactory()) + .eq(StandardTree::getLaboratory, standardTree.getLaboratory()) + .eq(StandardTree::getSampleType, standardTree.getSampleType()) + .eq(StandardTree::getSample, standardTree.getSample()) + .eq(StandardTree::getModel, standardTree.getModel())); if (tree != null) { throw new ErrorException("璇ュ瀷鍙峰凡瀛樺湪"); } @@ -222,7 +249,7 @@ } StandardProductList db_str; try { - db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel()); + db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel(), str.getInspectionItemClass()); } catch (Exception e) { throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); } @@ -269,9 +296,9 @@ str.setState(1); str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null ? "" : str.getModel())); try { - str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass())); + str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass())); } catch (Exception e) { - str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass())); + str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass())); } if (str.getStructureItemParameterId() == null) { throw new ErrorException("妫�楠岄」鐩笉瀛樺湪锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); @@ -350,7 +377,7 @@ } StandardProductList db_str; try { - db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel()); + db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel(), str.getInspectionItemClass()); } catch (Exception e) { throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); } @@ -361,7 +388,6 @@ if (list.get(10) != null) { str.setMethodS(list.get(10) + ""); } - if (list.get(13) == null) { str.setTell(null); } else { @@ -397,9 +423,9 @@ str.setState(1); str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null ? "" : str.getModel())); try { - str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass())); + str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass())); } catch (Exception e) { - str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass())); + str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass(), str.getInspectionItemClass())); } if (str.getStructureItemParameterId() == null) { throw new ErrorException("妫�楠岄」鐩笉瀛樺湪锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); @@ -416,6 +442,33 @@ }); } + //瀵煎嚭 + @Override + public void exportStandTree(HttpServletResponse response) throws IOException { + //鏌ヨ鏍囧噯搴撴暟鎹�,鎸夌収浜у搧澶х被鍒嗙被 + List<standardTreeDto> standardTreeDtos = standardTreeMapper.exportStandTree(); + Map<String, List<standardTreeDto>> collect = standardTreeDtos.stream().collect(Collectors.groupingBy(standardTreeDto -> standardTreeDto.getSampleType())); + List<Map.Entry<String, List<standardTreeDto>>> entryList = new ArrayList<>(collect.entrySet()); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + String fileName = URLEncoder.encode("鏍囧噯搴撳鍑�", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + try { + // 鏂板缓ExcelWriter + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + for (int i = 0; i < collect.size(); i++) { + Map.Entry<String, List<standardTreeDto>> entry = entryList.get(i); + WriteSheet mainSheet = EasyExcel.writerSheet(i, entry.getKey()+"鏍囧噯搴撳鍑�").head(standardTreeDto.class).build(); + excelWriter.write(entry.getValue(), mainSheet); + } + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + @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)); -- Gitblit v1.9.3