PatentAffairService.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.common.core.base.Constants;
  3. import cn.cslg.pas.common.utils.StringUtils;
  4. import cn.cslg.pas.domain.Patent;
  5. import cn.cslg.pas.domain.PatentAffair;
  6. import cn.cslg.pas.domain.SystemDict;
  7. import cn.cslg.pas.common.utils.DateUtils;
  8. import cn.cslg.pas.mapper.PatentAffairMapper;
  9. import cn.cslg.pas.common.model.params.PatentAffairParams;
  10. import cn.cslg.pas.common.utils.PatentUtils;
  11. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  12. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import lombok.RequiredArgsConstructor;
  15. import org.springframework.context.annotation.Lazy;
  16. import org.springframework.stereotype.Service;
  17. import java.util.*;
  18. import java.util.stream.Collectors;
  19. /**
  20. * <p>
  21. * 专利信息事务信息表 服务类
  22. * </p>
  23. *
  24. * @author 王岩
  25. * @since 2022-02-24
  26. */
  27. @Service
  28. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  29. public class PatentAffairService extends ServiceImpl<PatentAffairMapper, PatentAffair> {
  30. private final SystemDictService systemDictService;
  31. private final PatentService patentService;
  32. public List<PatentAffair> getPatentAffairByPatentId(Integer patentId) {
  33. LambdaQueryWrapper<PatentAffair> queryWrapper = new LambdaQueryWrapper<>();
  34. queryWrapper.eq(PatentAffair::getPatentId, patentId);
  35. queryWrapper.orderByDesc(PatentAffair::getDateTime);
  36. List<PatentAffair> dataList = this.list(queryWrapper);
  37. List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Arrays.asList(Constants.PATENT_STATUS, Constants.PATENT_SIMPLE_STATUS));
  38. dataList.forEach(item -> {
  39. List<String> splitStr = StringUtils.changeStringToString(item.getContent(), "\\|");
  40. List<Map<String, Object>> lst = new ArrayList<>();
  41. for (int i = 0; i < splitStr.size(); i += 3) {
  42. PatentAffair.INPADOC inpadoc = new PatentAffair.INPADOC();
  43. Map<String, Object> map = new HashMap<>();
  44. map.put("发生日期", splitStr.get(i).trim());
  45. map.put("国家", splitStr.get(i + 2).trim());
  46. map.put("内容", splitStr.get(i + 1).trim());
  47. lst.add(map);
  48. }
  49. item.setInpadoc(lst);
  50. item.setCreateTime(DateUtils.formatDate(item.getDateTime(), DateUtils.YYYY_MM_DD));
  51. item.setCreateSimpleStatus(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.PATENT_SIMPLE_STATUS) && systemDict.getValue().equals(String.valueOf(item.getSimpleStatus()))).findFirst().orElse(new SystemDict()).getLabel());
  52. item.setCreateStatus(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.PATENT_STATUS) && systemDict.getValue().equals(String.valueOf(item.getStatus()))).findFirst().orElse(new SystemDict()).getLabel());
  53. });
  54. return dataList;
  55. }
  56. public List<PatentAffair> getPatentAffairListByPatentIds(List<Integer> patentIds) {
  57. if (patentIds == null || patentIds.size() == 0) {
  58. return new ArrayList<>();
  59. }
  60. LambdaQueryWrapper<PatentAffair> queryWrapper = new LambdaQueryWrapper<>();
  61. queryWrapper.in(PatentAffair::getPatentId, patentIds);
  62. return this.list(queryWrapper);
  63. }
  64. public void importPatentAffair(Patent localPatent, List<Patent> importPatentList, List<PatentAffair> importPatentAffairList) {
  65. this.deleteByPatentId(localPatent.getId());
  66. Patent importPatent = importPatentList.stream().filter(item -> item.getPatentNo().equals(localPatent.getPatentNo())).findFirst().orElse(new Patent());
  67. List<PatentAffair> importPatentAffairs = importPatentAffairList.stream().filter(item -> item.getPatentId().equals(importPatent.getId())).collect(Collectors.toList());
  68. for (PatentAffair patentAffair : importPatentAffairs) {
  69. patentAffair.setId(null);
  70. patentAffair.setPatentId(localPatent.getId());
  71. }
  72. this.saveOrUpdateBatch(importPatentAffairs);
  73. }
  74. public void updatePatientAffair(PatentAffairParams params) {
  75. if (params.getStatusList() != null) {
  76. this.deleteByPatentId(params.getPatentId());
  77. PatentAffair patentAffair = new PatentAffair();
  78. patentAffair.setPatentId(params.getPatentId());
  79. patentAffair.setStatus(params.getStatusList());
  80. patentAffair.setContent(params.getContent());
  81. patentAffair.setDateTime(params.getDateTime());
  82. patentAffair.setSimpleStatus(params.getSimpleStatus());
  83. this.saveOrUpdate(patentAffair);
  84. }
  85. }
  86. public void deleteByPatentId(Integer patentId) {
  87. this.remove(Wrappers.<PatentAffair>lambdaQuery().eq(PatentAffair::getPatentId, patentId));
  88. }
  89. }