| | |
| | | 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 |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | 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: |
| | |
| | | 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; |
| | | } |
| | |
| | | } |
| | | |
| | | @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); |
| | | //通过检验标准id查询检验项目(标准库) |
| | | 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()); |
| | | //如果标准库里面的要求有值则不更新,要求为null则同步更新 |
| | | 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可以防止中文乱码 当然和easyexcel没有关系 |
| | | 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)); |
| | | } |
| | | } |
| | | |