package cn.cslg.pas.service; import cn.cslg.pas.common.core.base.Constants; import cn.cslg.pas.common.model.dto.ClassNumberDTO; import cn.cslg.pas.common.model.params.PatentIpcMessageParams; import cn.cslg.pas.common.utils.PatentUtils; import cn.cslg.pas.domain.PatentClassNumber; import cn.cslg.pas.domain.PatentClassNumberLink; import cn.cslg.pas.mapper.PatentClassNumberMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; /** *

* 国际分类号表 服务类 *

* * @author 王岩 * @since 2022-02-24 */ @Service @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class PatentClassNumberService extends ServiceImpl { public final PatentClassNumberLinkService patentClassNumberLinkService; public PatentClassNumber getPatentClassNumberByCodeAndTypeAndLevel(Integer type, String code, Integer level) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PatentClassNumber::getCode, code); queryWrapper.eq(PatentClassNumber::getType, type); queryWrapper.eq(PatentClassNumber::getLevel, level); return this.getOne(queryWrapper); } public void updateMainIpcMessage(PatentIpcMessageParams params) { PatentClassNumberLink patentClassNumberLink = patentClassNumberLinkService.getPatentClassNumberLinkByPatentIdAndTypeAndMain(params.getPatentId(), Constants.PATENT_CLASS_NUMBER_IPC, 1); if (patentClassNumberLink != null) { ClassNumberDTO dto = PatentUtils.getClassNumberDTO(patentClassNumberLink.getCode(), Constants.PATENT_CLASS_NUMBER_IPC); PatentClassNumber level1 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getA(), 1); PatentClassNumber level2 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getB(), 2); PatentClassNumber level3 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getC(), 3); PatentClassNumber level4 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getD(), 4); PatentClassNumber level5 = this.getPatentClassNumberByCodeAndTypeAndLevel(Constants.PATENT_CLASS_NUMBER_IPC, dto.getE(), 5); if (level1 == null) { level1 = new PatentClassNumber(); level1.setLevel(1); level1.setCode(dto.getA()); level1.setType(Constants.PATENT_CLASS_NUMBER_IPC); level1.setParaphrase(params.getLevel1()); level1.insert(); } else { level1.setParaphrase(params.getLevel1()); level1.updateById(); } if (level2 == null) { level2 = new PatentClassNumber(); level2.setLevel(2); level2.setCode(dto.getB()); level2.setType(Constants.PATENT_CLASS_NUMBER_IPC); level2.setParaphrase(params.getLevel2()); level2.insert(); } else { level2.setParaphrase(params.getLevel2()); level2.updateById(); } if (level3 == null) { level3 = new PatentClassNumber(); level3.setLevel(3); level3.setCode(dto.getC()); level3.setType(Constants.PATENT_CLASS_NUMBER_IPC); level3.setParaphrase(params.getLevel3()); level3.insert(); } else { level3.setParaphrase(params.getLevel3()); level3.updateById(); } if (level4 == null) { level4 = new PatentClassNumber(); level4.setLevel(4); level4.setCode(dto.getD()); level4.setType(Constants.PATENT_CLASS_NUMBER_IPC); level4.setParaphrase(params.getLevel4()); level4.insert(); } else { level4.setParaphrase(params.getLevel4()); level4.updateById(); } if (level5 == null) { level5 = new PatentClassNumber(); level5.setLevel(5); level5.setCode(dto.getE()); level5.setType(Constants.PATENT_CLASS_NUMBER_IPC); level5.setParaphrase(params.getLevel5()); level5.insert(); } else { level5.setParaphrase(params.getLevel5()); level5.updateById(); } } } }