lrj 9 місяців тому
батько
коміт
cd00b9eec9

+ 1 - 1
src/main/java/cn/cslg/pas/common/config/ElasticSearchClientConfig.java

@@ -56,7 +56,7 @@ public class  ElasticSearchClientConfig {
         public ElasticsearchClient elasticsearchClient() throws Exception {
             RestClientBuilder builder = RestClient.builder(new HttpHost(config, 9200, "http"));
             CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
-            credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "Xiaoshi221101"));
+            credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "xiaoshi221101"));
             SSLContext sslContext = SSLContextBuilder.create()
                     .loadTrustMaterial(new TrustSelfSignedStrategy())
                     .build();

+ 12 - 0
src/main/java/cn/cslg/pas/common/model/report/QueryIprPersonDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.model.report;
+
+import lombok.Data;
+
+@Data
+public class QueryIprPersonDTO {
+    private String name;
+    private String email;
+    private Boolean ifDefault;
+    private Long size;
+    private Long current;
+}

+ 16 - 0
src/main/java/cn/cslg/pas/common/model/report/QueryIprPersonVO.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.common.model.report;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class QueryIprPersonVO {
+    private Integer id;
+    private String name;
+    private String email;
+    private Boolean ifDefault;
+    private String createId;
+    private String createName;
+    private Date createTime;
+}

+ 11 - 0
src/main/java/cn/cslg/pas/common/model/report/UpdateIprPersonDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.model.report;
+
+import lombok.Data;
+
+@Data
+public class UpdateIprPersonDTO {
+    private Integer id;
+    private String name;
+    private String email;
+    private Boolean ifDefault;
+}

+ 12 - 0
src/main/java/cn/cslg/pas/common/model/report/UpdateMatchCasePersonDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.model.report;
+
+import lombok.Data;
+
+@Data
+public class UpdateMatchCasePersonDTO {
+    private Integer id;
+    private String name;
+    private String email;
+    private Integer iprPersonId;
+    private Integer reportId;
+}

+ 64 - 0
src/main/java/cn/cslg/pas/controller/report/IprPersonController.java

@@ -0,0 +1,64 @@
+package cn.cslg.pas.controller.report;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.ComparedPatentDTO;
+import cn.cslg.pas.common.dto.ComparedPatentVO;
+import cn.cslg.pas.common.dto.business.GetFeatureSplitDTO;
+import cn.cslg.pas.common.dto.business.TortCompareRecordDTO;
+import cn.cslg.pas.common.dto.business.TortTaskDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.report.QueryIprPersonDTO;
+import cn.cslg.pas.common.model.report.UpdateIprPersonDTO;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.TortCompareRecordVO;
+import cn.cslg.pas.exception.ConditionException;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.business.FTOCompareRecordService;
+import cn.cslg.pas.service.business.ProjectTaskService;
+import cn.cslg.pas.service.report.IprPersonService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * FTOTort
+ *
+ * @Author xiexiang
+ * @Date 2023/12/8
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/report/iprPerson")
+@RestController
+public class IprPersonController {
+    @Autowired
+    private IprPersonService iprPersonService;
+
+    @Operation(summary = "添加或更新ipr人员信息")
+    @PostMapping("/update")
+    public Response update(@RequestBody UpdateIprPersonDTO updateIprPersonDTO) {
+        Integer id = iprPersonService.updateIprPerson(updateIprPersonDTO);
+        return Response.success(id);
+
+    }
+
+    @Operation(summary = "批量删除ipr人员信息")
+    @PostMapping("/delete")
+    public Response delete(@RequestBody List<Integer> ids) {
+        ids = iprPersonService.delete(ids);
+        return Response.success(ids);
+
+    }
+
+    @Operation(summary = "查询ipr人员信息")
+    @PostMapping("/query")
+    public Response query(@RequestBody QueryIprPersonDTO queryIprPersonDTO) {
+        Records records = iprPersonService.query(queryIprPersonDTO);
+        return Response.success(records);
+
+    }
+}

+ 65 - 0
src/main/java/cn/cslg/pas/controller/report/MatchCasePersonController.java

@@ -0,0 +1,65 @@
+package cn.cslg.pas.controller.report;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.ComparedPatentDTO;
+import cn.cslg.pas.common.dto.ComparedPatentVO;
+import cn.cslg.pas.common.dto.business.GetFeatureSplitDTO;
+import cn.cslg.pas.common.dto.business.TortCompareRecordDTO;
+import cn.cslg.pas.common.dto.business.TortTaskDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.report.QueryIprPersonDTO;
+import cn.cslg.pas.common.model.report.UpdateIprPersonDTO;
+import cn.cslg.pas.common.model.report.UpdateMatchCasePersonDTO;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.TortCompareRecordVO;
+import cn.cslg.pas.exception.ConditionException;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.business.FTOCompareRecordService;
+import cn.cslg.pas.service.business.ProjectTaskService;
+import cn.cslg.pas.service.report.IprPersonService;
+import cn.cslg.pas.service.report.MatchCasePersonService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * FTOTort
+ *
+ * @Author xiexiang
+ * @Date 2023/12/8
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/report/matchCasePerson")
+@RestController
+public class MatchCasePersonController {
+    @Autowired
+    private MatchCasePersonService matchCasePersonService;
+
+    @Operation(summary = "添加或更新ipr人员信息")
+    @PostMapping("/update")
+    public Response update(@RequestBody UpdateMatchCasePersonDTO updateMatchCasePersonDTO) {
+        return Response.success("id");
+
+    }
+
+    @Operation(summary = "批量删除ipr人员信息")
+    @PostMapping("/delete")
+    public Response delete(@RequestBody List<Integer> ids) {
+
+        return Response.success(ids);
+
+    }
+
+    @Operation(summary = "查询ipr人员信息")
+    @PostMapping("/query")
+    public Response query(@RequestBody QueryIprPersonDTO queryIprPersonDTO) {
+
+        return Response.success("queryIprPersonDTO");
+
+    }
+}

+ 32 - 0
src/main/java/cn/cslg/pas/domain/report/DefaultEmailPerson.java

@@ -0,0 +1,32 @@
+package cn.cslg.pas.domain.report;
+
+import cn.cslg.pas.domain.BaseEntity;
+import cn.cslg.pas.domain.business.novelty.AssoRetrieveRecordProject;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @TableName default_email_person
+ */
+@TableName(value ="default_email_person")
+@Data
+public class DefaultEmailPerson extends BaseEntity<DefaultEmailPerson> {
+    private String name;
+
+    private String email;
+
+    private Integer reportType;
+
+    private Integer tenantId;
+
+    private String createId;
+
+    private Date createTime;
+
+}

+ 26 - 0
src/main/java/cn/cslg/pas/domain/report/IprPerson.java

@@ -0,0 +1,26 @@
+package cn.cslg.pas.domain.report;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @TableName ipr_person
+ */
+@TableName(value = "ipr_person")
+@Data
+public class IprPerson extends BaseEntity<IprPerson> {
+
+    private String name;
+
+    private String email;
+
+    private Integer tenantId;
+
+    private String createId;
+
+    private Date createTime;
+    private Boolean ifDefault;
+}

+ 33 - 0
src/main/java/cn/cslg/pas/domain/report/MatchCasePerson.java

@@ -0,0 +1,33 @@
+package cn.cslg.pas.domain.report;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @TableName match_case_person
+ */
+@TableName(value = "match_case_person")
+@Data
+public class MatchCasePerson extends BaseEntity<MatchCasePerson> {
+
+
+    private String name;
+
+    private Integer iprPersonId;
+
+    private Integer reportId;
+
+    private String createId;
+
+    private String tenantId;
+
+    private Date createTime;
+
+}

+ 18 - 0
src/main/java/cn/cslg/pas/mapper/report/IprPersonMapper.java

@@ -0,0 +1,18 @@
+package cn.cslg.pas.mapper.report;
+
+import cn.cslg.pas.domain.report.IprPerson;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author admin
+* @description 针对表【ipr_person(IPR人员)】的数据库操作Mapper
+* @createDate 2024-12-24 13:52:34
+* @Entity cn.cslg.pas.domain.novelty.domain.IprPerson
+*/
+public interface IprPersonMapper extends BaseMapper<IprPerson> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/cn/cslg/pas/mapper/report/MatchCasePersonMapper.java

@@ -0,0 +1,18 @@
+package cn.cslg.pas.mapper.report;
+
+import cn.cslg.pas.domain.report.MatchCasePerson;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author admin
+* @description 针对表【match_case_person(配案人员)】的数据库操作Mapper
+* @createDate 2024-12-24 13:56:43
+* @Entity cn.cslg.pas.domain.MatchCasePerson
+*/
+public interface MatchCasePersonMapper extends BaseMapper<MatchCasePerson> {
+
+}
+
+
+
+

+ 164 - 0
src/main/java/cn/cslg/pas/service/report/IprPersonService.java

@@ -0,0 +1,164 @@
+package cn.cslg.pas.service.report;
+
+import cn.cslg.pas.common.model.cronModel.Personnel;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.report.QueryIprPersonDTO;
+import cn.cslg.pas.common.model.report.QueryIprPersonVO;
+import cn.cslg.pas.common.model.report.UpdateIprPersonDTO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.exception.ExceptionEnum;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.permissions.PermissionService;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+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 cn.cslg.pas.domain.report.IprPerson;
+import cn.cslg.pas.mapper.report.IprPersonMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.transaction.xa.XAException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author admin
+ * @description 针对表【ipr_person(IPR人员)】的数据库操作Service实现
+ * @createDate 2024-12-24 13:52:34
+ */
+@Service
+@RequiredArgsConstructor
+public class IprPersonService extends ServiceImpl<IprPersonMapper, IprPerson> {
+    private final LoginUtils loginUtils;
+    private final CacheUtils cacheUtils;
+    private final PermissionService permissionService;
+
+    public Integer updateIprPerson(UpdateIprPersonDTO updateIprPersonDTO) {
+        Integer id = updateIprPersonDTO.getId();
+        IprPerson iprPerson = new IprPerson();
+        if (id == null) {
+            iprPerson = this.addIprPersonDB(updateIprPersonDTO);
+        } else {
+            iprPerson = this.updateIprPersonDB(updateIprPersonDTO);
+        }
+        return iprPerson.getId();
+    }
+
+    public IprPerson addIprPersonDB(UpdateIprPersonDTO updateIprPersonDTO) {
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        String personId = personnelVO.getId();
+        Integer tenantId = personnelVO.getTenantId();
+        IprPerson iprPerson = new IprPerson();
+        BeanUtils.copyProperties(updateIprPersonDTO, iprPerson);
+        iprPerson.setCreateId(personId);
+        iprPerson.setTenantId(tenantId);
+        iprPerson.setId(null);
+        iprPerson.insert();
+        return iprPerson;
+    }
+
+    public IprPerson updateIprPersonDB(UpdateIprPersonDTO updateIprPersonDTO) {
+        Integer id = updateIprPersonDTO.getId();
+        IprPerson iprPerson = this.getById(id);
+        if (iprPerson == null) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "ipr人员不存在");
+        }
+        iprPerson.setName(updateIprPersonDTO.getName());
+        iprPerson.setEmail(updateIprPersonDTO.getEmail());
+        iprPerson.setIfDefault(updateIprPersonDTO.getIfDefault());
+        iprPerson.updateById();
+        return iprPerson;
+    }
+
+
+    public List<Integer> delete(List<Integer> ids) {
+        if (ids == null || ids.size() == 0) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "请选择至少一条数据进行删除");
+        }
+        this.removeBatchByIds(ids);
+        return ids;
+    }
+
+
+    public Records query(QueryIprPersonDTO queryIprPersonDTO) {
+        Records records = new Records();
+        List<IprPerson> iprPersonList = new ArrayList<>();
+        String name = queryIprPersonDTO.getName();
+        String email = queryIprPersonDTO.getEmail();
+        Boolean ifDefault = queryIprPersonDTO.getIfDefault();
+        Long current = queryIprPersonDTO.getCurrent();
+        Long size = queryIprPersonDTO.getSize();
+        records.setCurrent(current);
+        records.setSize(size);
+
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        Integer tenantId = personnelVO.getTenantId();
+        LambdaQueryWrapper<IprPerson> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(IprPerson::getTenantId, tenantId);
+        if (name != null && !name.trim().equals("")) {
+            queryWrapper.like(IprPerson::getName, name);
+        }
+        if (email != null && !email.trim().equals("")) {
+            queryWrapper.like(IprPerson::getEmail, email);
+        }
+        if (ifDefault != null) {
+            queryWrapper.eq(IprPerson::getIfDefault, ifDefault);
+        }
+        queryWrapper.orderByDesc(IprPerson::getCreateTime);
+
+        if (current != null && size != null) {
+            IPage<IprPerson> iprPersonIPage = this.page(new Page<>(current, size), queryWrapper);
+            Long total = iprPersonIPage.getTotal();
+            iprPersonList = iprPersonIPage.getRecords();
+            records.setData(iprPersonList);
+            records.setTotal(total);
+        } else {
+            iprPersonList = this.list(queryWrapper);
+        }
+        List<QueryIprPersonVO> queryIprPersonVOS = this.loadQueryIprPersonVO(iprPersonList);
+        records.setData(queryIprPersonVOS);
+        return records;
+    }
+
+    private List<QueryIprPersonVO> loadQueryIprPersonVO(List<IprPerson> iprPersonList) {
+        List<QueryIprPersonVO> queryIprPersonVOS = new ArrayList<>();
+        if (iprPersonList == null || iprPersonList.size() == 0) {
+            return queryIprPersonVOS;
+        }
+        List<Personnel> personnels = new ArrayList<>();
+        List<String> createIds = iprPersonList.stream().map(IprPerson::getCreateId).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(createIds)) {
+            try {
+                String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+                JSONObject jsonObject = JSON.parseObject(res);
+                personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+            } catch (Exception e) {
+            }
+        }
+
+
+        for (IprPerson iprPerson : iprPersonList) {
+            QueryIprPersonVO queryIprPersonVO = new QueryIprPersonVO();
+            BeanUtils.copyProperties(iprPerson, queryIprPersonVO);
+            Personnel personnel = personnels.stream().filter(item -> item.getId().equals(iprPerson.getCreateId())).findFirst().orElse(null);
+            if (personnel != null) {
+                queryIprPersonVO.setCreateName(personnel.getPersonnelName());
+            }
+            queryIprPersonVOS.add(queryIprPersonVO);
+        }
+        return queryIprPersonVOS;
+    }
+}
+
+
+
+

+ 34 - 0
src/main/java/cn/cslg/pas/service/report/MatchCasePersonService.java

@@ -0,0 +1,34 @@
+package cn.cslg.pas.service.report;
+
+import cn.cslg.pas.common.model.report.UpdateMatchCasePersonDTO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.cslg.pas.domain.report.MatchCasePerson;
+import cn.cslg.pas.mapper.report.MatchCasePersonMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author admin
+ * @description 针对表【match_case_person(配案人员)】的数据库操作Service实现
+ * @createDate 2024-12-24 13:56:43
+ */
+@Service
+public class MatchCasePersonService extends ServiceImpl<MatchCasePersonMapper, MatchCasePerson> {
+
+    public void updateMatchCasePerson(UpdateMatchCasePersonDTO updateMatchCasePersonDTO) {
+
+
+    }
+
+    public MatchCasePerson getReportMatchCasePerson(Integer reportId) {
+        LambdaQueryWrapper<MatchCasePerson> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(MatchCasePerson::getReportId, reportId);
+        MatchCasePerson matchCasePerson = this.getOne(queryWrapper, false);
+        return matchCasePerson;
+
+    }
+}
+
+
+
+

+ 20 - 0
src/main/resources/mapper/report/IprPersonMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.cslg.pas.mapper.report.IprPersonMapper">
+
+    <resultMap id="BaseResultMap" type="cn.cslg.pas.domain.report.IprPerson">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="email" column="email" jdbcType="VARCHAR"/>
+            <result property="tenantId" column="tenant_id" jdbcType="INTEGER"/>
+            <result property="createId" column="create_id" jdbcType="INTEGER"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,email,
+        tenant_id,create_id,create_time
+    </sql>
+</mapper>

+ 22 - 0
src/main/resources/mapper/report/MatchCasePersonMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.cslg.pas.mapper.report.MatchCasePersonMapper">
+
+    <resultMap id="BaseResultMap" type="cn.cslg.pas.domain.report.MatchCasePerson">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="iprPersonId" column="ipr_person_id" jdbcType="INTEGER"/>
+            <result property="reportId" column="report_id" jdbcType="INTEGER"/>
+            <result property="createId" column="create_id" jdbcType="VARCHAR"/>
+            <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,ipr_person_id,
+        report_id,create_id,tenant_id,
+        create_time
+    </sql>
+</mapper>