Quellcode durchsuchen

add shaoyin task

zero vor 7 Monaten
Ursprung
Commit
c67fba8d6f

+ 4 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddInvalidDecisionFileDTO.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.domain.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 org.springframework.format.annotation.DateTimeFormat;
 
@@ -41,6 +42,9 @@ public class AddInvalidDecisionFileDTO {
 
     private String conclusion;
 
+    @Schema(description = "无效结果:部分无效21、全部无效20、维持有效22、结案24、撤案25")
+    private List<Integer> cronIds;
+
     private List<String> fileGuids;
 
     private String description;

+ 2 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/UpdateInvalidDecisionFileDTO.java

@@ -39,6 +39,8 @@ public class UpdateInvalidDecisionFileDTO {
 
     private String conclusion;
 
+    private List<Integer> cronIds;
+
     private List<String> fileGuids;
 
     private String description;

+ 6 - 0
src/main/java/cn/cslg/pas/common/vo/invalidVO/InvalidDecisionFileVO.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.common.vo.invalidVO;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -37,4 +38,9 @@ public class InvalidDecisionFileVO {
     private String decisionKey;
 
     private String conclusion;
+
+    @Schema(description = "无效结果")
+    private List<String> cronNames;
+    @Schema(description = "无效结果")
+    private List<Integer> cronIds;
 }

+ 20 - 0
src/main/java/cn/cslg/pas/domain/business/AssoInvalidDecisionCron.java

@@ -0,0 +1,20 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 无效决定书与无效结果关联表
+ * @Author xiexiang
+ * @Date 2023/11/6
+ */
+@Data
+@TableName("asso_invalid_decision_cron")
+public class AssoInvalidDecisionCron extends BaseEntity<AssoInvalidDecisionCron> {
+    @TableField(value = "invalid_decision_id")
+    private Integer invalidDecisionId;
+    @TableField(value = "cron_id")
+    private Integer cronId;
+}

+ 9 - 0
src/main/java/cn/cslg/pas/mapper/AssoInvalidDecisionCronMapper.java

@@ -0,0 +1,9 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AssoInvalidDecisionCron;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AssoInvalidDecisionCronMapper extends BaseMapper<AssoInvalidDecisionCron> {
+}

+ 13 - 0
src/main/java/cn/cslg/pas/service/business/AssoInvalidDecisionCronService.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.domain.business.AssoInvalidDecisionCron;
+import cn.cslg.pas.mapper.AssoInvalidDecisionCronMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class AssoInvalidDecisionCronService extends ServiceImpl<AssoInvalidDecisionCronMapper, AssoInvalidDecisionCron> {
+
+}

+ 33 - 4
src/main/java/cn/cslg/pas/service/business/InvalidDecisionFileService.java

@@ -7,10 +7,7 @@ import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.vo.invalidVO.InvalidDecisionFileVO;
 import cn.cslg.pas.common.vo.invalidVO.OralTrailVO;
-import cn.cslg.pas.domain.business.AssoReportAffairFile;
-import cn.cslg.pas.domain.business.InvalidDecisionFile;
-import cn.cslg.pas.domain.business.OralTrail;
-import cn.cslg.pas.domain.business.ReportAffair;
+import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.InvalidDecisionFileMapper;
 import cn.cslg.pas.service.MailSendService;
@@ -22,6 +19,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -44,6 +42,9 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
     private SendReportMailService sendReportMailService;
 
     @Autowired
+    private AssoInvalidDecisionCronService assoInvalidDecisionCronService;
+
+    @Autowired
     private MailSendService mailSendService;
 
     public Integer add(AddInvalidDecisionFileDTO addInvalidDecisionFileDTO){
@@ -89,6 +90,19 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
             });
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
+        //4. 添加无效决定书与无效结果关联
+        List<Integer> cronIds = addInvalidDecisionFileDTO.getCronIds();
+        List<AssoInvalidDecisionCron> assoInvalidDecisionCrons = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(cronIds)) {
+            cronIds.forEach(item -> {
+                AssoInvalidDecisionCron assoInvalidDecisionCron = new AssoInvalidDecisionCron();
+                assoInvalidDecisionCron.setInvalidDecisionId(invalidDecisionFile.getId());
+                assoInvalidDecisionCron.setCronId(item);
+                assoInvalidDecisionCrons.add(assoInvalidDecisionCron);
+            });
+            assoInvalidDecisionCronService.saveBatch(assoInvalidDecisionCrons);
+        }
+
         if (addInvalidDecisionFileDTO.getIfSendEmail()) {
             sendReportMailService.finalSendEmail(projectId, fileGuids, addInvalidDecisionFileDTO.getExtraEmailDTOS());
         }
@@ -144,6 +158,21 @@ public class InvalidDecisionFileService extends ServiceImpl<InvalidDecisionFileM
             });
             assoReportAffairFileService.saveBatch(assoReportAffairFiles);
         }
+        //4.更新无效书与无效结果关联
+        List<Integer> cronIds = updateInvalidDecisionFileDTO.getCronIds();
+        LambdaQueryWrapper<AssoInvalidDecisionCron> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AssoInvalidDecisionCron::getInvalidDecisionId, invalidDecisionFile.getId());
+        assoInvalidDecisionCronService.remove(wrapper);
+        List<AssoInvalidDecisionCron> decisionCrons = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(cronIds)) {
+            cronIds.forEach(item -> {
+                AssoInvalidDecisionCron decisionCron = new AssoInvalidDecisionCron();
+                decisionCron.setInvalidDecisionId(invalidDecisionFile.getId());
+                decisionCron.setCronId(item);
+                decisionCrons.add(decisionCron);
+            });
+            assoInvalidDecisionCronService.saveBatch(decisionCrons);
+        }
         if (updateInvalidDecisionFileDTO.getIfSendEmail()) {
             sendReportMailService.finalSendEmail(projectId, fileGuids, updateInvalidDecisionFileDTO.getExtraEmailDTOS());
         }

+ 59 - 0
src/main/java/cn/cslg/pas/service/business/ReportAffairService.java

@@ -9,6 +9,7 @@ import cn.cslg.pas.common.model.report.ExtraEmailDTO;
 import cn.cslg.pas.common.model.report.MailMessageDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.business.CronVO;
 import cn.cslg.pas.common.vo.invalidVO.*;
 import cn.cslg.pas.domain.BaseEntity;
 import cn.cslg.pas.domain.business.*;
@@ -83,6 +84,12 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
     @Autowired
     private ReportAffairCasePhaseMapper reportAffairCasePhaseMapper;
 
+    @Autowired
+    private AssoInvalidDecisionCronService assoInvalidDecisionCronService;
+
+    @Autowired
+    private SystemDictService systemDictService;
+
     /**
      * 创建报告事务
      *
@@ -128,6 +135,13 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
                     queryWrapper1.eq(OralTrail::getReportAffairId, id);
                     oralTrailService.remove(queryWrapper1);
                 } else if (flowType.equals(7)) {//无效决定书
+                    //无效决定书和无效结果关联
+                    InvalidDecisionFile decisionFile = invalidDecisionFileService.getOne(new LambdaQueryWrapper<InvalidDecisionFile>()
+                            .eq(InvalidDecisionFile::getReportAffairId, id));
+                    LambdaQueryWrapper<AssoInvalidDecisionCron> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(AssoInvalidDecisionCron::getInvalidDecisionId, decisionFile.getId());
+                    assoInvalidDecisionCronService.remove(wrapper);
+                    //无效决定书
                     LambdaQueryWrapper<InvalidDecisionFile> queryWrapper1 = new LambdaQueryWrapper<>();
                     queryWrapper1.eq(InvalidDecisionFile::getReportAffairId, id);
                     invalidDecisionFileService.remove(queryWrapper1);
@@ -217,6 +231,11 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
             this.loadSystemFile(reportAffairVOS);
             //装载创建人名
             this.loadCreateName(reportAffairVOS);
+            List<ReportAffairVO> affairVOS = reportAffairVOS.stream().filter(i -> i.getFlowType().equals(7)).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(affairVOS)) {
+                //装载无效决定书与无效结果关联
+                this.loadAssoInvalidDecisionCron(affairVOS);
+            }
         }
         return reportAffairVOS;
     }
@@ -314,6 +333,46 @@ public class ReportAffairService extends ServiceImpl<ReportAffairMapper, ReportA
     }
 
     /**
+     * 装载无效决定书与无效结果关联
+     * @param reportAffairVOS
+     */
+    public void loadAssoInvalidDecisionCron(List<ReportAffairVO> reportAffairVOS) {
+        if (!CollectionUtils.isEmpty(reportAffairVOS)) {
+            List<InvalidDecisionFileVO> decisionFileVOS = reportAffairVOS.stream().map(ReportAffairVO::getInvalidDecisionFileVO).collect(Collectors.toList());
+            List<Integer> invalidDecisionIds = decisionFileVOS.stream().map(InvalidDecisionFileVO::getInvalidDecisionFileId).collect(Collectors.toList());
+            //查询核心结论
+            LambdaQueryWrapper<AssoInvalidDecisionCron> reportCronLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            reportCronLambdaQueryWrapper.in(AssoInvalidDecisionCron::getInvalidDecisionId, invalidDecisionIds);
+            List<AssoInvalidDecisionCron> crons = assoInvalidDecisionCronService.list(reportCronLambdaQueryWrapper);
+            List<SystemDict> systemDictList = new ArrayList<>();
+            if (!CollectionUtils.isEmpty(crons)) {
+                LambdaQueryWrapper<SystemDict> systemDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                systemDictLambdaQueryWrapper.eq(SystemDict::getGroupType, "ASSESS");
+                systemDictList = systemDictService.list(systemDictLambdaQueryWrapper);
+            }
+
+            for (InvalidDecisionFileVO decisionFileVO : decisionFileVOS) {
+                List<Integer> reCronIds = new ArrayList<>();
+                List<String> reCronNames = new ArrayList<>();
+                if (!CollectionUtils.isEmpty(crons)) {
+                    List<AssoInvalidDecisionCron> decisionCrons = crons.stream().filter(item -> item.getInvalidDecisionId().equals(decisionFileVO.getInvalidDecisionFileId())).collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(decisionCrons)) {
+                        //过滤出事件
+                        List<Integer> cronIds = decisionCrons.stream().map(AssoInvalidDecisionCron::getCronId).collect(Collectors.toList());
+                        List<SystemDict> systemDicts = systemDictList.stream().filter(item -> cronIds.contains(Integer.parseInt(item.getValue()))).collect(Collectors.toList());
+                        systemDicts.forEach(item -> {
+                            reCronIds.add(Integer.parseInt(item.getValue()));
+                            reCronNames.add(item.getLabel());
+                        });
+                    }
+                }
+                decisionFileVO.setCronIds(reCronIds);
+                decisionFileVO.setCronNames(reCronNames);
+            }
+        }
+    }
+
+    /**
      * 装载行政诉讼书
      *
      * @param reportAffairVO