Browse Source

Merge remote-tracking branch 'origin/dev2' into dev2

xiexiang 2 years ago
parent
commit
deebc23a15
26 changed files with 341 additions and 120 deletions
  1. 4 0
      PAS/src/main/java/cn/cslg/pas/common/model/dto/GetAreaListDTO.java
  2. 1 0
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProjectImportVO.java
  3. 36 27
      PAS/src/main/java/cn/cslg/pas/common/utils/PatentRightUtils.java
  4. 0 1
      PAS/src/main/java/cn/cslg/pas/common/utils/auth/TreeUtils.java
  5. 2 1
      PAS/src/main/java/cn/cslg/pas/controller/ProjectFieldController.java
  6. 2 1
      PAS/src/main/java/cn/cslg/pas/controller/ProjectFileController.java
  7. 4 1
      PAS/src/main/java/cn/cslg/pas/controller/ProjectImportController.java
  8. 92 0
      PAS/src/main/java/cn/cslg/pas/domain/Personnel.java
  9. 2 0
      PAS/src/main/java/cn/cslg/pas/domain/ProjectImport.java
  10. 6 6
      PAS/src/main/java/cn/cslg/pas/mapper/PatentMarketDataMapper.java
  11. 34 1
      PAS/src/main/java/cn/cslg/pas/service/OutInterfaceService.java
  12. 36 12
      PAS/src/main/java/cn/cslg/pas/service/ProjectFieldService.java
  13. 26 2
      PAS/src/main/java/cn/cslg/pas/service/ProjectFileService.java
  14. 9 5
      PAS/src/main/java/cn/cslg/pas/service/ProjectImportService.java
  15. 24 15
      PAS/src/main/java/cn/cslg/pas/service/ProjectService.java
  16. 5 7
      PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java
  17. 13 7
      PAS/src/main/java/cn/cslg/pas/service/impl/PatentMarketDataServiceImpl.java
  18. 2 0
      PAS/src/main/java/cn/cslg/pas/service/impl/ProductCategoryServiceImpl.java
  19. 0 1
      PAS/src/main/java/cn/cslg/pas/service/impl/ProductServiceImpl.java
  20. 6 3
      PAS/src/main/java/cn/cslg/pas/service/impl/StructureServiceImpl.java
  21. 1 1
      PAS/src/main/resources/application-prodNetIn.yml
  22. 1 1
      PAS/src/main/resources/application.yml
  23. 4 6
      PAS/src/main/resources/mapper/AssoProductPatentMapper.xml
  24. 19 10
      PAS/src/main/resources/mapper/PatentMarkerDataMapper.xml
  25. 8 12
      PAS/src/main/resources/mapper/ProductCategoryMapper.xml
  26. 4 0
      PAS/src/main/resources/mapper/ProjectImportMapper.xml

+ 4 - 0
PAS/src/main/java/cn/cslg/pas/common/model/dto/GetAreaListDTO.java

@@ -26,4 +26,8 @@ public class GetAreaListDTO {
      * 专利号集合
      * 专利号集合
      */
      */
     private List<String> patentNoList;
     private List<String> patentNoList;
+    /**
+     * 租户id
+     */
+    private Integer tenantId;
 }
 }

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

@@ -12,4 +12,5 @@ public class ProjectImportVO extends BaseVO {
     @Schema(description = "专利号")
     @Schema(description = "专利号")
     private String patentNo;
     private String patentNo;
     private List<Integer> createIds;
     private List<Integer> createIds;
+    private Integer tenantId;
 }
 }

+ 36 - 27
PAS/src/main/java/cn/cslg/pas/common/utils/PatentRightUtils.java

@@ -18,7 +18,7 @@ import java.util.regex.Pattern;
 @Component
 @Component
 public class PatentRightUtils {
 public class PatentRightUtils {
 
 
-    public List<PatentRight> formatPatentRight(PatentRightParams params) {
+    public static List<PatentRight> formatPatentRight(PatentRightParams params) {
         //国家
         //国家
         String country = params.getPatentNo().substring(0, 2);
         String country = params.getPatentNo().substring(0, 2);
         //原文
         //原文
@@ -53,7 +53,7 @@ public class PatentRightUtils {
         contentOut = contentOut.replaceAll(" +", "");
         contentOut = contentOut.replaceAll(" +", "");
 
 
         //中日韩专利↓
         //中日韩专利↓
-        if (country.equals("CN") || country.equals("JP") || country.equals("KR")) {
+        if (country.equals("CN") || country.equals("JP") || country.equals("KR") || content.contains("权利要求")) {
             String regex;
             String regex;
             if (content.contains("。2.")) {
             if (content.contains("。2.")) {
                 regex = "。[0-9]+\\.";
                 regex = "。[0-9]+\\.";
@@ -68,33 +68,40 @@ public class PatentRightUtils {
             } else {
             } else {
                 regex = "";
                 regex = "";
             }
             }
-            Matcher matcher = Pattern.compile(regex).matcher(content);
-            Matcher matcherOut = Pattern.compile(regex).matcher(contentOut);
-            while (matcher.find()) {
-                if (matcher.group().contains(".청구항")) {
-                    //".청구항 2" -> "\\.청구항 2"
-                    String matcherGroup = matcher.group().replace(".", "\\.");
-                    //".청구항 2" -> ".\n청구항 2"
-                    content = content.replaceFirst(matcherGroup, ".\n" + matcherGroup.substring(matcherGroup.indexOf(".") + 1));
-                } else if (matcher.group().contains(".")) {
-                    //"。2." -> "。2\\."
-                    String matcherGroup = matcher.group().replace(".", "\\.");
-                    //"。2." -> "。\n2."
-                    content = content.replaceFirst(matcherGroup, "。\n" + matcherGroup.substring(matcherGroup.indexOf("。") + 1, matcherGroup.indexOf("\\")) + ".");
-                } else if (matcher.group().contains("、") || matcher.group().contains("請求項")) {
-                    content = content.replaceFirst(matcher.group(), "。\n" + matcher.group().substring(matcher.group().indexOf("。") + 1));
+            String[] strs;
+            String[] strsOut;
+            if (regex.equals("")) {
+                strs = content.split("。");
+                strsOut = contentOut.split("。");
+            } else {
+                Matcher matcher = Pattern.compile(regex).matcher(content);
+                Matcher matcherOut = Pattern.compile(regex).matcher(contentOut);
+                while (matcher.find()) {
+                    if (matcher.group().contains(".청구항")) {
+                        //".청구항 2" -> "\\.청구항 2"
+                        String matcherGroup = matcher.group().replace(".", "\\.");
+                        //".청구항 2" -> ".\n청구항 2"
+                        content = content.replaceFirst(matcherGroup, ".\n" + matcherGroup.substring(matcherGroup.indexOf(".") + 1));
+                    } else if (matcher.group().contains(".")) {
+                        //"。2." -> "。2\\."
+                        String matcherGroup = matcher.group().replace(".", "\\.");
+                        //"。2." -> "。\n2."
+                        content = content.replaceFirst(matcherGroup, "。\n" + matcherGroup.substring(matcherGroup.indexOf("。") + 1, matcherGroup.indexOf("\\")) + ".");
+                    } else if (matcher.group().contains("、") || matcher.group().contains("請求項")) {
+                        content = content.replaceFirst(matcher.group(), "。\n" + matcher.group().substring(matcher.group().indexOf("。") + 1));
+                    }
                 }
                 }
-            }
-            String[] strs = content.split("\n");
-            while (matcherOut.find()) {
-                if (matcherOut.group().contains(".")) {
-                    String matcherOutGroup = matcherOut.group().replace(".", "\\.");
-                    contentOut = contentOut.replaceFirst(matcherOutGroup, "。\n" + matcherOutGroup.substring(matcherOutGroup.indexOf("。") + 1, matcherOutGroup.indexOf("\\")) + ".");
-                } else if (matcherOut.group().contains("、")) {
-                    contentOut = contentOut.replaceFirst(matcherOut.group(), "。\n" + matcherOut.group().substring(matcherOut.group().indexOf("。") + 1));
+                strs = content.split("\n");
+                while (matcherOut.find()) {
+                    if (matcherOut.group().contains(".")) {
+                        String matcherOutGroup = matcherOut.group().replace(".", "\\.");
+                        contentOut = contentOut.replaceFirst(matcherOutGroup, "。\n" + matcherOutGroup.substring(matcherOutGroup.indexOf("。") + 1, matcherOutGroup.indexOf("\\")) + ".");
+                    } else if (matcherOut.group().contains("、")) {
+                        contentOut = contentOut.replaceFirst(matcherOut.group(), "。\n" + matcherOut.group().substring(matcherOut.group().indexOf("。") + 1));
+                    }
                 }
                 }
+                strsOut = contentOut.split("\n");
             }
             }
-            String[] strsOut = contentOut.split("\n");
 
 
             //定义父权要排序号
             //定义父权要排序号
             String regex1 = "权利要求[0-9]+";
             String regex1 = "权利要求[0-9]+";
@@ -168,7 +175,9 @@ public class PatentRightUtils {
             //英文专利的权要拆分 ↓
             //英文专利的权要拆分 ↓
         } else {
         } else {
             content = content.substring(content.indexOf("1."));
             content = content.substring(content.indexOf("1."));
-            if (contentOut.contains("1.")) {
+            if (contentOut.equals("")) {
+                contentOut = "";
+            } else if (contentOut.contains("1.")) {
                 contentOut = contentOut.substring(contentOut.indexOf("1."));
                 contentOut = contentOut.substring(contentOut.indexOf("1."));
             } else {
             } else {
                 contentOut = contentOut.substring(contentOut.indexOf("1、"));
                 contentOut = contentOut.substring(contentOut.indexOf("1、"));

+ 0 - 1
PAS/src/main/java/cn/cslg/pas/common/utils/auth/TreeUtils.java

@@ -125,7 +125,6 @@ public class TreeUtils {
                 str2 = field + " " + jsonRight.get("opr").toString() + " " + value;
                 str2 = field + " " + jsonRight.get("opr").toString() + " " + value;
             }
             }
         }
         }
-
         return "(" + str1 + ") " + jsonObject.get("logicOpr") + " (" + str2 + ")";
         return "(" + str1 + ") " + jsonObject.get("logicOpr") + " (" + str2 + ")";
     }
     }
 
 

+ 2 - 1
PAS/src/main/java/cn/cslg/pas/controller/ProjectFieldController.java

@@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -42,7 +43,7 @@ public class ProjectFieldController {
     @checkAuth(FunId = "/workspace/common/customField/check")
     @checkAuth(FunId = "/workspace/common/customField/check")
     @GetMapping("list")
     @GetMapping("list")
     @Operation(summary = "自定义字段列表")
     @Operation(summary = "自定义字段列表")
-    public String getPageList(ProjectFieldVO params) {
+    public String getPageList(ProjectFieldVO params) throws IOException {
         return Response.success(projectFieldService.getPageList(params));
         return Response.success(projectFieldService.getPageList(params));
     }
     }
 
 

+ 2 - 1
PAS/src/main/java/cn/cslg/pas/controller/ProjectFileController.java

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -34,7 +35,7 @@ public class ProjectFileController {
 
 
     @GetMapping("list")
     @GetMapping("list")
     @Operation(summary = "附件列表")
     @Operation(summary = "附件列表")
-    public String getPageList(ProjectFileVO params) {
+    public String getPageList(ProjectFileVO params) throws IOException {
         return Response.success(projectFileService.getPageList(params));
         return Response.success(projectFileService.getPageList(params));
     }
     }
 
 

+ 4 - 1
PAS/src/main/java/cn/cslg/pas/controller/ProjectImportController.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.controller;
 
 
 import cn.cslg.pas.common.core.annotation.Permission;
 import cn.cslg.pas.common.core.annotation.Permission;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
 import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
 import cn.cslg.pas.common.model.vo.ProjectImportVO;
 import cn.cslg.pas.common.model.vo.ProjectImportVO;
 import cn.cslg.pas.common.model.vo.TaskParams;
 import cn.cslg.pas.common.model.vo.TaskParams;
@@ -90,10 +91,12 @@ public class ProjectImportController {
     public String importData(String url, ProjectImportVO params) {
     public String importData(String url, ProjectImportVO params) {
         Integer userId = loginUtils.getId();
         Integer userId = loginUtils.getId();
         String tempId = cacheUtils.getUserImportId(userId);
         String tempId = cacheUtils.getUserImportId(userId);
+        PersonnelVO personnelVO = cacheUtils.getLoginUserPersonnel(userId);
+
         if (StringUtils.isNotEmpty(tempId)) {
         if (StringUtils.isNotEmpty(tempId)) {
             return Response.error("有导入任务在进行中");
             return Response.error("有导入任务在进行中");
         }
         }
-        Integer importId = projectImportService.add(userId, url);
+        Integer importId = projectImportService.add(userId, url,personnelVO.getTenantId());
         projectService.importData(url, params, userId, importId);
         projectService.importData(url, params, userId, importId);
         cacheUtils.setUserImportId(userId, importId);
         cacheUtils.setUserImportId(userId, importId);
         return Response.success(importId);
         return Response.success(importId);

+ 92 - 0
PAS/src/main/java/cn/cslg/pas/domain/Personnel.java

@@ -0,0 +1,92 @@
+package cn.cslg.pas.domain;
+
+import cn.cslg.pas.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @author 沈永艺
+ * @date 2022-8-2
+ * @description 人员类 数据库对应实体
+ */
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+@TableName(value = "PERSONNEL")
+public class Personnel extends BaseEntity<Personnel> {
+    /**
+     * 人员账号
+     */
+    @TableField(value = "PERSONNEL_USERNAME")
+    private String personnelUserName;
+
+    /**
+     * 人员密码
+     */
+    @TableField(value = "PERSONNEL_PASSWORD")
+    private String personnelPassword;
+
+    /**
+     * 人员名称
+     */
+    @TableField(value = "PERSONNEL_NAME")
+    private String personnelName;
+
+    /**
+     * 人员性别(1男0女)
+     */
+    @TableField(value = "PERSONNEL_SEX")
+    private Integer personnelUserSex;
+
+    /**
+     * 人员联系电话
+     */
+    @TableField(value = "PERSONNEL_PHONE")
+    private String personnelPhone;
+
+    /**
+     * 人员邮箱
+     */
+    @TableField(value = "PERSONNEL_EMAIL")
+    private String personnelEmail;
+
+    /**
+     * 人员QQ号
+     */
+    @TableField(value = "PERSONNEL_QQ")
+    private String personnelQQ;
+
+    /**
+     * 人员微信号
+     */
+    @TableField(value = "PERSONNEL_WECHAT")
+    private String personnelWechat;
+
+    /**
+     * 人员钉钉号
+     */
+    @TableField(value = "PERSONNEL_DING")
+    private String personnelDing;
+
+    /**
+     * 人员描述
+     */
+    @TableField(value = "PERSONNEL_DESCRIPTION")
+    private String personnelDescription;
+
+    /**
+     * 人员账号状态(1启用0停用)
+     */
+    @TableField(value = "PERSONNEL_STATUS")
+    private Integer personnelStatus;
+
+    /**
+     * 租户ID
+     */
+    @TableField(value = "TENANT_ID")
+    private Integer tenantId;
+}

+ 2 - 0
PAS/src/main/java/cn/cslg/pas/domain/ProjectImport.java

@@ -57,5 +57,7 @@ public class ProjectImport extends BaseEntity<ProjectImport> {
      *
      *
      */
      */
     private String oldName;
     private String oldName;
+    @TableField(value = "tenant_id")
+    private Integer tenantId;
 
 
 }
 }

+ 6 - 6
PAS/src/main/java/cn/cslg/pas/mapper/PatentMarketDataMapper.java

@@ -22,21 +22,21 @@ public interface PatentMarketDataMapper {
      * @param patentNoList 专利号(必需)
      * @param patentNoList 专利号(必需)
      * @return 返回查询到的数据
      * @return 返回查询到的数据
      */
      */
-    List<ProductMarketDataTrendVO> patentQueryByYear(List patentNoList, String saleArea);
+    List<ProductMarketDataTrendVO> patentQueryByYear(List patentNoList, String saleArea,Integer tenantId);
 
 
-    List<ProductMarketDataTrendVO> patentQueryBySeason(List patentNoList, String saleArea);
+    List<ProductMarketDataTrendVO> patentQueryBySeason(List patentNoList, String saleArea,Integer tenantId);
 
 
-    List<ProductMarketDataTrendVO> patentQueryByMonth(List patentNoList, String saleArea);
+    List<ProductMarketDataTrendVO> patentQueryByMonth(List patentNoList, String saleArea,Integer tenantId);
 
 
     /**
     /**
      * 传入专利号,查询时间和许可历史费用
      * 传入专利号,查询时间和许可历史费用
      * @param patentNoList 专利号(必需)
      * @param patentNoList 专利号(必需)
      * @return 返回查询到的数据
      * @return 返回查询到的数据
      */
      */
-    List<PermissionRecordTrendVO> PRDataQueryByYear(List patentNoList);
+    List<PermissionRecordTrendVO> PRDataQueryByYear(List patentNoList,Integer tenantId);
 
 
-    List<PermissionRecordTrendVO> PRDataQueryBySeason(List patentNoList);
+    List<PermissionRecordTrendVO> PRDataQueryBySeason(List patentNoList,Integer tenantId);
 
 
-    List<PermissionRecordTrendVO> PRDataQueryByMonth(List patentNoList);
+    List<PermissionRecordTrendVO> PRDataQueryByMonth(List patentNoList,Integer tenantId);
 
 
 }
 }

+ 34 - 1
PAS/src/main/java/cn/cslg/pas/service/OutInterfaceService.java

@@ -1,14 +1,19 @@
 package cn.cslg.pas.service;
 package cn.cslg.pas.service;
 
 
+import com.google.gson.Gson;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import okhttp3.MediaType;
 import okhttp3.OkHttpClient;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.Request;
+import okhttp3.RequestBody;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.io.IOException;
 import java.io.IOException;
+import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.concurrent.TimeUnit;
 
 
 /**
 /**
  * 调用外部接口的Service类 PCS:权限系统
  * 调用外部接口的Service类 PCS:权限系统
@@ -20,9 +25,15 @@ import java.util.Objects;
 @Slf4j
 @Slf4j
 @Service
 @Service
 public class OutInterfaceService {
 public class OutInterfaceService {
-    @Value("${PCSUrl}")
+    @Value("${authorUrl}")
     private String PCSUrl;
     private String PCSUrl;
 
 
+    /**
+     * 根据人员名称模糊查询人员ids
+     *
+     * @param personName 人员名称
+     * @return 返回人员ids
+     */
     public String getPersonIdByNamePCS(String personName) throws IOException {
     public String getPersonIdByNamePCS(String personName) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
         Request request = new Request.Builder()
@@ -32,4 +43,26 @@ public class OutInterfaceService {
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
     }
 
 
+    /**
+     * 根据人员ids查询人员列表
+     *
+     * @param ids 人员ids
+     * @return 返回装载着人员列表数据的data的String
+     */
+    public String getPersonnelByIdsFromPCS(List<Integer> ids) throws IOException {
+
+        String param = new Gson().toJson(ids);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getPersonnelByIds")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
 }
 }

+ 36 - 12
PAS/src/main/java/cn/cslg/pas/service/ProjectFieldService.java

@@ -9,6 +9,7 @@ import cn.cslg.pas.domain.*;
 import cn.cslg.pas.mapper.ProjectFieldMapper;
 import cn.cslg.pas.mapper.ProjectFieldMapper;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.Tree;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,6 +19,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import java.io.IOException;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -33,7 +35,6 @@ import java.util.stream.Collectors;
 @Service
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, ProjectField> {
 public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, ProjectField> {
-
     private final ProjectFieldOptionService projectFieldOptionService;
     private final ProjectFieldOptionService projectFieldOptionService;
     private final ProjectFieldTreeService projectFieldTreeService;
     private final ProjectFieldTreeService projectFieldTreeService;
     private final ProjectFolderService projectFolderService;
     private final ProjectFolderService projectFolderService;
@@ -42,6 +43,7 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
     private final PatentService patentService;
     private final PatentService patentService;
     private final FileUtils fileUtils;
     private final FileUtils fileUtils;
     private final LoginUtils loginUtils;
     private final LoginUtils loginUtils;
+    private final OutInterfaceService outInterfaceService;
 
 
     public List<PatentDTO.Field> getPatentFieldByPatentIdAndProjectId(Integer projectId, Integer patentId) {
     public List<PatentDTO.Field> getPatentFieldByPatentIdAndProjectId(Integer projectId, Integer patentId) {
         List<PatentDTO.Field> dataList = new ArrayList<>();
         List<PatentDTO.Field> dataList = new ArrayList<>();
@@ -80,11 +82,12 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
         });
         });
         return dataList;
         return dataList;
     }
     }
-    public Map<Integer,List<PatentDTO.Field>> getPatentFieldByPatentIdAndProjectId2(Integer projectId, List<Integer> patentIds) {
-        Map<Integer,List<PatentDTO.Field>> map =new HashMap<>();
-        List<ProjectFieldPatentLink> linkList =new ArrayList<>();
+
+    public Map<Integer, List<PatentDTO.Field>> getPatentFieldByPatentIdAndProjectId2(Integer projectId, List<Integer> patentIds) {
+        Map<Integer, List<PatentDTO.Field>> map = new HashMap<>();
+        List<ProjectFieldPatentLink> linkList = new ArrayList<>();
         //根据专利号和专题库id获得所有自定义字段关联数据
         //根据专利号和专题库id获得所有自定义字段关联数据
-        if(patentIds.size()>0) {
+        if (patentIds.size() > 0) {
             LambdaQueryWrapper<ProjectFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
             LambdaQueryWrapper<ProjectFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.in(ProjectFieldPatentLink::getPatentId, patentIds);
             queryWrapper.in(ProjectFieldPatentLink::getPatentId, patentIds);
             queryWrapper.eq(ProjectFieldPatentLink::getProjectId, projectId);
             queryWrapper.eq(ProjectFieldPatentLink::getProjectId, projectId);
@@ -96,15 +99,15 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
         List<ProjectFieldOption> optionList = projectFieldOptionService.getFieldOptionList(fieldIds);
         List<ProjectFieldOption> optionList = projectFieldOptionService.getFieldOptionList(fieldIds);
         List<ProjectFieldTree> treeList = projectFieldTreeService.getProjectFieldTreeOptionByFieldIds(fieldIds);
         List<ProjectFieldTree> treeList = projectFieldTreeService.getProjectFieldTreeOptionByFieldIds(fieldIds);
         //遍历专利
         //遍历专利
-        for(Integer patentId :patentIds){
+        for (Integer patentId : patentIds) {
             List<PatentDTO.Field> dataList = new ArrayList<>();
             List<PatentDTO.Field> dataList = new ArrayList<>();
             //获得当前专利的关联信息
             //获得当前专利的关联信息
-            List<ProjectFieldPatentLink> temLinkList =linkList.stream().filter(item->item.getPatentId().equals(patentId)).collect(Collectors.toList());
+            List<ProjectFieldPatentLink> temLinkList = linkList.stream().filter(item -> item.getPatentId().equals(patentId)).collect(Collectors.toList());
             //过滤出当前专利的自定义栏位
             //过滤出当前专利的自定义栏位
-            List<Integer> temFieldIds =linkList.stream().filter(item->item.getPatentId().equals(patentId)).map(ProjectFieldPatentLink::getFieldId).distinct().collect(Collectors.toList());
-            List<ProjectField> temFieldList =fieldList.stream().filter(item->temFieldIds.contains(item.getId())).collect(Collectors.toList());
+            List<Integer> temFieldIds = linkList.stream().filter(item -> item.getPatentId().equals(patentId)).map(ProjectFieldPatentLink::getFieldId).distinct().collect(Collectors.toList());
+            List<ProjectField> temFieldList = fieldList.stream().filter(item -> temFieldIds.contains(item.getId())).collect(Collectors.toList());
             temFieldList.forEach(field -> {
             temFieldList.forEach(field -> {
-                List<Integer> valueIds =temLinkList.stream().filter(item->item.getFieldId().equals(field.getId())).map(ProjectFieldPatentLink::getOptionId).collect(Collectors.toList());
+                List<Integer> valueIds = temLinkList.stream().filter(item -> item.getFieldId().equals(field.getId())).map(ProjectFieldPatentLink::getOptionId).collect(Collectors.toList());
                 PatentDTO.Field data = new PatentDTO.Field();
                 PatentDTO.Field data = new PatentDTO.Field();
                 data.setId(field.getId());
                 data.setId(field.getId());
                 data.setName(field.getName());
                 data.setName(field.getName());
@@ -130,10 +133,11 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
                 }
                 }
                 dataList.add(data);
                 dataList.add(data);
             });
             });
-            map.put(patentId,dataList);
+            map.put(patentId, dataList);
         }
         }
         return map;
         return map;
     }
     }
+
     public List<ProjectField> getProjectFieldByProjectId(Integer projectId) {
     public List<ProjectField> getProjectFieldByProjectId(Integer projectId) {
         LambdaQueryWrapper<ProjectField> queryWrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<ProjectField> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ProjectField::getProjectId, projectId);
         queryWrapper.eq(ProjectField::getProjectId, projectId);
@@ -310,8 +314,28 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
         return projectField;
         return projectField;
     }
     }
 
 
-    public IPage<ProjectField> getPageList(ProjectFieldVO params) {
+    public IPage<ProjectField> getPageList(ProjectFieldVO params) throws IOException {
+        //分页查询列表
         IPage<ProjectField> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
         IPage<ProjectField> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
+        //从分页信息中获取列表
+        List<ProjectField> projectFields = pageList.getRecords();
+        ArrayList<Integer> personnelIds = new ArrayList<>();
+        for (ProjectField projectField : projectFields) {
+            personnelIds.add(projectField.getCreateBy());
+        }
+        //调用权限系统根据人员ids获得人员列表的接口
+        String res = outInterfaceService.getPersonnelByIdsFromPCS(personnelIds);
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        List<Personnel> personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+        //遍历人员列表和列表,给列表装载人员名称
+        for (ProjectField projectField : projectFields) {
+            for (Personnel personnel : personnels) {
+                if (personnel.getId().equals(projectField.getCreateBy())) {
+                    projectField.setCreateName(personnel.getPersonnelName());
+                }
+            }
+        }
+        pageList.setRecords(projectFields);
 
 
         return pageList;
         return pageList;
     }
     }

+ 26 - 2
PAS/src/main/java/cn/cslg/pas/service/ProjectFileService.java

@@ -6,12 +6,15 @@ import cn.cslg.pas.common.model.vo.ProjectFileVO;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.model.dto.UploadFileDTO;
 import cn.cslg.pas.common.model.dto.UploadFileDTO;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.pas.domain.Personnel;
 import cn.cslg.pas.domain.ProjectFile;
 import cn.cslg.pas.domain.ProjectFile;
 import cn.cslg.pas.mapper.ProjectFileMapper;
 import cn.cslg.pas.mapper.ProjectFileMapper;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.IdUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -25,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.BufferedOutputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.File;
+import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
@@ -40,12 +44,32 @@ import java.util.List;
 @Service
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class ProjectFileService extends ServiceImpl<ProjectFileMapper, ProjectFile> {
 public class ProjectFileService extends ServiceImpl<ProjectFileMapper, ProjectFile> {
-
     private final FileUtils fileUtils;
     private final FileUtils fileUtils;
     private final LoginUtils loginUtils;
     private final LoginUtils loginUtils;
+    private final OutInterfaceService outInterfaceService;
 
 
-    public IPage<ProjectFile> getPageList(ProjectFileVO params) {
+    public IPage<ProjectFile> getPageList(ProjectFileVO params) throws IOException {
+        //分页查询列表
         IPage<ProjectFile> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
         IPage<ProjectFile> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
+        //从分页结果中获取列表
+        List<ProjectFile> projectFiles = pageList.getRecords();
+        ArrayList<Integer> personnelIds = new ArrayList<>();
+        for (ProjectFile projectFile : projectFiles) {
+            personnelIds.add(projectFile.getCreateBy());
+        }
+        //调用权限系统接口根据人员ids查询人员列表
+        String res = outInterfaceService.getPersonnelByIdsFromPCS(personnelIds);
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        List<Personnel> personnels = JSON.parseArray(jsonObject.getString("data"), Personnel.class);
+        //遍历列表和人员列表,给列表装载人员名称
+        for (ProjectFile projectFile : projectFiles) {
+            for (Personnel personnel : personnels) {
+                if (personnel.getId().equals(projectFile.getCreateBy())) {
+                    projectFile.setCreateName(personnel.getPersonnelName());
+                }
+            }
+        }
+        pageList.setRecords(projectFiles);
 
 
         return pageList;
         return pageList;
     }
     }

+ 9 - 5
PAS/src/main/java/cn/cslg/pas/service/ProjectImportService.java

@@ -1,13 +1,12 @@
 package cn.cslg.pas.service;
 package cn.cslg.pas.service;
 
 
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.QueryPatentVO;
 import cn.cslg.pas.common.model.QueryPatentVO;
 import cn.cslg.pas.common.model.dto.ProductPatentDTO;
 import cn.cslg.pas.common.model.dto.ProductPatentDTO;
 import cn.cslg.pas.common.model.vo.ProjectImportVO;
 import cn.cslg.pas.common.model.vo.ProjectImportVO;
 import cn.cslg.pas.common.model.vo.ProjectVO;
 import cn.cslg.pas.common.model.vo.ProjectVO;
-import cn.cslg.pas.common.utils.DateUtils;
-import cn.cslg.pas.common.utils.FileUtils;
-import cn.cslg.pas.common.utils.Response;
-import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.common.utils.*;
+import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.domain.*;
 import cn.cslg.pas.domain.*;
 import cn.cslg.pas.mapper.PatentMapper;
 import cn.cslg.pas.mapper.PatentMapper;
 import cn.cslg.pas.mapper.ProjectImportMapper;
 import cn.cslg.pas.mapper.ProjectImportMapper;
@@ -43,6 +42,8 @@ public class ProjectImportService extends ServiceImpl<ProjectImportMapper, Proje
     private final PatentMapper patentMapper;
     private final PatentMapper patentMapper;
     private final ProjectPatentLinkService projectPatentLinkService;
     private final ProjectPatentLinkService projectPatentLinkService;
     private final RequestService requestService;
     private final RequestService requestService;
+    private final CacheUtils cacheUtils;
+    private final LoginUtils loginUtils;
 
 
     public IPage<ProjectImport> getPageList(ProjectImportVO params) throws IOException {
     public IPage<ProjectImport> getPageList(ProjectImportVO params) throws IOException {
         //当查询使用发起人名称时
         //当查询使用发起人名称时
@@ -56,6 +57,8 @@ public class ProjectImportService extends ServiceImpl<ProjectImportMapper, Proje
                 params.setCreateIds(Collections.singletonList(-1));
                 params.setCreateIds(Collections.singletonList(-1));
             }
             }
         }
         }
+        PersonnelVO personnelVO =cacheUtils.getLoginUserPersonnel(loginUtils.getId());
+        params.setTenantId(personnelVO.getTenantId());
         IPage<ProjectImport> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
         IPage<ProjectImport> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
         this.setDataList(pageList.getRecords());
         this.setDataList(pageList.getRecords());
         return pageList;
         return pageList;
@@ -72,7 +75,7 @@ public class ProjectImportService extends ServiceImpl<ProjectImportMapper, Proje
         return Response.success(true);
         return Response.success(true);
     }
     }
 
 
-    public Integer add(Integer userId, String url) {
+    public Integer add(Integer userId, String url,Integer tenantId) {
         File file = new File(fileUtils.getSystemPath(url));
         File file = new File(fileUtils.getSystemPath(url));
         ProjectImport projectImport = new ProjectImport();
         ProjectImport projectImport = new ProjectImport();
         projectImport.setCreateBy(userId);
         projectImport.setCreateBy(userId);
@@ -80,6 +83,7 @@ public class ProjectImportService extends ServiceImpl<ProjectImportMapper, Proje
         projectImport.setUrl(url);
         projectImport.setUrl(url);
         projectImport.setFileSize(FileUtil.size(file));
         projectImport.setFileSize(FileUtil.size(file));
         projectImport.setFileName(file.getName());
         projectImport.setFileName(file.getName());
+        projectImport.setTenantId(tenantId);
         projectImport.insert();
         projectImport.insert();
         return projectImport.getId();
         return projectImport.getId();
     }
     }

+ 24 - 15
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -115,7 +115,14 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         queryWrapper.last("limit 1");
         queryWrapper.last("limit 1");
         return this.getOne(queryWrapper);
         return this.getOne(queryWrapper);
     }
     }
-
+    public Project getProjectByName(String name,Integer loginId) {
+        LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginId);
+        queryWrapper.eq(Project::getName, name);
+        queryWrapper.eq(Project::getTenantId, personnelVO.getTenantId());
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
     public IPage<Project> getPageList(ProjectVO params) throws IOException {
     public IPage<Project> getPageList(ProjectVO params) throws IOException {
         List<Integer> projectIds = new ArrayList<Integer>() {{
         List<Integer> projectIds = new ArrayList<Integer>() {{
             add(-1);
             add(-1);
@@ -393,7 +400,18 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         }
         }
         return tempName;
         return tempName;
     }
     }
-
+    public String getImportProjectName(String name,Integer userId) {
+        String tempName = name + "(1)";
+        Project project1 = this.getProjectByName(name,userId);
+        if (project1 == null) {
+            return name;
+        }
+        Project project2 = this.getProjectByName(tempName,userId);
+        if (project2 != null) {
+            tempName = this.getImportProjectName(tempName,userId);
+        }
+        return tempName;
+    }
     public Integer importProject(Integer projectId, String json, Integer userId) throws IOException {
     public Integer importProject(Integer projectId, String json, Integer userId) throws IOException {
         if ((projectId == null || projectId.equals(0)) && StringUtils.isEmpty(json)) {
         if ((projectId == null || projectId.equals(0)) && StringUtils.isEmpty(json)) {
             return 0;
             return 0;
@@ -403,17 +421,8 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         }
         }
         Project temp = this.getById(projectId);
         Project temp = this.getById(projectId);
         Project data = JsonUtils.jsonToPojo(json, Project.class);
         Project data = JsonUtils.jsonToPojo(json, Project.class);
-        String res = requestService.getClientByName(Objects.requireNonNull(data).getClientName());
-        ClientDTO client = JSONObject.parseObject(res, ClientDTO.class);
-        Integer clientId = 0;
-        if (client == null) {
-            client.setName(data.getClientName());
-            String res2 = requestService.addClient(client);
-
-            JSONObject jsonObject = JSONObject.parseObject(res2);
-            clientId = Integer.parseInt(jsonObject.get("data").toString());
-        } else {
-            clientId = client.getId();
+        if (data.getClientId() != null) {
+            temp.setClientId(data.getClientId());
         }
         }
         if (temp == null) {
         if (temp == null) {
             temp = new Project();
             temp = new Project();
@@ -421,9 +430,9 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         String projectName = temp.getName();
         String projectName = temp.getName();
         BeanUtils.copyProperties(data, temp);
         BeanUtils.copyProperties(data, temp);
         if (projectName == null || !projectName.equals(data.getName())) {
         if (projectName == null || !projectName.equals(data.getName())) {
-            temp.setName(this.getImportProjectName(temp.getName()));
+            temp.setName(this.getImportProjectName(temp.getName(),userId));
         }
         }
-        temp.setClientId(clientId);
+
         if (projectId == null || projectId.equals(0)) {
         if (projectId == null || projectId.equals(0)) {
             temp.setCreateBy(userId);
             temp.setCreateBy(userId);
             temp.setCreateTime(DateUtils.getDateTime());
             temp.setCreateTime(DateUtils.getDateTime());

+ 5 - 7
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -697,11 +697,7 @@ public class UploadPatentBatchService {
         patent.setPublicNo(patentCell.getPublicNo());
         patent.setPublicNo(patentCell.getPublicNo());
         uploadParamsVO.setSimpleStatus(patentCell.getStatue());
         uploadParamsVO.setSimpleStatus(patentCell.getStatue());
         uploadParamsVO.setPatent(patent);
         uploadParamsVO.setPatent(patent);
-        getOneOrInsertOne(uploadParamsVO);
-        //装载代理机构
-        if (patentCell.getAgency() != null) {
-            uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(patentCell.getAgency()));
-        }
+        uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(patentCell.getAgency()));
         try {
         try {
             //专利信息 OS_PATENT
             //专利信息 OS_PATENT
             if (uploadParamsVO.getPatent() != null) {
             if (uploadParamsVO.getPatent() != null) {
@@ -717,11 +713,13 @@ public class UploadPatentBatchService {
             uploadParamsVO.getPatentRight().setContent(StringUtils.join(patentCell.getRights(), ""));
             uploadParamsVO.getPatentRight().setContent(StringUtils.join(patentCell.getRights(), ""));
             uploadParamsVO.setSelfContent(patentCell.getMainRignt());
             uploadParamsVO.setSelfContent(patentCell.getMainRignt());
             //权利要求 OS_PATENT_RIGHT
             //权利要求 OS_PATENT_RIGHT
-            patentRightBusiness(uploadParamsVO);
+            if (uploadParamsVO.getPatentRight().getContent() != null) {
+                patentRightBusiness(uploadParamsVO);
+            }
             //说明书(文本) OS_PATENT_INSTRUCTION_TEXT
             //说明书(文本) OS_PATENT_INSTRUCTION_TEXT
             uploadParamsVO.setPatentInstructionText(new PatentInstructionText());
             uploadParamsVO.setPatentInstructionText(new PatentInstructionText());
             uploadParamsVO.getPatentInstructionText().setManual(patentCell.getPatentInstructionText());
             uploadParamsVO.getPatentInstructionText().setManual(patentCell.getPatentInstructionText());
-            if (uploadParamsVO.getPatentInstructionText() != null) {
+            if (uploadParamsVO.getPatentInstructionText().getManual() != null) {
                 patentInstructionTextBusiness(uploadParamsVO);
                 patentInstructionTextBusiness(uploadParamsVO);
             }
             }
             //发明人 OS_PATENT_INVENTOR
             //发明人 OS_PATENT_INVENTOR

+ 13 - 7
PAS/src/main/java/cn/cslg/pas/service/impl/PatentMarketDataServiceImpl.java

@@ -1,10 +1,13 @@
 package cn.cslg.pas.service.impl;
 package cn.cslg.pas.service.impl;
 
 
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.dto.PatentMarketDataDTO;
 import cn.cslg.pas.common.model.dto.PatentMarketDataDTO;
 import cn.cslg.pas.common.model.vo.PatentNoTrendVO;
 import cn.cslg.pas.common.model.vo.PatentNoTrendVO;
 import cn.cslg.pas.common.model.vo.PatentTrendVO;
 import cn.cslg.pas.common.model.vo.PatentTrendVO;
 import cn.cslg.pas.common.model.vo.PermissionRecordTrendVO;
 import cn.cslg.pas.common.model.vo.PermissionRecordTrendVO;
 import cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO;
 import cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.mapper.PatentMarketDataMapper;
 import cn.cslg.pas.mapper.PatentMarketDataMapper;
 import cn.cslg.pas.service.IPatentMarketDataService;
 import cn.cslg.pas.service.IPatentMarketDataService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
@@ -25,10 +28,13 @@ import java.util.List;
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 public class PatentMarketDataServiceImpl implements IPatentMarketDataService {
 public class PatentMarketDataServiceImpl implements IPatentMarketDataService {
     private final PatentMarketDataMapper patentMarketDataMapper;
     private final PatentMarketDataMapper patentMarketDataMapper;
-
+    private final CacheUtils cacheUtils;
+    private final LoginUtils loginUtils;
 
 
     @Override
     @Override
     public List<PatentTrendVO> showTrend(PatentMarketDataDTO dto) {
     public List<PatentTrendVO> showTrend(PatentMarketDataDTO dto) {
+        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+        Integer tenantId =personnelVO.getTenantId();
         //存储专利号,以及专利号查询出来的信息
         //存储专利号,以及专利号查询出来的信息
         List<PatentTrendVO> trendVOS = new ArrayList<>();
         List<PatentTrendVO> trendVOS = new ArrayList<>();
         //存储专利号查询出来的所有信息
         //存储专利号查询出来的所有信息
@@ -42,14 +48,14 @@ public class PatentMarketDataServiceImpl implements IPatentMarketDataService {
             return null;
             return null;
         }
         }
         if (dto.getTimeUnit() == 2) {//按照年份返回营销数据
         if (dto.getTimeUnit() == 2) {//按照年份返回营销数据
-            pmdVOS = patentMarketDataMapper.patentQueryByYear(dto.getPatentNoList(), dto.getSaleArea());
-            prVOS = patentMarketDataMapper.PRDataQueryByYear(dto.getPatentNoList());
+            pmdVOS = patentMarketDataMapper.patentQueryByYear(dto.getPatentNoList(), dto.getSaleArea(),tenantId);
+            prVOS = patentMarketDataMapper.PRDataQueryByYear(dto.getPatentNoList(),tenantId);
         } else if (dto.getTimeUnit() == 1) {//按照季度返回营销数据
         } else if (dto.getTimeUnit() == 1) {//按照季度返回营销数据
-            pmdVOS = patentMarketDataMapper.patentQueryBySeason(dto.getPatentNoList(), dto.getSaleArea());
-            prVOS = patentMarketDataMapper.PRDataQueryBySeason(dto.getPatentNoList());
+            pmdVOS = patentMarketDataMapper.patentQueryBySeason(dto.getPatentNoList(), dto.getSaleArea(),tenantId);
+            prVOS = patentMarketDataMapper.PRDataQueryBySeason(dto.getPatentNoList(),tenantId);
         } else if (dto.getTimeUnit() == null || dto.getTimeUnit() == 0) {//按照月份返回营销数据
         } else if (dto.getTimeUnit() == null || dto.getTimeUnit() == 0) {//按照月份返回营销数据
-            pmdVOS = patentMarketDataMapper.patentQueryByMonth(dto.getPatentNoList(), dto.getSaleArea());
-            prVOS = patentMarketDataMapper.PRDataQueryByMonth(dto.getPatentNoList());
+            pmdVOS = patentMarketDataMapper.patentQueryByMonth(dto.getPatentNoList(), dto.getSaleArea(),tenantId);
+            prVOS = patentMarketDataMapper.PRDataQueryByMonth(dto.getPatentNoList(),tenantId);
         }
         }
 
 
         //遍历查询到的许可历史费用
         //遍历查询到的许可历史费用

+ 2 - 0
PAS/src/main/java/cn/cslg/pas/service/impl/ProductCategoryServiceImpl.java

@@ -307,6 +307,8 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
 
 
     @Override
     @Override
     public List<String> getAreaList(GetAreaListDTO dto) {
     public List<String> getAreaList(GetAreaListDTO dto) {
+        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+        dto.setTenantId(personnelVO.getTenantId());
         List<String> areaList = productCategoryMapper.getAreaList(dto);
         List<String> areaList = productCategoryMapper.getAreaList(dto);
         return areaList;
         return areaList;
 
 

+ 0 - 1
PAS/src/main/java/cn/cslg/pas/service/impl/ProductServiceImpl.java

@@ -62,7 +62,6 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     private final CacheUtils cacheUtils;
     private final CacheUtils cacheUtils;
     private final LoginUtils loginUtils;
     private final LoginUtils loginUtils;
     private final FileUtils fileUtils;
     private final FileUtils fileUtils;
-
     /**
     /**
      * 新增产品
      * 新增产品
      *
      *

+ 6 - 3
PAS/src/main/java/cn/cslg/pas/service/impl/StructureServiceImpl.java

@@ -316,10 +316,7 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
                     );
                     );
                 }
                 }
         );
         );
-        //若ids.size == 0,则表示根据名称模糊查询不到数据,则直接返回空structureVO
-        //if (structureVO != null) {
         diGui(structureVO, map, structureId, productId, ids);
         diGui(structureVO, map, structureId, productId, ids);
-        //}
         return structureVO;
         return structureVO;
     }
     }
 
 
@@ -454,6 +451,12 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
         }
         }
     }
     }
 
 
+    /**
+     * 获得某产品的架构树路径键值对 (map存储所有架构id(key)和架构名称(value)的键值对)
+     *
+     * @param productId 产品id
+     * @return 返回map
+     */
     private HashMap<String, String> getStructureIdAndStructureNameMap(Integer productId) {
     private HashMap<String, String> getStructureIdAndStructureNameMap(Integer productId) {
         List<StructureVO> structures = structureMapper.selectAllByProductId(productId);
         List<StructureVO> structures = structureMapper.selectAllByProductId(productId);
         //map存储所有架构id(key)和架构名称(value)的键值对
         //map存储所有架构id(key)和架构名称(value)的键值对

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

@@ -23,4 +23,4 @@ spring:
         login-password: Cslg2022+
         login-password: Cslg2022+
       web-stat-filter:
       web-stat-filter:
         exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
         exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
-authorUrl: http://localhost:8871
+authorUrl: http://localhost:8871

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

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

+ 4 - 6
PAS/src/main/resources/mapper/AssoProductPatentMapper.xml

@@ -104,10 +104,10 @@
     </select>
     </select>
 
 
     <select id="getPatentNos" resultType="java.lang.String">
     <select id="getPatentNos" resultType="java.lang.String">
-        select DISTINCT a.patentno as patent_no
+        select  a.patentno as patent_no
         from os_patent a
         from os_patent a
         left join asso_product_patent i on i.patent_no=a.patentno
         left join asso_product_patent i on i.patent_no=a.patentno
-        left join asso_structure_patent t on t.patent_no =a.patentno
+        and i.product_id =#{params.productId}
         <if test="params.applicationName !=null ">
         <if test="params.applicationName !=null ">
             left join os_applicant_attr b on a.id=b.pid and b.type =1
             left join os_applicant_attr b on a.id=b.pid and b.type =1
             left join os_patent_applicant c on c.id=b.applicantid
             left join os_patent_applicant c on c.id=b.applicantid
@@ -155,11 +155,10 @@
                 and a.`name` like concat("%", #{params.patentName}, "%")
                 and a.`name` like concat("%", #{params.patentName}, "%")
             </if>
             </if>
             <if test="params.isIn ==0">
             <if test="params.isIn ==0">
-                and (i.product_id !=#{params.productId} or i.product_id is null)
-                and (t.product_id !=#{params.productId} or t.product_id is null)
+                and (i.product_id is null)
             </if>
             </if>
             <if test="params.isIn !=0">
             <if test="params.isIn !=0">
-                and (i.product_id =#{params.productId} or t.product_id =#{params.productId})
+                and (i.product_id =#{params.productId})
             </if>
             </if>
             <if test="params.orderItem!=null and params.orderItem!='SysOrder'">
             <if test="params.orderItem!=null and params.orderItem!='SysOrder'">
                 order by #{params.orderItem}
                 order by #{params.orderItem}
@@ -181,7 +180,6 @@
                 limit #{params.startNumber},#{params.endNumber}
                 limit #{params.startNumber},#{params.endNumber}
             </if>
             </if>
         </where>
         </where>
-
     </select>
     </select>
 
 
     <!--插入数据-->
     <!--插入数据-->

+ 19 - 10
PAS/src/main/resources/mapper/PatentMarkerDataMapper.xml

@@ -14,8 +14,9 @@
         SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'年') AS market_date,
         SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'年') AS market_date,
             sum(sale_money) AS sale_total_money,
             sum(sale_money) AS sale_total_money,
             CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
             CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
-        FROM  product_market_data
-        WHERE product_id IN
+        FROM  product_market_data a left join  product b on a.product_id =b.id
+        <where>
+         product_id IN
                 (
                 (
                 SELECT product_id FROM asso_product_patent WHERE patent_no IN
                 SELECT product_id FROM asso_product_patent WHERE patent_no IN
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
@@ -25,7 +26,9 @@
                 <if test="saleArea != null and saleArea != ''">
                 <if test="saleArea != null and saleArea != ''">
                     AND sale_area = #{saleArea}
                     AND sale_area = #{saleArea}
                 </if>
                 </if>
+            AND b.tenant_id =#{tenantId}
         GROUP BY market_date
         GROUP BY market_date
+        </where>
     </select>
     </select>
     <!--传入了地区-->
     <!--传入了地区-->
     <!--按照季度为单位返回查询到的营销数据-->
     <!--按照季度为单位返回查询到的营销数据-->
@@ -33,7 +36,7 @@
         SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'年','第',QUARTER(CONCAT(sale_time,'-02')),'季度') AS market_date,
         SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'年','第',QUARTER(CONCAT(sale_time,'-02')),'季度') AS market_date,
             sum(sale_money) AS sale_total_money,
             sum(sale_money) AS sale_total_money,
             CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
             CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
-        FROM  product_market_data
+        FROM  product_market_data a left join  product b on a.product_id =b.id
         WHERE product_id IN
         WHERE product_id IN
                 (
                 (
                 SELECT product_id FROM asso_product_patent WHERE patent_no IN
                 SELECT product_id FROM asso_product_patent WHERE patent_no IN
@@ -44,6 +47,7 @@
                 <if test="saleArea != null and saleArea != ''">
                 <if test="saleArea != null and saleArea != ''">
                     AND sale_area = #{saleArea}
                     AND sale_area = #{saleArea}
                 </if>
                 </if>
+        AND b.tenant_id =#{tenantId}
         GROUP BY market_date
         GROUP BY market_date
     </select>
     </select>
     <!--传入了地区-->
     <!--传入了地区-->
@@ -52,17 +56,19 @@
         SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'-',MONTH(CONCAT(sale_time,'-02'))) AS market_date,
         SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'-',MONTH(CONCAT(sale_time,'-02'))) AS market_date,
             sum(sale_money) AS sale_total_money,
             sum(sale_money) AS sale_total_money,
             CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
             CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
-        FROM product_market_data
-        WHERE product_id IN
+        FROM product_market_data a left join  product b on a.product_id =b.id
+        WHERE a.product_id IN
                 (
                 (
                 SELECT product_id FROM asso_product_patent WHERE patent_no IN
                 SELECT product_id FROM asso_product_patent WHERE patent_no IN
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                     #{patentNo}
                     #{patentNo}
                 </foreach>
                 </foreach>
+
                 )
                 )
                 <if test="saleArea != null and saleArea != ''">
                 <if test="saleArea != null and saleArea != ''">
                     AND sale_area = #{saleArea}
                     AND sale_area = #{saleArea}
                 </if>
                 </if>
+        AND b.tenant_id =#{tenantId}
         GROUP BY market_date
         GROUP BY market_date
     </select>
     </select>
 
 
@@ -74,37 +80,40 @@
     </resultMap>
     </resultMap>
     <!--按照年份返回查询到的信息-->
     <!--按照年份返回查询到的信息-->
     <select id="PRDataQueryByYear" resultMap="PRDataQueryByDateMap">
     <select id="PRDataQueryByYear" resultMap="PRDataQueryByDateMap">
-        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(license_time,'%Y-%m')) as CHAR),'年') AS market_date,
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(license_time,'%Y-%m-%d')) as CHAR),'年') AS market_date,
                 SUM(license_fee) AS license_fee
                 SUM(license_fee) AS license_fee
         FROM permission_record
         FROM permission_record
         WHERE PATENT_NO IN
         WHERE PATENT_NO IN
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                     #{patentNo}
                     #{patentNo}
                 </foreach>
                 </foreach>
+        and tenant_id =#{tenantId}
         GROUP BY market_date
         GROUP BY market_date
     </select>
     </select>
     <!--按照季度返回查询到的信息-->
     <!--按照季度返回查询到的信息-->
     <select id="PRDataQueryBySeason" resultMap="PRDataQueryByDateMap">
     <select id="PRDataQueryBySeason" resultMap="PRDataQueryByDateMap">
-        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(license_time,'%Y-%m')) as CHAR),'年',
-        '第',CAST(QUARTER(STR_TO_DATE(license_time,'%Y-%m')) as CHAR),'季度') AS market_date,
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(license_time,'%Y-%m-%d')) as CHAR),'年',
+        '第',CAST(QUARTER(STR_TO_DATE(license_time,'%Y-%m-%d')) as CHAR),'季度') AS market_date,
                 SUM(license_fee) AS license_fee
                 SUM(license_fee) AS license_fee
         FROM permission_record
         FROM permission_record
         WHERE PATENT_NO IN
         WHERE PATENT_NO IN
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                     #{patentNo}
                     #{patentNo}
                 </foreach>
                 </foreach>
+        and tenant_id =#{tenantId}
         GROUP BY market_date
         GROUP BY market_date
     </select>
     </select>
     <!--按照月份返回查询到的信息-->
     <!--按照月份返回查询到的信息-->
     <select id="PRDataQueryByMonth" resultMap="PRDataQueryByDateMap">
     <select id="PRDataQueryByMonth" resultMap="PRDataQueryByDateMap">
-        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(license_time,'%Y-%m')) AS CHAR),'-',
-                      CAST(MONTH(STR_TO_DATE(license_time,'%Y-%m')) AS CHAR)) AS market_date,
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(license_time,'%Y-%m-%d')) AS CHAR),'-',
+                      CAST(MONTH(STR_TO_DATE(license_time,'%Y-%m-%d')) AS CHAR)) AS market_date,
                SUM(license_fee) AS license_fee
                SUM(license_fee) AS license_fee
         FROM permission_record
         FROM permission_record
         WHERE PATENT_NO IN
         WHERE PATENT_NO IN
               <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
               <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                     #{patentNo}
                     #{patentNo}
               </foreach>
               </foreach>
+        and tenant_id =#{tenantId}
         GROUP BY market_date
         GROUP BY market_date
     </select>
     </select>
 </mapper>
 </mapper>

+ 8 - 12
PAS/src/main/resources/mapper/ProductCategoryMapper.xml

@@ -245,10 +245,10 @@
 
 
     <select id="getAreaList" resultMap="getAreaListMap">
     <select id="getAreaList" resultMap="getAreaListMap">
         SELECT DISTINCT sale_area
         SELECT DISTINCT sale_area
-        FROM product_market_data
-        WHERE
+        FROM product_market_data a left join  product b on a.product_id =b.id
+        <where>
         <if test="productId != null and productId != ''">
         <if test="productId != null and productId != ''">
-            product_id = #{productId}
+            a.product_id = #{productId} and b.tenant_id=#{tenantId}
         </if>
         </if>
         <if test="categoryId !=null and categoryId != ''">
         <if test="categoryId !=null and categoryId != ''">
             product_id
             product_id
@@ -257,23 +257,19 @@
             FROM product
             FROM product
             WHERE
             WHERE
             product_category_id = #{categoryId})
             product_category_id = #{categoryId})
+            and tenant_id=#{tenantId}
         </if>
         </if>
         <if test="patentNoList != null and patentNoList.size() > 0 ">
         <if test="patentNoList != null and patentNoList.size() > 0 ">
             product_id IN(
             product_id IN(
             SELECT product_id
             SELECT product_id
-            FROM asso_structure_patent
-            WHERE patent_no IN
-            <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
-                #{patentNo}
-            </foreach>
-            UNION
-            SELECT product_id
-            FROM asso_product_patent
-            WHERE patent_no IN
+            FROM asso_product_patent c  left join  product d on c.product_id =d.id
+            WHERE c.patent_no IN
             <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
             <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
                 #{patentNo}
                 #{patentNo}
             </foreach>
             </foreach>
+            and d.tenant_id=#{tenantId}
             )
             )
         </if>
         </if>
+        </where>
     </select>
     </select>
 </mapper>
 </mapper>

+ 4 - 0
PAS/src/main/resources/mapper/ProjectImportMapper.xml

@@ -13,6 +13,10 @@
                     #{item}
                     #{item}
                 </foreach>
                 </foreach>
             </if>
             </if>
+            <if test="params.tenantId !=null ">
+                and a.tenant_id =#{params.tenantId}
+
+            </if>
         </where>
         </where>
         order by a.create_time desc
         order by a.create_time desc
     </select>
     </select>