AvoidDesignService.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.business.AvoidDesignDTO;
  3. import cn.cslg.pas.common.dto.business.AvoidDesignInsertDTO;
  4. import cn.cslg.pas.common.model.cronModel.PersonnelVO;
  5. import cn.cslg.pas.common.utils.CacheUtils;
  6. import cn.cslg.pas.common.utils.LoginUtils;
  7. import cn.cslg.pas.common.vo.business.AvoidDesignVO;
  8. import cn.cslg.pas.domain.business.AvoidDesign;
  9. import cn.cslg.pas.domain.business.Feature;
  10. import cn.cslg.pas.domain.business.ReportProject;
  11. import cn.cslg.pas.exception.UnLoginException;
  12. import cn.cslg.pas.exception.XiaoShiException;
  13. import cn.cslg.pas.mapper.AvoidDesignMapper;
  14. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  15. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  16. import org.springframework.beans.BeanUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * 回避设计Service
  24. * @Author xiexiang
  25. * @Date 2023/12/5
  26. */
  27. @Service
  28. public class AvoidDesignService extends ServiceImpl<AvoidDesignMapper, AvoidDesign> {
  29. @Autowired
  30. private CacheUtils cacheUtils;
  31. @Autowired
  32. private LoginUtils loginUtils;
  33. @Autowired
  34. private FeatureService featureService;
  35. @Autowired
  36. private ReportProjectService reportProjectService;
  37. /**
  38. * 新增回避设计
  39. * @param avoidDesignInsertDTO
  40. * @return
  41. */
  42. public List<Integer> addAvoidDesign(AvoidDesignInsertDTO avoidDesignInsertDTO){
  43. // //获取登录人信息
  44. // PersonnelVO personnelVO = new PersonnelVO();
  45. // try {
  46. // personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  47. // } catch (Exception e) {
  48. // throw new UnLoginException("未登录");
  49. // }
  50. Integer projectId = avoidDesignInsertDTO.getProjectId();
  51. if (projectId == null) {
  52. throw new XiaoShiException("projectId不能为空");
  53. }
  54. //根据projctId查询出专利号
  55. LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
  56. queryWrapper.eq(ReportProject::getProjectId, projectId);
  57. List<ReportProject> reportProjects = reportProjectService.list(queryWrapper);
  58. String patentNo = "";
  59. if (!reportProjects.isEmpty()) {
  60. ReportProject reportProject = reportProjects.get(0);
  61. patentNo = reportProject.getSignPatentNo();
  62. } else {
  63. throw new XiaoShiException("未查询到报告专利号");
  64. }
  65. List<AvoidDesignDTO> avoidDesignDTOS = avoidDesignInsertDTO.getAvoidDesignDTOS();
  66. //根据专利号和projectId,删除特征
  67. LambdaQueryWrapper<Feature> deleteWrapper =new LambdaQueryWrapper<>();
  68. deleteWrapper.eq(Feature::getPatentNo,patentNo)
  69. .eq(Feature::getProjectId,projectId);
  70. featureService.remove(deleteWrapper);
  71. //根据projectId删除回避设计方向数据
  72. LambdaQueryWrapper<AvoidDesign> deleteWrapper2 = new LambdaQueryWrapper<>();
  73. deleteWrapper2.eq(AvoidDesign::getProjectId, projectId);
  74. this.remove(deleteWrapper2);
  75. //新增插入回避设计方向集合
  76. List<AvoidDesign> avoidDesignList = new ArrayList<>();
  77. //遍历传入集合
  78. for (AvoidDesignDTO avoidDesignDTO : avoidDesignDTOS) {
  79. Feature feature = new Feature();
  80. feature.setRightSort(avoidDesignDTO.getRightSort());
  81. feature.setPatentNo(patentNo);
  82. feature.setProjectId(projectId);
  83. feature.setContent(avoidDesignDTO.getContent());
  84. feature.setExplainText(avoidDesignDTO.getExpalinText());
  85. // feature.setCreateId(personnelVO.getId());
  86. feature.setCreateId("328");
  87. feature.setRightType(avoidDesignDTO.getRightType());
  88. feature.insert();
  89. //获取特征id
  90. Integer featureId = feature.getId();
  91. //插入回避设计方向
  92. AvoidDesign avoidDesign = new AvoidDesign();
  93. avoidDesign.setProjectId(projectId);
  94. avoidDesign.setFeatureId(featureId);
  95. avoidDesign.setDirection(avoidDesignDTO.getDirection());
  96. // avoidDesign.setCreateId(personnelVO.getId());
  97. avoidDesign.setCreateId("328");
  98. avoidDesignList.add(avoidDesign);
  99. }
  100. List<Integer> ids = new ArrayList<>();
  101. if (!avoidDesignList.isEmpty()) {
  102. this.saveBatch(avoidDesignList);
  103. ids = avoidDesignList.stream().map(AvoidDesign::getId).collect(Collectors.toList());
  104. }
  105. return ids;
  106. }
  107. /**
  108. * 查询回避设计
  109. */
  110. public List<AvoidDesignVO> queryAvoidDesign(Integer projectId){
  111. List<AvoidDesignVO> avoidDesignVOS = new ArrayList<>();
  112. LambdaQueryWrapper<AvoidDesign> queryWrapper = new LambdaQueryWrapper<>();
  113. queryWrapper.eq(AvoidDesign::getProjectId, projectId);
  114. List<AvoidDesign> avoidDesignList = this.list(queryWrapper);
  115. if (!avoidDesignList.isEmpty()) {
  116. avoidDesignList.forEach(item -> {
  117. AvoidDesignVO avoidDesignVO = new AvoidDesignVO();
  118. BeanUtils.copyProperties(item, avoidDesignVO);
  119. avoidDesignVOS.add(avoidDesignVO);
  120. });
  121. }
  122. return avoidDesignVOS;
  123. }
  124. public void deleteAvoidDesign(){
  125. }
  126. }