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));
}
}