소스 검색

显示栏位管理,专题库信息填充

lwhhszx 1 년 전
부모
커밋
0a2d6acba5
45개의 변경된 파일162584개의 추가작업 그리고 90091개의 파일을 삭제
  1. 14091 29690
      logs/pas/pas-debug.log
  2. 147057 56046
      logs/pas/pas-error.log
  3. 821 3978
      logs/pas/pas-info.log
  4. 1 1
      src/main/java/cn/cslg/pas/common/dto/AddSelfFieldDTO.java
  5. 1 1
      src/main/java/cn/cslg/pas/common/dto/CopyTreeNodeDTO.java
  6. 6 0
      src/main/java/cn/cslg/pas/common/dto/business/PatentProjectDTO.java
  7. 1 1
      src/main/java/cn/cslg/pas/common/model/cronModel/Personnel.java
  8. 23 0
      src/main/java/cn/cslg/pas/common/vo/DepartmentVO.java
  9. 15 0
      src/main/java/cn/cslg/pas/common/vo/ImportTaskConfigVO.java
  10. 4 0
      src/main/java/cn/cslg/pas/common/vo/PersonSelfFieldVO.java
  11. 19 7
      src/main/java/cn/cslg/pas/common/vo/business/PatentProjectVO.java
  12. 13 0
      src/main/java/cn/cslg/pas/common/vo/business/ReportCountVO.java
  13. 1 1
      src/main/java/cn/cslg/pas/controller/CommonController.java
  14. 2 2
      src/main/java/cn/cslg/pas/controller/PatentProjectController.java
  15. 10 0
      src/main/java/cn/cslg/pas/controller/TreeNodeController.java
  16. 3 1
      src/main/java/cn/cslg/pas/domain/business/AssoProjectEvent.java
  17. 1 1
      src/main/java/cn/cslg/pas/domain/business/AssoProjectFile.java
  18. 2 1
      src/main/java/cn/cslg/pas/domain/business/PatentProject.java
  19. 2 1
      src/main/java/cn/cslg/pas/domain/business/Project.java
  20. 0 88
      src/main/java/cn/cslg/pas/entity/ImportTask.java
  21. 0 95
      src/main/java/cn/cslg/pas/entity/ImportTaskCondition.java
  22. 6 1
      src/main/java/cn/cslg/pas/mapper/AssoProjectMapper.java
  23. 2 1
      src/main/java/cn/cslg/pas/mapper/ImportTaskConditionMapper.java
  24. 1 1
      src/main/java/cn/cslg/pas/mapper/ImportTaskMapper.java
  25. 2 0
      src/main/java/cn/cslg/pas/mapper/PatentProjectMapper.java
  26. 1 1
      src/main/java/cn/cslg/pas/mapper/TreeNodeMapper.java
  27. 2 2
      src/main/java/cn/cslg/pas/service/ImportTaskConditionService.java
  28. 2 2
      src/main/java/cn/cslg/pas/service/ImportTaskService.java
  29. 200 17
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  30. 87 68
      src/main/java/cn/cslg/pas/service/business/TreeNodeService.java
  31. 2 2
      src/main/java/cn/cslg/pas/service/common/FileManagerService.java
  32. 49 23
      src/main/java/cn/cslg/pas/service/common/PersonFieldService.java
  33. 19 5
      src/main/java/cn/cslg/pas/service/importPatent/ImportPatentExcel.java
  34. 43 0
      src/main/java/cn/cslg/pas/service/importPatent/ImportPatentFactory.java
  35. 3 2
      src/main/java/cn/cslg/pas/service/importPatent/IImportPatentFactory.java
  36. 3 2
      src/main/java/cn/cslg/pas/service/importPatent/ImportPatentPatentNo.java
  37. 6 26
      src/main/java/cn/cslg/pas/service/importPatent/PatentQueueService.java
  38. 0 19
      src/main/java/cn/cslg/pas/service/importPatent/ProjectImportService.java
  39. 23 0
      src/main/java/cn/cslg/pas/service/permissions/PermissionService.java
  40. 1 1
      src/main/resources/jsons/event.json
  41. 6 0
      src/main/resources/jsons/importTask.json
  42. 1 1
      src/main/resources/jsons/patentProject.json
  43. 30 0
      src/main/resources/mapper/AssoProject.xml
  44. 14 3
      src/main/resources/mapper/PatentProjectMapper.xml
  45. 8 0
      src/main/resources/mapper/TreeNodeMapper.xml

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 14091 - 29690
logs/pas/pas-debug.log


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 147057 - 56046
logs/pas/pas-error.log


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 821 - 3978
logs/pas/pas-info.log


+ 1 - 1
src/main/java/cn/cslg/pas/common/dto/AddSelfFieldDTO.java

@@ -11,6 +11,6 @@ import java.util.List;
 @Data
 public class AddSelfFieldDTO {
     private String tableName;
-    private List<String> value;
+    private List<PersonSelfFieldVO> value;
 
 }

+ 1 - 1
src/main/java/cn/cslg/pas/common/dto/CopyTreeNodeDTO.java

@@ -35,7 +35,7 @@ public class CopyTreeNodeDTO {
 
     private Integer toTypeId;
 
-
+    private Integer toNodeId;
     private Boolean ifDelete;
 
     private Boolean ifCopyChild;

+ 6 - 0
src/main/java/cn/cslg/pas/common/dto/business/PatentProjectDTO.java

@@ -1,8 +1,10 @@
 package cn.cslg.pas.common.dto.business;
 
 import cn.hutool.core.date.DateTime;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 import java.util.List;
@@ -29,6 +31,8 @@ public class PatentProjectDTO {
     @Schema(description = "内部卷号")
     private String volumeNumber;
     @Schema(description = "委案日")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     private Date commissionCaseDay;
     @Schema(description = "描述")
     private String description;
@@ -43,6 +47,8 @@ public class PatentProjectDTO {
     private List<ProjectTreesDTO> trees;
     @Schema(description = "周期")
     private String crons;
+    @Schema(description = "状态")
+    private Integer status;
     @Schema(description = "事件集合")
     private List<ProjectEventDTO> events;
     @Schema(description = "文件guids")

+ 1 - 1
src/main/java/cn/cslg/pas/common/model/cronModel/Personnel.java

@@ -19,7 +19,7 @@ public class Personnel  {
     /**
      * 人员账号
      */
-     private  Integer id;
+     private  String id;
      private String guid;
     private String personnelUserName;
 

+ 23 - 0
src/main/java/cn/cslg/pas/common/vo/DepartmentVO.java

@@ -0,0 +1,23 @@
+package cn.cslg.pas.common.vo;
+
+import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.hutool.core.date.DateTime;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 返回部门VO
+ * @Author lirj
+ * @Date 2023/11/3
+ */
+@Data
+public class DepartmentVO {
+
+    private String departId;
+    private String departName;
+
+
+
+}

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

@@ -0,0 +1,15 @@
+package cn.cslg.pas.common.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 实体类表以及栏位信息
+ */
+@Data
+public class ImportTaskConfigVO {
+    private Integer importTaskType;
+    private String serviceName;
+
+}

+ 4 - 0
src/main/java/cn/cslg/pas/common/vo/PersonSelfFieldVO.java

@@ -12,5 +12,9 @@ public class PersonSelfFieldVO {
     private String value;
     private Integer order;
     private Boolean ifSearch;
+    private Boolean ifShow;
+    private Boolean ifHidden;
+
+    private Integer createType;
 
 }

+ 19 - 7
src/main/java/cn/cslg/pas/common/vo/business/PatentProjectVO.java

@@ -23,7 +23,7 @@ import java.util.List;
 public class PatentProjectVO {
 
     @Schema(description = "id")
-    private String id;
+    private Integer id;
 
     @Schema(description = "名称")
     private String name;
@@ -38,38 +38,38 @@ public class PatentProjectVO {
      * 委托方id
      */
     @Schema(description = "委托方id")
-    private Integer entrustId;
+    private String entrustId;
 
     /**
      * 委托方姓名
      */
     @Schema(description = "委托方姓名")
-    private Integer entrustName;
+    private String entrustName;
 
     /**
      * 负责人id
      */
     @Schema(description = "head_id")
-    private Integer headId;
+    private String headId;
 
     /**
      * 负责人名称
      */
     @Schema(description = "负责人名称")
-    private Integer headName;
+    private String headName;
 
 
     /**
      * 负责部门id
      */
     @Schema(description = "负责部门id")
-    private Integer departmentId;
+    private String departmentId;
 
     /**
      * 负责部门名称
      */
     @Schema(description = "负责部门名称")
-    private Integer departmentName;
+    private String departmentName;
 
     /**
      * 项目类型(1专题库 2报告 3专利挖掘项目)
@@ -124,7 +124,19 @@ public class PatentProjectVO {
     @Schema(description = "创建人")
     private String createId;
 
+    /**
+     * 创建人
+     */
+    @Schema(description = "创建人")
+    private String createName;
 
     @Schema(description= "创建时间")
     private DateTime createTime;
+
+    @Schema(description = "文件信息")
+    private List<SystemFile> systemFileList;
+
+    @Schema(description = "文件信息")
+    private Integer reportProjectNum;
+
 }

+ 13 - 0
src/main/java/cn/cslg/pas/common/vo/business/ReportCountVO.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+
+/**
+ * 统计事件专题库或报告vo类
+ */
+@Data
+public class ReportCountVO {
+ private  Integer projectId;
+ private Integer projectCount;
+}

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

@@ -81,7 +81,7 @@ public class CommonController {
 
     @PostMapping("setCustomField")
     @Operation(summary = "设置个人栏位配置")
-    public Response setCustomField(AddSelfFieldDTO addSelfFieldDTO) {
+    public Response setCustomField(@RequestBody AddSelfFieldDTO addSelfFieldDTO) {
         try {
             List<PersonSelfFieldVO> personSelfFieldVOS= personFieldService.setCustomField(addSelfFieldDTO);
             Records records =new Records();

+ 2 - 2
src/main/java/cn/cslg/pas/controller/PatentProjectController.java

@@ -46,9 +46,9 @@ public class PatentProjectController {
 
     @Operation(summary = "添加专利数据库")
     @PostMapping("/addPatentProject")
-    public Response addPatentProject(PatentProjectDTO patentProjectDTO) throws Exception {
+    public Response addPatentProject(@RequestBody  PatentProjectDTO patentProjectDTO) throws Exception {
         if (patentProjectDTO != null) {
-            Business business = businessFactory.getClass("eventService");
+            Business business = businessFactory.getClass("patentProjectService");
             Integer id = null;
             try {
                 id = (Integer) business.addMessage(patentProjectDTO);

+ 10 - 0
src/main/java/cn/cslg/pas/controller/TreeNodeController.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.CopyTreeNodeDTO;
 import cn.cslg.pas.common.dto.business.*;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.StringRequest;
@@ -102,4 +103,13 @@ public class TreeNodeController {
         business.deleteMessage(ids);
         return Response.success();
     }
+
+    @Operation(summary = "复制树架构")
+    @PostMapping("/copyTreeNode")
+    public String copyTreeNode(@RequestBody CopyTreeNodeDTO copyTreeNodeDTO) throws Exception {
+        TreeNodeService  business = (TreeNodeService) businessFactory.getClass("treeNodeService");
+        business.copy(copyTreeNodeDTO);
+        return Response.success();
+    }
+
 }

+ 3 - 1
src/main/java/cn/cslg/pas/domain/business/AssoProjectEvent.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import org.joda.time.DateTime;
 
+import java.util.Date;
+
 /**
  * <p>
  * 事件项目关联表
@@ -35,5 +37,5 @@ public class AssoProjectEvent extends BaseEntity<AssoProjectEvent> {
     @TableField(value = "create_id")
     private String createId;
     @TableField(value = "create_time")
-    private DateTime createTime;
+    private Date createTime;
 }

+ 1 - 1
src/main/java/cn/cslg/pas/domain/business/AssoProjectFile.java

@@ -14,7 +14,7 @@ import org.joda.time.DateTime;
  * @Date 2023/11/1
  */
 @Data
-@TableName("asso_product_file")
+@TableName("asso_project_file")
 /* 数据库中的表对应的类
  */
 public class AssoProjectFile extends BaseEntity<AssoProjectFile> {

+ 2 - 1
src/main/java/cn/cslg/pas/domain/business/PatentProject.java

@@ -33,5 +33,6 @@ public class PatentProject extends BaseEntity<PatentProject> {
      * 更新周期
      */
     private String crons;
-
+    @TableField(value = "status")
+    private Integer status;
 }

+ 2 - 1
src/main/java/cn/cslg/pas/domain/business/Project.java

@@ -94,5 +94,6 @@ public class Project extends BaseEntity<Project> {
 
 
     @TableField(value = "create_time")
-    private DateTime createTime;
+    private Date createTime;
+
 }

+ 0 - 88
src/main/java/cn/cslg/pas/entity/ImportTask.java

@@ -1,88 +0,0 @@
-package cn.cslg.pas.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.Date;
-
-/**
- * 导入任务表
- *
- * @author chenyu
- * @date 2023/10/20
- */
-@Accessors(chain = true)
-@TableName("import_task")
-@Data
-public class ImportTask {
-    /**
-     * 主键id
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-    /**
-     * 条件
-     */
-    @TableField("condition")
-    private String condition;
-    /**
-     * 导入总条数
-     */
-    @TableField("all_num")
-    private Integer allNum;
-    /**
-     * 进度
-     */
-    @TableField("progress")
-    private Double progress;
-    /**
-     * 完成条数
-     */
-    @TableField("success_num")
-    private Integer successNum;
-    /**
-     * 失败条数
-     */
-    @TableField("default_num")
-    private Integer defaultNum;
-    /**
-     * 任务条件id
-     */
-    @TableField("import_task_condition_id")
-    private Integer importTaskConditionId;
-    /**
-     * 任务类型
-     * 1 excel导入
-     * 2 专利号导入
-     * 3 专利号文件导入
-     * 4 检索导入
-     * 5 pdf文档导入
-     */
-    @TableField("type")
-    private Integer type;
-    /**
-     * 状态(0.等待中 1.进行中 2.已完成 4.已暂停 5.已取消 6.PDF首页合并中)
-     */
-    @TableField("state")
-    private Integer state;
-    /**
-     * 完成时间
-     */
-    @TableField("finish_time")
-    private Date finishTime;
-    /**
-     * 创建人id
-     */
-    @TableField("create_id")
-    private Integer createId;
-    /**
-     * 创建时间
-     */
-    @TableField("create_time")
-    private Date createTime;
-
-}

+ 0 - 95
src/main/java/cn/cslg/pas/entity/ImportTaskCondition.java

@@ -1,95 +0,0 @@
-package cn.cslg.pas.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.Date;
-
-/**
- * 导入任务条件表
- *
- * @author chenyu
- * @date 2023/10/20
- */
-@Accessors(chain = true)
-@TableName("import_task_condition")
-@Data
-public class ImportTaskCondition {
-    /**
-     * 主键id
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-    /**
-     * 项目id
-     */
-    @TableField("project_id")
-    private Integer projectId;
-    /**
-     * 项目类型
-     * 0 专题库
-     * 1 报告
-     */
-    @TableField("project_type")
-    private Integer projectType;
-    /**
-     * 周期
-     */
-    @TableField("crons")
-    private String crons;
-    /**
-     * 上次更新时间
-     */
-    @TableField("last_update_date")
-    private Date lastUpdateDate;
-    /**
-     * 若是检索导入/专利号导入则必填五位数字
-     * 1著录项目 2附图 3权利要求 4说明书文本 5pdf文档
-     */
-    @TableField("import_content")
-    private Integer importContent;
-    /**
-     * 是否更新
-     */
-    @TableField("if_update")
-    private Integer ifUpdate;
-    /**
-     * 条件
-     */
-    @TableField("condition")
-    private String condition;
-    /**
-     * 1 excel导入
-     * 2 专利号导入
-     * 3 专利号文件导入
-     * 4 检索导入
-     * 5 pdf文档导入
-     */
-    @TableField("type")
-    private Integer type;
-    /**
-     * 文件guid
-     */
-    @TableField("file_guid")
-    private String fileGuid;
-    /**
-     * 若是excel导入任务,则使用到配置文件source_id
-     */
-    @TableField("source_id")
-    private Integer sourceId;
-    /**
-     * 创建人id
-     */
-    @TableField("create_id")
-    private Integer createId;
-    /**
-     * 创建时间
-     */
-    @TableField("create_time")
-    private Date createTime;
-
-}

+ 6 - 1
src/main/java/cn/cslg/pas/mapper/AssoProjectMapper.java

@@ -1,10 +1,13 @@
 package cn.cslg.pas.mapper;
 
-import cn.cslg.pas.domain.business.AssoEventFile;
+
+import cn.cslg.pas.common.vo.business.ReportCountVO;
 import cn.cslg.pas.domain.business.AssoProject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * 专题库或报告关联表
  *
@@ -13,4 +16,6 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface AssoProjectMapper extends BaseMapper<AssoProject> {
+    public List<ReportCountVO> getReportCount(List<Integer> patentProjectIds);
+    public List<Integer> getReportProjectNumOrder(String orderType);
 }

+ 2 - 1
src/main/java/cn/cslg/pas/mapper/ImportTaskConditionMapper.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.mapper;
 
-import cn.cslg.pas.entity.ImportTaskCondition;
+
+import cn.cslg.pas.domain.business.ImportTaskCondition;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 

+ 1 - 1
src/main/java/cn/cslg/pas/mapper/ImportTaskMapper.java

@@ -1,7 +1,7 @@
 package cn.cslg.pas.mapper;
 
 
-import cn.cslg.pas.entity.ImportTask;
+import cn.cslg.pas.domain.business.ImportTask;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 

+ 2 - 0
src/main/java/cn/cslg/pas/mapper/PatentProjectMapper.java

@@ -19,4 +19,6 @@ import java.util.List;
 public interface PatentProjectMapper extends BaseMapper<PatentProject> {
 
     public List<PatentProjectVO> getPatentProject(String sql1,String sql2,String sql3);
+    public Long getPatentProjectCount(String sql);
+
 }

+ 1 - 1
src/main/java/cn/cslg/pas/mapper/TreeNodeMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
 @Repository
 public interface TreeNodeMapper extends BaseMapper<TreeNode> {
     List<TreeNodeVO> getTreeNode(@Param("queryTreeNodeDTO")QueryTreeNodeDTO queryTreeNodeDTO);
-    List<TreeNodeVO> getTreeNodeByIds(List<Integer> ids,Boolean ifCopyChild);
+    List<TreeNodeVO> getTreeNodeByIds(List<Integer> ids,Boolean ifCopyChild,Integer type,Integer typeId);
     List<TreeNodeVO> getTreeNodes(String sql1,String sql2,String sql3);
     public Long getTreeNodeCount(String sql);
 }

+ 2 - 2
src/main/java/cn/cslg/pas/service/ImportTaskConditionService.java

@@ -1,6 +1,6 @@
-package cn.cslg.pas.service;
+package cn.cslg.pas.service.business;
 
-import cn.cslg.pas.entity.ImportTaskCondition;
+import cn.cslg.pas.domain.business.ImportTaskCondition;
 import cn.cslg.pas.mapper.ImportTaskConditionMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;

+ 2 - 2
src/main/java/cn/cslg/pas/service/ImportTaskService.java

@@ -1,6 +1,6 @@
-package cn.cslg.pas.service;
+package cn.cslg.pas.service.business;
 
-import cn.cslg.pas.entity.ImportTask;
+import cn.cslg.pas.domain.business.ImportTask;
 import cn.cslg.pas.mapper.ImportTaskMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;

+ 200 - 17
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -8,9 +8,11 @@ import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.DepartmentVO;
 import cn.cslg.pas.common.vo.business.EventCountVO;
 import cn.cslg.pas.common.vo.business.EventVO;
 import cn.cslg.pas.common.vo.business.PatentProjectVO;
+import cn.cslg.pas.common.vo.business.ReportCountVO;
 import cn.cslg.pas.domain.business.*;
 
 import cn.cslg.pas.exception.UnLoginException;
@@ -18,8 +20,6 @@ import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.reGroupFactory.QueryGroupFactory;
 import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
-import cn.cslg.pas.mapper.AssoProjectEventMapper;
-import cn.cslg.pas.mapper.EventMapper;
 import cn.cslg.pas.mapper.PatentProjectMapper;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.permissions.PermissionService;
@@ -37,15 +37,13 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
+
 @Service
 @Slf4j
 public class PatentProjectService extends ServiceImpl<PatentProjectMapper, PatentProject> implements Business {
-    @Autowired
-    private EventMapper eventMapper;
 
     @Autowired
     private PatentProjectMapper patentProjectMapper;
@@ -74,6 +72,11 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     @Autowired
     private AssoProjectFileService assoProjectFileService;
 
+    @Autowired
+    private FileManagerService fileManagerService;
+    @Autowired
+    private AssoProjectService assoProjectService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
@@ -81,12 +84,14 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         List<String> sqls = formatQueryService.reSqls(queryRequest, "patentProject");
         //根据sql查询专题库信息
         List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0), sqls.get(1), sqls.get(2));
-
-        //装载事件信息
+        Long total = patentProjectMapper.getPatentProjectCount(sqls.get(0));
+        //装载专利数据库信息
+        this.loadPatentProject(patentProjectVOS);
         Records records = new Records();
         records.setCurrent(queryRequest.getCurrent());
         records.setSize(queryRequest.getSize());
         records.setData(patentProjectVOS);
+        records.setTotal(total);
         return records;
     }
 
@@ -190,6 +195,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object addMessage(Object object) {
+        if (object == null) {
+            throw new XiaoShiException("参数不能为空");
+        }
         //TODO 校验参数
         PatentProjectDTO patentProjectDTO = (PatentProjectDTO) object;
         //判断是否选择更新并且上传了cron表达式
@@ -237,11 +245,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
                         JSONObject jsonObject = JSONObject.parseObject(res);
                         Integer clientId = Integer.parseInt(jsonObject.get("data").toString());
                         project.setEntrustId(clientId.toString());
+                    } catch (Exception e) {
+                        throw new XiaoShiException("网络异常");
                     }
-          catch (Exception e)
-          {
-              throw new XiaoShiException("网络异常");
-          }
 
                 }
             } else {
@@ -251,8 +257,6 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
                     project.setEntrustId(patentProjectDTO.getEntrustId());
                 }
             }
-
-
         }
         project.setCreateId(personnelVO.getId());
         project.setTenantId(personnelVO.getTenantId());
@@ -384,12 +388,191 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     }
 
     /**
-     * 装载事件返回类
-     *
-     * @param eventVOs
+     * @param patentProjectVOS
+     * @throws IOException
      */
-    private void loadPatentProject(List<EventVO> eventVOs) throws IOException {
+    private void loadPatentProject(List<PatentProjectVO> patentProjectVOS) throws IOException {
+        List<String> createIds = new ArrayList<>();
+        List<String> departmentIds = new ArrayList<>();
+        List<Integer> clientIds =new ArrayList<>();
+        List<Integer> ids = new ArrayList<>();
+        List<DepartmentVO> departmentVOS =new ArrayList<>();
+        List<ReportCountVO> reportCountVOS = new ArrayList<>();
+        List<Client> clients = new ArrayList<>();
+        List<AssoProjectEvent> assoProjectEvents =new ArrayList<>();
+        List<AssoProjectTreeNode> assoProjectTreeNodes =new ArrayList<>();
+        List<Event> events =new ArrayList<>();
+        //获得创建人id集合
+        patentProjectVOS.forEach(
+                item -> {
+
+                    if (item.getCreateId() != null) {
+                        createIds.add(item.getCreateId());
+                    }
+
+                    if (item.getHeadId() != null) {
+                        createIds.add(item.getHeadId());
+                    }
+
+                    if (item.getId() != null) {
+                        ids.add(item.getId());
+                    }
+
+                    if (item.getDepartmentId() != null) {
+                        departmentIds.add(item.getDepartmentId());
+                    }
+
+                    if(item.getEntrustType()!=null&&item.getEntrustType().equals(2))
+                    {
+                        departmentIds.add(item.getEntrustId());
+                    }
+
+                    if(item.getEntrustType()!=null&&item.getEntrustType().equals(1))
+                    {
+                        clientIds.add(Integer.parseInt(item.getEntrustId()));
+                    }
+                }
+        );
+
+        List<Personnel> personnels = new ArrayList<>();
+        List<String> guids = new ArrayList<>();
+        List<SystemFile> systemFiles = new ArrayList<>();
+        List<AssoProjectFile> assoEventFiles = new ArrayList<>();
+
+        //查询创建人名称
+        if (createIds.size() != 0) {
+            String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+        }
+
+        //查询部门名称
+        if (departmentIds.size() != 0) {
+            String   json = permissionService.getDepartmentByIdsFromPCS(departmentIds);
+            departmentVOS = JSON.parseArray(json,DepartmentVO.class);
+
+        }
+
+
+        if (ids.size() != 0) {
+            //根据事件id获得事件文件关联表
+            LambdaQueryWrapper<AssoProjectFile> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(AssoProjectFile::getProjectId, ids);
+            assoEventFiles = assoProjectFileService.list(queryWrapper);
+            guids = assoEventFiles.stream().map(AssoProjectFile::getFileGuid).collect(Collectors.toList());
+
+            //根据事件id分组查询事件关联专题库或报告数量
+            reportCountVOS = assoProjectService.getBaseMapper().getReportCount(ids);
+        }
+
+
+        //查询文件
+        if (guids.size() != 0) {
+            String res = fileManagerService.getSystemFileFromFMS(guids);
+
+            systemFiles = JSONObject.parseArray(res, SystemFile.class);
+        }
+
+        //查询客户名称
+        if (clientIds.size() != 0) {
+            String res = permissionService.getClientByIdsFromPCS(clientIds);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            clients = JSONObject.parseArray(jsonObject.getString("data"), Client.class);
+        }
+
+        //查询应用场景、调查类型、事件和专题库的关联
+        if(ids!=null&&ids.size()>0) {
+            LambdaQueryWrapper<AssoProjectEvent> assoProjectEventQueryWrapper = new LambdaQueryWrapper<>();
+            assoProjectEventQueryWrapper.in(AssoProjectEvent::getProjectId, ids);
+            assoProjectEvents = assoProjectEventService.list(assoProjectEventQueryWrapper);
+        }
+
+       //查询和产品,产品分类,技术分类关联列表
+         if(ids!=null&&ids.size()>0){
+             LambdaQueryWrapper<AssoProjectTreeNode> assoProjectTreeNodeQueryWrapper = new LambdaQueryWrapper<>();
+             assoProjectTreeNodeQueryWrapper.in(AssoProjectTreeNode::getProjectId, ids);
+             assoProjectTreeNodes = assoProjectTreeNodeService.list(assoProjectTreeNodeQueryWrapper);
+
+         }
+
+        //装载信息
+        for (PatentProjectVO patentProjectVO : patentProjectVOS) {
+
+            //装载人员信息
+            Personnel personnel = personnels.stream().filter(item -> item.getId().equals(patentProjectVO.getCreateId())).findFirst().orElse(null);
+            if (personnel != null) {
+                patentProjectVO.setCreateName(personnel.getPersonnelName());
+            }
+
+            if(patentProjectVO.getHeadId()!=null) {
+                Personnel headPersonnel = personnels.stream().filter(item -> item.getId().equals(patentProjectVO.getHeadId())).findFirst().orElse(null);
+                if (headPersonnel != null) {
+                    patentProjectVO.setHeadName(personnel.getPersonnelName());
+                }
+            }
+
+            //装载文件信息
+            List<AssoProjectFile> assoProjectFileTemp = assoEventFiles.stream().filter(item -> item.getProjectId().equals(patentProjectVO.getId())).collect(Collectors.toList());
+            if (assoProjectFileTemp.size() != 0) {
+                List<String> guidTemp = assoProjectFileTemp.stream().map(AssoProjectFile::getFileGuid).collect(Collectors.toList());
+                if (guidTemp.size() != 0) {
+                    List<SystemFile> systemFileTemp = systemFiles.stream().filter(item -> guidTemp.contains(item.getGuid())).collect(Collectors.toList());
+                    if (systemFileTemp.size() != 0) {
+                        patentProjectVO.setSystemFileList(systemFileTemp);
+                    }
+                }
+            }
 
+            //装载报告数量
+            if (reportCountVOS.size() != 0) {
+
+                //报告数量
+                ReportCountVO reportCountVO = reportCountVOS.stream().filter(item ->
+                        item.getProjectId().equals(patentProjectVO.getId())).findFirst().orElse(null);
+
+                //设置报告数量
+                if (reportCountVO != null) {
+                    patentProjectVO.setReportProjectNum(reportCountVO.getProjectCount());
+                } else {
+                    patentProjectVO.setReportProjectNum(0);
+                }
+
+            } else {
+                patentProjectVO.setReportProjectNum(0);
+            }
+
+            //装载部门
+             if(patentProjectVO.getDepartmentId()!=null){
+                 DepartmentVO departmentVO =  departmentVOS.stream().filter(item->item.getDepartId().equals(patentProjectVO.getDepartmentId())).findFirst().orElse(null);
+                  if(departmentVO!=null){
+                      patentProjectVO.setDepartmentName(departmentVO.getDepartName());
+                  }
+             }
+
+            //裝載委托方
+             if(patentProjectVO.getEntrustType()!=null){
+                 //当委托方为客户时
+                 if(patentProjectVO.getEntrustType().equals(1)){
+              Client client =  clients.stream().filter(item->item.getId().equals(Integer.parseInt(patentProjectVO.getEntrustId()))).findFirst().orElse(null);
+
+              if(client!=null){
+                  patentProjectVO.setEntrustName(client.getName());
+              }
+
+                 }
+
+                 else if(patentProjectVO.getEntrustType().equals(2)){
+                     DepartmentVO departmentVO =  departmentVOS.stream().filter(item->item.getDepartId().equals(patentProjectVO.getEntrustId())).findFirst().orElse(null);
+
+                     if(departmentVO!=null){
+                         patentProjectVO.setEntrustName(departmentVO.getDepartName());
+                     }
+                 }
+
+             }
+
+
+        }
 
     }
 

+ 87 - 68
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -136,7 +136,7 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
                 });
 
                 //返回树
-                List<TreeNodeVO> treeNodeVOS = treeNodeMapper.getTreeNodeByIds(ids,false);
+                List<TreeNodeVO> treeNodeVOS = treeNodeMapper.getTreeNodeByIds(ids, false,null,null);
                 this.loadTreeNode(treeNodeVOS);
                 reTreeNodeVOS = this.reTrees(treeNodeVOS);
                 records.setData(reTreeNodeVOS);
@@ -508,74 +508,93 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
     //复制节点
     @Transactional(rollbackFor = Exception.class)
     public void copy(CopyTreeNodeDTO copyTreeNodeDTO) {
-
+        Integer fromTypeId = copyTreeNodeDTO.getFromTypeId();
+        Integer fromType = copyTreeNodeDTO.getFromType();
+        List<Integer> fromNodeIds = copyTreeNodeDTO.getFromNodeIds();
+        Integer toTypeId =copyTreeNodeDTO.getToTypeId();
+        Integer toType =copyTreeNodeDTO.getToType();
+        Integer toId =copyTreeNodeDTO.getToNodeId();
+        Boolean  ifCopyChild =copyTreeNodeDTO.getIfCopyChild();
+        Boolean  ifDelete =copyTreeNodeDTO.getIfDelete();
+
+        List<TreeNodeVO> fromTreeNodeVOS =new ArrayList<>();
+
+        //判断是否复制全部
+        if(fromNodeIds==null||fromNodeIds.size()==0){
+fromTreeNodeVOS = treeNodeMapper.getTreeNodeByIds(null,false, fromType,fromTypeId);
+        }
+else {
+            fromTreeNodeVOS = treeNodeMapper.getTreeNodeByIds(fromNodeIds,ifCopyChild, null,null);
+        }
 //根据id查出树
-//        QueryTreeNodeDTO queryTreeNodeDTO1 = new QueryTreeNodeDTO();
-//        queryTreeNodeDTO1.setId(copiedId);
-//        List<TreeNodeVO> copiedTreeNodeVOs = treeNodeMapper.getTreeNode(List<Integer> ids,);
-//        List<ReTreeNodeVO> copiedReTreeNodeVOs = this.reTrees(copiedTreeNodeVOs);
-//        Integer level = 0;
-//
-//        //根据copyId 查询节点
-//        if (toId != null) {
-//            TreeNode treeNode = this.getById(toId);
-//            level = treeNode.getLevel();
-//            for (ReTreeNodeVO item : copiedReTreeNodeVOs) {
-//                item.setParentId(toId);
-//                item.setPath(treeNode.getPath() + "/" + treeNode.getId());
-//                item.setLevel(level);
-//                item.setType(treeNode.getType());
-//                item.setTypeId(treeNode.getTypeId());
-//            }
-//        } else {
-//            for (ReTreeNodeVO item : copiedReTreeNodeVOs) {
-//                item.setParentId(0);
-//                item.setPath("");
-//                item.setLevel(level);
-//                item.setType(type);
-//                item.setTypeId(typeId);
-//            }
-//
-//        }
-//
-//        List<TreeNodeVO> toTreeNodeVOs = new ArrayList<>();
-//        if (toId != null) {
-//            QueryTreeNodeDTO queryTreeNodeDTO2 = new QueryTreeNodeDTO();
-//            queryTreeNodeDTO2.setId(toId);
-//            toTreeNodeVOs = treeNodeMapper.getTreeNode(queryTreeNodeDTO2);
-//        }
-//        while (copiedReTreeNodeVOs.size() != 0) {
-//            List<ReTreeNodeVO> reTreeNodeVOS = new ArrayList<>();
-//            for (ReTreeNodeVO reTreeNodeVO : copiedReTreeNodeVOs) {
-//                //根据父id查找子节点
-//                TreeNodeVO treeNodeVO = toTreeNodeVOs.stream().filter(item -> item.getParentId().equals(reTreeNodeVO.getParentId()) && reTreeNodeVO.getName().equals(reTreeNodeVO.getName())).findFirst().orElse(null);
-//
-//                //当有相同节点时
-//                if (treeNodeVO != null) {
-//                    BeanUtils.copyProperties(treeNodeVO, reTreeNodeVO);
-//
-//                } else {
-//                    TreeNode treeNode1 = new TreeNode();
-//                    BeanUtils.copyProperties(reTreeNodeVO, treeNode1);
-//                    treeNode1.setId(null);
-//                    treeNode1.insert();
-//                    reTreeNodeVO.setId(treeNode1.getId());
-//                }
-////TODO复制相关专利
-//                List<ReTreeNodeVO> childNodes = reTreeNodeVO.getChild();
-//                if (childNodes != null && childNodes.size() > 0) {
-//                    childNodes.forEach(item -> {
-//                        item.setParentId(reTreeNodeVO.getId());
-//                        item.setPath(reTreeNodeVO.getPath() + "/" + reTreeNodeVO.getId());
-//                        item.setTypeId(reTreeNodeVO.getTypeId());
-//                        item.setType(reTreeNodeVO.getType());
-//                    });
-//                    reTreeNodeVOS.addAll(childNodes);
-//
-//                }
-//            }
-//            copiedReTreeNodeVOs = reTreeNodeVOS;
-//        }
+
+        List<ReTreeNodeVO> fromReTreeNodeVOs = this.reTrees(fromTreeNodeVOS);
+        Integer level = 0;
+
+        //根据copyId 查询节点
+        if (toId != null) {
+            TreeNode treeNode = this.getById(toId);
+            level = treeNode.getLevel();
+            for (ReTreeNodeVO item : fromReTreeNodeVOs) {
+                item.setParentId(toId);
+                    item.setPath(treeNode.getPath() + treeNode.getId()+"/");
+                item.setLevel(level+1);
+                item.setType(treeNode.getType());
+                item.setTypeId(treeNode.getTypeId());
+            }
+        } else {
+            for (ReTreeNodeVO item : fromReTreeNodeVOs) {
+                item.setParentId(0);
+                item.setPath("");
+                item.setLevel(level);
+                item.setType(toType);
+                item.setTypeId(toTypeId);
+            }
+
+        }
+
+        List<TreeNodeVO> toTreeNodeVOs = new ArrayList<>();
+        if (toId != null) {
+            QueryTreeNodeDTO queryTreeNodeDTO2 = new QueryTreeNodeDTO();
+            queryTreeNodeDTO2.setId(toId);
+            toTreeNodeVOs = treeNodeMapper.getTreeNode(queryTreeNodeDTO2);
+        }
+        else{
+            toTreeNodeVOs = treeNodeMapper.getTreeNodeByIds(null,true, toType,toTypeId);
+        }
+        while (fromReTreeNodeVOs.size() != 0) {
+            List<ReTreeNodeVO> reTreeNodeVOS = new ArrayList<>();
+            for (ReTreeNodeVO reTreeNodeVO : fromReTreeNodeVOs) {
+                //根据父id查找子节点
+                TreeNodeVO treeNodeVO = toTreeNodeVOs.stream().filter(item -> item.getParentId().equals(reTreeNodeVO.getParentId()) && item.getName().equals(reTreeNodeVO.getName())).findFirst().orElse(null);
+
+                //当有相同节点时
+                if (treeNodeVO != null) {
+                    BeanUtils.copyProperties(treeNodeVO, reTreeNodeVO);
+
+                } else {
+                    TreeNode treeNode1 = new TreeNode();
+                    BeanUtils.copyProperties(reTreeNodeVO, treeNode1);
+                    treeNode1.setId(null);
+                    treeNode1.insert();
+                    reTreeNodeVO.setId(treeNode1.getId());
+                }
+//TODO 复制相关专利
+                List<ReTreeNodeVO> childNodes = reTreeNodeVO.getChild();
+                if (childNodes != null && childNodes.size() > 0) {
+                    childNodes.forEach(item -> {
+                        item.setParentId(reTreeNodeVO.getId());
+                        item.setPath(reTreeNodeVO.getPath() + reTreeNodeVO.getId());
+                        item.setTypeId(reTreeNodeVO.getTypeId());
+                        item.setType(reTreeNodeVO.getType());
+                        item.setLevel(reTreeNodeVO.getLevel()+1);
+                    });
+                    reTreeNodeVOS.addAll(childNodes);
+
+                }
+            }
+            fromReTreeNodeVOs = reTreeNodeVOS;
+        }
     }
 
     public void loadPath(List<TreeNodeVO> treeNodeVOS) {

+ 2 - 2
src/main/java/cn/cslg/pas/service/common/FileManagerService.java

@@ -89,14 +89,14 @@ public class FileManagerService {
      *
      * @param fieldId 文件id
      */
-    public byte[] downloadSystemFileFromFMS(Integer fieldId) throws IOException {
+    public byte[] downloadSystemFileFromFMS(String fieldId) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient.Builder()
                 .connectTimeout(60, TimeUnit.SECONDS)
                 .writeTimeout(60, TimeUnit.SECONDS)
                 .readTimeout(60, TimeUnit.SECONDS)
                 .build();
         Request request = new Request.Builder()
-                .url(FMSUrl + "/fileManager/downloadSystemFile?fileId=" + fieldId)
+                .url(FMSUrl + "/fileManager/downloadFile?fileId=" + fieldId)
                 .get()
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).bytes();

+ 49 - 23
src/main/java/cn/cslg/pas/service/common/PersonFieldService.java

@@ -2,11 +2,11 @@ package cn.cslg.pas.service.common;
 
 
 import cn.cslg.pas.common.core.base.RedisConf;
-import cn.cslg.pas.common.utils.JsonUtils;
-import cn.cslg.pas.common.utils.RedisUtil;
-import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.dto.AddSelfFieldDTO;
 import cn.cslg.pas.common.vo.PersonSelfFieldVO;
+import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.service.business.CommonService;
 import cn.hutool.crypto.SecureUtil;
@@ -23,10 +23,21 @@ public class PersonFieldService {
     @Autowired
     private RedisUtil redisUtil;
 
+    @Autowired
+    private CacheUtils cacheUtils;
+    @Autowired
+    private LoginUtils loginUtils;
+
     public List<PersonSelfFieldVO> getCustomField(String tableName) {
 
         //根据登录人id和type查询
-        String userId = "328";
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        String userId = personnelVO.getId();
         String key = SecureUtil.md5(tableName + RedisConf.SYMBOL_COLON + userId);
         String json = redisUtil.get(RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key);
 
@@ -34,21 +45,29 @@ public class PersonFieldService {
         if (StringUtils.isNotEmpty(json)) {
             return JsonUtils.jsonToList(json, PersonSelfFieldVO.class);
         }
+        String fieldJson = "";
         //如果没查询到,则获取所有栏位添加到redis里
-        String fieldJson = CommonService.readJsonFile(tableName + ".json");
+        try {
+            fieldJson = CommonService.readJsonFile(tableName + ".json");
+        } catch (Exception e) {
+            throw new XiaoShiException("不存在此表");
+        }
         List<PersonSelfFieldVO> fieldVOS = JSON.parseArray(fieldJson, PersonSelfFieldVO.class);
-        fieldVOS = fieldVOS.stream().filter(item -> item.getIfSearch().equals(true)).collect(Collectors.toList());
+        if (fieldVOS == null) {
+            throw new XiaoShiException("不存在此表");
+        }
+        fieldVOS = fieldVOS.stream().filter(item -> item.getIfShow().equals(true)).collect(Collectors.toList());
         if (fieldVOS == null || fieldVOS.size() == 0) {
             throw new XiaoShiException("表中无字段");
         }
-
+        fieldVOS.forEach(item->{item.setCreateType(1);});
         //装载顺序
         Integer order = 0;
         for (PersonSelfFieldVO item : fieldVOS) {
             item.setOrder(order);
+            item.setIfHidden(false);
             order++;
         }
-        ;
 
         //保存到redis
         redisUtil.set(RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key, JsonUtils.objectToJson(fieldVOS));
@@ -58,31 +77,38 @@ public class PersonFieldService {
     }
 
     public List<PersonSelfFieldVO> setCustomField(AddSelfFieldDTO addSelfFieldDTO) {
-        String userId = "328";
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        String userId = personnelVO.getId();
         String key = SecureUtil.md5(addSelfFieldDTO.getTableName() + RedisConf.SYMBOL_COLON + userId);
 
         String fieldJson = CommonService.readJsonFile(addSelfFieldDTO.getTableName() + ".json");
         List<PersonSelfFieldVO> fieldVOS = JSON.parseArray(fieldJson, PersonSelfFieldVO.class);
+        fieldVOS = fieldVOS.stream().filter(item -> item.getIfShow().equals(true)).collect(Collectors.toList());
+
+        for(PersonSelfFieldVO item:fieldVOS){
+            PersonSelfFieldVO temVO=  addSelfFieldDTO.getValue().stream().filter(tem->tem.getValue().equals(item.getValue())).findFirst().orElse(null);
+         if(temVO==null){
+             item.setIfHidden(true);
+         }
+         else {
+             item.setIfHidden(temVO.getIfHidden());
+         }
+        }
 
-        List<PersonSelfFieldVO> personSelfFieldVOS = new ArrayList<>();
-
-        addSelfFieldDTO.getValue().forEach(item -> {
-            PersonSelfFieldVO personSelfFieldVO = fieldVOS.stream().filter(tem -> tem.getValue().equals(item)).findFirst().orElse(null);
-
-            if (personSelfFieldVO != null) {
-                personSelfFieldVOS.add(personSelfFieldVO);
-            }
-        });
 
         Integer order = 0;
-        
-        for (PersonSelfFieldVO item : personSelfFieldVOS) {
+
+        for (PersonSelfFieldVO item : fieldVOS) {
             item.setOrder(order);
             order++;
         }
-        ;
-        redisUtil.set(RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key, JsonUtils.objectToJson(personSelfFieldVOS));
+        redisUtil.set(RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key, JsonUtils.objectToJson(fieldVOS));
 
-        return personSelfFieldVOS;
+        return fieldVOS;
     }
 }

+ 19 - 5
src/main/java/cn/cslg/pas/service/importPatent/ImportPatentExcel.java

@@ -1,9 +1,12 @@
 package cn.cslg.pas.service.importPatent;
 
-import cn.cslg.pas.entity.ImportTask;
-import cn.cslg.pas.entity.ImportTaskCondition;
-import cn.cslg.pas.service.ImportTaskConditionService;
+
+import cn.cslg.pas.domain.business.ImportTask;
+import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.service.business.ImportTaskConditionService;
+import cn.cslg.pas.service.common.FileManagerService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -14,8 +17,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 @RequiredArgsConstructor
-public class ImportPatentExcel implements IImportPatentFactory {
-    private final ImportTaskConditionService importTaskConditionService;
+public class ImportPatentExcel implements ImportPatentImp {
+    @Autowired
+    private  ImportTaskConditionService importTaskConditionService;
+    @Autowired
+    private FileManagerService fileManagerService;
     private Integer pauseTaskId = 0;
     private Integer pauseTaskState = 0;
 
@@ -26,6 +32,14 @@ public class ImportPatentExcel implements IImportPatentFactory {
         ImportTaskCondition importTaskCondition = importTaskConditionService.getById(importTaskConditionId);
         String fileGuid = importTaskCondition.getFileGuid();
         //根据文件guid,调用文件系统获得文件流
+        try {
+            fileManagerService.downloadSystemFileFromFMS(fileGuid);
+        }
+        catch (Exception e){
+
+
+        }
+
         //创建临时文件tempFile,并将文件流写入该临时文件
         //
 

+ 43 - 0
src/main/java/cn/cslg/pas/service/importPatent/ImportPatentFactory.java

@@ -0,0 +1,43 @@
+package cn.cslg.pas.service.importPatent;
+
+import cn.cslg.pas.common.vo.ImportTaskConfigVO;
+import cn.cslg.pas.domain.business.ImportTask;
+import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.service.business.CommonService;
+import cn.cslg.pas.service.business.ImportTaskConditionService;
+import cn.cslg.pas.service.business.ImportTaskService;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 分组查询工厂
+ */
+@Component
+public class ImportPatentFactory {
+    @Autowired
+    private Map<String, ImportPatentImp> getSObjectMap;
+    @Autowired
+    private ImportTaskService importTaskService;
+    @Autowired
+    private ImportTaskConditionService importTaskConditionService;
+    public ImportPatentImp getClass(Integer taskId) {
+
+        ImportPatentImp bean1=null;
+        //根据taskId查询task导入类型
+        ImportTask importTask =importTaskService.getById(taskId);
+      Integer conditionId =importTask.getImportTaskConditionId();
+      //根据条件id查询条件
+     ImportTaskCondition importTaskCondition = importTaskConditionService.getById(conditionId);
+        String json = CommonService.readJsonFile("importTask.json");
+        List<ImportTaskConfigVO> configVOS = JSON.parseArray(json, ImportTaskConfigVO.class);
+        ImportTaskConfigVO importTaskConfigVO=configVOS.stream().filter(item->item.getImportTaskType().equals(importTaskCondition.getType())).findFirst().orElse(null);
+        if(importTaskConfigVO!=null){
+            bean1 = getSObjectMap.get(importTaskConfigVO.getServiceName());
+        }
+        return bean1;
+    }
+}

+ 3 - 2
src/main/java/cn/cslg/pas/service/importPatent/IImportPatentFactory.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service.importPatent;
 
-import cn.cslg.pas.entity.ImportTask;
+
+import cn.cslg.pas.domain.business.ImportTask;
 
 /**
  * 导入专利工厂类方法接口
@@ -8,7 +9,7 @@ import cn.cslg.pas.entity.ImportTask;
  * @author chenyu
  * @date 2023/10/20
  */
-public interface IImportPatentFactory {
+public interface ImportPatentImp {
     /**
      * 执行导入专利数据入库方法
      * @param importTask 导入任务对象

+ 3 - 2
src/main/java/cn/cslg/pas/service/importPatent/ImportPatentPatentNo.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service.importPatent;
 
-import cn.cslg.pas.entity.ImportTask;
+
+import cn.cslg.pas.domain.business.ImportTask;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -12,7 +13,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 @RequiredArgsConstructor
-public class ImportPatentPatentNo implements IImportPatentFactory {
+public class ImportPatentPatentNo implements ImportPatentImp {
 
     @Override
     public void startImport(ImportTask importTask) {

+ 6 - 26
src/main/java/cn/cslg/pas/service/importPatent/PatentQueueService.java

@@ -1,8 +1,8 @@
 package cn.cslg.pas.service.importPatent;
 
-import cn.cslg.pas.entity.ImportTask;
-import cn.cslg.pas.service.ImportTaskConditionService;
-import cn.cslg.pas.service.ImportTaskService;
+
+import cn.cslg.pas.domain.business.ImportTask;
+import cn.cslg.pas.service.business.ImportTaskService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -23,9 +23,7 @@ import java.util.concurrent.locks.ReentrantLock;
 @RequiredArgsConstructor
 public class PatentQueueService {
     private final ImportTaskService importTaskService;
-    private final ImportPatentExcel importPatentExcel;
-    private final ImportPatentPatentNo importPatentPatentNo;
-//    private final ImportPatentPatentStar importPatentPatentStar;
+    private final ImportPatentFactory importPatentFactory;
     private final List<Integer> importTaskQueue = new ArrayList<>();
     private final Lock importTaskLock = new ReentrantLock();
     private final Condition importTaskCondition = importTaskLock.newCondition();
@@ -53,9 +51,9 @@ public class PatentQueueService {
                     }
 
                     //TODO 调用工厂方法
-                    IImportPatentFactory object = createObject(importTask);
+                    ImportPatentImp imp = importPatentFactory.getClass(importTask.getId());
                     //执行导入专利方法
-                    object.startImport(importTask);
+                    imp.startImport(importTask);
 
                 }
 
@@ -70,24 +68,6 @@ public class PatentQueueService {
         }
     }
 
-    /**
-     * 工厂方法,根据导入任务的类型type返回对应的导入任务工厂类对象
-     *
-     * @param importTask 导入任务对象
-     * @return 返回对应的导入任务工厂类对象
-     */
-    public IImportPatentFactory createObject(ImportTask importTask) {
-        switch (importTask.getType()) {
-            case 1:
-                return importPatentExcel;
-            case 2:
-                return importPatentPatentNo;
-            case 4:
-//                return importPatentPatentStar;
-            default:
-                return null;
-        }
-    }
 
     /**
      * 唤醒生产者线程

+ 0 - 19
src/main/java/cn/cslg/pas/service/importPatent/ProjectImportService.java

@@ -1,27 +1,8 @@
 package cn.cslg.pas.service.importPatent;
 
-import cn.cslg.pas.common.dto.ExcelImportDTO;
-import cn.cslg.pas.common.utils.LoginUtils;
-import cn.cslg.pas.common.utils.ReadExcelUtils;
-import cn.cslg.pas.entity.AssoTaskField;
-import cn.cslg.pas.entity.ImportTask;
-import cn.cslg.pas.entity.ImportTaskCondition;
-import cn.cslg.pas.service.AssoTaskFieldService;
-import cn.cslg.pas.service.ImportTaskConditionService;
-import cn.cslg.pas.service.ImportTaskService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.compress.utils.IOUtils;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 /**
  * 导入专利业务层

+ 23 - 0
src/main/java/cn/cslg/pas/service/permissions/PermissionService.java

@@ -145,4 +145,27 @@ public class PermissionService {
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
+    /**
+     * 根据部门ids查询部门列表
+     *
+     * @param ids 部门id
+     * @return 返回装载着客户列表数据的data的String
+     */
+    public String getDepartmentByIdsFromPCS(List<String> 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/getDeparts")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+
 }

+ 1 - 1
src/main/resources/jsons/event.json

@@ -9,7 +9,7 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"true"
+    "ifShow":"false"
   },
   {"name":"事件名称",
   "type":"String",

+ 6 - 0
src/main/resources/jsons/importTask.json

@@ -0,0 +1,6 @@
+[
+  {
+    "importTaskType":1,
+    "serviceName": "importPatentExcel"
+  }
+]

+ 1 - 1
src/main/resources/jsons/patentProject.json

@@ -9,7 +9,7 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"true"
+    "ifShow":"false"
   },
   {"name":"专利数据库名称",
   "type":"String",

+ 30 - 0
src/main/resources/mapper/AssoProject.xml

@@ -0,0 +1,30 @@
+<?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.AssoProjectMapper">
+    <select id="getReportCount" resultType="cn.cslg.pas.common.vo.business.ReportCountVO">
+        select project_id as projectId,count(*) as projectCount from
+        pas_prod2.asso_project
+        <where>
+            project_id in
+            <foreach collection="patentProjectIds" index="index" item="item" open="(" separator=" or " close=")">
+                #{item}
+            </foreach>
+         and asso_project_type=2
+            group by project_id
+
+        </where>
+
+
+    </select>
+
+    <select id="getReportProjectNumOrder" resultType="java.lang.Integer">
+        select project_id from (   select project_id as projectIdcount(*) as projectCount from
+        pas_prod2.asso_project
+        <where>
+           asso_project_type=2
+            group by project_id
+        </where>
+        ) as t order by c #{orderType}
+    </select>
+
+</mapper>

+ 14 - 3
src/main/resources/mapper/PatentProjectMapper.xml

@@ -2,14 +2,25 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.cslg.pas.mapper.PatentProjectMapper">
     <select id="getPatentProject" resultType="cn.cslg.pas.common.vo.business.PatentProjectVO">
-        select p.id as id,p.name as name ,p.contract_no as contract_no,p.volume_number as
+        select distinct p.id as id,p.name as name ,p.contract_no as contract_no,p.volume_number as
         volumeNumber,p.commission_case_day as commissionCaseDay,p.description as description,p.create_id as
-        createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons from patent_project as pp left join project as p
-        on pp.project_id =p.id left join asso_project_event as asso_event on  asso_event.project_id =p.id
+        createId,p.create_time as createTime,pp.if_update as ifUpdate,pp.crons as crons,
+        p.entrust_type as  entrustType,p.entrust_id as entrustId,p.head_id as headId,p.department_id as departmentId
+        from patent_project as pp left join project as p
+        on pp.project_id =p.id
         <if test="sql1!=''">
             where ${sql1}
         </if>
         ${sql2} ${sql3}
     </select>
 
+
+    <select id="getPatentProjectCount" resultType="java.lang.Long">
+        select count(*) from (select distinct p.id from patent_project as pp left join project as p
+        on pp.project_id =p.id left join asso_project_event as asso_event on asso_event.project_id =p.id
+        <if test="sql1!=''">
+            where ${sql1}
+        </if>
+        ) as c
+    </select>
 </mapper>

+ 8 - 0
src/main/resources/mapper/TreeNodeMapper.xml

@@ -27,6 +27,7 @@
         select *
         from tree_node as tree
         <where>
+            <if test="ids!=null">
             <foreach collection="ids" item="id" index="index" open="(" close=")" separator=" or ">
                 (id= #{id}
                 <if test="ifCopyChild==true">
@@ -35,6 +36,13 @@
                 </if>
                 )
             </foreach>
+            </if>
+            <if test="type!=null">
+               and tree.type =#{type}
+            </if>
+            <if test="typeId!=null">
+                and   tree.type_id =#{typeId}
+            </if>
         </where>
     </select>