Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

lwhhszx před 1 rokem
rodič
revize
67b75ee97c

+ 8 - 0
src/main/java/cn/cslg/pas/common/dto/customAnalyse/SelectCustomAnalyseDTO.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.common.dto.customAnalyse;
+
+import lombok.Data;
+
+@Data
+public class SelectCustomAnalyseDTO {
+
+}

+ 16 - 0
src/main/java/cn/cslg/pas/common/dto/customAnalyse/SelectCustomAnalyseListDTO.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.common.dto.customAnalyse;
+
+
+import lombok.Data;
+
+@Data
+public class SelectCustomAnalyseListDTO {
+
+    private String name;
+
+    private Integer permissions;
+
+    private Integer sort;
+
+    private Integer type;
+}

+ 11 - 0
src/main/java/cn/cslg/pas/common/vo/customAnalyse/CustomAnalyseIdVO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.vo.customAnalyse;
+
+import lombok.Data;
+
+@Data
+public class CustomAnalyseIdVO {
+
+    private Integer id;
+
+    private Integer type;
+}

+ 26 - 0
src/main/java/cn/cslg/pas/common/vo/customAnalyse/CustomAnalyseVO.java

@@ -0,0 +1,26 @@
+package cn.cslg.pas.common.vo.customAnalyse;
+
+
+import lombok.Data;
+
+@Data
+public class CustomAnalyseVO {
+
+    private Integer id;
+
+    private String name;
+
+    private Integer parentId;
+
+    //1系统公有   2系统私有  3数据库公有  4数据库私有
+    private Integer permissions;
+
+    private Integer projectId;
+
+    private Integer sort;
+
+    //类型 1组别  2分析项
+    private Integer type;
+
+    private Integer status;
+}

+ 17 - 0
src/main/java/cn/cslg/pas/common/vo/customAnalyse/SelectAnalyseVO.java

@@ -0,0 +1,17 @@
+package cn.cslg.pas.common.vo.customAnalyse;
+
+import lombok.Data;
+
+@Data
+public class SelectAnalyseVO {
+
+    private Integer projectId;
+
+    private Integer type;
+
+    private Integer tenantId;
+
+    private String creatorId;
+
+
+}

+ 11 - 0
src/main/java/cn/cslg/pas/common/vo/customAnalyse/SelectCustomAnalyseVO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.vo.customAnalyse;
+
+import lombok.Data;
+
+@Data
+public class SelectCustomAnalyseVO {
+
+    private Integer projectId;
+
+    private Integer type;
+}

+ 61 - 0
src/main/java/cn/cslg/pas/controller/CustomAnalyseController.java

@@ -0,0 +1,61 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseDTO;
+import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseIdVO;
+import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseVO;
+import cn.cslg.pas.common.vo.customAnalyse.SelectCustomAnalyseVO;
+import cn.cslg.pas.service.business.CustomAnalyseService;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RequestMapping(Constants.API_XiaoSHI + "/customAnalyse")
+@RestController
+public class CustomAnalyseController {
+
+    @Autowired
+    private CustomAnalyseService customAnalyseService;
+
+    @Operation(summary = "查询组别")
+    @PostMapping("/queryAnalyseGroup")
+    public Response queryAnalyseGroup(@RequestBody SelectCustomAnalyseVO vo) {
+        List<SelectCustomAnalyseListDTO> list = customAnalyseService.queryAnalyseGroup(vo);
+        return Response.success(list);
+    }
+
+    @Operation(summary = "查询组别详情")
+    @PostMapping("/queryAnalyseGroupDetail")
+    public Response queryAnalyseGroupDetail(@RequestBody CustomAnalyseIdVO vo) {
+        SelectCustomAnalyseDTO dto = customAnalyseService.queryAnalyseGroupDetail(vo);
+        return Response.success(dto);
+    }
+
+    @Operation(summary = "添加组别")
+    @PostMapping("/addAnalyseGroup")
+    public Response addAnalyseGroup(@RequestBody CustomAnalyseVO vo) {
+        Integer groupId = customAnalyseService.addAnalyseGroup(vo);
+        return Response.success(groupId);
+    }
+
+    @Operation(summary = "编辑组别")
+    @PostMapping("/editAnalyseGroup")
+    public Response editAnalyseGroup(@RequestBody CustomAnalyseVO vo) {
+        Integer groupId = customAnalyseService.editAnalyseGroup(vo);
+        return Response.success(groupId);
+    }
+
+    @Operation(summary = "删除组别")
+    @PostMapping("/delAnalyseGroup")
+    public Response delAnalyseGroup(@RequestBody CustomAnalyseIdVO vo) {
+        Integer groupId = customAnalyseService.delAnalyseGroup(vo);
+        return Response.success(groupId);
+    }
+}

+ 1 - 0
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -19,6 +19,7 @@ import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.common.vo.es.EsCustomFieldBatchVO;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import cn.cslg.pas.service.business.CustomAnalyseService;
 import cn.cslg.pas.service.business.PDFExportFirstPageService;
 import cn.cslg.pas.service.business.PatentExportService;
 import cn.cslg.pas.service.business.MergePersonService;

+ 55 - 0
src/main/java/cn/cslg/pas/domain/business/CustomAnalysisItem.java

@@ -0,0 +1,55 @@
+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 zero
+ * @Date 2024/01/12
+ */
+@Data
+@TableName("os_custom_analysis_item")
+public class CustomAnalysisItem extends BaseEntity<CustomAnalysisItem> {
+
+    @TableField(value = "name")
+    private String name;
+
+    @TableField(value = "parent_id")
+    private Integer parentId;
+
+    @TableField(value = "permissions")
+    private Integer permissions;
+
+    @TableField(value = "project_id")
+    private Integer projectId;
+
+    @TableField(value = "tenant_id")
+    private Integer tenantId;
+
+    @TableField(value = "sort")
+    private Integer sort;
+
+    @TableField(value = "type")
+    private Integer type;
+
+    @TableField(value = "status")
+    private Integer status;
+
+    @TableField(value = "creator_id")
+    private String creatorId;
+
+    @TableField(value = "creator")
+    private String creator;
+
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @TableField(value = "update_time")
+    private Date updateTime;
+}

+ 53 - 0
src/main/java/cn/cslg/pas/domain/business/CustomAnalysisItemSchema.java

@@ -0,0 +1,53 @@
+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 zero
+ * @Date 2024/01/12
+ */
+@Data
+@TableName("os_custom_analysis_item_schema")
+public class CustomAnalysisItemSchema extends BaseEntity<CustomAnalysisItemSchema> {
+
+    @TableField(value = "dimension")
+    private String dimension;
+
+    @TableField(value = "field")
+    private Integer field;
+
+    @TableField(value = "expand")
+    private Integer expand;
+
+    @TableField(value = "type")
+    private Integer type;
+
+    @TableField(value = "ptype")
+    private Integer ptype;
+
+    @TableField(value = "num")
+    private Integer num;
+
+    @TableField(value = "status")
+    private Integer status;
+
+    @TableField(value = "creator_id")
+    private Integer creatorId;
+
+    @TableField(value = "creator")
+    private String creator;
+
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+}

+ 3 - 2
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildCountAnalysisBuilder.java

@@ -36,7 +36,8 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
         if (ifHaveChild) {
 
             if (!CollectionUtils.isEmpty(values)) {
-                termAgg = AggregationBuilders.terms(i -> i.field(field).include(j -> j.terms(values)).size(topN));
+                termAgg = AggregationBuilders.terms(i -> i.field("custom_field.stats_value.raw").include(j -> j.terms(values)).size(topN));
+//                termAgg = AggregationBuilders.terms(i -> i.field(field).include(j -> j.terms(values)).size(topN));
             } else {
                 if (StringUtils.isNotEmpty(valueOne) && StringUtils.isEmpty(valueTwo)) {
                     String str = "*";
@@ -58,7 +59,7 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
             }
         } else {
             if (!CollectionUtils.isEmpty(values)) {
-                termAgg = AggregationBuilders.terms(i -> i.field(field).include(j -> j.terms(values)).size(topN));
+                termAgg = AggregationBuilders.terms(i -> i.field("custom_field.field_value.raw").include(j -> j.terms(values)).size(topN));
             } else {
                 if (StringUtils.isNotEmpty(valueOne) && StringUtils.isEmpty(valueTwo)) {
                     String str = "*";

+ 23 - 0
src/main/java/cn/cslg/pas/mapper/CustomAnalysisItemMapper.java

@@ -0,0 +1,23 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO;
+import cn.cslg.pas.common.vo.customAnalyse.SelectAnalyseVO;
+import cn.cslg.pas.common.vo.customAnalyse.SelectCustomAnalyseVO;
+import cn.cslg.pas.domain.business.CustomAnalysisItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 自定义分析项目mapper
+ * @Author zero
+ * @Date 2024/01/12
+ */
+@Repository
+public interface CustomAnalysisItemMapper extends BaseMapper<CustomAnalysisItem> {
+
+    public List<SelectCustomAnalyseListDTO> queryAnalyseGroup(@Param("vo") SelectAnalyseVO vo);
+
+}

+ 14 - 0
src/main/java/cn/cslg/pas/mapper/CustomAnalysisItemSchemaMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.CustomAnalysisItemSchema;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 自定义分析项目维度数据mapper
+ * @Author zero
+ * @Date 2024/01/12
+ */
+@Repository
+public interface CustomAnalysisItemSchemaMapper extends BaseMapper<CustomAnalysisItemSchema> {
+}

+ 119 - 0
src/main/java/cn/cslg/pas/service/business/CustomAnalyseService.java

@@ -0,0 +1,119 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseDTO;
+import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseIdVO;
+import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseVO;
+import cn.cslg.pas.common.vo.customAnalyse.SelectAnalyseVO;
+import cn.cslg.pas.common.vo.customAnalyse.SelectCustomAnalyseVO;
+import cn.cslg.pas.domain.business.CustomAnalysisItem;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.mapper.CustomAnalysisItemMapper;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 自定义分析项目Service层
+ *
+ * @Author zero
+ * @Date 2024/01/12
+ */
+@Service
+public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper, CustomAnalysisItem> {
+
+    @Autowired
+    private CacheUtils cacheUtils;
+
+    @Autowired
+    private LoginUtils loginUtils;
+
+    @Autowired
+    private CustomAnalysisItemMapper customAnalysisItemMapper;
+
+    public List<SelectCustomAnalyseListDTO> queryAnalyseGroup(SelectCustomAnalyseVO vo) {
+        List<SelectCustomAnalyseListDTO> list = new ArrayList<>();
+        //获取登陆人信息 用于设置创建人
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+
+        SelectAnalyseVO analyseVO = new SelectAnalyseVO();
+        analyseVO.setProjectId(vo.getProjectId());
+        analyseVO.setType(vo.getType());
+        analyseVO.setTenantId(personnelVO.getTenantId());
+        analyseVO.setCreatorId(personnelVO.getId());
+        customAnalysisItemMapper.queryAnalyseGroup(analyseVO);
+        return list;
+    }
+
+
+    public SelectCustomAnalyseDTO queryAnalyseGroupDetail(CustomAnalyseIdVO vo) {
+        SelectCustomAnalyseDTO dto = new SelectCustomAnalyseDTO();
+        CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
+        if (ObjectUtil.isNotEmpty(item)) {
+            BeanUtils.copyProperties(item, dto);
+        }
+        return dto;
+    }
+
+    public Integer addAnalyseGroup(CustomAnalyseVO vo) {
+
+        //获取登陆人信息 用于设置创建人
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+
+        CustomAnalysisItem item = new CustomAnalysisItem();
+        BeanUtils.copyProperties(vo, item);
+        item.setTenantId(personnelVO.getTenantId());
+        item.setCreatorId(personnelVO.getId());
+        item.setCreator(personnelVO.getName());
+        item.setCreateTime(new Date());
+        item.setUpdateTime(new Date());
+        item.insert();
+        return item.getId();
+    }
+
+    public Integer editAnalyseGroup(CustomAnalyseVO vo) {
+
+        //获取登陆人信息 用于设置创建人
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+
+        CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
+        BeanUtils.copyProperties(vo, item);
+        item.setTenantId(personnelVO.getTenantId());
+        item.setCreatorId(personnelVO.getId());
+        item.setCreator(personnelVO.getName());
+        item.setUpdateTime(new Date());
+        item.insert();
+        return item.getId();
+    }
+
+    public Integer delAnalyseGroup(CustomAnalyseIdVO vo) {
+        CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
+        customAnalysisItemMapper.deleteById(vo.getId());
+        return item.getId();
+    }
+
+}

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -295,7 +295,7 @@ public class EsCustomFieldService {
                 }
 
             }
-        } else if (startNum > 1 && endNum > 0){
+        } else if (startNum >= 1 && endNum > 0){
             List<String> patentNos = this.getPatentNos(vo);
             for (String patentNo : patentNos) {
                 for (EsCustomFieldDTO fieldDTO : fieldDTOS) {

+ 33 - 0
src/main/resources/mapper/CustomAnalyseMapper.xml

@@ -0,0 +1,33 @@
+<?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.CustomAnalysisItemMapper">
+
+    <select id="queryAnalyseGroup" resultType="cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO">
+        select id,name,parent_id,permissions,project_id,tenant_id,sort,type,status,creator
+        from os_custom_analysis_item
+        <where>
+            <if test="vo.type != null">
+                AND type = #{vo.type}
+            </if>
+            and (
+            <if test="vo.tenantId != null">
+                /*系统公开情况*/
+                (permissions = 1 AND tenant_id = #{vo.tenantId})
+            </if>
+            <if test="vo.creatorId != null">
+                /*系统私有公开*/
+                or (permissions = 2 AND creator_id = #{vo.creatorId})
+            </if>
+            <if test="vo.tenantId != null and vo.projectId != null">
+                /*数据库公开*/
+                or (permissions = 3 AND tenant_id = #{vo.tenantId} AND project_id = #{vo.projectId})
+            </if>
+            <if test="vo.projectId != null and vo.creatorId != null">
+                /*数据库私有*/
+                or (permissions = 4 AND creator_id = #{vo.creatorId} AND project_id = #{vo.projectId})
+            </if>
+            )
+        </where>
+        order by sort asc
+    </select>
+</mapper>