zero 1 year ago
parent
commit
a796abcf38

+ 21 - 0
src/main/java/cn/cslg/pas/common/dto/MergePersonQueryDTO.java

@@ -0,0 +1,21 @@
+package cn.cslg.pas.common.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MergePersonQueryDTO {
+
+    private Integer id;
+
+    private String name;
+
+    private String country;
+
+    private String address;
+
+    private String remark;
+
+    private Date createTime;
+}

+ 10 - 0
src/main/java/cn/cslg/pas/common/vo/business/MergePersonIdVO.java

@@ -0,0 +1,10 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class MergePersonIdVO {
+
+    private Integer id;
+
+}

+ 15 - 0
src/main/java/cn/cslg/pas/common/vo/business/MergePersonQueryVO.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class MergePersonQueryVO {
+
+    private String name;
+
+    private String country;
+
+    private Integer pageNum;
+
+    private Integer pageSize;
+}

+ 50 - 0
src/main/java/cn/cslg/pas/common/vo/business/MergePersonVO.java

@@ -0,0 +1,50 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class MergePersonVO {
+    /**
+     * id
+     */
+    private Integer id;
+    /**
+     * 专题库id
+     */
+    private Integer projectId;
+    /**
+     * 类型
+     * 0 申请人
+     * 1 权利人
+     * 2 发明人
+     */
+    private Integer type;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 被合并的名称
+     */
+    private String mergedName;
+    /**
+     * 简称
+     */
+    private String abbreviation;
+    /**
+     * 地址国家
+     */
+    private String country;
+    /**
+     * 地址省份
+     */
+    private String province;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 34 - 10
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -1,25 +1,18 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
-import cn.cslg.pas.common.dto.PatentDTO;
 import cn.cslg.pas.common.dto.PatentDetailDTO;
 import cn.cslg.pas.common.dto.PatentKinDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
-import cn.cslg.pas.common.dto.es.EsCustomFieldValueDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
-import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.Response;
-import cn.cslg.pas.common.vo.PatentPageMessageVO;
-import cn.cslg.pas.common.vo.business.EsAllCountVO;
-import cn.cslg.pas.common.vo.business.EsCountVO;
-import cn.cslg.pas.common.vo.business.PatentKinVO;
-import cn.cslg.pas.common.vo.business.PatentNoVO;
+import cn.cslg.pas.common.vo.business.*;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import cn.cslg.pas.service.business.MergePersonService;
 import cn.cslg.pas.service.business.es.EsCountService;
 import cn.cslg.pas.service.business.es.EsPatentService;
-import cn.cslg.pas.service.business.es.EsService;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -42,6 +35,9 @@ public class PatentController {
     @Autowired
     private EsPatentService patentService;
 
+    @Autowired
+    private MergePersonService mergePersonService;
+
 
     @Operation(summary = "查询专利")
     @PostMapping("/queryPatent")
@@ -68,7 +64,7 @@ public class PatentController {
     @Operation(summary = "查询分页信息")
     @PostMapping("/getPatentPageMessage")
     public Response getPatentPageMessage(@RequestBody StringRequest stringRequest) throws Exception {
-    Records records= patentService.getPatentPageMessage(stringRequest);
+        Records records = patentService.getPatentPageMessage(stringRequest);
         return Response.success(records);
     }
 
@@ -79,4 +75,32 @@ public class PatentController {
         return Response.success(dto);
     }
 
+    //------------------------合并-----------------------------
+    @Operation(summary = "专利列表上新增发明人/权利人/申请人合并")
+    @PostMapping("/mergePerson")
+    public Response mergePerson(@RequestBody MergePersonVO personVO) {
+        Integer personId = mergePersonService.mergePerson(personVO);
+        return Response.success(personId);
+    }
+
+    @Operation(summary = "专利列表上编辑发明人/权利人/申请人合并")
+    @PostMapping("/updateMergePerson")
+    public Response updateMergePerson(@RequestBody MergePersonVO personVO) {
+        Integer personId = mergePersonService.updateMergePerson(personVO);
+        return Response.success(personId);
+    }
+
+    @Operation(summary = "发明人/权利人/申请人合并列表查询")
+    @PostMapping("/selectMergePerson")
+    public Response selectMergePerson(@RequestBody MergePersonQueryVO vo) {
+        Records records = mergePersonService.selectMergePersonList(vo);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "发明人/权利人/申请人合并记录删除")
+    @PostMapping("/delMergePerson")
+    public Response delMergePerson(@RequestBody MergePersonIdVO vo) {
+        Integer id = mergePersonService.delMergePerson(vo);
+        return Response.success(id);
+    }
 }

+ 77 - 0
src/main/java/cn/cslg/pas/domain/business/MergePerson.java

@@ -0,0 +1,77 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 合并人员信息类
+ * @Author xiexiang
+ * @Date 2023/10/26
+ */
+@Data
+@TableName("merge_person")
+public class MergePerson extends BaseEntity<MergePerson> {
+    /**
+     * 专题库id
+     */
+    @TableField(value = "project_id")
+    private Integer projectId;
+    /**
+     * 类型
+     * 0 申请人
+     * 1 权利人
+     * 2 发明人
+     */
+    @TableField(value = "type")
+    private Integer type;
+    /**
+     * 名称
+     */
+    @TableField(value = "name")
+    private String name;
+    /**
+     * 被合并的名称
+     */
+    @TableField(value = "merged_name")
+    private String mergedName;
+    /**
+     * 简称
+     */
+    @TableField(value = "abbreviation")
+    private String abbreviation;
+    /**
+     * 地址国家
+     */
+    @TableField(value = "country")
+    private String country;
+    /**
+     * 地址省份
+     */
+    @TableField(value = "province")
+    private String province;
+    /**
+     * 地址
+     */
+    @TableField(value = "address")
+    private String address;
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_id")
+    private String createId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+}

+ 21 - 0
src/main/java/cn/cslg/pas/mapper/MergePersonMapper.java

@@ -0,0 +1,21 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.common.vo.business.MergePersonQueryVO;
+import cn.cslg.pas.domain.business.MergePerson;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 合并人员信息mapper
+ * @Author zero
+ * @Date 2023/11/7
+ */
+@Repository
+public interface MergePersonMapper extends BaseMapper<MergePerson> {
+
+    List<MergePerson> selectMergePersonList(@Param("page") IPage<MergePerson> page, @Param("vo") MergePersonQueryVO vo);
+}

+ 121 - 0
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -0,0 +1,121 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.common.dto.MergePersonQueryDTO;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.business.MergePersonIdVO;
+import cn.cslg.pas.common.vo.business.MergePersonQueryVO;
+import cn.cslg.pas.common.vo.business.MergePersonVO;
+import cn.cslg.pas.domain.BaseEntity;
+import cn.cslg.pas.domain.business.FollowUp;
+import cn.cslg.pas.domain.business.MergePerson;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.mapper.MergePersonMapper;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.PageUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/01/02
+ */
+@Slf4j
+@Service
+public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePerson> {
+    @Autowired
+    private CacheUtils cacheUtils;
+    @Autowired
+    private LoginUtils loginUtils;
+    @Autowired
+    private MergePersonMapper mergePersonMapper;
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
+    public Integer mergePerson(MergePersonVO vo) {
+        //获取登陆人信息 用于设置创建人
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        MergePerson person = new MergePerson();
+        BeanUtils.copyProperties(vo, person);
+        person.setCreateId(personnelVO.getId());
+        person.setCreateTime(new Date());
+        person.insert();
+        //todo  关联相关专利
+
+        return person.getId();
+    }
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
+    public Integer updateMergePerson(MergePersonVO vo) {
+        //获取登陆人信息 用于设置创建人
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        MergePerson person = this.getById(vo.getId());
+        if (ObjectUtil.isNotEmpty(person)) {
+            BeanUtils.copyProperties(vo, person);
+            person.setCreateId(personnelVO.getId());
+            person.setCreateTime(new Date());
+            person.updateById();
+            //todo  关联相关专利
+        } else {
+            person = new MergePerson();
+        }
+        return person.getId();
+    }
+
+    public Records selectMergePersonList(MergePersonQueryVO vo) {
+        List<MergePersonQueryDTO> list = new ArrayList<>();
+        IPage<MergePerson> page = new Page<>(vo.getPageNum(), vo.getPageSize());
+        LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
+                .eq(StringUtils.isNotEmpty(vo.getCountry()), MergePerson::getCountry, vo.getCountry())
+                .like(StringUtils.isNotEmpty(vo.getName()), MergePerson::getName, vo.getName());
+        IPage<MergePerson> record = mergePersonMapper.selectPage(page, wrapper);
+        for (MergePerson person : record.getRecords()) {
+            MergePersonQueryDTO dto = new MergePersonQueryDTO();
+            dto.setId(person.getId());
+            dto.setName(person.getName());
+            dto.setAddress(person.getAddress());
+            dto.setCountry(person.getCountry());
+            dto.setRemark(person.getRemark());
+            dto.setCreateTime(person.getCreateTime());
+            list.add(dto);
+        }
+        Records records = new Records();
+        records.setCurrent(record.getCurrent());
+        records.setSize(record.getSize());
+        records.setData(list);
+        records.setTotal(record.getTotal());
+        return records;
+    }
+
+    public Integer delMergePerson(MergePersonIdVO vo) {
+        LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
+                .eq(BaseEntity::getId, vo.getId());
+        this.remove(wrapper);
+        return vo.getId();
+    }
+}

+ 5 - 0
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -921,6 +921,11 @@ public class EsService {
         return dto;
     }
 
+    /**
+     * 装载摘要附图
+     * @param patentColumnDTOS
+     * @return
+     */
     public List<PatentColumnDTO> loadCoulumnDTO(List<PatentColumnDTO> patentColumnDTOS) {
         patentColumnDTOS.forEach(item -> {
             item.setPictureGuid(FormatUtil.getPictureFormat(item.getAppNo()));