浏览代码

新增修改报告

lwhhszx 2 年之前
父节点
当前提交
e2ce172f07

+ 188 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/ReportDTO.java

@@ -0,0 +1,188 @@
+package cn.cslg.report.common.model.dto;
+
+import cn.cslg.report.common.model.BaseEntity;
+import cn.cslg.report.entity.ReportFiles;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+@TableName(value = "REPORT")
+@Schema(description = "报告", required = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder(toBuilder = true)
+public class ReportDTO  {
+    private  Integer id;
+    /**
+     * 标的专利/产品号
+     */
+    @Schema(description = "标的专利号", required = true)
+    private String signPatentNo;
+    /**
+     * 报告名称
+     */
+    @Schema(description = "报告名称", required = true)
+    private String name;
+    /**
+     * 产品/技术
+     */
+    @Schema(description = "产品/技术")
+    private String proTec;
+    /**
+     * 报告类别
+     */
+    @Schema(description = "报告类别(0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析)")
+    private Integer type;
+    /**
+     * 报告状态
+     */
+    @Schema(description = "报告状态")
+    private Integer status;
+
+    /**
+     * 报告生成时间
+     */
+    @Schema(description = "报告生成时间")
+    private Date createTime;
+
+    /**
+     * 报告生成文件ID
+     */
+    @Schema(description = "报告生成文件ID")
+    private Integer reportFileId;
+
+    /**
+     * 负责人ID
+     */
+    @Schema(description = "负责人ID")
+    private Integer personId;
+    /**
+     * 负责人ID
+     */
+    @Schema(description = "负责人姓名")
+    private String personName;
+
+    /**
+     * 委托人ID
+     */
+    @Schema(description = "委托人ID")
+    private Integer clientId;
+
+    /**
+     * 委托人姓名
+     */
+    @Schema(description = "委托人姓名")
+    private String clientName;
+
+    /**
+     * 承担部门ID
+     */
+    @Schema(description = "承担部门ID")
+    private Integer departmentId;
+
+    /**
+     * 承担部门名称
+     */
+    @Schema(description = "承担部门名称")
+    private String departmentName;
+
+    /**
+     * 关联报告ID
+     */
+    @Schema(description = "关联报告ID")
+    private Integer associateReportId;
+
+    /**
+     * 关联报告名称
+     */
+    @Schema(description = "关联报告名称")
+    private String associateReportName;
+
+    /**
+     * 应用场景
+     */
+    @Schema(description = "应用场景")
+    private String scenarioId;
+    /**
+     * 调查类型
+     */
+    @Schema(description = "调查类型")
+    private Integer itFlag;
+
+    /**
+     * 专题库ID
+     */
+    @Schema(description = "专题库ID")
+    private Integer projectId;
+
+    /**
+     * 卷号
+     */
+    @Schema(description = "卷号")
+    private String volumeNumber;
+    /**
+     * 拆分根据
+     */
+    @Schema(description = "拆分根据")
+    private Integer splitBy;
+    /**
+     * 拆分类型
+     */
+    @Schema(description = "拆分类型")
+    private Integer splitType;
+
+    /**
+     * 创建人ID
+     */
+    @Schema(description = "创建人ID")
+    private Integer createPersonId;
+    /**
+     * 创建人姓名
+     */
+    @Schema(description = "创建人姓名")
+    private String createPersonName;
+    /**
+     * 备注
+     */
+    @Schema(description = "REMARK")
+    private String remark;
+
+    /**
+     * 结论id
+     */
+    @Schema(description = "结论id")
+    private String conclusionId;
+
+
+    /**
+     * 核心结论
+     */
+    @Schema(description = "核心结论")
+    private String cronConclusion;
+
+    /**
+     * 文件
+     */
+    @TableField(exist = false)
+    private List<ReportFiles> reportFiles;
+    /**
+     * 场景列表
+     */
+    @TableField(exist = false)
+    private List<String> scenarioList;
+
+    @TableField(exist = false)
+    private List<String> scenarioNames;
+
+    @TableField(exist = false)
+    private List<Integer> conclusionIds;
+    @TableField(exist = false)
+    private List<Integer> copyIds;
+}

+ 2 - 1
RMS/src/main/java/cn/cslg/report/common/model/vo/ReportVO.java

@@ -116,7 +116,8 @@ public class ReportVO extends BaseVO {
      */
     @Schema(description="专题库ID")
     private String thematicId;
-
+    @Schema(description = "核心结论id")
+    private List<Integer> cronIds;
     /**
      * 卷号
      */

+ 2 - 1
RMS/src/main/java/cn/cslg/report/common/model/vo/TaskVO.java

@@ -2,6 +2,7 @@ package cn.cslg.report.common.model.vo;
 
 
 import cn.cslg.report.common.model.BaseVO;
+import cn.cslg.report.common.model.dto.ReportDTO;
 import cn.cslg.report.entity.Report;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -26,7 +27,7 @@ public class TaskVO extends BaseVO {
     @Schema(description = "处理人姓名")
     private String handlePersonName;
     @Schema(description = "报告信息")
-    private Report report;
+    private ReportDTO report;
     @Schema(description = "报告Id")
     private Integer reportId;
     @Schema(description = "参与人Id列表")

+ 5 - 11
RMS/src/main/java/cn/cslg/report/controller/ReportController.java

@@ -1,6 +1,7 @@
 package cn.cslg.report.controller;
 
 import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.dto.ReportDTO;
 import cn.cslg.report.common.model.vo.FileVO;
 import cn.cslg.report.common.model.vo.ReportVO;
 import cn.cslg.report.common.utils.Response;
@@ -41,18 +42,11 @@ public class ReportController {
     @Operation(summary = "新增报告")
     @checkAuth(FunId = "/pcs/report/add")
     @Transactional(rollbackFor = Exception.class)
-    public String addReport(Report report, List<MultipartFile> files) {
-        // TODO: 2022/11/4 关于错误提示与对应的错误码还需要制定 避免前台看到失败字样 用网络异常来代替说明
-        // 目前的错误说明有
-        //  添加成功 是正常添加成功
-        //  网络异常,添加失败 是数据库的操作或返回的数据有问题但没抛出异常
-        //  请求失败 是Service抛出了异常
-        //  服务器无响应 是未知情况 需要重点查看
-        //  网络异常 是传入参数出现了问题
-        // 以上的说明可以参考或者改变,按照实际情况使用,另外这些说明我没有设置CODE码,建议加上
+    public String addReport(String report, List<MultipartFile> files) {
         if (report != null) {
             //新建报告并返回报告Id
-            Integer reportId = reportService.addReport(report,files);
+            ReportDTO report1 =JSONObject.parseObject(report,ReportDTO.class);
+            Integer reportId = reportService.addReport(report1,files);
             return Response.success("添加成功");
         } else {
             return Response.error("网络异常");
@@ -63,7 +57,7 @@ public class ReportController {
     @Operation(summary = "修改报告")
     public String updateReport( String report, List<MultipartFile> files) throws IOException {
         if (report != null) {
-            Report report1 =JSONObject.parseObject(report,Report.class);
+            ReportDTO report1 =JSONObject.parseObject(report,ReportDTO.class);
             report1.setScenarioId(StringUtils.join(report1.getScenarioList(), ","));
             Boolean flag = reportService.updateReport(report1,files);
             if (flag) {

+ 151 - 0
RMS/src/main/java/cn/cslg/report/service/business/CopyService.java

@@ -0,0 +1,151 @@
+package cn.cslg.report.service.business;
+
+import cn.cslg.report.common.model.vo.PatentField;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.*;
+import cn.cslg.report.mapper.TemplateMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+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.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用来复制的service
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class CopyService {
+    private final CompareFilesService compareFilesService;
+    private final ReportFieldTextService reportFieldTextService;
+    private final ReportFieldOptionService reportFieldOptionService;
+    private final ReportFieldTreeService reportFieldTreeService;
+    private final ReportFieldPatentLinkService reportFieldPatentLinkService;
+
+    //复制对比文件
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean CopyComparePatents(Integer oldReportId, Integer newReportId) {
+        //根据报告id获得对比文件列表
+        LambdaQueryWrapper<CompareFiles> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CompareFiles::getReportId, oldReportId);
+        List<CompareFiles> compareFilesList = compareFilesService.list(wrapper);
+        if (compareFilesList.size() != 0) {
+            for (CompareFiles compareFile : compareFilesList) {
+                compareFile.setId(null);
+                compareFile.setReportId(newReportId);
+            }
+            return compareFilesService.saveBatch(compareFilesList);
+        }
+        return true;
+    }
+
+    //复制标引信息
+    @Transactional(rollbackFor = Exception.class)
+    public void CopyPatentLabels(List<ReportField> oldFields, List<ReportField> newFields) {
+        for (int i = 0; i < oldFields.size(); i++) {
+            ReportField field = oldFields.get(i);
+            ReportField newField = newFields.get(i);
+            //当字段类型为文本类型时
+            if (Arrays.asList(1, 2).contains(field.getType())) {
+                //获得自定义字段值
+                LambdaQueryWrapper<ReportFieldText> textWrapper = new LambdaQueryWrapper<>();
+                textWrapper.eq(ReportFieldText::getFieldId, field.getId());
+                List<ReportFieldText> fieldTexts = reportFieldTextService.list(textWrapper);
+                //遍历复制值
+                for (ReportFieldText texts : fieldTexts) {
+                    Integer oldId = texts.getId();
+                    texts.setId(null);
+                    texts.setFieldId(newField.getId());
+                    texts.insert();
+                    //复制值和专利关系
+                    LambdaQueryWrapper<ReportFieldPatentLink> linkWrapper = new LambdaQueryWrapper<>();
+                    linkWrapper.eq(ReportFieldPatentLink::getFieldId, field.getId())
+                            .eq(ReportFieldPatentLink::getOptionId, oldId)
+                            .eq(ReportFieldPatentLink::getReportId, field.getReportId());
+                    List<ReportFieldPatentLink> links = reportFieldPatentLinkService.list(linkWrapper);
+                    links.forEach(item -> {
+                        item.setFieldId(newField.getId());
+                        item.setOptionId(texts.getId());
+                        item.setReportId(newField.getReportId());
+                    });
+                }
+            }
+            //当字段类型为选项类型时
+            if (Arrays.asList(4, 5).contains(field.getType())) {
+                //获得自定义字段值
+                LambdaQueryWrapper<ReportFieldOption> optionWrapper = new LambdaQueryWrapper<>();
+                optionWrapper.eq(ReportFieldOption::getFieldId, field.getId());
+                List<ReportFieldOption> fieldOptions = reportFieldOptionService.list(optionWrapper);
+                //遍历复制值
+                for (ReportFieldOption options : fieldOptions) {
+                    Integer oldId = options.getId();
+                    options.setId(null);
+                    options.setFieldId(newField.getId());
+                    options.insert();
+                    //复制值和专利关系
+                    LambdaQueryWrapper<ReportFieldPatentLink> linkWrapper = new LambdaQueryWrapper<>();
+                    linkWrapper.eq(ReportFieldPatentLink::getFieldId, field.getId())
+                            .eq(ReportFieldPatentLink::getOptionId, oldId)
+                            .eq(ReportFieldPatentLink::getReportId, field.getReportId());
+                    List<ReportFieldPatentLink> links = reportFieldPatentLinkService.list(linkWrapper);
+                    links.forEach(item -> {
+                        item.setFieldId(newField.getId());
+                        item.setOptionId(options.getId());
+                        item.setReportId(newField.getReportId());
+                    });
+                }
+            }
+            //当字段类型为树类型时
+            if (Arrays.asList(6).contains(field.getType())) {
+                //获得自定义字段值
+                LambdaQueryWrapper<ReportFieldTree> treeWrapper = new LambdaQueryWrapper<>();
+                treeWrapper.eq(ReportFieldTree::getFieldId, field.getId());
+                List<ReportFieldTree> fieldTrees = reportFieldTreeService.list(treeWrapper);
+                //遍历复制值
+                for (ReportFieldTree tree : fieldTrees) {
+                    Integer oldId = tree.getId();
+                    tree.setId(null);
+                    tree.setFieldId(newField.getId());
+                    tree.insert();
+                    //复制值和专利关系
+                    LambdaQueryWrapper<ReportFieldPatentLink> linkWrapper = new LambdaQueryWrapper<>();
+                    linkWrapper.eq(ReportFieldPatentLink::getFieldId, field.getId())
+                            .eq(ReportFieldPatentLink::getOptionId, oldId)
+                            .eq(ReportFieldPatentLink::getReportId, field.getReportId());
+                    List<ReportFieldPatentLink> links = reportFieldPatentLinkService.list(linkWrapper);
+                    links.forEach(item -> {
+                        item.setFieldId(newField.getId());
+                        item.setOptionId(tree.getId());
+                        item.setReportId(newField.getReportId());
+                    });
+                    //更新
+                    fieldTrees.forEach(item -> {
+                        if (item.getParentId().equals(oldId)) {
+                            item.setParentId(tree.getId());
+                        }
+                        String[] strs = item.getPath().split("/");
+                        List<String> lists = new ArrayList<>(Arrays.asList(strs));
+                        Collections.replaceAll(lists, oldId + "", tree.getId() + "");
+                        String paths = String.join("/", lists);
+                        item.setPath(paths);
+                    });
+                }
+                reportFieldTreeService.updateBatchById(fieldTrees);
+            }
+        }
+    }
+
+
+}

+ 122 - 50
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -1,6 +1,7 @@
 package cn.cslg.report.service.business;
 
 import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.dto.ReportDTO;
 import cn.cslg.report.common.model.vo.ClientVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
 import cn.cslg.report.common.model.vo.ReportVO;
@@ -9,10 +10,8 @@ import cn.cslg.report.common.utils.*;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.report.common.utils.SecurityUtils.SecurityUtils;
 import cn.cslg.report.common.utils.auth.checkAuth;
-import cn.cslg.report.entity.Personnel;
-import cn.cslg.report.entity.Report;
+import cn.cslg.report.entity.*;
 
-import cn.cslg.report.entity.ReportFiles;
 import cn.cslg.report.entity.asso.AssoReportFile;
 import cn.cslg.report.mapper.ReportMapper;
 import cn.cslg.report.service.IAvoidDesignDirectionService;
@@ -38,10 +37,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -68,51 +64,106 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final InvalidRecordService invalidRecordService;
     private final ReportDocumentService reportDocumentService;
     private final ReportReferencesService reportReferencesService;
+    private final CopyService copyService;
+
+    private Report loadReport(ReportDTO reportDto) {
+        Report report = new Report();
+        //装载基本信息
+        //标的专利号
+        report.setSignPatentNo(reportDto.getSignPatentNo());
+        //名称
+        report.setName(reportDto.getName());
+        //产品/技术
+        report.setProTec(reportDto.getProTec());
+        if (reportDto.getCreatePersonId() == null) {
+            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+            //创建人
+            report.setCreatePersonId(personnelVO.getId());
+        } else {
+            report.setCreatePersonId(reportDto.getCreatePersonId());
+        }
+        //类型
+        report.setType(reportDto.getType());
+        //装载状态
+        if (reportDto.getType().equals(4) || reportDto.getType().equals(5)) {
+            report.setStatus(2);
+        } else {
+            report.setStatus(reportDto.getStatus());
+        }
+        // 装载客户
+        report.setClientId(reportDto.getClientId());
+        //装载应用场景
+        if (reportDto.getScenarioList() != null) {
+            report.setScenarioId(StringUtils.join(report.getScenarioList(), ","));
+        }
+        //装载核心论述
+        report.setCronConclusion(reportDto.getCronConclusion());
+        //装载核心结论
+        if (reportDto.getConclusionIds() != null) {
+            report.setScenarioId(StringUtils.join(reportDto.getConclusionIds(), ","));
+        }
+        //装载承担部门
+        report.setDepartmentId(reportDto.getDepartmentId());
+        //装载专题库
+        report.setProjectId(reportDto.getProjectId());
+        //调查类型
+        report.setItFlag(reportDto.getItFlag());
+        //卷号
+        report.setVolumeNumber(reportDto.getVolumeNumber());
+        //备注
+        report.setRemark(reportDto.getRemark());
+        return report;
+    }
+
 
     /**
      * @param report 报告类
      * @author 沈永艺
      */
     @Transactional(rollbackFor = Exception.class)
-    public Integer addReport(Report report, List<MultipartFile> files) {
-            report.getScenarioList();
-            report.setScenarioId(StringUtils.join(report.getScenarioList(), ","));
-            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());
-            }
-            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            report.setCreatePersonId(personnelVO.getId());
-            //如果报告类型是4(侵权分析报告)或 5(规避设计报告)则将状态设为2(处理中)
-            if (!report.getStatus().equals(0) &&!report.getStatus().equals(2)&& (report.getType().equals(4) || report.getType().equals(5))) {
-                report.setStatus(2);
-            }
-            else  if(report.getStatus().equals(1))
-            {     report.getConclusionIds();
-                report.setConclusionId(StringUtils.join(report.getConclusionIds(), ","));
-                report.setStatus(1);
-            }
-
-            boolean addFlag = this.save(report);
-
-            if (files != null && files.size() != 0) {
-                //将文档上传并返回文件入库的Id
-                List<Integer> fileIds = reportFileService.uploadFiles(files);
-                assoReportFileService.addAsso(report.getId(), fileIds);
+    public Integer addReport(ReportDTO reportDto, List<MultipartFile> files) {
+        //新增报告
+        Report report = this.loadReport(reportDto);
+        report.insert();
+        //添加事件
+        // 添加后续事项
+        if (files != null && files.size() != 0) {
+            //将文档上传并返回文件入库的Id
+            List<Integer> fileIds = reportFileService.uploadFiles(files);
+            assoReportFileService.addAsso(report.getId(), fileIds);
+        }
+        //当报告是已完成时
+        if (report.getStatus() != null && report.getStatus().equals(3)) {
+            //复制父报告自定义栏位
+            LambdaQueryWrapper<ReportField> fieldWrapper = new LambdaQueryWrapper<>();
+            fieldWrapper.eq(ReportField::getReportId, reportDto.getAssociateReportId());
+            List<ReportField> fields = reportFieldService.list(fieldWrapper);
+            List<ReportField> oldFields  =new ArrayList<>(fields);
+            if (fields.size() != 0) {
+                for (ReportField reportField : fields) {
+                    reportField.setId(null);
+                    reportField.setReportId(report.getId());
+                }
+                reportFieldService.saveBatch(fields);
             }
-            //如果报告生成成功,给报告添加默认自定义字段
-            if (addFlag) {
-                reportFieldService.addDefaultField(report.getId(), report.getType());
-                return report.getId();
-            } else {
-                return 0;
+           //复制
+            if (reportDto.getCopyIds() != null) {
+                //复制对比文件
+                if (reportDto.getCopyIds().contains(Arrays.asList())) {
+                    copyService.CopyComparePatents(reportDto.getAssociateReportId(), report.getId());
+                }
+                //复制标引信息
+                if (reportDto.getCopyIds().contains(Arrays.asList())) {
+                    copyService.CopyPatentLabels(oldFields,fields);
+                }
             }
+        } else {
+            reportFieldService.addDefaultField(report.getId(), report.getType());
+        }
+        return report.getId();
 
     }
 
-    //    @Transactional(rollbackFor = Exception.class)
     //查询报告
     public String queryReport(ReportVO reportVO) throws IOException {
         Integer id = loginUtils.getId();
@@ -128,6 +179,24 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         if (reportVO.getSignPatentNo() != null && reportVO.getSignPatentNo() != "") {
             queryWrapper.like(Report::getSignPatentNo, reportVO.getSignPatentNo());
         }
+        if (reportVO.getType() != null && reportVO.getType() != "") {
+            queryWrapper.eq(Report::getType, reportVO.getType());
+        }
+        if(reportVO.getCronIds()!=null&&reportVO.getCronIds().size()>0){
+            StringBuilder strs =new StringBuilder();
+            for (int i=0;i<reportVO.getCronIds().size();i++){
+                Integer item =reportVO.getCronIds().get(i);
+                if(i==0){
+                strs.append("(FIND_IN_SET("+item+",REPLACE(CONCLUSION_ID, '/', ','))");}
+                else {
+                    strs.append("or FIND_IN_SET("+item+",REPLACE(CONCLUSION_ID, '/', ','))");
+                }
+            }
+            strs.append(")");
+            queryWrapper.apply(strs.toString());
+
+        }
+
         queryWrapper.orderByDesc(Report::getCreateTime);
         //分页
         if (reportVO.getSize() != null && reportVO.getCurrent() != null) {
@@ -203,10 +272,12 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             if (mapCre.size() != 0)
                 item.setCreatePersonName(mapCre.get(0).getPersonnelName());
             //装载部门名
-            List<Map<String, Object>> mapDeaprt = mapDeparts.stream().filter(tem -> tem.get("departId").toString().equals(item.getDepartmentId().toString())).collect(Collectors.toList());
-            if (mapDeaprt.size() != 0) {
-                item.setDepartmentName(mapDeaprt.get(0).get("departName").toString());
-            }
+           if(item.getDepartmentId()!=null) {
+               List<Map<String, Object>> mapDeaprt = mapDeparts.stream().filter(tem -> tem.get("departId").toString().equals(item.getDepartmentId().toString())).collect(Collectors.toList());
+               if (mapDeaprt.size() != 0) {
+                   item.setDepartmentName(mapDeaprt.get(0).get("departName").toString());
+               }
+           }
             if (item.getClientId() == null) {
                 item.setClientId(0);
             }
@@ -242,16 +313,17 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
      * @function 修改报告
      */
     @Transactional(rollbackFor = Exception.class)
-    public Boolean updateReport(Report report, List<MultipartFile> files) throws IOException {
+    public Boolean updateReport(ReportDTO reportDto, List<MultipartFile> files) throws IOException {
+        Report report = this.loadReport(reportDto);
         // 根据报告Id查询对应的附件Id
         LambdaQueryWrapper<AssoReportFile> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(AssoReportFile::getReportId, report.getId());
+        wrapper.eq(AssoReportFile::getReportId, reportDto.getId());
         List<AssoReportFile> assoReportFiles = assoReportFileService.list(wrapper);
         List<Integer> fileIds = assoReportFiles.stream().map(AssoReportFile::getFileId).collect(Collectors.toList());
         // 获得报告更新后的附件Id
         List<Integer> updateFileId = new ArrayList<>();
-        if (report.getReportFiles() != null) {
-            updateFileId = report.getReportFiles().stream().map(ReportFiles::getId).collect(Collectors.toList());
+        if (reportDto.getReportFiles() != null) {
+            updateFileId = reportDto.getReportFiles().stream().map(ReportFiles::getId).collect(Collectors.toList());
             fileIds.removeAll(updateFileId);
         }
         //做差获得被删除的文件Id
@@ -267,7 +339,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         if (files != null && files.size() != 0) {
             //将文档上传并返回文件入库的Id
             List<Integer> fileIdList = reportFileService.uploadFiles(files);
-            assoReportFileService.addAsso(report.getId(), fileIdList);
+            assoReportFileService.addAsso(reportDto.getId(), fileIdList);
         }
         return report.updateById();
 

+ 0 - 1
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -305,7 +305,6 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         return Response.success();
     }
 
-
     //添加分配任务
     @Transactional(rollbackFor = Exception.class)
     public String addAssTask(AssignTaskVO assignTaskVO) throws ParseException, IOException {

+ 5 - 2
RMS/src/main/java/cn/cslg/report/service/business/asso/AssoReportPersonService.java

@@ -69,7 +69,9 @@ public class AssoReportPersonService extends ServiceImpl<AssoReportPersonMapper,
             wrapper.eq(AssoReportPerson::getReportId, shareReportDTO.getReportId());
             if (shareReportDTO.getPersonIds() != null && shareReportDTO.getPersonIds().size() != 0) {
                 wrapper.in(AssoReportPerson::getPersonId,shareReportDTO.getPersonIds());
+                this.remove(wrapper);
             }
+
         }
     }
 
@@ -92,7 +94,7 @@ public class AssoReportPersonService extends ServiceImpl<AssoReportPersonMapper,
             iPage.setCurrent(shareReportDTO.getCurrent());
                iPage.setSize(shareReportDTO.getSize());
                iPage.setTotal(0);
-            return JSONObject.toJSON(iPage);
+            return iPage;
         }
         PasUserDTO pasUserDTO =new PasUserDTO();
         pasUserDTO.setUserIds(userIds);
@@ -101,7 +103,8 @@ public class AssoReportPersonService extends ServiceImpl<AssoReportPersonMapper,
         pasUserDTO.setCurrent(shareReportDTO.getCurrent());
         pasUserDTO.setSize(shareReportDTO.getSize());
         String res = outInterfaceService.getPASAssignedUser(pasUserDTO);
-           return JSONObject.toJSON(res);
+        Object object =JSON.parseObject(res);
+        return object;
     }