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 | 555 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 392 insertions(+), 163 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 a4f2008..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,29 +1,37 @@ 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.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.yuanchu.mom.common.GetLook; -import com.yuanchu.mom.dto.FactoryDto; -import com.yuanchu.mom.mapper.StandardMethodListMapper; +import com.yuanchu.mom.dto.*; +import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.StandardProductListMapper; -import com.yuanchu.mom.pojo.StandardMethodList; -import com.yuanchu.mom.pojo.StandardProductList; -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.mapper.StandardTreeMapper; +import com.yuanchu.mom.pojo.*; +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.time.LocalDateTime; -import java.util.*; -import java.util.concurrent.CompletableFuture; +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 @@ -37,48 +45,59 @@ private StandardTreeMapper standardTreeMapper; - private StandardMethodListMapper standardMethodListMapper; - private StandardMethodListService standardMethodListService; private StandardProductListMapper standardProductListMapper; private StandardProductListService standardProductListService; - private GetLook getLook; + 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 + 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) { - List<StandardProductList> productList = standardTreeMapper.getStandardProductListBySample(standardTree.getSampleType()); - List<StandardMethodList> methodList = standardTreeMapper.getStandardMethodListBySample(standardTree.getSampleType()); - for (StandardMethodList standardMethod : methodList) { - standardMethod.setFactory(standardTree.getFactory()); - standardMethod.setLaboratory(standardTree.getLaboratory()); - standardMethod.setSampleType(standardTree.getSampleType()); - standardMethod.setSample(standardTree.getSample()); - standardMethod.setModel(standardTree.getModel()); - standardMethodListMapper.insert(standardMethod); - for (StandardProductList standardProductList : productList) { - standardProductList.setFactory(standardTree.getFactory()); - standardProductList.setLaboratory(standardTree.getLaboratory()); - standardProductList.setSampleType(standardTree.getSampleType()); - standardProductList.setSample(standardTree.getSample()); - standardProductList.setModel(standardTree.getModel()); - standardProductList.setStandardMethodListId(standardMethod.getId()); - standardProductList.setState(0); - standardProductList.setId(null); - standardProductList.setCreateUser(null); - standardProductList.setCreateTime(null); - standardProductList.setUpdateUser(null); - standardProductList.setUpdateTime(null); - standardProductListMapper.insert(standardProductList); - } + 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("璇ュ瀷鍙峰凡瀛樺湪"); } return standardTreeMapper.insert(standardTree); } @@ -89,9 +108,13 @@ String[] trees = tree.split(" - "); switch (trees.length) { case 5: - standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4])); + if (trees[3] == null) { + standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).isNull(StandardTree::getSample).eq(StandardTree::getModel, trees[4])); + } else { + standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4])); + } break; - case 4: + /*case 4: standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3])); break; case 3: @@ -102,18 +125,7 @@ break; case 1: standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0])); - break; - } - Map<String, List<?>> listMap = standardMethodListService.selectsStandardMethodByFLSSM2(tree); - if (listMap.get("standardMethodList").size() != 0) { - for (Object o : listMap.get("standardMethodList")) { - JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(o)); - List<StandardProductList> list = standardProductListService.selectStandardProductListByMethodId((Integer) jsonObject.get("id")); - if (list.size() != 0) { - standardProductListMapper.deleteBatchIds(list); - } - } - standardMethodListMapper.deleteBatchIds(listMap.get("standardMethodList")); + break;*/ } return 1; } @@ -148,116 +160,333 @@ } @Override + public List<SampleTypeDto> getStandardTree2() { + return standardTreeMapper.getStandardTree2(); + } + + @Override @Transactional(rollbackFor = Exception.class) - public void reTreeBySampleType(String sampleType) { - Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); - CompletableFuture.supplyAsync(() -> { - //鏍规嵁鏍峰搧鍚嶇О鏌ヨ鎵�鏈夋娴嬮」鐩弬鏁�(鑳藉姏) - List<StandardProductList> productList = standardTreeMapper.getStandardProductListBySample(sampleType); - List<StandardProductList> productList1 = JSON.parseArray(JSON.toJSONString(productList), StandardProductList.class); - List<StandardMethodList> methodList = standardTreeMapper.getStandardMethodListBySample(sampleType); - List<StandardMethodList> methodList1 = JSON.parseArray(JSON.toJSONString(methodList), StandardMethodList.class); - List<StandardTree> treeList = standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getSampleType, sampleType)); - for (StandardTree tree : treeList) { - String treeStr = tree.getFactory() + " - " + tree.getLaboratory() + " - " + tree.getSampleType() + (tree.getSample() == null ? "" : " - " + tree.getSample()) + (tree.getModel() == null ? "" : " - " + tree.getModel()); - List<StandardMethodList> standardMethodList = JSON.parseArray(JSON.toJSONString(standardMethodListService.selectsStandardMethodByFLSSM(treeStr).get("standardMethodList")), StandardMethodList.class); - for (StandardMethodList sl1 : standardMethodList) { - int count1 = 0; - for (StandardMethodList sl2 : methodList) { - if (sl1.getCode().equals(sl2.getCode())) { - sl1.setName(sl2.getName()); - sl1.setRemark(sl2.getRemark()); - sl2.setId(sl1.getId()); - standardMethodListMapper.updateById(sl1); - //閫氳繃妫�楠屾爣鍑唅d鏌ヨ妫�楠岄」鐩�(鏍囧噯搴�) - List<StandardProductList> standardProductList = standardProductListService.selectStandardProductListByMethodId(sl1.getId()); - for (StandardProductList pl1 : standardProductList) { - int count2 = 0; - for (StandardProductList pl2 : productList) { - if (Objects.equals(pl1.getInspectionItemSubclass(), pl2.getInspectionItemSubclass()) && Objects.equals(pl1.getInspectionItem(), pl2.getInspectionItem())) { - pl2.setUpdateUser(userId); - pl2.setUpdateTime(LocalDateTime.now()); - pl2.setId(pl1.getId()); - pl2.setSample(tree.getSample()); - pl2.setDic(pl1.getDic()); - //濡傛灉鏍囧噯搴撻噷闈㈢殑瑕佹眰鏈夊�煎垯涓嶆洿鏂�,瑕佹眰涓簄ull鍒欏悓姝ユ洿鏂� - if (ObjectUtils.isNotEmpty(pl1.getAsk())){ - pl2.setAsk(null); - } - if (ObjectUtils.isNotEmpty(pl1.getTell())){ - pl2.setTell(null); - } - standardProductListMapper.updateById(pl2); - break; - } else { - count2++; - } - } - if (count2 == productList.size()) { - standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, sl1.getId())); - } - } - for (StandardProductList pl2 : productList) { - if (pl2.getId() == null) { - pl2.setFactory(tree.getFactory()); - pl2.setLaboratory(tree.getLaboratory()); - pl2.setSampleType(tree.getSampleType()); - pl2.setSample(tree.getSample()); - pl2.setModel(tree.getModel()); - pl2.setStandardMethodListId(sl1.getId()); - pl2.setState(0); - pl2.setId(null); - pl2.setCreateUser(null); - pl2.setCreateTime(null); - pl2.setUpdateUser(null); - pl2.setUpdateTime(null); - standardProductListMapper.insert(pl2); - } - } - break; - } else { - count1++; - } - } - if (count1 == methodList.size()) { - standardMethodListMapper.deleteById(sl1); - standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, sl1.getId())); - } - } - for (StandardMethodList sl2 : methodList) { - if (sl2.getId() == null) { - sl2.setFactory(tree.getFactory()); - sl2.setLaboratory(tree.getLaboratory()); - sl2.setSampleType(tree.getSampleType()); - sl2.setSample(tree.getSample()); - sl2.setModel(tree.getModel()); - standardMethodListMapper.insert(sl2); - for (StandardProductList standardProductList : productList) { - standardProductList.setFactory(tree.getFactory()); - standardProductList.setLaboratory(tree.getLaboratory()); - standardProductList.setSampleType(tree.getSampleType()); - standardProductList.setSample(tree.getSample()); - standardProductList.setModel(tree.getModel()); - standardProductList.setStandardMethodListId(sl2.getId()); - standardProductList.setState(0); - standardProductList.setId(null); - standardProductList.setCreateUser(null); - standardProductList.setCreateTime(null); - standardProductList.setUpdateUser(null); - standardProductList.setUpdateTime(null); - standardProductListMapper.insert(standardProductList); - } - } - } - methodList = JSON.parseArray(JSON.toJSONString(methodList1), StandardMethodList.class); - productList = JSON.parseArray(JSON.toJSONString(productList1), StandardProductList.class); - } + public int upStandardProducts(Map<String, Object> product) { + 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; - }).thenAccept(res -> { - }).exceptionally(e -> { - e.printStackTrace(); - return null; + } + 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)); + } + + /** + * 娌冲彛妫�娴嬩腑蹇冨鍏� + * @param file + */ + @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) { + String sample = baseMapper.selSample(list.get(2) + ""); + if (sample == null) { + throw new ErrorException("鏍峰搧涓嶅瓨鍦細" + list.get(2)); + } + 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(), str.getInspectionItemClass()); + } 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())); + try { + 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.getInspectionItemClass())); + } + 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 importWorkstationExcel(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) { + String sample = baseMapper.selSample(list.get(2) + ""); + if (sample == null) { + throw new ErrorException("鏍峰搧涓嶅瓨鍦細" + list.get(2)); + } + 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.setInspectionItemClass(list.get(4).toString()); + str.setInspectionItemClassEn(list.get(5).toString()); + // 寮�濮嬪姞2 + str.setInspectionItem(list.get(6) + ""); + if (list.get(8) == null) { + str.setInspectionItemSubclass(""); + } else { + str.setInspectionItemSubclass(list.get(8).toString()); + } + StandardProductList db_str; + try { + 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()); + } + if (ObjectUtils.isNotEmpty(db_str)) { + str.setId(db_str.getId()); + str.setStructureItemParameterId(db_str.getStructureItemParameterId()); + } + if (list.get(10) != null) { + str.setMethodS(list.get(10) + ""); + } + if (list.get(13) == null) { + str.setTell(null); + } else { + str.setTell(list.get(13).toString()); + } + + if (list.get(14) == null) { + str.setAsk(null); + } else { + str.setAsk(list.get(14).toString()); + } + + if (list.get(15) == null) { + str.setPrice(null); + } else { + str.setPrice((list.get(15).toString())); + } + + if (list.get(16) == null) { + str.setManHour(null); + } else { + str.setManHour(list.get(16).toString()); + } + + StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list.get(23))); + if (standTempIdByName != null) { + str.setTemplateId(standTempIdByName.getId()); + } else { + throw new ErrorException("妯℃澘涓嶅瓨鍦細" + list.get(23)); + } + str.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�"); + str.setLaboratory(laboratory.get()); + 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.getInspectionItemClass())); + } catch (Exception e) { + 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()); + } + lists.add(str); + } + }); + lists.forEach(a -> { + if (a.getId() != null) { + standardProductListMapper.updateById(a); + } else { + standardProductListMapper.insert(a); + } + }); + } + + //瀵煎嚭 + @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)); + } + + @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)); + } + + @Override + public void resetTreeOfAsk(String tree, Integer standardId) { + standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId) + .set(StandardProductList::getAsk, null) + .set(StandardProductList::getTell, null) + .set(StandardProductList::getSection, null) + .set(StandardProductList::getPrice, null) + .set(StandardProductList::getManHour, null)); } } -- Gitblit v1.9.3