xiexiang 1 rok pred
rodič
commit
67e37cc64f
28 zmenil súbory, kde vykonal 1343 pridanie a 84 odobranie
  1. 30 0
      src/main/java/cn/cslg/pas/common/dto/business/AssoTaskFileDTO.java
  2. 14 0
      src/main/java/cn/cslg/pas/common/dto/business/PatentDigProjectTaskDTO.java
  3. 86 0
      src/main/java/cn/cslg/pas/common/dto/business/ProjectTaskDTO.java
  4. 12 0
      src/main/java/cn/cslg/pas/common/dto/business/TaskAuditResultDTO.java
  5. 106 0
      src/main/java/cn/cslg/pas/common/vo/business/ProjectTaskVO.java
  6. 7 1
      src/main/java/cn/cslg/pas/controller/CommonController.java
  7. 45 0
      src/main/java/cn/cslg/pas/controller/PatentDigProjectFilesController.java
  8. 63 49
      src/main/java/cn/cslg/pas/controller/ProjectTaskController.java
  9. 53 0
      src/main/java/cn/cslg/pas/domain/business/AssoTaskFile.java
  10. 4 3
      src/main/java/cn/cslg/pas/domain/business/CustomField.java
  11. 2 0
      src/main/java/cn/cslg/pas/domain/business/PatentProject.java
  12. 16 4
      src/main/java/cn/cslg/pas/domain/business/ProjectTask.java
  13. 6 0
      src/main/java/cn/cslg/pas/domain/business/TaskAuditResult.java
  14. 0 2
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetScenarioGroup.java
  15. 13 0
      src/main/java/cn/cslg/pas/mapper/AssoTaskFileMapper.java
  16. 7 0
      src/main/java/cn/cslg/pas/mapper/ProjectTaskMapper.java
  17. 71 0
      src/main/java/cn/cslg/pas/service/business/AssoTaskFileService.java
  18. 3 0
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectFilesService.java
  19. 13 4
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java
  20. 5 3
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  21. 152 15
      src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java
  22. 19 0
      src/main/java/cn/cslg/pas/service/business/SystemDictService.java
  23. 53 1
      src/main/java/cn/cslg/pas/service/business/TaskAuditResultService.java
  24. 0 1
      src/main/resources/jsons/customField.json
  25. 1 1
      src/main/resources/jsons/patentDigProject.json
  26. 328 0
      src/main/resources/jsons/patentDigProjectFiles.json
  27. 197 0
      src/main/resources/jsons/projectTask.json
  28. 37 0
      src/main/resources/mapper/ProjectTaskMapper.xml

+ 30 - 0
src/main/java/cn/cslg/pas/common/dto/business/AssoTaskFileDTO.java

@@ -0,0 +1,30 @@
+package cn.cslg.pas.common.dto.business;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/11/24
+ */
+@Data
+public class AssoTaskFileDTO {
+    /**
+     * 任务id
+     */
+    private Integer taskId;
+
+    /**
+     * 文件guid
+     */
+    private String fileGuid;
+
+    /**
+     * 说明
+     */
+    private String description;
+
+    /**
+     * 文件类型
+     */
+    private Integer fileType;
+}

+ 14 - 0
src/main/java/cn/cslg/pas/common/dto/business/PatentDigProjectTaskDTO.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.common.dto.business;
+
+import lombok.Data;
+
+/**
+ * 专利挖掘任务DTO
+ * @Author xiexiang
+ * @Date 2023/11/22
+ */
+@Data
+public class PatentDigProjectTaskDTO {
+    private PatentDigProjectDTO patentDigProjectDTO;
+    private ProjectTaskDTO projectTaskDTO;
+}

+ 86 - 0
src/main/java/cn/cslg/pas/common/dto/business/ProjectTaskDTO.java

@@ -0,0 +1,86 @@
+package cn.cslg.pas.common.dto.business;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 项目任务DTO
+ * @Author xiexiang
+ * @Date 2023/11/22
+ */
+@Data
+public class ProjectTaskDTO {
+    /**
+     * 任务名称
+     */
+    private String name;
+
+    private Integer projectId;
+    /**
+     * 0标引任务
+     * 1项目开卷审核任务
+     * 2检索条件任务
+     * 3对比任务
+     * 4协同任务
+     * 5任务审核任务
+     */
+    private Integer type;
+
+    /**
+     * 内部人员:人员id
+     * 外部人员:人员的邮箱
+     */
+    private String handler;
+
+    /**
+     * 0内部人员1外部人员
+     */
+    private Integer handlerType;
+
+    /**
+     * 截止时间
+     */
+    private Date deadLineTime;
+
+    /**
+     * 完成时间
+     */
+    private Date finishTime;
+
+    /**
+     * 上一级任务id
+     */
+    private Integer lastTaskId;
+
+    /**
+     * 被审核的任务id
+     */
+    private Integer assoTaskId;
+
+    /**
+     * 备注
+     */
+    private String description;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 进度
+     */
+    private double progress;
+
+    /**
+     * 结果
+     */
+    private Integer result;
+
+    /**
+     * 所属流程id
+     */
+    private Integer processId;
+
+}

+ 12 - 0
src/main/java/cn/cslg/pas/common/dto/business/TaskAuditResultDTO.java

@@ -2,6 +2,8 @@ package cn.cslg.pas.common.dto.business;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * 任务审核结果DTO
  * @Author xiexiang
@@ -28,4 +30,14 @@ public class TaskAuditResultDTO {
      * 是否内部人员
      */
     private Boolean ifInner;
+
+    /**
+     * 任务id
+     */
+    private Integer taskId;
+
+    /**
+     * 文件ids
+     */
+    private List<String> fileGuids;
 }

+ 106 - 0
src/main/java/cn/cslg/pas/common/vo/business/ProjectTaskVO.java

@@ -0,0 +1,106 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 查询任务VO类
+ * @Author xiexiang
+ * @Date 2023/11/16
+ */
+@Data
+public class ProjectTaskVO {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 任务名称
+     */
+    private String name;
+
+    /**
+     * 专题库/报告id
+     */
+    private Integer projectId;
+
+    /**
+     * 0标引任务
+     * 1项目开卷审核任务
+     * 2检索条件任务
+     * 3对比任务
+     * 4协同任务
+     * 5任务审核任务
+     */
+    private Integer type;
+
+    /**
+     * 内部人员:人员id
+     * 外部人员:人员的邮箱
+     */
+    private String handler;
+
+    /**
+     * 人员名称
+     */
+    private String handlerName;
+
+    /**
+     * 0内部人员1外部人员
+     */
+    private Integer handlerType;
+
+    /**
+     * 截止时间
+     */
+    private Date deadLineTime;
+
+    /**
+     * 完成时间
+     */
+    private Date finishTime;
+
+    /**
+     * 上一级任务id
+     */
+    private Integer lastTaskId;
+
+    /**
+     * 被审核的任务id
+     */
+    private Integer assoTaskId;
+
+    /**
+     * 备注
+     */
+    private String description;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 进度
+     */
+    private double progress;
+
+    /**
+     * 结果
+     */
+    private Integer result;
+
+    /**
+     * 创建人
+     */
+    private String createId;
+
+    private String createName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+}

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

@@ -39,9 +39,15 @@ public class CommonController {
     private ScenarioService scenarioService;
     @Autowired
     private AssoScenarioMatterService assoScenarioMatterService;
-
     @Autowired
     private PersonFieldService personFieldService;
+
+    @PostMapping("getOsSystemDict")
+    @Operation(summary = "根据类型获取所有字典项")
+    public Response getOSSystemDict(@RequestBody List<String> types){
+        return Response.success(systemDictService.getOsSystemDict(types));
+    }
+
     @PostMapping("getParams")
     @Operation(summary = "获得实体类栏位信息")
     public Response getQueryConditions(@RequestBody List<String> tables) {

+ 45 - 0
src/main/java/cn/cslg/pas/controller/PatentDigProjectFilesController.java

@@ -0,0 +1,45 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.PatentDigProjectFilesDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.factorys.businessFactory.Business;
+import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 专利挖掘文件Controller层
+ * @Author xiexiang
+ * @Date 2023/11/24
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/patentDigProjectFiles")
+@RestController
+public class PatentDigProjectFilesController {
+    @Autowired
+    private BusinessFactory businessFactory;
+
+    @Operation(summary = "查询专利挖掘项目文件")
+    @PostMapping("/queryPatentDigProjectFiles")
+    public Response queryPatentDigProjectFiles(@RequestBody StringRequest stringRequest) throws Exception {
+        Business business = businessFactory.getClass("patentDigProjectFilesService");
+        Records records = (Records) business.queryMessage(stringRequest);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "新增专利挖掘项目文件")
+    @PostMapping("/addPatentDigProjectFiles")
+    public Response addPatentDigProjectFiles(@RequestBody PatentDigProjectFilesDTO patentDigProjectFilesDTO){
+        Business business = businessFactory.getClass("patentDigProjectFilesService");
+        Integer id = (Integer) business.addMessage(patentDigProjectFilesDTO);
+        return Response.success(id);
+    }
+}

+ 63 - 49
src/main/java/cn/cslg/pas/controller/ProjectTaskController.java

@@ -1,9 +1,7 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
-import cn.cslg.pas.common.dto.business.ProductMarketDataDTO;
-import cn.cslg.pas.common.dto.business.ProjectOpenAuditTaskDTO;
-import cn.cslg.pas.common.dto.business.UpdateProductMarketDataDTO;
+import cn.cslg.pas.common.dto.business.*;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.Response;
@@ -12,7 +10,9 @@ import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import cn.cslg.pas.service.business.AssoTaskFileService;
 import cn.cslg.pas.service.business.ProjectTaskService;
+import cn.cslg.pas.service.business.TaskAuditResultService;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -38,53 +39,66 @@ public class ProjectTaskController {
     @Autowired
     private ProjectTaskService projectTaskService;
 
-    @Operation(summary = "查询项目任务")
+    @Autowired
+    private TaskAuditResultService taskAuditResultService;
+
+    @Autowired
+    private AssoTaskFileService assoTaskFileService;
+
+    @Operation(summary = "添加项目开卷审核任务")
     @PostMapping("/addProjectOpenExamineTask")
-    public Response addProjectOpenExamineTask(@RequestBody ProjectOpenAuditTaskDTO projectOpenAuditTaskDTO) throws Exception {
-        Integer id = (Integer) projectTaskService.addProjectOpenExamineTask(projectOpenAuditTaskDTO);
+    public Response addProjectOpenExamineTask(@RequestBody PatentDigProjectTaskDTO patentDigProjectTaskDTO) throws Exception {
+        Integer id = (Integer) projectTaskService.addProjectOpenExamineTask(patentDigProjectTaskDTO);
         return Response.success(id);
     }
-//
-//    @Operation(summary = "添加项目任务")
-//    @PostMapping("/addProjectTask")
-//    public Response addProjectTask(@RequestBody ProductMarketDataDTO productMarketDataDTO) throws Exception {
-//        Business business = businessFactory.getClass("projectTaskService");
-//        Integer id = null;
-//        try {
-//            id = (Integer) business.addMessage(productMarketDataDTO);
-//        } catch (Exception e){
-//            if(e instanceof XiaoShiException) {
-//                return Response.error(e.getMessage());
-//            } else if (e instanceof UnLoginException) {
-//                return Response.unLogin(e.getMessage());
-//            } else if (e instanceof ConditionException) {
-//                return Response.conditionError(e.getMessage());
-//            }
-//        }
-//        return Response.success(id);
-//    }
-//
-//    @Operation(summary = "更新产品营销数据")
-//    @PostMapping("/updateProductMarketData")
-//    public Response updateProductMarketData(@RequestBody UpdateProductMarketDataDTO updateProductMarketDataDTO) throws Exception {
-//        if (updateProductMarketDataDTO != null) {
-//            Business business = businessFactory.getClass("projectTaskService");
-//            Integer id = (Integer) business.updateMessage(updateProductMarketDataDTO);
-//            return Response.success(id);
-//        } else {
-//            return Response.error("网络异常");
-//        }
-//    }
-//
-//    @Operation(summary = "删除产品营销数据")
-//    @PostMapping("/deleteProductMarketData")
-//    public String deleteProductMarketData(@RequestBody List<Integer> ids) throws Exception {
-//        if (ids != null && ids.size() != 0) {
-//            Business business = businessFactory.getClass("projectTaskService");
-//            business.deleteMessage(ids);
-//            return Response.success();
-//        } else {
-//            throw new XiaoShiException("需要删除的ids不能为空!");
-//        }
-//    }
+
+    @Operation(summary = "处理审核任务,添加审核结果")
+    @PostMapping("/addTaskAuditResult")
+    public Response addTaskAuditResult(@RequestBody TaskAuditResultDTO taskAuditResultDTO) throws Exception {
+        Integer id = taskAuditResultService.addTaskAuditResult(taskAuditResultDTO);
+        return Response.success(id);
+    }
+
+    @Operation(summary = "添加任务")
+    @PostMapping("/addTask")
+    public Response addTask(@RequestBody ProjectTaskDTO projectTaskDTO) throws Exception {
+        Integer id = projectTaskService.addTask(projectTaskDTO);
+        return Response.success(id);
+    }
+
+    @Operation(summary = "查询任务")
+    @PostMapping("/queryProjectTask")
+    public Response queryProjectTask(@RequestBody StringRequest stringRequest) throws Exception {
+        Business business = businessFactory.getClass("projectTaskService");
+        Records records = (Records) business.queryMessage(stringRequest);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "删除任务")
+    @PostMapping("/deleteProjectTask")
+    public String deleteProjectTask(@RequestBody List<Integer> ids) throws IOException {
+        Business business = businessFactory.getClass("projectTaskService");
+        business.deleteMessage(ids);
+        return Response.success();
+    }
+
+    @Operation(summary = "添加任务与文件关联")
+    @PostMapping("/addAssoTaskFile")
+    public Response addAssoTaskFile(@RequestBody AssoTaskFileDTO assoTaskFileDTO) throws Exception {
+        Integer id = assoTaskFileService.addTaskFile(assoTaskFileDTO);
+        return Response.success(id);
+    }
+
+    @Operation(summary = "查询任务与文件关联")
+    @PostMapping("/getAssoTaskFile")
+    public Response getAssoTaskFile(@RequestBody Integer taskId){
+        return Response.success(assoTaskFileService.getAssoTaskFile(taskId));
+    }
+
+    @Operation(summary = "删除任务与文件关联")
+    @PostMapping("/deleteAssoTaskFile")
+    public String deleteAssoTaskFile(@RequestBody List<Integer> ids){
+        assoTaskFileService.deleteAssoTaskFile(ids);
+        return Response.success();
+    }
 }

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

@@ -0,0 +1,53 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 任务与文件关联表
+ * @Author xiexiang
+ * @Date 2023/11/24
+ */
+@Data
+@TableName("asso_task_file")
+public class AssoTaskFile extends BaseEntity<AssoTaskFile> {
+    /**
+     * 任务id
+     */
+    @TableField(value = "task_id")
+    private Integer taskId;
+
+    /**
+     * 文件guid
+     */
+    @TableField(value = "file_guid")
+    private String fileGuid;
+
+    /**
+     * 说明
+     */
+    @TableField(value = "description")
+    private String description;
+
+    /**
+     * 文件类型
+     */
+    @TableField(value = "file_type")
+    private Integer fileType;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_id")
+    private String createId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+}

+ 4 - 3
src/main/java/cn/cslg/pas/domain/business/CustomField.java

@@ -8,6 +8,7 @@ import lombok.Data;
 import java.util.Date;
 
 /**
+ * 自定义栏位表
  * @Author xiexiang
  * @Date 2023/11/8
  */
@@ -33,10 +34,10 @@ public class CustomField extends BaseEntity<CustomField> {
     private Integer type;
 
     /**
-     * 值选择方式
+     * 状态
      */
-    @TableField(value = "choose_type")
-    private Boolean choose_type;
+    @TableField(value = "status")
+    private Boolean status;
 
     /**
      * 描述

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

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

+ 16 - 4
src/main/java/cn/cslg/pas/domain/business/ProjectTask.java

@@ -42,14 +42,14 @@ public class ProjectTask extends BaseEntity<ProjectTask> {
      * 内部人员:人员id
      * 外部人员:人员的邮箱
      */
-    @TableField(value = "handle")
-    private String handle;
+    @TableField(value = "handler")
+    private String handler;
 
     /**
      * 0内部人员1外部人员
      */
-    @TableField(value = "handle_type")
-    private Integer handleType;
+    @TableField(value = "handler_type")
+    private Integer handlerType;
 
     /**
      * 截止时间
@@ -64,6 +64,12 @@ public class ProjectTask extends BaseEntity<ProjectTask> {
     private Date finishTime;
 
     /**
+     * 所属流程id
+     */
+    @TableField(value = "process_id")
+    private Integer processId;
+
+    /**
      * 上一级任务id
      */
     @TableField(value = "last_task_id")
@@ -76,6 +82,12 @@ public class ProjectTask extends BaseEntity<ProjectTask> {
     private Integer assoTaskId;
 
     /**
+     * 备注
+     */
+    @TableField(value = "description")
+    private String description;
+
+    /**
      * 状态
      */
     @TableField(value = "status")

+ 6 - 0
src/main/java/cn/cslg/pas/domain/business/TaskAuditResult.java

@@ -40,6 +40,12 @@ public class TaskAuditResult extends BaseEntity<TaskAuditResult> {
     private Boolean ifInner;
 
     /**
+     * 任务id
+     */
+    @TableField(value = "task_id")
+    private Integer taskId;
+
+    /**
      * 创建人
      */
     @TableField(value = "create_id")

+ 0 - 2
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetScenarioGroup.java

@@ -46,6 +46,4 @@ public class GetScenarioGroup implements QueryGroupImp {
         return reGroupDataVO;
     }
 
-    ;
-
 }

+ 13 - 0
src/main/java/cn/cslg/pas/mapper/AssoTaskFileMapper.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AssoTaskFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/11/24
+ */
+@Repository
+public interface AssoTaskFileMapper extends BaseMapper<AssoTaskFile> {
+}

+ 7 - 0
src/main/java/cn/cslg/pas/mapper/ProjectTaskMapper.java

@@ -1,9 +1,13 @@
 package cn.cslg.pas.mapper;
 
+import cn.cslg.pas.common.vo.GroupReVO;
+import cn.cslg.pas.common.vo.business.ProjectTaskVO;
 import cn.cslg.pas.domain.business.ProjectTask;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * 项目任务的Mapper层
  * @Author xiexiang
@@ -11,4 +15,7 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface ProjectTaskMapper extends BaseMapper<ProjectTask> {
+    public List<ProjectTaskVO> getProjectTask(String sql1, String sql2, String sql3);
+    public Long getProjectTaskCount(String sql);
+    public List<GroupReVO> getGroups(List<String> sqls, String tableName, String groupField, String selectField);
 }

+ 71 - 0
src/main/java/cn/cslg/pas/service/business/AssoTaskFileService.java

@@ -0,0 +1,71 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.common.dto.business.AssoTaskFileDTO;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.domain.business.AssoTaskFile;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.mapper.AssoTaskFileMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 任务与文件关联表的Service
+ * @Author xiexiang
+ * @Date 2023/11/24
+ */
+@Service
+public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTaskFile> {
+    @Autowired
+    private CacheUtils cacheUtils;
+
+    @Autowired
+    private LoginUtils loginUtils;
+
+    public Integer addTaskFile(AssoTaskFileDTO assoTaskFileDTO){
+        if (assoTaskFileDTO.getTaskId() == null) {
+            throw new XiaoShiException("任务id不能为空");
+        }
+        if (assoTaskFileDTO.getFileGuid() == null || assoTaskFileDTO.getFileGuid() == "") {
+            throw new XiaoShiException("文件id不能为空");
+        }
+        AssoTaskFile assoTaskFile = new AssoTaskFile();
+        BeanUtils.copyProperties(assoTaskFileDTO, assoTaskFile);
+        //获取登陆人信息 用于设置创建人
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        assoTaskFile.setCreateId(personnelVO.getId());
+        assoTaskFile.insert();
+        return assoTaskFile.getId();
+    }
+
+    public List<AssoTaskFile> getAssoTaskFile(Integer taskId) {
+        if (taskId != null) {
+            LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(AssoTaskFile::getTaskId, taskId);
+            List<AssoTaskFile> assoTaskFiles = this.list(queryWrapper);
+            return assoTaskFiles;
+        } else {
+            throw new XiaoShiException("任务id不能为空");
+        }
+    }
+
+    public void deleteAssoTaskFile(List<Integer> ids){
+        if (ids.size() != 0) {
+            this.removeBatchByIds(ids);
+        } else {
+            throw new XiaoShiException("需要删除的ids不为空");
+        }
+    }
+}

+ 3 - 0
src/main/java/cn/cslg/pas/service/business/PatentDigProjectFilesService.java

@@ -99,6 +99,9 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         if (patentDigProjectFilesDTO.getProjectId().equals(null)) {
             throw new XiaoShiException("projectId不能为空");
         }
+        if (patentDigProjectFilesDTO.getFileGuid() != null && patentDigProjectFilesDTO.getFileGuid() != "") {
+            throw new XiaoShiException("文件名不能为空");
+        }
         if (patentDigProjectFilesDTO.getType().equals(null)) {
             throw new XiaoShiException("文件类型不能为空");
         }

+ 13 - 4
src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java

@@ -47,24 +47,31 @@ import java.util.stream.Collectors;
 public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper, PatentDigProject> implements Business {
     @Autowired
     private RdProjectService rdProjectService;
+
     @Autowired
     private AssoProjectFileService assoProjectFileService;
+
     @Autowired
     private ProjectService projectService;
+
     @Autowired
     private FormatQueryService formatQueryService;
+
     @Autowired
     private PatentDigProjectMapper patentDigProjectMapper;
 
     @Autowired
     private FileManagerService fileManagerService;
+
     @Autowired
     private PermissionService permissionService;
+
     @Autowired
     private CacheUtils cacheUtils;
 
     @Autowired
     private LoginUtils loginUtils;
+
     @Autowired
     private AssoProjectEventService assoProjectEventService;
 
@@ -76,6 +83,7 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
 
     @Autowired
     private MatterService matterService;
+
     @Autowired
     private ScenarioService scenarioService;
 
@@ -84,6 +92,7 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
 
     @Autowired
     private  SystemDictService systemDictService;
+
     @Override
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
         List<String> sqls = formatQueryService.reSqls(queryRequest, "patentDigProject");
@@ -261,9 +270,9 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
                 rdProject.insert();
             }
         }
-if(rdProject.getId()!=null) {
-    patentDigProject.setRdProjectId(rdProject.getId());
-}
+        if (rdProject.getId()!=null) {
+            patentDigProject.setRdProjectId(rdProject.getId());
+        }
 
 
 
@@ -332,7 +341,7 @@ if(rdProject.getId()!=null) {
             assoProjectPersonService.saveBatch(assoProjectPersonList);
         }
 
-        return patentDigProject.getId();
+        return patentDigProject.getProjectId();
     }
 
     @Override

+ 5 - 3
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -462,9 +462,11 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //根据projectId查询出patentProject
         LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentProject::getProjectId, project.getId());
-        PatentProject patentProject = this.getOne(queryWrapper);
-        //赋值
-        BeanUtils.copyProperties(updatePatentProjectDTO, patentProject);
+        PatentProject patentProject = this.list(queryWrapper).get(0);
+        //装载数据
+        patentProject.setIfUpdate(updatePatentProjectDTO.getIfUpdate());
+        patentProject.setStatus(updatePatentProjectDTO.getStatus());
+        patentProject.setCrons(updatePatentProjectDTO.getCrons());
         patentProject.updateById();
         //TODO 更新场景
 

+ 152 - 15
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -1,17 +1,23 @@
 package cn.cslg.pas.service.business;
 
-import cn.cslg.pas.common.dto.business.ProjectOpenAuditTaskDTO;
-import cn.cslg.pas.common.dto.business.TaskAuditTaskDTO;
+import cn.cslg.pas.common.dto.business.*;
+import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.business.ProjectTaskVO;
+import cn.cslg.pas.domain.business.Project;
 import cn.cslg.pas.domain.business.ProjectTask;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.mapper.ProjectTaskMapper;
+import cn.cslg.pas.service.permissions.PermissionService;
+import cn.cslg.pas.service.query.FormatQueryService;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
@@ -20,6 +26,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -36,36 +43,104 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
     @Autowired
     private LoginUtils loginUtils;
 
+    @Autowired
+    private PatentDigProjectService patentDigProjectService;
+
+    @Autowired
+    private FormatQueryService formatQueryService;
+
+    @Autowired
+    private ProjectTaskMapper projectTaskMapper;
+
+    @Autowired
+    private PermissionService permissionService;
+
     /**
      * 项目开卷审核任务
-     * @param projectOpenAuditTaskDTO
+     * @param patentDigProjectTaskDTO
      * @return
      */
-    public Object addProjectOpenExamineTask(ProjectOpenAuditTaskDTO projectOpenAuditTaskDTO){
-        Integer type = projectOpenAuditTaskDTO.getType();
-        if (type == null && type > 5) {
-            throw new XiaoShiException("任务类型不能为空!");
+    public Object addProjectOpenExamineTask(PatentDigProjectTaskDTO patentDigProjectTaskDTO){
+        PatentDigProjectDTO patentDigProjectDTO = patentDigProjectTaskDTO.getPatentDigProjectDTO();
+        ProjectTaskDTO projectTaskDTO = patentDigProjectTaskDTO.getProjectTaskDTO();
+        //如果专利挖掘项目DTO不为空,则需要先建立专利挖掘项目
+        if (patentDigProjectDTO != null) {
+            Integer projectId = (Integer) patentDigProjectService.addMessage(patentDigProjectDTO);
+            //判断专题库id不为空
+            if (projectId == null) {
+                throw new XiaoShiException("专题库id不能为空!");
+            }
+            Integer type = projectTaskDTO.getType();
+            if (type == null) {
+                throw new XiaoShiException("任务类型不能为空!");
+            }
+            //判断任务名称不为空
+            projectTaskDTO.setName(projectTaskDTO.getName().trim());
+            String name = projectTaskDTO.getName();
+            if (name == null || name.equals("")) {
+                throw new XiaoShiException("任务名称不能为空!");
+            }
+            LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(ProjectTask::getName, name);
+            queryWrapper.eq(ProjectTask::getProjectId, projectId);
+            List<ProjectTask> projectTasks = this.list(queryWrapper);
+            if (projectTasks != null && projectTasks.size() != 0) {
+                throw new XiaoShiException("任务名称不能重复!");
+            }
+            ProjectTask projectTask = new ProjectTask();
+            BeanUtils.copyProperties(projectTaskDTO, projectTask);
+            if (projectTask.getStatus() == null) {
+                projectTask.setStatus(1);
+            }
+            projectTask.setProjectId(projectId);
+            //获取登录人信息
+            PersonnelVO personnelVO = new PersonnelVO();
+            try {
+                personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+            } catch (Exception e) {
+                throw new UnLoginException("未登录");
+            }
+            projectTask.setCreateId(personnelVO.getId());
+            projectTask.insert();
+            return projectTask.getId();
+        } else {
+            throw new XiaoShiException("挖掘项目数据不能为空!");
         }
+    }
+
+
+    /**
+     * 添加任务
+     */
+    public Integer addTask(ProjectTaskDTO projectTaskDTO){
         //判断专题库id不为空
-        Integer projectId = projectOpenAuditTaskDTO.getProjectId();
-        if (projectId == null) {
+        if (projectTaskDTO.getProjectId() == null) {
             throw new XiaoShiException("专题库id不能为空!");
         }
+        Integer type = projectTaskDTO.getType();
+        if (type == null) {
+            throw new XiaoShiException("任务类型不能为空!");
+        }
         //判断任务名称不为空
-        projectOpenAuditTaskDTO.setName(projectOpenAuditTaskDTO.getName().trim());
-        String name = projectOpenAuditTaskDTO.getName();
+        projectTaskDTO.setName(projectTaskDTO.getName().trim());
+        String name = projectTaskDTO.getName();
         if (name == null || name.equals("")) {
             throw new XiaoShiException("任务名称不能为空!");
         }
         LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ProjectTask::getName, name);
-        queryWrapper.eq(ProjectTask::getProjectId, projectId);
+        queryWrapper.eq(ProjectTask::getProjectId, projectTaskDTO.getProjectId());
         List<ProjectTask> projectTasks = this.list(queryWrapper);
         if (projectTasks != null && projectTasks.size() != 0) {
             throw new XiaoShiException("任务名称不能重复!");
         }
         ProjectTask projectTask = new ProjectTask();
-        BeanUtils.copyProperties(projectOpenAuditTaskDTO, projectTask);
+        BeanUtils.copyProperties(projectTaskDTO, projectTask);
+        if (projectTask.getType() == 1 || projectTask.getType() == 5) {
+            projectTask.setStatus(1);
+        } else if (projectTask.getType() == 6) {
+            projectTask.setStatus(2);
+        }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
         try {
@@ -78,12 +153,13 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         return projectTask.getId();
     }
 
+
     /**
      * 任务审核任务
      * @param taskAuditTaskDTO
      * @return
      */
-    public Object addTaskExamineTask(TaskAuditTaskDTO taskAuditTaskDTO){
+    public Object addAuditTask(TaskAuditTaskDTO taskAuditTaskDTO){
         Integer type = taskAuditTaskDTO.getType();
         if (type == null && type > 5) {
             throw new XiaoShiException("任务类型不能为空!");
@@ -122,7 +198,65 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
 
     @Override
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
-        return null;
+        List<String> sqls = formatQueryService.reSqls(queryRequest,"projectTask");
+        //根据sql查询任务信息
+        List<ProjectTaskVO> projectTaskVOS = projectTaskMapper.getProjectTask(sqls.get(0),sqls.get(1),sqls.get(2));
+        //查询总数
+        Long total = projectTaskMapper.getProjectTaskCount(sqls.get(0));
+        //装载事件信息
+        this.loadProjectTask(projectTaskVOS);
+        Records records = new Records();
+        records.setCurrent(queryRequest.getCurrent());
+        records.setSize(queryRequest.getSize());
+        records.setData(projectTaskVOS);
+        records.setTotal(total);
+        return records;
+    }
+
+    /**
+     * 装载任务
+     * @param projectTaskVOS
+     * @throws IOException
+     */
+    public void loadProjectTask(List<ProjectTaskVO> projectTaskVOS) throws IOException {
+        List<String> createIds = new ArrayList<>();
+        List<String> handlerIds = new ArrayList<>();
+        projectTaskVOS.forEach(
+                item -> {
+                    if (item.getCreateId() != null) {
+                        createIds.add(item.getCreateId());
+                    }
+                    if (item.getHandler() != null) {
+                        handlerIds.add(item.getHandler());
+                    }
+                }
+        );
+        List<Personnel> personnels = new ArrayList<>();
+        List<Personnel> personnels2 = 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 (handlerIds.size() != 0) {
+            String res = permissionService.getPersonnelByIdsFromPCS(handlerIds);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            personnels2 = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+        }
+        //装载信息
+        for (ProjectTaskVO projectTaskVO : projectTaskVOS) {
+            //装载人员信息
+            Personnel personnel = personnels.stream().filter(item -> item.getId().equals(projectTaskVO.getCreateId())).findFirst().orElse(null);
+            Personnel personnel2 =  personnels2.stream().filter(item -> item.getId().equals(projectTaskVO.getHandler())).findFirst().orElse(null);
+            if(personnel != null){
+                projectTaskVO.setCreateName(personnel.getPersonnelName());
+                projectTaskVO.setHandlerName(personnel2.getPersonnelName());
+            } else {
+                throw new XiaoShiException("未获取到当前登陆人信息");
+            }
+        }
     }
 
     @Override
@@ -132,6 +266,9 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
 
     @Override
     public Object deleteMessage(List<Integer> ids) throws IOException {
+        //删除审核结果与文件关联表
+        //删除审核结果表
+        //删除任务表
         return null;
     }
 

+ 19 - 0
src/main/java/cn/cslg/pas/service/business/SystemDictService.java

@@ -27,6 +27,25 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class SystemDictService extends ServiceImpl<SystemDictMapper, SystemDict> {
 
+    public Map<String, List<SystemDict>> getOsSystemDict(List<String> types){
+        Map<String, List<SystemDict>> systemDictMap = new HashMap<>();
+        if (types != null && types.size() != 0) {
+            types.forEach(item -> {
+                LambdaQueryWrapper<SystemDict> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(SystemDict::getType, item);
+                systemDictMap.put(item,this.list(queryWrapper));
+            });
+        } else {
+            types = this.list().stream().map(SystemDict::getType).collect(Collectors.toList());
+            types.forEach(item -> {
+                LambdaQueryWrapper<SystemDict> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(SystemDict::getType, item);
+                systemDictMap.put(item,this.list(queryWrapper));
+            });
+        }
+        return systemDictMap;
+    }
+
     public List<SystemDict> getSystemDictListByType(List<String> type) {
         if (type == null || type.size() == 0) {
             return new ArrayList<>();

+ 53 - 1
src/main/java/cn/cslg/pas/service/business/TaskAuditResultService.java

@@ -1,17 +1,24 @@
 package cn.cslg.pas.service.business;
 
+import cn.cslg.pas.common.dto.business.ProjectTaskDTO;
 import cn.cslg.pas.common.dto.business.TaskAuditResultDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.domain.business.AssoAuditResultFile;
+import cn.cslg.pas.domain.business.ProjectTask;
 import cn.cslg.pas.domain.business.TaskAuditResult;
 import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.TaskAuditResultMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 任务审核结果Service层
  * @Author xiexiang
@@ -26,8 +33,22 @@ public class TaskAuditResultService extends ServiceImpl<TaskAuditResultMapper, T
     @Autowired
     private LoginUtils loginUtils;
 
-    public Object addTaskAuditResult(TaskAuditResultDTO taskAuditResultDTO){
+    @Autowired
+    private AssoAuditResultFileService assoAuditResultFileService;
+
+    @Autowired
+    private ProjectTaskService projectTaskService;
+
+    /**
+     * 新增任务审核结果
+     * @param taskAuditResultDTO
+     * @return
+     */
+    public Integer addTaskAuditResult(TaskAuditResultDTO taskAuditResultDTO){
         TaskAuditResult taskAuditResult = new TaskAuditResult();
+        if (taskAuditResultDTO.getTaskId() == null) {
+            throw new XiaoShiException("任务id不能为空");
+        }
         BeanUtils.copyProperties(taskAuditResultDTO, taskAuditResult);
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
@@ -37,7 +58,38 @@ public class TaskAuditResultService extends ServiceImpl<TaskAuditResultMapper, T
             throw new UnLoginException("未登录");
         }
         taskAuditResult.setCreateId(personnelVO.getId());
+        //任务审核结果入库
         taskAuditResult.insert();
+        List<String> fileGuids = taskAuditResultDTO.getFileGuids();
+        Integer taskAuditResultId = taskAuditResult.getId();
+        if (fileGuids != null && fileGuids.size() != 0) {
+            List<AssoAuditResultFile> assoAuditResultFiles = new ArrayList<>();
+            for (String item : fileGuids) {
+                AssoAuditResultFile assoAuditResultFile = new AssoAuditResultFile();
+                assoAuditResultFile.setTaskAuditResultId(taskAuditResultId);
+                assoAuditResultFile.setFileGuid(item);
+                assoAuditResultFile.setCreateId(personnelVO.getId());
+                assoAuditResultFiles.add(assoAuditResultFile);
+            }
+            assoAuditResultFileService.saveBatch(assoAuditResultFiles);
+        }
+        //如果下一个审核人不为空,则需要新建一个新的审核任务
+        if (taskAuditResult.getNextAuditor() != null && taskAuditResult.getNextAuditor() != "") {
+            Integer taskId = taskAuditResult.getTaskId();
+            ProjectTask projectTask = projectTaskService.getById(taskId);
+            ProjectTaskDTO projectTaskDTO = new ProjectTaskDTO();
+            projectTaskDTO.setName(projectTask.getName() + "-审核任务");
+            projectTaskDTO.setProjectId(projectTask.getProjectId());
+            projectTaskDTO.setType(5);
+            if (taskAuditResult.getIfInner() == true) {
+                projectTaskDTO.setHandlerType(0);
+            } else {
+                projectTaskDTO.setHandlerType(1);
+            }
+            projectTaskDTO.setLastTaskId(taskId);
+            projectTaskDTO.setAssoTaskId(projectTask.getAssoTaskId());
+            projectTaskService.addTask(projectTaskDTO);
+        }
         return taskAuditResult.getId();
     }
 }

+ 0 - 1
src/main/resources/jsons/customField.json

@@ -34,7 +34,6 @@
     "ifSearch":"true",
     "ifGroup": "false",
     "ifShow":"true"
-
   },
   {"name":"创建时间",
     "type":"DateTime",

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

@@ -8,7 +8,7 @@
     "sqlClass": "getComSql",
     "orderClass": "",
     "groupClass": "",
-    "ifSearch": "false",
+    "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "false"
   },

+ 328 - 0
src/main/resources/jsons/patentDigProjectFiles.json

@@ -0,0 +1,328 @@
+[
+  {
+    "name": "Id",
+    "type": "Integer",
+    "value": "id",
+    "field": "id",
+    "sqlField": "p.id",
+    "sqlClass": "getComSql",
+    "orderClass": "",
+    "groupClass": "",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "挖掘项目名称",
+    "type": "String",
+    "value": "name",
+    "field": "name",
+    "sqlField": "dp.name",
+    "sqlClass": "getLikeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "研发项目名称",
+    "type": "String",
+    "value": "rdName",
+    "field": "rdName",
+    "sqlField": "rp.name",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "研发项目编号",
+    "type": "String",
+    "value": "rdnumber",
+    "field": "rdnumber",
+    "sqlField": "rp.number",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "产品",
+    "type": "String",
+    "value": "product",
+    "field": "product",
+    "sqlField": "rp.product",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "产品阶段",
+    "type": "String",
+    "value": "productPhase",
+    "field": "productPhase",
+    "sqlField": "rp.product_phase",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "委托方",
+    "type": "String",
+    "value": "entrustName",
+    "field": "entrustName",
+    "sqlField": "entrust_id",
+    "sqlClass": "getEntrustTrueNameSql",
+    "orderClass": "getEntrustOrder",
+    "groupClass": "getEntrustGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "委托方",
+    "type": "String",
+    "value": "entrustNameTrue",
+    "field": "entrustNameTrue",
+    "sqlField": "entrust_id",
+    "sqlClass": "getEntrustTrueNameSql",
+    "orderClass": "getEntrustOrder",
+    "groupClass": "getEntrustGroup",
+    "ifSearch": "false",
+    "ifGroup": "true",
+    "ifShow": "false",
+    "defaultHidden": "false"
+  },
+  {
+    "name": "负责人名称",
+    "type": "String",
+    "value": "headName",
+    "field": "headName",
+    "sqlField": "p.head_id",
+    "sqlClass": "getCreateNameSql",
+    "orderClass": "getCreateNameOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "技术方向",
+    "type": "String",
+    "value": "technicalDirection",
+    "field": "technicalDirection",
+    "sqlField": "dp.technical_direction",
+    "sqlClass": "getLikeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "技术关键词",
+    "type": "String",
+    "value": "technicalKeyword",
+    "field": "technicalKeyword",
+    "sqlField": "dp.technical_keyword",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "是否检索",
+    "type": "Integer",
+    "value": "ifSearch",
+    "field": "ifSearch",
+    "sqlField": "dp.if_search",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "产出",
+    "type": "String",
+    "value": "output",
+    "field": "output",
+    "sqlField": "dp.output",
+    "sqlClass": "getLikeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "相关竞争对手",
+    "type": "String",
+    "value": "relatedCompetitors",
+    "field": "relatedCompetitors",
+    "sqlField": "dp.related_competitors",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "进度",
+    "type": "String",
+    "value": "process",
+    "field": "process",
+    "sqlField": "dp.process",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "状态",
+    "type": "String",
+    "value": "stateName",
+    "field": "stateName",
+    "sqlField": "dp.state",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "创建人",
+    "type": "String",
+    "value": "createName",
+    "field": "createName",
+    "sqlField": "p.create_id",
+    "sqlClass": "getCreateNameSql",
+    "orderClass": "getCreateNameOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "创建时间",
+    "type": "DateTime",
+    "value": "createTime",
+    "field": "createTime",
+    "sqlField": "p.create_time",
+    "sqlClass": "getDateTimeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getTimeGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "描述",
+    "type": "String",
+    "value": "description",
+    "field": "description",
+    "sqlField": "p.description",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "相关事件",
+    "type": "Array",
+    "value": "eventNames",
+    "field": "eventNames",
+    "sqlField": "aspe.event_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getEventOrder",
+    "groupClass": "getScenarioGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "相关事件",
+    "type": "String",
+    "value": "eventNames",
+    "field": "eventNames",
+    "sqlField": "aspe.event_id",
+    "sqlClass": "getEventNameSql",
+    "orderClass": "getEventOrder",
+    "groupClass": "getScenarioGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "创建月份",
+    "type": "DateTime",
+    "value": "createTimeMonth",
+    "field": "createTimeMonth",
+    "sqlField": "p.create_time",
+    "sqlClass": "getDateTimeMonthSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getTimeGroup",
+    "ifSearch": "false",
+    "ifGroup": "true",
+    "ifShow": "false"
+  },
+  {
+    "name": "调查类型",
+    "type": "Array",
+    "value": "matterNames",
+    "field": "matterNames",
+    "sqlField": "aspe.matter_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getMatterOrder",
+    "groupClass": "getMatterGroup",
+    "ifSearch": "true",
+    "ifGroup": "true",
+    "ifShow": "false",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "应用场景",
+    "type": "Array",
+    "value": "scenarioNames",
+    "field": "scenarioNames",
+    "sqlField": "aspe.scenario_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getProjectScenarioOrder",
+    "groupClass": "getScenarioGroup",
+    "ifSearch": "true",
+    "ifGroup": "true",
+    "ifShow": "true"
+  }
+]

+ 197 - 0
src/main/resources/jsons/projectTask.json

@@ -0,0 +1,197 @@
+[
+  {
+    "name": "Id",
+    "type": "Integer",
+    "value": "id",
+    "field": "id",
+    "sqlField": "id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "任务名称",
+    "type": "String",
+    "value": "name",
+    "field": "name",
+    "sqlField": "name",
+    "sqlClass": "getLikeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "项目id",
+    "type": "Integer",
+    "value": "projectId",
+    "field": "projectId",
+    "sqlField": "project_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "任务类型",
+    "type": "Integer",
+    "value": "type",
+    "field": "type",
+    "sqlField": "type",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },{
+  "name": "处理人",
+  "type": "String",
+  "value": "handlerName",
+  "field": "handlerName",
+  "sqlField": "handler",
+  "sqlClass": "getCreateNameSql",
+  "orderClass": "getCreateNameOrder",
+  "groupClass": "getComGroup",
+  "ifSearch": "true",
+  "ifGroup": "false",
+  "ifShow": "true"
+  }, {
+    "name": "人员类型",
+    "type": "Integer",
+    "value": "handlerType",
+    "field": "handlerType",
+    "sqlField": "handler_type",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "截止时间",
+    "type": "DateTime",
+    "value": "deadLineTime",
+    "field": "deadLineTime",
+    "sqlField": "deadline_time",
+    "sqlClass": "getDateTimeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getTimeGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "完成时间",
+    "type": "DateTime",
+    "value": "finishTime",
+    "field": "finishTime",
+    "sqlField": "finish_time",
+    "sqlClass": "getDateTimeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getTimeGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "上一级任务id",
+    "type": "Integer",
+    "value": "lastTaskId",
+    "field": "lastTaskId",
+    "sqlField": "last_task_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "被审核的任务id",
+    "type": "Integer",
+    "value": "assoTaskId",
+    "field": "assoTaskId",
+    "sqlField": "asso_task_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "任务状态",
+    "type": "Integer",
+    "value": "status",
+    "field": "status",
+    "sqlField": "status",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "任务进度",
+    "type": "double",
+    "value": "progress",
+    "field": "progress",
+    "sqlField": "progress",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "结果",
+    "type": "Integer",
+    "value": "result",
+    "field": "result",
+    "sqlField": "result",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "创建人",
+    "type": "String",
+    "value": "createName",
+    "field": "createName",
+    "sqlField": "create_id",
+    "sqlClass": "getCreateNameSql",
+    "orderClass": "getCreateNameOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  },
+  {
+    "name": "创建时间",
+    "type": "DateTime",
+    "value": "createTime",
+    "field": "createTime",
+    "sqlField": "create_time",
+    "sqlClass": "getDateTimeSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getTimeGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "true"
+  }
+]

+ 37 - 0
src/main/resources/mapper/ProjectTaskMapper.xml

@@ -0,0 +1,37 @@
+<?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.ProjectTaskMapper">
+    <select id="getProjectTask" resultType="cn.cslg.pas.common.vo.business.ProjectTaskVO">
+        select id,name,project_id,type,handler,handler_type as handlerType,deadline_time as deadLineTime,finish_time as finishTime, description,
+               last_task_id as lastTaskId,asso_task_id as assoTaskId,status,progress,result,create_id as createId,create_time as createTime
+        from project_task
+        <if test="sql1!=''">
+            where ${sql1}
+        </if>
+        ${sql2} ${sql3}
+    </select>
+
+    <select id="getProjectTaskCount" resultType="java.lang.Long">
+        select count(*) from project_task
+        <if test="sql!=''">
+            where    ${sql}
+        </if>
+    </select>
+
+    <select id="getGroups" resultType="java.lang.String">
+        select ${selectField} from ${tableName}
+        <if test="sqls.get(0)!=''">
+            where ${sqls.get(0)}
+        </if>
+        group by ${groupField} ${sqls.get(1)} ${sqls.get(2)}
+    </select>
+
+    <select id="getGroupsCount" resultType="java.lang.Long">
+        select count(*) from (select ${selectField} from ${tableName}
+        <if test="sqls.get(0)!=''">
+            where ${sqls.get(0)}
+        </if>
+        group by ${groupField}
+        ) as c
+    </select>
+</mapper>