package cn.cslg.pas.service; import cn.cslg.pas.domain.PatentLicensor; import cn.cslg.pas.common.model.params.PatentLicensorParams; import cn.cslg.pas.mapper.PatentLicensorMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 专利信息许可人表 服务类 *

* * @author 王岩 * @since 2022-02-24 */ @Service @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class PatentLicensorService extends ServiceImpl { public List getPatentLicensorByPatentIds(List patentIds) { if (patentIds == null || patentIds.size() == 0) { return new ArrayList<>(); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(PatentLicensor::getPatentId, patentIds); return this.list(queryWrapper); } public void importPatentLicensor(Integer localPatentId, Integer importPatentId, List importPatentLicensorList) { this.deletePatentLicensorByPatentId(localPatentId); List patentLicensorList = importPatentLicensorList.stream().filter(item -> item.getPatentId().equals(importPatentId)).collect(Collectors.toList()); for (PatentLicensor patentLicensor : patentLicensorList) { patentLicensor.setId(null); patentLicensor.setPatentId(localPatentId); } this.saveOrUpdateBatch(patentLicensorList); } public void updatePatentLicensor(PatentLicensorParams patentLicensorParams) { if (patentLicensorParams.getLicensor() == null || patentLicensorParams.getLicensee() == null || patentLicensorParams.getType() == null) { return; } if (patentLicensorParams.getLicensor().size() == patentLicensorParams.getLicensee().size() && patentLicensorParams.getLicensee().size() == patentLicensorParams.getType().size() && patentLicensorParams.getType().size() != 0) { this.deletePatentLicensorByPatentId(patentLicensorParams.getPatentId()); List patentLicensorList = new ArrayList<>(); for (int i = 0; i < patentLicensorParams.getLicensor().size(); i++) { PatentLicensor patentLicensor = new PatentLicensor(); patentLicensor.setType(patentLicensorParams.getType().get(i)); patentLicensor.setLicensor(patentLicensorParams.getLicensor().get(i)); patentLicensor.setLicensee(patentLicensorParams.getLicensee().get(i)); patentLicensor.setPatentId(patentLicensorParams.getPatentId()); patentLicensorList.add(patentLicensor); } this.saveOrUpdateBatch(patentLicensorList); } } public void deletePatentLicensorByPatentId(Integer patentId) { this.remove(Wrappers.lambdaQuery().eq(PatentLicensor::getPatentId, patentId)); } }