lwhhszx 2 rokov pred
rodič
commit
79a1f04d2f

+ 1 - 0
RMS/src/main/java/cn/cslg/report/controller/BaseController.java

@@ -111,6 +111,7 @@ public class BaseController {
     public String getPartClient() {
         return baseService.getPartClient();
     }
+
     @GetMapping("/getSystemDicItem")
     @Operation(summary = "获取本系统字典项")
     public String getSystemDicItem() {

+ 8 - 0
RMS/src/main/java/cn/cslg/report/controller/CompareController.java

@@ -2,6 +2,7 @@ package cn.cslg.report.controller;
 import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.vo.CompareFilesVO;
 import cn.cslg.report.common.model.vo.PatentVO;
+import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.service.business.CompareFilesService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -14,6 +15,7 @@ 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.List;
 
 
@@ -58,4 +60,10 @@ public class CompareController {
         String res = compareFilesService.deletePatentNo(compareFilesVO);
         return res;
     }
+
+    @RequestMapping(value = "/reStateCount", method = RequestMethod.GET)
+    @Operation(summary = "返回任务专利状态的数量")
+    public String reTaskStateCount(Integer reportId) throws ParseException, IOException {
+        return Response.success(compareFilesService.reTaskStateCount(reportId));
+    }
 }

+ 7 - 1
RMS/src/main/java/cn/cslg/report/controller/TaskController.java

@@ -25,6 +25,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import org.apache.poi.hssf.record.Record;
 import org.springframework.context.annotation.Lazy;
@@ -107,9 +108,14 @@ public class TaskController {
     @RequestMapping(value = "/reTaskPatents", method = RequestMethod.POST)
     @Operation(summary = "返回任务专利清单")
     public String reTaskPatents(@RequestBody PatentVO patentVO) throws ParseException, IOException {
-        return taskService.reTaskPatents(patentVO);
+         return taskService.reTaskPatents(patentVO);
     }
 
+    @RequestMapping(value = "/reTaskStateCount", method = RequestMethod.GET)
+    @Operation(summary = "返回任务专利状态的数量")
+    public String reTaskStateCount(Integer reportId,Integer taskId) throws ParseException, IOException {
+        return Response.success(taskService.reTaskStateCount(reportId,taskId));
+    }
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @Operation(summary = "导入")
     public String importPatent(MultipartFile file, Integer reportId) throws ParseException, IOException {

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

@@ -42,6 +42,6 @@ public class AssoTaskPersonel extends BaseEntity<AssoTaskPersonel> {
     private String patentNo;
     @Schema(description = "是否已读(0未读1已读)")
     @TableField(value = "STATE")
-    private int state;
+    private Integer state;
 
 }

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

@@ -411,8 +411,8 @@ public class OutInterfaceService {
     public String importPatents(TaskParams taskParams) throws IOException {
         OkHttpClient httpClient = new OkHttpClient.Builder()
                 .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
-                .connectTimeout(30, TimeUnit.SECONDS)//设置连接超时时间
-                .readTimeout(30, TimeUnit.SECONDS)//设置读取超时时间
+                .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
+                .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
                 .build();
             String param = new Gson().toJson(taskParams);
         RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);

+ 59 - 3
RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java

@@ -12,6 +12,7 @@ import cn.cslg.report.common.utils.JsonUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.StringUtils;
 import cn.cslg.report.entity.*;
+import cn.cslg.report.entity.asso.AssoTaskPersonel;
 import cn.cslg.report.mapper.CompareFilesMapper;
 import cn.cslg.report.service.OutInterfaceService;
 import com.alibaba.fastjson.JSONArray;
@@ -47,6 +48,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
     private final AssoComapareFielService assoComapareFielService;
     private final ReportFieldPatentLinkService reportFieldPatentLinkService;
     private final  SysDictItemService sysDictItemService;
+    private final AssoTaskPersonelService assoTaskPersonelService;
 
     @Transactional(rollbackFor = Exception.class)
     public String addCompareFile(CompareFilesVO compareFilesVO) throws IOException {
@@ -85,10 +87,10 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
             CompareFiles compareFiles1 = new CompareFiles();
             compareFiles1.setPatentNo(patentNos.get(i));
             compareFiles1.setReportId(compareFilesVO.getReportId());
-            if (quotes.size() != 0 && quotes.contains(patentNos.get(i))) {
+            if (familyPatentNos != null&&quotes.size() != 0 && quotes.contains(patentNos.get(i))) {
                 compareFiles1.setRemark("引");
             }
-            if (familyPatentNos.size() != 0 && familyPatentNos.contains(patentNos.get(i))) {
+            if (familyPatentNos != null&&familyPatentNos.size() != 0  && familyPatentNos.contains(patentNos.get(i))) {
                 compareFiles1.setRemark("同");
             }
             compareFiles.add(compareFiles1);
@@ -98,6 +100,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         return Response.success();
     }
 
+
     public String getCompareFile(PatentVO patentVO) throws IOException {
         LambdaQueryWrapper<CompareFiles> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(CompareFiles::getReportId, patentVO.getReportId());
@@ -137,12 +140,43 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         return Response.success(map);
     }
 
+
     //获得已经确定的对比专利详情
     public String getSureCompareFile(PatentVO patentVO) throws IOException {
+        List<String> patentNos= new ArrayList<>();
+        //根据任务Id和类型获得任务的清单
+        LambdaQueryWrapper<AssoTaskPersonel> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(AssoTaskPersonel::getReportId, patentVO.getReportId())
+                      .eq(AssoTaskPersonel::getState,1);
+        List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper1);
+        List<String> readPatentNos = assoTaskPersonels.stream().map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
         LambdaQueryWrapper<CompareFiles> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(CompareFiles::getReportId, patentVO.getReportId());
         List<CompareFiles> compareFiles = this.list(queryWrapper);
-        List<String> patentNos = compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
+      List<String>  AllpatentNos = compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
+        if(patentVO.getTaskStatus()!=null&&patentVO.getTaskStatus().equals(0)){
+            AllpatentNos.removeAll(readPatentNos);
+            patentNos =AllpatentNos;
+        }
+        else if(patentVO.getTaskStatus()!=null&&patentVO.getTaskStatus().equals(1)){
+            patentNos =readPatentNos;
+
+        }
+        else if(patentVO.getTaskStatus()==null||patentVO.getTaskStatus().equals(3))
+        {
+            patentNos= AllpatentNos;
+        }
+        //无查询条件
+        if (patentVO.getFiledOptions() == null||patentVO.getFiledOptions().size() == 0) {
+            patentVO.setPatentNos(patentNos);
+        }
+        //有查询条件时,自定义字段的专利号和任务的专利号取交集
+        else {
+          patentNos = reportFieldService.getPatentNo(patentVO.getFiledOptions());
+            List<String> jiaoList = new ArrayList<>(patentNos);
+            jiaoList.retainAll(patentNos);
+            patentVO.setPatentNos(jiaoList);
+        }
         patentVO.setPatentNos(patentNos);
         String res = outInterfaceService.getPatentFromPAS(patentVO, 1);
         return res;
@@ -227,5 +261,27 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         return  null;
     }
 
+    public Map<String, Object> reTaskStateCount(Integer reportId) {
+        //根据任务Id和类型获得任务的清单
+        LambdaQueryWrapper<AssoTaskPersonel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoTaskPersonel::getReportId, reportId);
+        List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
+        LambdaQueryWrapper<CompareFiles> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(CompareFiles::getReportId,reportId);
+        List<CompareFiles> compareFiles = this.list(queryWrapper1);
+        Map<String, Object> reMap = new HashMap<>();
+        reMap.put("all", compareFiles.size());
+        reMap.put("noRead", 0);
+        reMap.put("read", 0);
+        if (assoTaskPersonels.size() == 0) {
+            return reMap;
+        }
+
+        List<AssoTaskPersonel> assoRead = assoTaskPersonels.stream().filter(item -> item.getState().equals(1)).collect(Collectors.toList());
+        reMap.put("all", compareFiles.size());
+        reMap.put("noRead",compareFiles.size()- assoRead.size());
+        reMap.put("read", assoRead.size());
+        return reMap;
+    }
 
 }

+ 9 - 0
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -384,5 +384,14 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
     }
 
 
+    //TODO
+    @Transactional(rollbackFor = Exception.class)
+    public Integer delByReportId(int reportId){
+        LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Features::getReportId,reportId);
+  List<Features> features =this.list(queryWrapper);
+//  List<Integer> featureIds =features
+        return 1;
+    }
 
 }

+ 7 - 7
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java

@@ -47,6 +47,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
  private  final ReportFieldTreeService reportFieldTreeService;
  private  final ReportFieldPatentLinkService reportFieldPatentLinkService;
 private  final  AssoTaskPersonelService assoTaskPersonelService;
+    private final ReportFieldService reportFieldService;
 
     public String add(ReportField reportField) {
         ReportField temp = this.getProjectFieldByName(reportField.getName(), reportField.getReportId());
@@ -165,16 +166,15 @@ private  final  AssoTaskPersonelService assoTaskPersonelService;
   //给报告添加默认自定义字段
     public void addDefaultField(Integer reportId, Integer reportType) {
         LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ReportField::getType, reportType);
-        queryWrapper.eq(ReportField::getReportId, null);
+        queryWrapper.eq(ReportField::getReportType, reportType);
+        queryWrapper.isNull(ReportField::getReportId);
         List<ReportField> reportFields =this.list(queryWrapper);
-        if(reportFields.size()!=0||reportFields!=null)
+        if(reportFields!=null&&reportFields.size()!=0)
         {
-         reportFields.forEach(p->p.setReportId(reportId));
-
+         reportFields.forEach(p->{p.setReportId(reportId);p.setId(null); p.setCreateName(null);});
+         reportFieldService.saveBatch(reportFields);
         }
     }
-
     public String getReportField(int reportId,int id){
         List<ReportField> reportFields = reportFieldMapper.find(reportId,id);
         return Response.success(reportFields);
@@ -288,6 +288,7 @@ private  final  AssoTaskPersonelService assoTaskPersonelService;
                 .in(ReportFieldPatentLink::getOptionId,valueIds);
         List<ReportFieldPatentLink> reportFieldPatentLinks =reportFieldPatentLinkService.list(lambdaQueryWrapper);
         if(reportFieldPatentLinks.size()==0) {
+            list.forEach(item->item.setCount(0));
             return list;
         }
         list.forEach(tem->{
@@ -318,7 +319,6 @@ private  final  AssoTaskPersonelService assoTaskPersonelService;
         lambdaQueryWrapper.eq(ReportFieldPatentLink::getFieldId,params.getFieldId()).eq(ReportFieldPatentLink::getOptionId,params.getKey());
         List<ReportFieldPatentLink> reportFieldPatentLinks = reportFieldPatentLinkService.list(lambdaQueryWrapper);
         for(ReportFieldPatentLink reportFieldPatentLink : reportFieldPatentLinks){
-
             list.add(reportFieldPatentLink.getPatentNo());
         }
 

+ 2 - 4
RMS/src/main/java/cn/cslg/report/service/business/ReportFileService.java

@@ -30,6 +30,7 @@ import java.util.stream.Collectors;
 public class ReportFileService extends ServiceImpl<ReportFileMapper, ReportFiles> {
     private  final FileUtils fileUtils;
     private final LoginUtils loginUtils;
+    //上传文档
     public List<Integer> uploadFiles(List<MultipartFile> file){
         List<ReportFiles> reportFiles =new ArrayList<>();
         file.forEach(item->{
@@ -73,10 +74,7 @@ public class ReportFileService extends ServiceImpl<ReportFileMapper, ReportFiles
    List<ReportFiles> file =  this.list(queryWrapper);
    return file;
     }
-//    public List<ReportFiles> getFile(List<Integer> FileIds ,String name)throws IOException{
-//        LambdaQueryWrapper<ReportFiles> queryWrapper =new LambdaQueryWrapper<>();
-//        queryWrapper.in(ReportFiles::getId,FileIds).eq(ReportFiles::getFileName,name);
-//    }
+
 
 
 }

+ 2 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -81,6 +81,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
                 assoReportFileService.addAsso(report.getId(), fileIds);
 
             }
+
             if (addFlag) {
               reportFieldService.addDefaultField(report.getId(),report.getType());
                 return report.getId();
@@ -189,6 +190,7 @@ if(fileIds.size()!=0){
     }
 
     //删除报告
+    @Transactional(rollbackFor = Exception.class)
     public String reportDele(int id) throws IOException{
         assoTaskPersonelService.deleAssoTaskPersonel(id);
 

+ 59 - 34
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -17,6 +17,7 @@ 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 io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -111,10 +112,10 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
 
     //添加审核任务
     @Transactional(rollbackFor = Exception.class)
-    public String addTask(String taskVOStr,List<MultipartFile> file) throws ParseException, IOException {
-        TaskVO taskVO =JSONObject.parseObject(taskVOStr,TaskVO.class);
+    public String addTask(String taskVOStr, List<MultipartFile> file) throws ParseException, IOException {
+        TaskVO taskVO = JSONObject.parseObject(taskVOStr, TaskVO.class);
         //先添加一个报告
-        Integer reportId = reportService.addReport(taskVO.getReport(),file);
+        Integer reportId = reportService.addReport(taskVO.getReport(), file);
 
         //数据库导入task
 
@@ -182,14 +183,14 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
     //添加分配任务
     @Transactional(rollbackFor = Exception.class)
     public String addAssTask(AssignTaskVO assignTaskVO) throws ParseException, IOException {
-         LambdaQueryWrapper<Report> wrapper1 =new LambdaQueryWrapper<>();
-         wrapper1.select(Report::getSignPatentNo);
-         wrapper1.eq(Report::getId,assignTaskVO.getReportId());
+        LambdaQueryWrapper<Report> wrapper1 = new LambdaQueryWrapper<>();
+        wrapper1.select(Report::getSignPatentNo);
+        wrapper1.eq(Report::getId, assignTaskVO.getReportId());
         String signPatentNO = reportService.list(wrapper1).get(0).getSignPatentNo();
         //遍历assignTaskVO的分配人员信息assigns,在任务表里插入分配任务
         List<String> selectedNos = new ArrayList<>();
         //记录所有人的id
-        List<Integer> personIds =new ArrayList<>();
+        List<Integer> personIds = new ArrayList<>();
 
         //记录总共专利号数量
         int num = 0;
@@ -211,7 +212,7 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         LambdaQueryWrapper<CompareFiles> wrapper = new LambdaQueryWrapper<>();
         wrapper.select(CompareFiles::getPatentNo)
                 .eq(CompareFiles::getReportId, assignTaskVO.getReportId())
-        .eq(CompareFiles::getState,0);
+                .eq(CompareFiles::getState, 0);
         List<CompareFiles> compareFiles = compareFilesService.list(wrapper);
         List<String> patentNos = compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
         if (patentNos.size() > num) {
@@ -225,7 +226,7 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         //遍历assignTaskVO的分配人员信息assigns,装配人员所被分配的专利信息
         for (int i = 0; i < personPatents.size(); i++) {
             Integer handlePersonId = personIds.get(i);
-            Personnel   personnel = personnels.stream().filter(item -> item.getId().equals(handlePersonId)).findFirst().orElse(new Personnel());
+            Personnel personnel = personnels.stream().filter(item -> item.getId().equals(handlePersonId)).findFirst().orElse(new Personnel());
             Task task = new Task();
             task.setTaskName(assignTaskVO.getTaskName());
             task.setReportId(assignTaskVO.getReportId());
@@ -241,7 +242,7 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
             task.setSignPatentNo(signPatentNO);
             task.insert();
             //根据数量从分配的专利号列表中截取该数量的专利号,加上分配信息的专利号进行装配
-            List<String> partNos = patentNos.subList(flag, flag+personPatents.get(i).getAssignCount()-1);
+            List<String> partNos = patentNos.subList(flag, flag + personPatents.get(i).getAssignCount() - 1);
             flag += personPatents.get(i).getAssignCount();
             partNos.addAll(personPatents.get(i).getPatentNos());
             for (int t = 0; t < partNos.size(); t++) {
@@ -262,51 +263,75 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
 
     //返回任务专利清单
     @Transactional(rollbackFor = Exception.class)
-    public String  reTaskPatents(PatentVO patentVO) throws ParseException, IOException {
-        List<String> taskPatentNos =new ArrayList<>();
+    public String reTaskPatents(PatentVO patentVO) throws ParseException, IOException {
+        List<String> taskPatentNos = new ArrayList<>();
         //根据任务Id和类型获得任务的清单
         LambdaQueryWrapper<AssoTaskPersonel> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(AssoTaskPersonel::getReportId,patentVO.getReportId());
+        queryWrapper.eq(AssoTaskPersonel::getReportId, patentVO.getReportId());
         //当taskID存在时
-        if(patentVO.getTaskId()!=null){
-        queryWrapper.eq(AssoTaskPersonel::getTaskId, patentVO.getTaskId());
-        if(patentVO.getTaskStatus()!=3){
-            queryWrapper.eq(AssoTaskPersonel::getState, patentVO.getTaskStatus());}
-        List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
-        if(patentVO.getTaskStatus()!=3){
-            taskPatentNos = assoTaskPersonels.stream().filter(item -> item.getState() == patentVO.getTaskStatus()).map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
-        }
-        else {
-            taskPatentNos = assoTaskPersonels.stream().map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
-        }
+        if (patentVO.getTaskId() != null) {
+            queryWrapper.eq(AssoTaskPersonel::getTaskId, patentVO.getTaskId());
+            if (patentVO.getTaskStatus() != 3) {
+                queryWrapper.eq(AssoTaskPersonel::getState, patentVO.getTaskStatus());
+            }
+            List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
+            if (patentVO.getTaskStatus() != 3) {
+                taskPatentNos = assoTaskPersonels.stream().filter(item -> item.getState() == patentVO.getTaskStatus()).map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
+            } else {
+                taskPatentNos = assoTaskPersonels.stream().map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
+            }
         }
         //当taskId不存在时
-        else{
+        else {
             List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
             taskPatentNos = assoTaskPersonels.stream().map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
         }
         //无查询条件
-        if(patentVO.getFiledOptions().size()==0|| patentVO.getFiledOptions()==null) {
+        if (patentVO.getFiledOptions().size() == 0 || patentVO.getFiledOptions() == null) {
             patentVO.setPatentNos(taskPatentNos);
         }
         //有查询条件时,自定义字段的专利号和任务的专利号取交集
         else {
-            List<String>  patentNos=  reportFieldService.getPatentNo(patentVO.getFiledOptions());
-            List<String>  jiaoList = new ArrayList<>(taskPatentNos);
+            List<String> patentNos = reportFieldService.getPatentNo(patentVO.getFiledOptions());
+            List<String> jiaoList = new ArrayList<>(taskPatentNos);
             jiaoList.retainAll(patentNos);
             patentVO.setPatentNos(jiaoList);
         }
         String res = outInterfaceService.getPatentFromPAS(patentVO, 1);
         JSONObject jsonObject = JSONObject.parseObject(res);
-        JSONObject jsonObject1= JSONObject.parseObject(jsonObject.get("data").toString()) ;
+        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
         List<JSONObject> jsonObjects = JSONArray.parseArray(jsonObject1.get("records").toString(), JSONObject.class);
-        for (int i =0;i<jsonObjects.size();i++)
-        { jsonObjects.get(i).put("field", reportFieldService.getPatentFieldByPatentIdAndProjectId(patentVO.getReportId(), jsonObjects.get(i).getString("patentNo")));
+        for (int i = 0; i < jsonObjects.size(); i++) {
+            jsonObjects.get(i).put("field", reportFieldService.getPatentFieldByPatentIdAndProjectId(patentVO.getReportId(), jsonObjects.get(i).getString("patentNo")));
         }
-        jsonObject1.put("records",jsonObjects);
-        jsonObject.put("data",jsonObject1);
+        jsonObject1.put("records", jsonObjects);
+        jsonObject.put("data", jsonObject1);
 
 
         return jsonObject.toString();
     }
-}
+
+    public Map<String, Object> reTaskStateCount(Integer reportId, Integer taskId) {
+        //根据任务Id和类型获得任务的清单
+        LambdaQueryWrapper<AssoTaskPersonel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoTaskPersonel::getReportId, reportId);
+        //当taskID存在时
+        if (taskId != null) {
+            queryWrapper.eq(AssoTaskPersonel::getTaskId, taskId);
+        }
+        Map<String, Object> reMap = new HashMap<>();
+        reMap.put("all", 0);
+        reMap.put("noRead", 0);
+        reMap.put("read", 0);
+        List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
+        if (assoTaskPersonels.size() == 0) {
+            return reMap;
+        }
+        List<AssoTaskPersonel> assoNoRead = assoTaskPersonels.stream().filter(item -> item.getState().equals(0)).collect(Collectors.toList());
+        List<AssoTaskPersonel> assoRead = assoTaskPersonels.stream().filter(item -> item.getState().equals(1)).collect(Collectors.toList());
+        reMap.put("all", assoTaskPersonels.size());
+        reMap.put("noRead", assoNoRead.size());
+        reMap.put("read", assoRead.size());
+        return reMap;
+    }
+}