PatentClassNumberService.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.common.core.base.Constants;
  3. import cn.cslg.pas.common.model.dto.ClassNumberDTO;
  4. import cn.cslg.pas.common.model.params.PatentIpcMessageParams;
  5. import cn.cslg.pas.common.utils.PatentUtils;
  6. import cn.cslg.pas.domain.PatentClassNumber;
  7. import cn.cslg.pas.domain.PatentClassNumberLink;
  8. import cn.cslg.pas.mapper.PatentClassNumberMapper;
  9. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  10. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  11. import lombok.RequiredArgsConstructor;
  12. import org.springframework.context.annotation.Lazy;
  13. import org.springframework.stereotype.Service;
  14. /**
  15. * <p>
  16. * 国际分类号表 服务类
  17. * </p>
  18. *
  19. * @author 王岩
  20. * @since 2022-02-24
  21. */
  22. @Service
  23. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  24. public class PatentClassNumberService extends ServiceImpl<PatentClassNumberMapper, PatentClassNumber> {
  25. public final PatentClassNumberLinkService patentClassNumberLinkService;
  26. public PatentClassNumber getPatentClassNumberByCodeAndTypeAndLevel(Integer type, String code, Integer level) {
  27. LambdaQueryWrapper<PatentClassNumber> queryWrapper = new LambdaQueryWrapper<>();
  28. queryWrapper.eq(PatentClassNumber::getCode, code);
  29. queryWrapper.eq(PatentClassNumber::getType, type);
  30. queryWrapper.eq(PatentClassNumber::getLevel, level);
  31. return this.getOne(queryWrapper);
  32. }
  33. public void updateMainIpcMessage(PatentIpcMessageParams params) {
  34. PatentClassNumberLink patentClassNumberLink = patentClassNumberLinkService.getPatentClassNumberLinkByPatentIdAndTypeAndMain(params.getPatentId(), Constants.PATENT_CLASS_NUMBER_IPC, 1);
  35. if (patentClassNumberLink != null) {
  36. ClassNumberDTO dto = PatentUtils.getClassNumberDTO(patentClassNumberLink.getCode(), Constants.PATENT_CLASS_NUMBER_IPC);
  37. PatentClassNumber level1 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getA(), 1);
  38. PatentClassNumber level2 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getB(), 2);
  39. PatentClassNumber level3 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getC(), 3);
  40. PatentClassNumber level4 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getD(), 4);
  41. PatentClassNumber level5 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getE(), 5);
  42. if (level1 == null) {
  43. level1 = new PatentClassNumber();
  44. level1.setLevel(1);
  45. level1.setCode(dto.getA());
  46. level1.setType(Constants.PATENT_CLASS_NUMBER_IPC);
  47. level1.setParaphrase(params.getLevel1());
  48. level1.insert();
  49. } else {
  50. level1.setParaphrase(params.getLevel1());
  51. level1.updateById();
  52. }
  53. if (level2 == null) {
  54. level2 = new PatentClassNumber();
  55. level2.setLevel(2);
  56. level2.setCode(dto.getB());
  57. level2.setType(Constants.PATENT_CLASS_NUMBER_IPC);
  58. level2.setParaphrase(params.getLevel2());
  59. level2.insert();
  60. } else {
  61. level2.setParaphrase(params.getLevel2());
  62. level2.updateById();
  63. }
  64. if (level3 == null) {
  65. level3 = new PatentClassNumber();
  66. level3.setLevel(3);
  67. level3.setCode(dto.getC());
  68. level3.setType(Constants.PATENT_CLASS_NUMBER_IPC);
  69. level3.setParaphrase(params.getLevel3());
  70. level3.insert();
  71. } else {
  72. level3.setParaphrase(params.getLevel3());
  73. level3.updateById();
  74. }
  75. if (level4 == null) {
  76. level4 = new PatentClassNumber();
  77. level4.setLevel(4);
  78. level4.setCode(dto.getD());
  79. level4.setType(Constants.PATENT_CLASS_NUMBER_IPC);
  80. level4.setParaphrase(params.getLevel4());
  81. level4.insert();
  82. } else {
  83. level4.setParaphrase(params.getLevel4());
  84. level4.updateById();
  85. }
  86. if (level5 == null) {
  87. level5 = new PatentClassNumber();
  88. level5.setLevel(5);
  89. level5.setCode(dto.getE());
  90. level5.setType(Constants.PATENT_CLASS_NUMBER_IPC);
  91. level5.setParaphrase(params.getLevel5());
  92. level5.insert();
  93. } else {
  94. level5.setParaphrase(params.getLevel5());
  95. level5.updateById();
  96. }
  97. }
  98. }
  99. }