Procházet zdrojové kódy

2/21 lrj 修复专题库人员查询bug

lwhhszx před 2 roky
rodič
revize
e04ae1902e

+ 2 - 2
PAS/pom.xml

@@ -26,7 +26,7 @@
         <poi.version>4.1.2</poi.version>
         <poi-tl.version>1.10.3</poi-tl.version>
         <druid.version>1.1.10</druid.version>
-        <fastjson.version>2.0.0</fastjson.version>
+        <fastjson.version>2.0.12</fastjson.version>
         <sa-token.version>1.29.0</sa-token.version>
         <springdoc.version>1.6.6</springdoc.version>
     </properties>
@@ -98,7 +98,7 @@
         <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
-            <version>${google.code.gson.version}</version>
+<!--            <version>${google.code.gson.version}</version>-->
         </dependency>
         <dependency>
             <groupId>com.baomidou</groupId>

+ 35 - 0
PAS/src/main/java/cn/cslg/pas/common/model/dto/PasUserDTO.java

@@ -0,0 +1,35 @@
+package cn.cslg.pas.common.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PasUserDTO {
+    /**
+     * 每页条数
+     */
+    private Long size;
+
+    /**
+     * 当前页数
+     */
+    private Long current;
+
+    /**
+     * 数据总数
+     */
+    private Long total;
+    /**
+     * Front:姓名
+     * Back:人员名称
+     */
+    private String name;
+    /**
+     * Front:账号
+     * Back:人员账号
+     */
+    private String username;
+
+     private List<Integer> userIds;
+}

+ 20 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/PasUserVO.java

@@ -0,0 +1,20 @@
+package cn.cslg.pas.common.model.vo;
+
+import lombok.Data;
+
+@Data
+public class PasUserVO {
+
+    /**
+     * Front:姓名
+     * Back:人员名称
+     */
+    private String name;
+    /**
+     * Front:账号
+     * Back:人员账号
+     */
+    private String username;
+
+   private Integer id;
+}

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/PatentVO.java

@@ -92,6 +92,7 @@ public class PatentVO extends BaseVO {
     private List<String> patentNos;
     private String patentNo;
     private List<String> notInPatentNos;
+
     @Data
     public static class Sort {
         private String order;

+ 3 - 1
PAS/src/main/java/cn/cslg/pas/controller/ProjectUserController.java

@@ -13,6 +13,8 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
+
 /**
  * <p>
  * 专题库成员 前端控制器
@@ -31,7 +33,7 @@ public class ProjectUserController {
 
     @GetMapping("list")
     @Operation(summary = "成员列表")
-    public String getPageList(ProjectUserVO params) {
+    public String getPageList(ProjectUserVO params) throws IOException {
         return Response.success(projectUserService.getPageList(params));
     }
 

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

@@ -92,5 +92,6 @@ public class SystemController {
     public List<Integer> getAllClient1() {
         return new ArrayList<>();
     }
+
 }
 

+ 29 - 0
PAS/src/main/java/cn/cslg/pas/service/OAuth2Service.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.service;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.base.RedisConf;
 import cn.cslg.pas.common.model.PersonnelVO;
+import cn.cslg.pas.common.model.dto.PasUserDTO;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.domain.Project;
@@ -15,8 +16,14 @@ import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.lang.UUID;
 import cn.hutool.crypto.SecureUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.google.gson.Gson;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -29,6 +36,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class OAuth2Service {
 
@@ -51,8 +59,10 @@ public class OAuth2Service {
     }
 
     public Map<Integer, Integer> getPermissions() {
+        log.info("开始获得权限");
         Map<Integer, Integer> result = new HashMap<>();
         PersonnelVO user = this.getUserinfo();
+        log.info("获得用户信息"+user.getName()+user.getId());
         if (user.getUsername().equals(Constants.ADMIN_USERNAME)) {
             List<Project> projectList = projectService.list();
             for (Project project : projectList) {
@@ -60,7 +70,9 @@ public class OAuth2Service {
             }
             return result;
         }
+        log.info("开始查询专题库信息");
         List<ProjectUser> projectUserList = projectUserService.getProjectUserByUserId(user.getId());
+        log.info("查询专题库信息");
         List<Project> projectList = projectService.getProjectByIds(projectUserList.stream().map(ProjectUser::getProjectId).collect(Collectors.toList()));
         List<Project> createProject = projectService.getProjectByCreateId(user.getId());
         List<Project> projects = new ArrayList<>();
@@ -165,4 +177,21 @@ public class OAuth2Service {
         user.updateById();
         return Response.success(true);
     }
+
+    /**
+     * @title 获得专题库筛选列表
+     * @description 获得分析系统自定义字段选项
+     * @autor lrj
+     */
+
+    public String getPASAssignedUser(PasUserDTO params) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        String param = new Gson().toJson(params);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        Request request = new Request.Builder()
+                .url(url + "/permission/api/system/getPASAssignedUser")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
 }

+ 47 - 3
PAS/src/main/java/cn/cslg/pas/service/ProjectUserService.java

@@ -1,10 +1,14 @@
 package cn.cslg.pas.service;
 
+import cn.cslg.pas.common.model.dto.PasUserDTO;
+import cn.cslg.pas.common.model.vo.PasUserVO;
 import cn.cslg.pas.common.model.vo.ProjectUserVO;
 import cn.cslg.pas.common.utils.DateUtils;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.domain.ProjectUser;
 import cn.cslg.pas.mapper.ProjectUserMapper;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -15,8 +19,10 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -30,7 +36,7 @@ import java.util.stream.Collectors;
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class ProjectUserService extends ServiceImpl<ProjectUserMapper, ProjectUser> {
-
+    private final OAuth2Service oAuth2Service;
     public ProjectUser getProjectUserByProjectIdAndUserId(Integer projectId, Integer userId) {
         LambdaQueryWrapper<ProjectUser> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ProjectUser::getProjectId, projectId);
@@ -61,8 +67,46 @@ public class ProjectUserService extends ServiceImpl<ProjectUserMapper, ProjectUs
         return this.list(queryWrapper);
     }
 
-    public IPage<ProjectUser> getPageList(ProjectUserVO params) {
-        IPage<ProjectUser> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
+    public IPage<ProjectUser> getPageList(ProjectUserVO params) throws IOException {
+        //根据专题库id和类型获得人员id
+        LambdaQueryWrapper<ProjectUser> wrapper =new LambdaQueryWrapper<>();
+        wrapper.eq(ProjectUser::getProjectId,params.getProjectId());
+        if(params.getType()!=null){
+            wrapper.eq(ProjectUser::getType,params.getType());
+        }
+        List<ProjectUser> projectUserList =this.list(wrapper);
+
+        List<Integer> userIds =projectUserList.stream().map(ProjectUser::getUserId).collect(Collectors.toList());
+        if(userIds.size()==0)
+        {IPage<ProjectUser> tem =new Page<>();
+            tem.setSize(10);
+            tem.setTotal(0);
+            return tem;
+        }
+        PasUserDTO pasUserDTO =new PasUserDTO();
+        pasUserDTO.setUserIds(userIds);
+        pasUserDTO.setUsername(params.getUsername());
+        pasUserDTO.setName(params.getName());
+        pasUserDTO.setCurrent(params.getCurrent());
+        pasUserDTO.setSize(params.getSize());
+        String res = oAuth2Service.getPASAssignedUser(pasUserDTO);
+
+        JSONObject jsonObject =JSONObject.parseObject(res);
+        IPage<ProjectUser> pageList = new Page<>();
+        pageList.setTotal(Integer.parseInt(jsonObject.get("total").toString()));
+        pageList.setSize(Integer.parseInt(jsonObject.get("size").toString()));
+
+        List<PasUserVO>  records = JSONArray.parseArray(jsonObject.get("records").toString(),PasUserVO.class);
+       List<ProjectUser> list =new ArrayList<>();
+        for (PasUserVO item:records){
+            ProjectUser projectUser =  projectUserList.stream().filter(tem->tem.getUserId().equals(item.getId())).findFirst().orElse(new ProjectUser());
+            projectUser.setName(item.getName());
+            projectUser.setUsername(item.getUsername());
+            list.add(projectUser);
+        }
+        //根据
+        //根据人员姓名,id,账号,分页信息查询人员
+       pageList.setRecords(list);
         return pageList;
     }
 

+ 4 - 4
PAS/src/main/resources/application-dev.yml

@@ -1,8 +1,8 @@
 spring:
   redis:
-    host: 47.101.137.223
+    host: 192.168.1.24
     port: 6379
-    database: 9
+    database: 3
     password: Xx0GWxdWQJxx6Swe
     lettuce:
       pool:
@@ -12,9 +12,9 @@ spring:
         max-wait: -1ms
     timeout: 2000ms
   datasource:
-    url: jdbc:mysql://47.101.137.223:3306/pas-prod?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    url: jdbc:mysql://192.168.1.24:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
-    password: TU5x6IeBi7rl
+    password: rrzTwWAYX8Gxh5JH
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
     druid:

+ 1 - 1
PAS/src/main/resources/application.yml

@@ -20,7 +20,7 @@ spring:
       max-file-size: 1000MB
       max-request-size: 1000MB
   profiles:
-    active: dev
+    active: local
   jackson:
     default-property-inclusion: non_null
     serialization:

+ 25 - 3
PAS/src/main/resources/mapper/PatentMapper.xml

@@ -167,9 +167,32 @@
             <if test="params.read == 'unread'">
                 and b.look = 0
             </if>
-            <if test="params.projectId != null">
+            <if test="params.projectId != null and params.importTaskId == null">
                 and b.zid = #{params.projectId}
             </if>
+            <if test="params.importTaskId != null and params.projectId == null">
+               and a.patentno in
+                ( select PATENT_NO from ASSO_IMPORTTASK_PATENT where IMPORTTASK_ID in
+                <foreach item="item" collection="params.importTaskId" index="index" open="(" separator=","
+                         close=") ">
+                    #{item}
+                </foreach>
+                )
+            </if>
+        <if test="params.importTaskId != null and params.projectId != null">
+            and (b.zid = #{params.projectId} or
+            a.patentno in
+            ( select PATENT_NO from ASSO_IMPORTTASK_PATENT where IMPORTTASK_ID in
+            <foreach item="item" collection="params.importTaskId" index="index" open="(" separator=","
+                     close=") ">
+                #{item}
+            </foreach>
+            )
+            )
+        </if>
+            <if test="params.projectId == null and params.projectId == null">
+                and 1 !=1
+            </if>
             <if test="params.folder != null and params.folder != ''">
                 and b.fid = #{params.folder}
             </if>
@@ -1258,8 +1281,7 @@
         select DISTINCT a.patentno as patent_no
         from os_patent a
         <where>
-
-             1=!1
+             1 != 1
             <if test="params.projectId != null">
                 or a.id in (select pid from os_thematic_pid where zid = #{params.projectId})
             </if>