| | |
| | | package com.yuanchu.mom.service.impl; |
| | | |
| | | import cn.hutool.core.lang.Console; |
| | | import cn.hutool.poi.excel.ExcelUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
| | | 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 |
| | |
| | | |
| | | 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 |
| | |
| | | @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); |
| | | standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids)); |
| | | return 1; |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void inExcelOfTree(MultipartFile file) { |
| | | InputStream inputStream; |
| | | try { |
| | |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | List<StandardProductList> lists = new ArrayList<>(); |
| | | AtomicReference<String> laboratory = new AtomicReference<>(); |
| | | ExcelUtil.readBySax(inputStream, 0, (i, l, list) -> { |
| | | System.out.println(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(null); |
| | | } 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) { |
| | | StringBuilder buffer = new StringBuilder(); |
| | | String input = list.get(8).toString(); |
| | | buffer.append("["); |
| | | String[] values = input.split("、"); |
| | | for (String value : values) { |
| | | buffer.append("\"").append(value.trim()).append("\","); |
| | | } |
| | | buffer.deleteCharAt(buffer.length() - 1); |
| | | buffer.append("]"); |
| | | str.setMethod(buffer.toString()); |
| | | } |
| | | |
| | | 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.setState(1); |
| | | lists.add(str); |
| | | } |
| | | }); |
| | | lists.forEach(a->{ |
| | | if(a.getId() != null){ |
| | | standardProductListMapper.updateById(a); |
| | | }else{ |
| | | standardProductListMapper.insert(a); |
| | | } |
| | | }); |
| | | } |