FinalInvalidStatueService.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.common.dto.invalidDTO.PatentClaimDTO;
  3. import cn.cslg.pas.common.model.finalInvalid.FinalProfGroupEditDTO;
  4. import cn.cslg.pas.common.model.finalInvalid.FinalProfGroupQueryDTO;
  5. import cn.cslg.pas.common.model.finalInvalid.FinalProfGroupVO;
  6. import cn.cslg.pas.common.vo.invalidVO.PatentClaimHistoryVO;
  7. import cn.cslg.pas.domain.FinalInvalidStatue;
  8. import cn.cslg.pas.domain.FinalProofGroup;
  9. import cn.cslg.pas.domain.business.InvalidStatutes;
  10. import cn.cslg.pas.domain.business.ProofGroup;
  11. import cn.cslg.pas.mapper.FinalInvalidStatueMapper;
  12. import cn.cslg.pas.service.business.InvalidStatutesService;
  13. import cn.cslg.pas.service.business.ProofGroupService;
  14. import cn.cslg.pas.service.business.invalidReport.PatentClaimHistoryService;
  15. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  16. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  17. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  18. import lombok.RequiredArgsConstructor;
  19. import org.springframework.data.elasticsearch.core.query.UpdateQuery;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import java.util.*;
  23. import java.util.stream.Collectors;
  24. /**
  25. * @author admin
  26. * @description 针对表【final_invalid_statue(最终无效理由和证据)】的数据库操作Service实现
  27. * @createDate 2024-06-20 17:09:07
  28. */
  29. @Service
  30. @RequiredArgsConstructor
  31. public class FinalInvalidStatueService extends ServiceImpl<FinalInvalidStatueMapper, FinalInvalidStatue> {
  32. private final InvalidStatutesService invalidStatutesService;
  33. private final PatentClaimHistoryService patentClaimHistoryService;
  34. private static List<Integer> inStatueIds = Arrays.asList(2, 3, 4);
  35. private final ProofGroupService proofGroupService;
  36. private final FinalProofGroupService finalProofGroupService;
  37. public void ImportByProjectId(Integer projectId, Integer statueType) {
  38. }
  39. @Transactional(rollbackFor = Exception.class)
  40. public void importFinalInvalidStatutes(Integer projectId) {
  41. //删除原来保存数据
  42. this.removeFinalInvalidStatus(projectId);
  43. //根据projectId 查询无效理由和证据
  44. LambdaQueryWrapper<InvalidStatutes> queryWrapper = new LambdaQueryWrapper<>();
  45. queryWrapper.eq(InvalidStatutes::getProjectId, projectId);
  46. List<InvalidStatutes> invalidStatutes = invalidStatutesService.list(queryWrapper);
  47. for (InvalidStatutes invalidStatute : invalidStatutes) {
  48. FinalInvalidStatue finalInvalidStatue = new FinalInvalidStatue();
  49. Integer claimId = invalidStatute.getClaimId();
  50. finalInvalidStatue.setStatuteId(invalidStatute.getStatutesId());
  51. Map<String, String> claimMess = this.getClaimText(claimId);
  52. finalInvalidStatue.setClaimText(claimMess.get("claimText"));
  53. finalInvalidStatue.setCourtOpinions1(claimMess.get("court1"));
  54. finalInvalidStatue.setCourtOpinions2(claimMess.get("court2"));
  55. if (claimMess.get("index") != null) {
  56. Integer index = Integer.parseInt(claimMess.get("index").toString());
  57. finalInvalidStatue.setClaimOrder(index);
  58. }
  59. finalInvalidStatue.setProjectId(projectId);
  60. finalInvalidStatue.insert();
  61. finalProofGroupService.addFinalProofGroup(invalidStatute.getId(), finalInvalidStatue);
  62. }
  63. }
  64. public Map<String, String> getClaimText(Integer claimId) {
  65. String claimText = "";
  66. PatentClaimDTO patentClaimDTO = new PatentClaimDTO();
  67. patentClaimDTO.setClaimId(claimId);
  68. PatentClaimHistoryVO patentClaimHistoryVO = patentClaimHistoryService.queryPatentClaimHistory(patentClaimDTO);
  69. if (patentClaimHistoryVO.getSecondClaimVO() != null && patentClaimHistoryVO.getSecondClaimVO().getOperateType().equals(0)) {
  70. claimText = patentClaimHistoryVO.getSecondClaimVO().getContent();
  71. } else if (patentClaimHistoryVO.getFirstClaimVO() != null && patentClaimHistoryVO.getFirstClaimVO().getOperateType().equals(0)) {
  72. claimText = patentClaimHistoryVO.getFirstClaimVO().getContent();
  73. } else {
  74. claimText = patentClaimHistoryVO.getOriginalClaimVO().getContent();
  75. }
  76. Map<String, String> map = new HashMap<>();
  77. map.put("claimText", claimText);
  78. map.put("court1", patentClaimHistoryVO.getOriginalClaimVO().getCourtDecision1());
  79. map.put("court2", patentClaimHistoryVO.getOriginalClaimVO().getCourtDecision2());
  80. if( patentClaimHistoryVO.getOriginalClaimVO().getSysOrder()!=null) {
  81. map.put("index", patentClaimHistoryVO.getOriginalClaimVO().getSysOrder().toString());
  82. }
  83. return map;
  84. }
  85. public List<FinalProfGroupVO> queryFinalProofGroup(FinalProfGroupQueryDTO finalProfGroupQueryDTO) {
  86. List<FinalProfGroupVO> finalProfGroupVOS = new ArrayList<>();
  87. Integer projectId = finalProfGroupQueryDTO.getId();
  88. Integer statusType = finalProfGroupQueryDTO.getStatueType();
  89. //根据projectId查询最终无效理由和证据
  90. LambdaQueryWrapper<FinalInvalidStatue> queryWrapper = new LambdaQueryWrapper<>();
  91. queryWrapper.eq(FinalInvalidStatue::getProjectId, projectId)
  92. .orderByAsc(FinalInvalidStatue::getStatuteId)
  93. .orderByAsc(FinalInvalidStatue::getClaimOrder);
  94. if (statusType != null) {
  95. if (statusType.equals(1)) {
  96. queryWrapper.in(FinalInvalidStatue::getStatuteId, inStatueIds);
  97. } else {
  98. queryWrapper.notIn(FinalInvalidStatue::getStatuteId, inStatueIds);
  99. }
  100. }
  101. List<FinalInvalidStatue> finalInvalidStatues = this.list(queryWrapper);
  102. if (finalInvalidStatues.size() == 0) {
  103. return finalProfGroupVOS;
  104. }
  105. List<Integer> ids = finalInvalidStatues.stream().map(FinalInvalidStatue::getId).collect(Collectors.toList());
  106. List<FinalProofGroup> finalProofGroups = new ArrayList<>();
  107. LambdaQueryWrapper<FinalProofGroup> queryWrapper1 = new LambdaQueryWrapper<>();
  108. queryWrapper1.in(FinalProofGroup::getFinalInvalidStatueId, ids);
  109. finalProofGroups = finalProofGroupService.list(queryWrapper1);
  110. for(FinalInvalidStatue finalInvalidStatue:finalInvalidStatues)
  111. {
  112. Integer id =finalInvalidStatue.getId();
  113. List<FinalProofGroup> statueGroups =finalProofGroups.stream().filter(item->item.getFinalInvalidStatueId().equals(id)).collect(Collectors.toList());
  114. statueGroups.forEach(item->{
  115. FinalProfGroupVO finalProfGroupVO = new FinalProfGroupVO();
  116. if (finalInvalidStatue != null) {
  117. finalProfGroupVO.setInvalidStatue(finalInvalidStatue);
  118. }
  119. finalProfGroupVO.setId(item.getId());
  120. finalProfGroupVO.setPresentOpinions(item.getPresentOpinions());
  121. finalProfGroupVO.setInvalidReason(item.getInvalidReason());
  122. finalProfGroupVO.setRbDecision(item.getRbDecision());
  123. finalProfGroupVOS.add(finalProfGroupVO);
  124. });
  125. }
  126. return finalProfGroupVOS;
  127. }
  128. public void editProofGroup(FinalProfGroupEditDTO finalProfGroupEditDTO) {
  129. Integer invalidStatueId = finalProfGroupEditDTO.getInvalidStatueId();
  130. Integer proofGroupId = finalProfGroupEditDTO.getProofGroupId();
  131. String editField = finalProfGroupEditDTO.getEditField();
  132. String fieldContent = finalProfGroupEditDTO.getFieldContent();
  133. switch (editField) {
  134. case "invalidReason":
  135. FinalProofGroup finalProofGroup1 = finalProofGroupService.getById(proofGroupId);
  136. finalProofGroup1.setInvalidReason(fieldContent);
  137. finalProofGroup1.updateById();
  138. break;
  139. case "presentOpinions":
  140. FinalProofGroup finalProofGroup2 = finalProofGroupService.getById(proofGroupId);
  141. finalProofGroup2.setPresentOpinions(fieldContent);
  142. finalProofGroup2.updateById();
  143. break;
  144. case "rbDecision":
  145. FinalProofGroup finalProofGroup3 = finalProofGroupService.getById(proofGroupId);
  146. finalProofGroup3.setRbDecision(fieldContent);
  147. finalProofGroup3.updateById();
  148. break;
  149. case "courtOpinions1":
  150. FinalInvalidStatue finalInvalidStatue1 = this.getById(invalidStatueId);
  151. Integer claimOrder = finalInvalidStatue1.getClaimOrder();
  152. UpdateWrapper<FinalInvalidStatue> updateWrapper = new UpdateWrapper<>();
  153. // Lambda表达式
  154. updateWrapper.lambda().set(FinalInvalidStatue::getCourtOpinions1, fieldContent)
  155. .eq(FinalInvalidStatue::getClaimOrder, claimOrder)
  156. .eq(FinalInvalidStatue::getProjectId, finalInvalidStatue1.getProjectId());
  157. this.update(updateWrapper);
  158. break;
  159. case "courtOpinions2":
  160. FinalInvalidStatue finalInvalidStatue2 = this.getById(invalidStatueId);
  161. Integer claimOrder2 = finalInvalidStatue2.getClaimOrder();
  162. UpdateWrapper<FinalInvalidStatue> updateWrapper2 = new UpdateWrapper<>();
  163. // Lambda表达式
  164. updateWrapper2.lambda().set(FinalInvalidStatue::getCourtOpinions2, fieldContent)
  165. .eq(FinalInvalidStatue::getClaimOrder, claimOrder2)
  166. .eq(FinalInvalidStatue::getProjectId, finalInvalidStatue2.getProjectId());
  167. this.update(updateWrapper2);
  168. break;
  169. case "claimText":
  170. FinalInvalidStatue finalInvalidStatue3 = this.getById(invalidStatueId);
  171. Integer claimOrder3 = finalInvalidStatue3.getClaimOrder();
  172. UpdateWrapper<FinalInvalidStatue> updateWrapper3 = new UpdateWrapper<>();
  173. // Lambda表达式
  174. updateWrapper3.lambda().set(FinalInvalidStatue::getClaimText, fieldContent)
  175. .eq(FinalInvalidStatue::getClaimOrder, claimOrder3)
  176. .eq(FinalInvalidStatue::getProjectId, finalInvalidStatue3.getProjectId());
  177. this.update(updateWrapper3);
  178. break;
  179. case "statuteId":
  180. FinalInvalidStatue finalInvalidStatue4 = this.getById(invalidStatueId);
  181. finalInvalidStatue4.setStatuteId(Integer.parseInt(fieldContent));
  182. finalInvalidStatue4.updateById();
  183. }
  184. }
  185. public void removeFinalInvalidStatus(Integer projectId) {
  186. LambdaQueryWrapper<FinalInvalidStatue> queryWrapper = new LambdaQueryWrapper<>();
  187. queryWrapper.eq(FinalInvalidStatue::getProjectId, projectId);
  188. LambdaQueryWrapper<FinalProofGroup> queryWrapper1 = new LambdaQueryWrapper<>();
  189. queryWrapper1.eq(FinalProofGroup::getProjectId, projectId);
  190. this.remove(queryWrapper);
  191. finalProofGroupService.remove(queryWrapper1);
  192. }
  193. }