package cn.cslg.pas.service;
import cn.cslg.pas.domain.PatentApplicant;
import cn.cslg.pas.domain.PatentApplicantLink;
import cn.cslg.pas.mapper.PatentApplicantLinkMapper;
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;
/**
*
* 申请人属性表 服务类
*
*
* @author 王岩
* @since 2022-02-24
*/
@Service
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class PatentApplicantLinkService extends ServiceImpl {
private final PatentApplicantService patentApplicantService;
public List getPatentApplicantAttributesByPatentId(Integer patentId) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PatentApplicantLink::getPatentId, patentId);
return this.list(queryWrapper);
}
public List getApplicantAttributesListByPatentIds(List patentIds) {
if (patentIds == null || patentIds.size() == 0) {
return new ArrayList<>();
}
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(PatentApplicantLink::getPatentId, patentIds);
return this.list(queryWrapper);
}
public void updatePatentApplicantLink(List name, List shortName, Integer type, Integer patentId, List patentApplicantList) {
if (shortName == null) {
shortName = new ArrayList<>();
}
List applicableIds = patentApplicantService.updatePatentApplicant(name, shortName, patentApplicantList);
if (applicableIds.size() != 0) {
this.remove(Wrappers.lambdaQuery().eq(PatentApplicantLink::getPatentId, patentId).eq(PatentApplicantLink::getType, type));
for (int i = 0; i < applicableIds.size(); i++) {
PatentApplicantLink patentApplicantLink = new PatentApplicantLink();
patentApplicantLink.setApplicantId(applicableIds.get(i));
patentApplicantLink.setPatentId(patentId);
patentApplicantLink.setType(type);
patentApplicantLink.setOrder(i);
patentApplicantLink.insert();
}
}
}
public void deleteByPatentId(Integer patentId) {
this.remove(Wrappers.lambdaQuery().eq(PatentApplicantLink::getPatentId, patentId));
}
}