| | |
| | | package com.yuanchu.mom.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | 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.mapper.StandardProductListMapper; |
| | |
| | | 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 lombok.AllArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.concurrent.CompletableFuture; |
| | | |
| | | /** |
| | | * @author Administrator |
| | |
| | | |
| | | private StandardProductListMapper standardProductListMapper; |
| | | |
| | | private StandardProductListService standardProductListService; |
| | | |
| | | private GetLook getLook; |
| | | |
| | | @Override |
| | | public List<FactoryDto> selectStandardTreeList() { |
| | | return standardTreeMapper.selectStandardTreeList(); |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int addStandardTree(StandardTree standardTree) { |
| | | if(standardTree.getSample()!=null){ |
| | | List<StandardProductList> list = standardTreeMapper.getStandardProductListBySample(standardTree.getSampleType()); |
| | | for (StandardProductList standardProductList : list) { |
| | | 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(1); |
| | | standardProductList.setId(null); |
| | | standardProductList.setCreateUser(null); |
| | | standardProductList.setCreateTime(null); |
| | | standardProductList.setUpdateUser(null); |
| | | standardProductList.setUpdateTime(null); |
| | | standardProductListMapper.insert(standardProductList); |
| | | } |
| | | } |
| | |
| | | standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0])); |
| | | break; |
| | | } |
| | | Map<String, List<?>> listMap = standardMethodListService.selectsStandardMethodByFLSSM(tree); |
| | | if(listMap.get("standardMethodList").size() != 0){ |
| | | 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")); |
| | | } |
| | | if(listMap.get("standardProductList").size() != 0){ |
| | | standardProductListMapper.deleteBatchIds(listMap.get("standardProductList")); |
| | | } |
| | | return 1; |
| | | } |
| | |
| | | standardProductList.setFactory(trees[0]); |
| | | try { |
| | | standardProductList.setLaboratory(trees[1]); |
| | | }catch (Exception e){} |
| | | } catch (Exception e) { |
| | | } |
| | | try { |
| | | standardProductList.setSampleType(trees[2]); |
| | | }catch (Exception e){} |
| | | } catch (Exception e) { |
| | | } |
| | | try { |
| | | standardProductList.setSample(trees[3]); |
| | | }catch (Exception e){} |
| | | } catch (Exception e) { |
| | | } |
| | | try { |
| | | standardProductList.setModel(trees[4]); |
| | | }catch (Exception e){} |
| | | } catch (Exception e) { |
| | | } |
| | | standardProductListMapper.insert(standardProductList); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | @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(1); |
| | | 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(1); |
| | | 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); |
| | | } |
| | | return 1; |
| | | }).thenAccept(res -> { |
| | | }).exceptionally(e -> { |
| | | e.printStackTrace(); |
| | | return null; |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |