Ver código fonte

任务部分接口 2022/11/11

lwhhszx 2 anos atrás
pai
commit
7ccc0be9ee

+ 41 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/AssignTaskVO.java

@@ -0,0 +1,41 @@
+package cn.cslg.report.common.model.vo;
+
+
+import cn.cslg.report.common.model.BaseVO;
+import cn.cslg.report.entity.Report;
+import cn.cslg.report.entity.Task;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lrj
+ * @date 2022-11-9
+ * @description 任务VO类
+ */
+@Data
+@Accessors(chain = true)
+@Schema(description="分配任务VO",required = true)
+public class AssignTaskVO extends BaseVO {
+
+    @Schema(description = "任务信息")
+    private Task task;
+
+    List<personPatents> assigns ;
+
+    @Schema(description = "人员专利号对象")
+    @Data
+    public static class personPatents{
+        @Schema(description = "人员Id")
+            private Integer personId;
+        @Schema(description = "专利号列表")
+        private List<String> patentNos;
+        @Schema(description = "分配数量")
+        private Integer assignCount;
+
+
+    }
+}

+ 27 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/AuditTaskVO.java

@@ -0,0 +1,27 @@
+package cn.cslg.report.common.model.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author lrj
+ * @date 2022-11-11
+ * @description 审核任务VO类
+ */
+@Data
+@Accessors(chain = true)
+@Schema(description="审核任务VO",required = true)
+public class AuditTaskVO {
+    @Schema(description="任务状态",required = true)
+    private Integer taskStatus;
+    @Schema(description="报告状态",required = true)
+    private Integer reportStatus;
+    @Schema(description="任务备注")
+    private String remark;
+    @Schema(description="任务Id",required = true)
+    private Integer taskId;
+    @Schema(description = "任务结果(1同意创建 4取消创建 5补充资料)")
+    private Integer  result;
+
+}

+ 3 - 1
RMS/src/main/java/cn/cslg/report/common/model/vo/PatentRightVo.java

@@ -16,6 +16,8 @@ import java.util.List;
 @Data
 @Accessors(chain = true)
 public class PatentRightVo {
+
+    private String RightName;
     /**
      * 专利号
      */
@@ -23,7 +25,7 @@ public class PatentRightVo {
     /**
      * 特征拆分人ID
      */
-    private String partnerId;
+    private Integer partnerId;
     /**
      * 专利ID
      */

+ 5 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/ReportVO.java

@@ -23,6 +23,11 @@ public class ReportVO extends BaseVO {
     private String signPatentNo;
 
     /**
+     * 标的专利/产品号
+     */
+    @Schema(description="报告Id")
+    private Integer reportId;
+    /**
      * 报告名称
      */
     @Schema(description="报告名称")

+ 21 - 3
RMS/src/main/java/cn/cslg/report/common/model/vo/TaskVO.java

@@ -1,6 +1,7 @@
 package cn.cslg.report.common.model.vo;
 
 
+import cn.cslg.report.common.model.BaseVO;
 import cn.cslg.report.entity.Report;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -19,7 +20,7 @@ import java.util.List;
 @Data
 @Accessors(chain = true)
 @Schema(description="任务VO",required = true)
-public class TaskVO {
+public class TaskVO extends BaseVO {
 
     @Schema(description = "报告信息")
     private Report report;
@@ -38,13 +39,30 @@ public class TaskVO {
      * 任务开始时间
      */
     @Schema(description = "任务开始时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
     private Date beginTime;
 
     /**
      * 结束时间
      */
     @Schema(description = "任务结束时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
     private Date endTime;
+
+    @Schema(description = "任务状态 0未完成 1已完成")
+    private Integer taskStatus;
+
+    @Schema(description = "登录人在任务中的身份 0创建人 1处理人")
+    private Integer roleInTask;
+@Schema(description = "人员专题号对象列表")
+private List<personPatents> personPatents;
+
+    @Schema(description = "人员专题号对象")
+    @Data
+    public static class personPatents{
+        @Schema(description = "人员Id")
+            private Integer personId;
+        @Schema(description = "专题号列表")
+        private List<String> patentNos;
+
+
+    }
 }

+ 3 - 3
RMS/src/main/java/cn/cslg/report/controller/FeatureController.java

@@ -40,10 +40,10 @@ public class FeatureController {
         return res;
     }
 
-    @RequestMapping(value = "/splitPatentRight", method = RequestMethod.POST)
+    @RequestMapping(value = "/addPatentRight", method = RequestMethod.POST)
     @Operation(summary = "保存权要")
-    public String addFeatures(@RequestBody PatentRightVo patentRightVo) throws IOException {
-        String res =  featureService.addFeatures(patentRightVo);
+    public String addPatentRight(@RequestBody List<PatentRightVo>  patentRightVos) throws IOException {
+        String res =  featureService.addFeatures(patentRightVos);
         return res;
     }
 }

+ 9 - 10
RMS/src/main/java/cn/cslg/report/controller/ReportController.java

@@ -41,16 +41,9 @@ public class ReportController {
 
         if (report != null) {
             Integer flag = reportService.addReport(report);
-            switch (flag) {
-                case 1:
-                    return Response.success("添加成功");
-                case 0:
-                    return Response.error("网络异常,添加失败");
-                case -1:
-                    return Response.error("请求失败");
-                default:
-                    return Response.error("服务器无响应");
-            }
+
+            return Response.success("添加成功");
+
         } else {
             return Response.error("网络异常");
         }
@@ -76,4 +69,10 @@ public class ReportController {
     public String queryReport(@RequestBody ReportVO reportVO) {
      return reportService.queryReport(reportVO);
     }
+
+//    @RequestMapping(value = "/getReportDetail", method = RequestMethod.GET)
+//    @Operation(summary = "查看报告详情")
+//    public String getReportDetail(@RequestBody Integer reportId) {
+//        return reportService.queryReport(reportVO);
+//    }
 }

+ 20 - 19
RMS/src/main/java/cn/cslg/report/controller/TaskController.java

@@ -3,10 +3,12 @@ package cn.cslg.report.controller;
 
 import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.BaseVO;
+import cn.cslg.report.common.model.vo.AuditTaskVO;
 import cn.cslg.report.common.model.vo.TaskVO;
 import cn.cslg.report.entity.Task;
 import cn.cslg.report.service.business.TaskService;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -14,24 +16,20 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.IOException;
 import java.text.ParseException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
+@Tag(name = "任务管理")
 @RestController
 @RequestMapping(Constants.REPORT_API + "/task")
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
+
 public class TaskController {
 
     private final TaskService taskService;
 
-    @RequestMapping(value = "/addTask", method = RequestMethod.POST)
-    @Operation(summary = "新增任务")
-    public String addTask(@RequestBody TaskVO taskVO) {
-
-         Task task =new Task();
-
-        return taskService.addTask(task);
-    }
-
     @RequestMapping(value = "/deleteTask", method = RequestMethod.POST)
     @Operation(summary = "删除任务")
     public String deleteTask(Integer id) {
@@ -40,14 +38,14 @@ public class TaskController {
 
     @RequestMapping(value = "/updateTask", method = RequestMethod.POST)
     @Operation(summary = "修改任务")
-    public String updateTask(Task task) {
+    public String updateTask(@RequestBody Task task) {
         return taskService.updateTask(task);
     }
 
-    @RequestMapping(value = "/queryPageList", method = RequestMethod.GET)
+    @RequestMapping(value = "/queryPageList", method = RequestMethod.POST)
     @Operation(summary = "分页查询任务列表")
-    public String queryPageList(Task task, BaseVO baseVO) {
-        return taskService.queryPageList(task, baseVO);
+    public String queryPageList(@RequestBody TaskVO taskVO) {
+        return taskService.queryPageList(taskVO);
     }
 
     @RequestMapping(value = "/add", method = RequestMethod.GET)
@@ -56,12 +54,15 @@ public class TaskController {
         return taskService.getAllTask();
     }
 
-    @RequestMapping(value = "/addAuditTask", method = RequestMethod.POST)
-    @Operation(summary = "新增审核任务")
-    public String addAuditTask(@RequestBody TaskVO taskVO) throws ParseException {
-
-
-        return taskService.addAuditTask(taskVO);
+    @RequestMapping(value = "/addTask", method = RequestMethod.POST)
+    @Operation(summary = "新增任务")
+    public String addAuditTask(@RequestBody TaskVO taskVO) throws ParseException, IOException {
+        return taskService.addTask(taskVO);
     }
 
+    @RequestMapping(value = "/auditTask", method = RequestMethod.POST)
+    @Operation(summary = "审核任务")
+    public String auditTask(@RequestBody AuditTaskVO auditTaskVO) throws ParseException, IOException {
+        return taskService.auditTask(auditTaskVO);
+    }
 }

+ 2 - 2
RMS/src/main/java/cn/cslg/report/entity/Features.java

@@ -43,7 +43,7 @@ public class Features extends BaseEntity<Features> {
      * 特征拆分人ID
      */
     @TableField(value = "PARTNER_ID")
-    private String partnerId;
+    private Integer partnerId;
 
     /**
      * 是否最终
@@ -60,6 +60,6 @@ public class Features extends BaseEntity<Features> {
      *  解释
      */
     @TableField(value = "EXPLAIN_TEXT")
-    private Integer explainText;
+    private String explainText;
 
 }

+ 92 - 0
RMS/src/main/java/cn/cslg/report/entity/Personnel.java

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

+ 25 - 10
RMS/src/main/java/cn/cslg/report/entity/Report.java

@@ -8,6 +8,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.util.Date;
+
 @Data
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
@@ -40,49 +42,62 @@ public class Report extends BaseEntity<Report> {
      */
     @Schema(description="报告类别(0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析)")
     @TableField(value = "TYPE")
-    private String type;
+    private Integer type;
 
     /**
      * 报告状态
      */
     @Schema(description="报告状态")
     @TableField(value = "STATUS")
-    private String status;
+    private Integer status;
 
     /**
      * 报告生成时间
      */
     @Schema(description="报告生成时间")
     @TableField(value = "CREATE_TIME")
-    private String createTime;
+    private Date createTime;
 
     /**
      * 报告生成文件ID
      */
     @Schema(description="报告生成文件ID")
     @TableField(value = "REPORT_FILE_ID")
-    private String reportFileId;
+    private Integer reportFileId;
 
     /**
      * 负责人ID
      */
     @Schema(description="负责人ID")
     @TableField(value = "PERSON_ID")
-    private String personId;
+    private Integer personId;
+    /**
+     * 负责人ID
+     */
+    @Schema(description="负责人姓名")
+    @TableField(value = "PERSON_NAME")
+    private String personName;
 
     /**
      * 委托人ID
      */
     @Schema(description="委托人ID")
     @TableField(value = "CLIENT_ID")
-    private String clientId;
+    private Integer clientId;
+
+    /**
+     * 委托人姓名
+     */
+    @Schema(description="委托人姓名")
+    @TableField(value = "CLIENT_NAME")
+    private String clientName;
 
     /**
      * 承担部门ID
      */
     @Schema(description="承担部门ID")
     @TableField(value = "DEPARTMENT_ID")
-    private String departmentId;
+    private Integer departmentId;
 
     /**
      * 承担部门名称
@@ -96,7 +111,7 @@ public class Report extends BaseEntity<Report> {
      */
     @Schema(description="关联报告ID")
     @TableField(value = "ASSOCIATE_REPORT_ID")
-    private String associateReportId;
+    private Integer associateReportId;
 
     /**
      * 关联报告名称
@@ -117,14 +132,14 @@ public class Report extends BaseEntity<Report> {
      */
     @Schema(description="调查类型")
     @TableField(value = "IT_FLAG")
-    private String itFlag;
+    private Integer itFlag;
 
     /**
      * 专题库ID
      */
     @Schema(description="专题库ID")
     @TableField(value = "THEMATIC_ID")
-    private String thematicId;
+    private Integer thematicId;
 
     /**
      * 卷号

+ 61 - 11
RMS/src/main/java/cn/cslg/report/entity/Task.java

@@ -4,9 +4,11 @@ import cn.cslg.report.common.model.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -21,64 +23,112 @@ public class Task extends BaseEntity<Task> {
     /**
      * 创建任务时间
      */
+    @Schema(description = "创建任务时间")
     @TableField(value = "CREATE_TIME")
-    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
      * 任务名称
      */
+    @Schema(description = "任务名称",required = true)
     @TableField(value = "TASK_NAME")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private String taskName;
 
     /**
      * 完成进度
      */
-    @TableField(value = "COMPLETION_PROGRESS")
-    private Double completionProgress;
+    @Schema(description = "完成进度")
+    @TableField(value = "PROGRESS")
+    private Double progress;
 
     /**
      * 完成状态
      */
-    @TableField(value = "STATUS")
-    private Integer status;
+    @Schema(description = "完成状态")
+    @TableField(value = "TASK_STATUS")
+    private Integer taskStatus;
 
     /**
-     * 任务创建人
+     * 任务创建人ID
      */
-    @TableField(value = "PERSON_ID")
-    private String personId;
+    @Schema(description = "任务创建人ID")
+    @TableField(value = "CREATE_ID")
+    private Integer createID;
 
     /**
+     * 任务创建人姓名
+     */
+    @Schema(description = "任务创建人姓名")
+    @TableField(value = "CREATE_NAME")
+    private String createName;
+    /**
      * 任务开始时间
      */
+    @Schema(description = "任务开始时间")
     @TableField(value = "BEGIN_TIME")
-    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
     private Date beginTime;
 
     /**
      * 完成时间
      */
+    @Schema(description = "完成时间")
     @TableField(value = "FINISH_TIME")
-    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date finishTime;
 
     /**
      * 结束时间
      */
+    @Schema(description = "任务截止时间",required = true)
     @TableField(value = "END_TIME")
-    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     /**
      * 任务类型
      */
+    @Schema(description = "任务类型",required = true)
     @TableField(value = "TYPE")
     private Integer type;
 
     /**
      * 报告ID
      */
+    @Schema(description = "报告ID",required = true)
     @TableField(value = "REPORT_ID")
     private Integer reportId;
+
+    /**
+     * 处理人ID
+     */
+    @Schema(description = "处理人ID",required = true)
+    @TableField(value = "HANDLE_PERSON_ID")
+    private Integer handlePersonId;
+
+    /**
+     * 处理人姓名
+     */
+    @Schema(description = "处理人姓名",required = true)
+    @TableField(value = "HANDLE_PERSON_NAME")
+    private String handlePersonName;
+
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    @TableField(value = "REMARK")
+    private String remark;
+
+    /**
+     * 结果
+     */
+    @Schema(description = "结果")
+    @TableField(value = "RESULT")
+    private Integer result;
 }

+ 15 - 6
RMS/src/main/java/cn/cslg/report/entity/asso/AssoTaskPersonel.java

@@ -18,18 +18,27 @@ import lombok.experimental.Accessors;
 public class AssoTaskPersonel extends BaseEntity<AssoTaskPersonel> {
     @Schema(description = "任务ID")
     @TableField(value = "TASK_ID")
-    private String taskId;
+    private Integer taskId;
 
 
     @Schema(description = "任务类型")
     @TableField(value = "TASK_TYPE")
-    private String taskType;
+    private Integer taskType;
 
     @Schema(description = "人员ID")
-    @TableField(value = "PERSONEL_ID")
-    private String personelId;
+    @TableField(value = "PERSON_ID")
+    private Integer personelId;
 
     @Schema(description = "人员类型")
-    @TableField(value = "PERSONEL_TYPE")
-    private String personelType;
+    @TableField(value = "PERSON_TYPE")
+    private Integer personelType;
+
+    @Schema(description = "报告ID")
+    @TableField(value = "REPORT_ID")
+    private Integer reportId;
+
+    @Schema(description = "报告ID")
+    @TableField(value = "PATENT_NO")
+    private String patentNo;
+
 }

+ 37 - 1
RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java

@@ -6,6 +6,8 @@ import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.JsonUtils;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import okhttp3.MediaType;
 import okhttp3.OkHttpClient;
@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -190,6 +193,24 @@ if(personnelVO.getName()==null)
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
+
+    /**
+     * @title 根据ID查询人员
+     * @description 接口来源:PCS
+     */
+    public String getPersonnelByIdsFromPCS(List<Integer> ids) throws IOException {
+
+        String param = new Gson().toJson(ids);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getPersonnelByIds")
+                .addHeader("Cookie", LoginUtils.getToken())
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
     /**
      * @title 获取所有客户(无权限控制)
      * @description 接口来源:PCS
@@ -245,6 +266,21 @@ if(personnelVO.getName()==null)
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
+    public String getClientNameFromPAS(Integer id) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PASUrl + "/api/v2/client/getClientName?id=" + id)
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
 
-
+    public String getPersonNameAndDepart(Integer personId ,Integer departId) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getPersonNameAndDepart?personId=" + personId+"&departId="+departId)
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
 }

+ 175 - 145
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -2,12 +2,14 @@ package cn.cslg.report.service.business;
 
 import cn.cslg.report.common.model.vo.PatentRightVo;
 import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.report.entity.Features;
 import cn.cslg.report.entity.PatentRight;
 import cn.cslg.report.mapper.FeatureMapper;
 import cn.cslg.report.service.OutInterfaceService;
+import cn.dev33.satoken.stp.StpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -22,6 +24,8 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 @Service
@@ -29,177 +33,203 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
 
-    private  final OutInterfaceService outInterfaceService;
-    //从PAS系统上获得权要并拆分
-public String splitPatentRight(String patentNo,Integer splitType ,Integer splitBy,Integer reportId) throws IOException {
-    //权要(带拆分的特征)列表
-    List<PatentRightVo> patentRightVos =new ArrayList<>();
-    //从pas获得权要信息
-  String resBody=  outInterfaceService.getPatentRightFromPAS(patentNo);
-    JSONObject jsonObject = JSONObject.parseObject(resBody);
-    //解析jason获得标的专利的权要
-    List<PatentRight> patentRights = JSON.parseArray(jsonObject.getString("data"),PatentRight.class);
-    List<Integer> partRightIds=new ArrayList<>();
-    List<String> flags =new ArrayList<>();
-    // 当splitType=0仅拆解主权要
-    if(splitType==0)
-    { partRightIds = patentRights.stream().filter(item->item.getType()==1).map(PatentRight::getId).collect(Collectors.toList());
-    }// 当splitType=1拆解全部权要
-    else if(splitType==1)
-    {
-         partRightIds = patentRights.stream().map(PatentRight::getId).collect(Collectors.toList());
-    }
-    //当splitBy=0时仅仅根据“,”拆解
-    if(splitBy==0)
-    {   flags.add(",");
-
+    private final OutInterfaceService outInterfaceService;
+    private final CacheUtils cacheUtils;
+
+    //对权要进行合并操作
+    private List<PatentRight> FormatPatentRights(List<PatentRight> patentRights)
+    {     List<PatentRight> retList= new ArrayList<>();
+       for(int i=0;i< patentRights.size();i++)
+       {
+           String str=patentRights.get(i).getContent();
+           str =str.replace(" ","");
+           Pattern p = Pattern.compile("^[0-9]+\\..*");
+           Matcher m = p.matcher(str);
+           if( m.matches()){
+               retList.add(patentRights.get(i));
+           }
+           else {
+               if(retList.size()!=0){
+              retList.get(retList.size()-1).setContent(retList.get(retList.size()-1).getContent()+patentRights.get(i).getContent());
+               retList.get(retList.size()-1).setContentOut(retList.get(retList.size()-1).getContentOut()+patentRights.get(i).getContentOut());}
+           }
+
+       }
+
+        return retList;
     }
-    //当splitBy=1时仅仅根据“;“拆解
-    else if(splitBy==1)
-    {
-        flags.add(";");
-    }//当splitBy=2时根据“;“和”,”拆解
-    else if(splitBy==2){
-
-        flags.add(",");
-        flags.add(";");
-    }
-    Features featureTO=new Features();
-    featureTO.setReportId(reportId);
-    featureTO.setSignPatentNo(patentNo);
-    //featureTO.setPartnerId();
-    //查询数据库里是否有查询记录
-    List<Features> featureFromDb =this.queryFeatures(featureTO);
-    //将拆解的权要和特征装载到对象PatentRightVo
-    for(int i=0;i<patentRights.size();i++) {
-        List<Features> featuresList = new ArrayList<>();
-        //对需要拆解的权要进行拆解
-        if(partRightIds.contains(patentRights.get(i).getId()))
-        {
-
-            if(featureFromDb!=null&&featureFromDb.size()!=0)
-        { int  rightId =patentRights.get(i).getId();
-           featuresList = featureFromDb.stream().filter(item->item.getRightId()==rightId).collect(Collectors.toList());
+    //从PAS系统上获得权要并拆分
+    public String splitPatentRight(String patentNo, Integer splitType, Integer splitBy, Integer reportId) throws IOException {
+        //权要(带拆分的特征)列表
+        List<PatentRightVo> patentRightVos = new ArrayList<>();
+        //从pas获得权要信息
+        String resBody = outInterfaceService.getPatentRightFromPAS(patentNo);
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        //解析jason获得标的专利的权要
+        List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
+
+        List<PatentRight> patentRights = FormatPatentRights(patentRightsOrgin);
+
+
+        List<Integer> partRightIds = new ArrayList<>();
+        List<String> flags = new ArrayList<>();
+        // 当splitType=0仅拆解主权要
+        if (splitType == 0) {
+            partRightIds = patentRights.stream().filter(item -> item.getType() == 1).map(PatentRight::getId).collect(Collectors.toList());
+        }// 当splitType=1拆解全部权要
+        else if (splitType == 1) {
+            partRightIds = patentRights.stream().map(PatentRight::getId).collect(Collectors.toList());
+        }
+        //当splitBy=0时仅仅根据“,”拆解
+        if (splitBy == 0) {
+            flags.add(",");
 
         }
-          //如果数据库里无拆解记录则手动插入一条
-            if(featuresList==null||featuresList.size()==0)
-            { featuresList=new ArrayList<>();
-                //获得权要的译文并且拆解
-                List<String> contentOuts = this.splitStringByFlags(patentRights.get(i).getContentOut(), flags);
-                //获得权要的原文并且拆解
-                List<String> contents  =this.splitStringByFlags(patentRights.get(i).getContent(),flags);
-                //遍历拆解出来的内容并装载到features最后存入列表
-                for (int t = 0; t < contentOuts.size(); t++)
-                { Features features =new Features();
-                    features.setRightId(patentRights.get(i).getId());
-                    features.setIsFinal(0);
-                    features.setSignPatentNo(patentNo);
-                    features.setReportId(reportId);
-                    features.setContentOut(contentOuts.get(t));
-                    String  content=  contents.size()-1>=t ? contents.get(t):"";
-                    features.setContent(content);
-//            features.setPartnerId(LoginUtils.getToken());
-                    featuresList.add(features);
+        //当splitBy=1时仅仅根据“;“拆解
+        else if (splitBy == 1) {
+            flags.add(";");
+        }//当splitBy=2时根据“;“和”,”拆解
+        else if (splitBy == 2) {
+
+            flags.add(",");
+            flags.add(";");
+        }
+        Features featureTO = new Features();
+        featureTO.setReportId(reportId);
+        featureTO.setSignPatentNo(patentNo);
+        //featureTO.setPartnerId();
+        //查询数据库里是否有查询记录
+        List<Features> featureFromDb = this.queryFeatures(featureTO);
+        //将拆解的权要和特征装载到对象PatentRightVo
+        for (int i = 0; i < patentRights.size(); i++) {
+            List<Features> featuresList = new ArrayList<>();
+            //对需要拆解的权要进行拆解
+            if (partRightIds.contains(patentRights.get(i).getId())) {
+
+                if (featureFromDb != null && featureFromDb.size() != 0) {
+                    int rightId = patentRights.get(i).getId();
+                    featuresList = featureFromDb.stream().filter(item -> item.getRightId() == rightId).collect(Collectors.toList());
+                }
+                //如果数据库里无拆解记录则手动插入一条
+                if (featuresList == null || featuresList.size() == 0) {
+                    featuresList = new ArrayList<>();
+                    //获得权要的译文并且拆解
+                    List<String> contentOuts = this.splitStringByFlags(patentRights.get(i).getContentOut(), flags);
+                    //获得权要的原文并且拆解
+                    List<String> contents = this.splitStringByFlags(patentRights.get(i).getContent(), flags);
+                    //遍历拆解出来的内容并装载到features最后存入列表
+                    for (int t = 0; t < contents.size(); t++) {
+                        Features features = new Features();
+                        features.setRightId(patentRights.get(i).getId());
+                        features.setIsFinal(0);
+                        features.setSignPatentNo(patentNo);
+                        features.setReportId(reportId);
+                        String countOut = contentOuts.size() - 1 >= t ? contentOuts.get(t) : "";
+                        features.setContentOut(countOut);
+                        features.setContent(contents.get(t));
+                        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+                        features.setPartnerId(personnelVO.getId());
+                        featuresList.add(features);
+                    }
+                    this.saveBatch(featuresList);
                 }
-
             }
-        }
 
-        //装载到对象PatentRightVo
-     PatentRightVo patentRightVo =new PatentRightVo();
-        patentRightVo.setPatentId(patentRights.get(i).getPatentId());
-        patentRightVo.setFeatures(featuresList);
-        patentRightVo.setContent(patentRights.get(i).getContent());
-        patentRightVo.setSort(patentRights.get(i).getSort());
-        patentRightVo.setType(patentRights.get(i).getType());
-        patentRightVo.setContentOut(patentRights.get(i).getContentOut());
-        patentRightVo.setReportId(reportId);
-//        patentRightVo.setPatentId();
-        patentRightVo.setSignPatentNo(patentNo);
-        patentRightVos.add(patentRightVo);
-    }
+            //装载到对象PatentRightVo
+            PatentRightVo patentRightVo = new PatentRightVo();
+            String name="权要"+(i+1);
+            patentRightVo.setPatentId(patentRights.get(i).getPatentId());
+            patentRightVo.setFeatures(featuresList);
+            patentRightVo.setContent(patentRights.get(i).getContent());
+            patentRightVo.setSort(patentRights.get(i).getSort());
+            patentRightVo.setType(patentRights.get(i).getType());
+            patentRightVo.setContentOut(patentRights.get(i).getContentOut());
+            patentRightVo.setReportId(reportId);
+            patentRightVo.setRightName(name);
+            patentRightVo.setSignPatentNo(patentNo);
+            patentRightVos.add(patentRightVo);
+        }
 
 
-    return Response.success(patentRightVos);
+        return Response.success(patentRightVos);
 
-}
+    }
 
-//根据符号拆分字符串
-public List<String> splitStringByFlags(String sentence,List<String> flags){
-List<String> sectences =new ArrayList<>();
+    //根据符号拆分字符串
+    public List<String> splitStringByFlags(String sentence, List<String> flags) {
+        List<String> sectences = new ArrayList<>();
 //如果字符串为空则返回一个包含空字符串的list
-if(sentence==null){
-    sectences.add("");
-    return  sectences;
-}
-sectences.add(sentence);
-for(int i=0;i<flags.size();i++)
-{  List<String> tem =new ArrayList<>();
-  for(int t=0;t<sectences.size();t++)
-  {
-    tem.addAll(Arrays.asList(sentence.split(flags.get(i))));
-  }
-sectences=tem;
+        if (sentence == null) {
+            sectences.add("");
+            return sectences;
+        }
+        sectences.add(sentence);
+        for (int i = 0; i < flags.size(); i++) {
+            List<String> tem = new ArrayList<>();
+            for (int t = 0; t < sectences.size(); t++) {
+                tem.addAll(Arrays.asList(sectences.get(t).split(flags.get(i))));
+            }
+            sectences = tem;
 
-}
-return sectences;
+        }
+        return sectences;
 
-}
+    }
 
     /**
      * @author lrj
      * @deprecated 查询特征
      */
-public List<Features>  queryFeatures(Features features){
-    List<Features> featureList =new ArrayList<>();
-    LambdaQueryWrapper<Features> lambdaQueryWrapper= new LambdaQueryWrapper();
-    if(features.getRightId()!=null)
-    {lambdaQueryWrapper.eq(Features::getRightId,features.getRightId());
-    }
-    if(features.getIsFinal()!=null)
-    {
-        lambdaQueryWrapper.eq(Features::getIsFinal,features.getIsFinal());
-    }
-    if(features.getPartnerId()!=null)
-    {
-        lambdaQueryWrapper.eq(Features::getPartnerId,features.getPartnerId());
-    }
-    if(features.getSignPatentNo()!=null)
-    {
-        lambdaQueryWrapper.eq(Features::getSignPatentNo,features.getSignPatentNo());
-    }
-    if(features.getReportId()!=null)
-    {
-        lambdaQueryWrapper.eq(Features::getReportId,features.getReportId());
+    public List<Features> queryFeatures(Features features) {
+        List<Features> featureList = new ArrayList<>();
+        LambdaQueryWrapper<Features> lambdaQueryWrapper = new LambdaQueryWrapper();
+        if (features.getRightId() != null) {
+            lambdaQueryWrapper.eq(Features::getRightId, features.getRightId());
+        }
+        if (features.getIsFinal() != null) {
+            lambdaQueryWrapper.eq(Features::getIsFinal, features.getIsFinal());
+        }
+        if (features.getPartnerId() != null) {
+            lambdaQueryWrapper.eq(Features::getPartnerId, features.getPartnerId());
+        }
+        if (features.getSignPatentNo() != null) {
+            lambdaQueryWrapper.eq(Features::getSignPatentNo, features.getSignPatentNo());
+        }
+        if (features.getReportId() != null) {
+            lambdaQueryWrapper.eq(Features::getReportId, features.getReportId());
+        }
+        featureList = this.list(lambdaQueryWrapper);
+        return featureList;
     }
-    featureList =this.list(lambdaQueryWrapper);
-    return featureList;
-}
 
     /**
      * @author 沈永艺
      * @deprecated 保存特征
      */
     @Transactional(rollbackFor = Exception.class)
-public String addFeatures(PatentRightVo patentRightVo){
-    if(patentRightVo.getReportId()!=null&&patentRightVo.getSignPatentNo()!=null&&patentRightVo.getPartnerId()!=null)
-    {LambdaQueryWrapper<Features> wrapper =new LambdaQueryWrapper<>();
-     wrapper.eq(Features::getReportId,patentRightVo.getReportId())
-             .eq(Features::getSignPatentNo,patentRightVo.getSignPatentNo())
-             .eq(Features::getPartnerId,patentRightVo.getPartnerId());
-     
-     this.remove(wrapper);
-     if(patentRightVo.getFeatures()!=null&&patentRightVo.getFeatures().size()!=0)
-     {
-         this.saveBatch(patentRightVo.getFeatures());
-     }
-
+    public String addFeatures(List<PatentRightVo> patentRightVos) {
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+        LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
+        if(patentRightVos.get(0).getReportId() != null && patentRightVos.get(0).getSignPatentNo() != null ) {
+
+            wrapper.eq(Features::getReportId, patentRightVos.get(0).getReportId())
+                    .eq(Features::getSignPatentNo, patentRightVos.get(0).getSignPatentNo())
+                    .eq(Features::getPartnerId,personnelVO.getId() );
+            this.remove(wrapper);
+        }
+        List<Features> features = new ArrayList<>();
+        for (int i = 0; i < patentRightVos.size(); i++) {
+            PatentRightVo patentRightVo = patentRightVos.get(i);
+                if (patentRightVo.getFeatures() != null && patentRightVo.getFeatures().size() != 0) {
+                    features.addAll(patentRightVo.getFeatures());
+            }
+        }
+        for(int t =0 ;t<features.size();t++){
+            features.get(t).setPartnerId(personnelVO.getId());
+        }
+        this.saveBatch(features);
+        return Response.success();
     }
 
-    return  Response.success();
-}
-
-
 
 }

+ 31 - 4
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -6,7 +6,10 @@ import cn.cslg.report.common.utils.LogExceptionUtil;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.entity.Report;
 import cn.cslg.report.mapper.ReportMapper;
+import cn.cslg.report.service.OutInterfaceService;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -18,12 +21,13 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Service
 @Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class ReportService extends ServiceImpl<ReportMapper, Report> {
-
+     private final OutInterfaceService outInterfaceService;
     /**
      * @author 沈永艺
      * @param report 报告类
@@ -31,6 +35,23 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     @Transactional(rollbackFor = Exception.class)
     public Integer addReport(Report report) {
         try {
+         String res1 =   outInterfaceService.getClientNameFromPAS(report.getClientId());
+            JSONObject jsonObject = JSONObject.parseObject(res1);
+            String clientName = jsonObject.getString("data");
+         String res2 =   outInterfaceService.getPersonNameAndDepart(report.getPersonId(),report.getDepartmentId());
+         if(report.getAssociateReportId()!=null){
+         LambdaQueryWrapper<Report> wrapper =new LambdaQueryWrapper<>();
+             wrapper.eq(Report::getId,report.getAssociateReportId());
+             Report assioReport =this.list(wrapper).get(0);
+             report.setAssociateReportName(assioReport.getName());
+         }
+
+            JSONObject jsonObject2 = JSONObject.parseObject(res2);
+            Map<String,Object> map = (Map<String, Object>) jsonObject2.get("data");
+            report.setClientName(clientName);
+            report.setDepartmentName(map.get("departName").toString());
+            report.setPersonName(map.get("personName").toString());
+
             boolean addFlag = this.save(report);
             if (addFlag) {
                 return report.getId();
@@ -57,9 +78,15 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         if(reportVO.getName()!=null){
         queryWrapper.like(Report::getName,reportVO.getName());
         }
-        List<Report> reports = this.list(queryWrapper);
-        long count = this.count(queryWrapper);
-        return Response.success(reports, DataUtils.setPageColumn(reportVO.getSize(), reportVO.getCurrent(), Math.toIntExact(count)));
+        if(reportVO.getReportId()!=null)
+        { queryWrapper.eq(Report::getId,reportVO.getReportId());}
+        if(reportVO.getSize()!=null&&reportVO.getSize()!=null) {
+            List<Report> reports = this.page(new Page<>(reportVO.getCurrent(), reportVO.getSize()), queryWrapper).getRecords();
+            long count = this.count(queryWrapper);
+            return Response.success(reports, DataUtils.setPageColumn(reportVO.getSize(), reportVO.getCurrent(), Math.toIntExact(count)));
+        }
+       else { List<Report> reports =this.list(queryWrapper);
+            return Response.success(reports);}
     }
 
 

+ 172 - 32
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -1,13 +1,24 @@
 package cn.cslg.report.service.business;
 
 import cn.cslg.report.common.model.BaseVO;
+import cn.cslg.report.common.model.vo.AssignTaskVO;
+import cn.cslg.report.common.model.vo.AuditTaskVO;
+import cn.cslg.report.common.model.vo.PersonnelVO;
 import cn.cslg.report.common.model.vo.TaskVO;
+import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.DataUtils;
 import cn.cslg.report.common.utils.LogExceptionUtil;
 import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.PatentRight;
+import cn.cslg.report.entity.Personnel;
+import cn.cslg.report.entity.Report;
 import cn.cslg.report.entity.Task;
 import cn.cslg.report.entity.asso.AssoTaskPersonel;
 import cn.cslg.report.mapper.TaskMapper;
+import cn.cslg.report.service.OutInterfaceService;
+import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,29 +29,36 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class TaskService extends ServiceImpl<TaskMapper, Task> {
     private final ReportService reportService;
-    @Transactional(rollbackFor = Exception.class)
-    public String addTask(Task task) {
-        try {
-            this.save(task);
-            return Response.success();
-        } catch (Exception e) {
-            log.error("添加任务异常,异常信息:" + LogExceptionUtil.getMessage(e));
-            log.info("添加任务异常,开始回滚! 时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.info("回滚完毕! 时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
-            return Response.error();
-        }
-    }
+    private final OutInterfaceService outInterfaceService;
+    private final CacheUtils cacheUtils;
+    private final AssoTaskPersonelService assoTaskPersonelService;
+
+//    @Transactional(rollbackFor = Exception.class)
+//    public String addTask(Task task) {
+//        try {
+//            this.save(task);
+//            return Response.success();
+//        } catch (Exception e) {
+//            log.error("添加任务异常,异常信息:" + LogExceptionUtil.getMessage(e));
+//            log.info("添加任务异常,开始回滚! 时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//            log.info("回滚完毕! 时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+//            return Response.error();
+//        }
+//    }
 
     @Transactional(rollbackFor = Exception.class)
     public String deleteTask(Integer id) {
@@ -70,16 +88,32 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         }
     }
 
-    public String queryPageList(Task task, BaseVO baseVO) {
+    public String queryPageList(TaskVO taskVO) {
+        //获得登录人的信息
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
         LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-        if (task.getType() != null) {
-            lambdaQueryWrapper.eq(Task::getType, task.getType());
+        if (taskVO.getType() != null) {
+            lambdaQueryWrapper.eq(Task::getType, taskVO.getType());
+        }
+        if (taskVO.getTaskStatus() != null) {
+            lambdaQueryWrapper.eq(Task::getTaskStatus, taskVO.getTaskStatus());
+        }
+
+        if (taskVO.getRoleInTask() != null) {
+            if (taskVO.getRoleInTask() == 0) {
+                lambdaQueryWrapper.eq(Task::getCreateID, personnelVO.getId());
+
+            } else if (taskVO.getRoleInTask() == 1) {
+                lambdaQueryWrapper.eq(Task::getHandlePersonId, personnelVO.getId());
+            }
         }
 
+
         List<Task> taskList;
-        if (baseVO.getCurrent() != null && baseVO.getSize() != null) {
-            taskList = this.page(new Page<>(baseVO.getCurrent(), baseVO.getSize()), lambdaQueryWrapper).getRecords();
-            return Response.success(taskList, DataUtils.setPageColumn(baseVO.getSize(), baseVO.getCurrent(), Math.toIntExact(this.count(lambdaQueryWrapper))));
+        Long count = this.count(lambdaQueryWrapper);
+        if (taskVO.getCurrent() != null && taskVO.getSize() != null) {
+            taskList = this.page(new Page<>(taskVO.getCurrent(), taskVO.getSize()), lambdaQueryWrapper).getRecords();
+            return Response.success(taskList, DataUtils.setPageColumn(taskVO.getSize(), taskVO.getCurrent(), Math.toIntExact(count)));
         } else {
             taskList = this.list(lambdaQueryWrapper);
             return Response.success(taskList);
@@ -92,19 +126,125 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         return Response.success(taskList);
     }
 
-    public String addAuditTask(TaskVO taskVO) throws ParseException {
-      Integer reportId =  reportService.addReport(taskVO.getReport());
-Task task =new Task();
-task.setReportId(reportId);
-task.setTaskName(taskVO.getTaskName());
-task.setBeginTime(taskVO.getBeginTime());
-task.setEndTime(taskVO.getEndTime());
-task.setType(0);
-this.save(task);
-        AssoTaskPersonel assoTaskPersonel =new AssoTaskPersonel();
-//        assoTaskPersonel.setTaskId(task.getId())
-//TODO
-//task.setPersonId();
+    //添加审核任务
+    @Transactional(rollbackFor = Exception.class)
+    public String addTask(TaskVO taskVO) throws ParseException, IOException {
+        //先添加一个报告
+        Integer reportId = reportService.addReport(taskVO.getReport());
+        //数据库导入task
+
+        //任务人员关联表导入数据
+        if (taskVO.getPersonIds() != null) {
+            List<Task> tasks = new ArrayList<>();
+            List<Integer> ids = taskVO.getPersonIds();
+            String resBody = outInterfaceService.getPersonnelByIdsFromPCS(ids);
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            //解析jason获得标的专利的权要
+            List<Personnel> personnels = JSON.parseArray(jsonObject.getString("data"), Personnel.class);
+            //获得登录人的信息
+            PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+            for (int i = 0; i < ids.size(); i++) {
+                Integer handlePersonId = ids.get(i);
+                Personnel personnel = new Personnel();
+                personnel = personnels.stream().filter(item -> item.getId().equals(handlePersonId)).findFirst().orElse(new Personnel());
+                Task task = new Task();
+                task.setReportId(reportId);
+                task.setTaskName(taskVO.getTaskName());
+                task.setBeginTime(taskVO.getBeginTime());
+                task.setEndTime(taskVO.getEndTime());
+                task.setHandlePersonId(handlePersonId);
+                task.setHandlePersonName(personnel.getPersonnelName());
+                task.setType(taskVO.getType());
+                task.setCreateID(personnelVO.getId());
+                task.setCreateName(personnelVO.getName());
+                task.setTaskStatus(0);
+                tasks.add(task);
+            }
+            this.saveBatch(tasks);
+        }
+        return Response.success();
+    }
+
+    //审核任务
+    public String auditTask(AuditTaskVO auditTaskVO) {
+        LambdaQueryWrapper<Task> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Task::getId, auditTaskVO.getTaskId());
+        List<Task> tasks = this.list(queryWrapper);
+        if (tasks.size() == 0 || tasks == null) {
+            return Response.error("未查到任务");
+        }
+        Task task = tasks.get(0);
+        LambdaQueryWrapper<Report> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(Report::getId, task.getReportId());
+        List<Report> reports = reportService.list(queryWrapper1);
+        if (reports.size() == 0 || reports == null) {
+            return Response.error("未查到报告");
+        }
+        Report report = reports.get(0);
+        task.setTaskStatus(1);
+        task.setResult(auditTaskVO.getResult());
+        task.setRemark(auditTaskVO.getRemark());
+        Date date = new Date();
+        task.setFinishTime(date);
+        task.updateById();
+        report.setStatus(auditTaskVO.getReportStatus());
+        report.updateById();
+
+        return Response.success();
+    }
+
+
+    //添加分配任务
+    @Transactional(rollbackFor = Exception.class)
+    public String addAuditTask(AssignTaskVO assignTaskVO) throws ParseException, IOException {
+
+        List<String> patentNos =new ArrayList<>();
+
+        // 往task表添加数据
+        List<AssignTaskVO.personPatents> personPatents = assignTaskVO.getAssigns();
+        List<Integer> ids = personPatents.stream().map(AssignTaskVO.personPatents::getPersonId).collect(Collectors.toList());
+        List<Task> tasks = new ArrayList<>();
+        String resBody = outInterfaceService.getPersonnelByIdsFromPCS(ids);
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        //解析jason获得标的专利的权要
+        List<Personnel> personnels = JSON.parseArray(jsonObject.getString("data"), Personnel.class);
+        //获得登录人的信息
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+        //填充task数据
+        for (int i = 0; i < ids.size(); i++) {
+            Integer handlePersonId = ids.get(i);
+            Personnel personnel = new Personnel();
+            personnel = personnels.stream().filter(item -> item.getId().equals(handlePersonId)).findFirst().orElse(new Personnel());
+            Task task = new Task();
+            task.setReportId(assignTaskVO.getTask().getReportId());
+            task.setTaskName(assignTaskVO.getTask().getTaskName());
+            task.setBeginTime(assignTaskVO.getTask().getBeginTime());
+            task.setEndTime(assignTaskVO.getTask().getBeginTime());
+            task.setHandlePersonId(handlePersonId);
+            task.setHandlePersonName(personnel.getPersonnelName());
+            task.setType(assignTaskVO.getTask().getType());
+            task.setCreateID(personnelVO.getId());
+            task.setCreateName(personnelVO.getName());
+            task.setTaskStatus(0);
+            tasks.add(task);
+        }
+        this.saveBatch(tasks);
+        List<AssoTaskPersonel> assoTaskPersonels = new ArrayList<>();
+        for (int i = 0; i < tasks.size(); i++) {
+            Integer handleId = tasks.get(i).getId();
+            AssignTaskVO.personPatents assionPatents = personPatents.stream().filter(item -> item.getPersonId() == handleId).findFirst().orElse(null);
+            if (assionPatents.getPatentNos() != null) {
+                for (int t = 0; t < assionPatents.getPatentNos().size(); i++) {
+                    AssoTaskPersonel assoTaskPersonel = new AssoTaskPersonel();
+                    assoTaskPersonel.setTaskId(tasks.get(i).getId());
+                    assoTaskPersonel.setTaskType(tasks.get(i).getType());
+                    assoTaskPersonel.setReportId(tasks.get(i).getReportId());
+                    assoTaskPersonel.setPatentNo(assionPatents.getPatentNos().get(t));
+                    assoTaskPersonels.add(assoTaskPersonel);
+                }
+            }
+        }
+          assoTaskPersonelService.saveBatch(assoTaskPersonels);
 
         return Response.success();
     }