Przeglądaj źródła

评估 报告作废

sangwenwei 1 rok temu
rodzic
commit
918f5aa33d

+ 24 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/controller/ProjectListController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.aop.demo.annotation.DemoMode;
 import com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListInfo;
+import com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportNo;
 import com.jeeplus.assess.program.configuration.projectList.service.ProjectListService;
 import com.jeeplus.assess.program.configuration.projectList.service.dto.*;
 import com.jeeplus.assess.projectRecords.Utils.EasyPoiUtil;
@@ -693,8 +694,30 @@ public class ProjectListController {
      */
     @ApiOperation(value = "根据id修改项目作废状态值status")
     @PostMapping(value = "/updateStatusByCancellId")
-    public ResponseEntity<String> updateStatusByCancellId(@RequestBody ProjectListDto dto) {
+    public ResponseEntity<String> updateStatusByCancellId(@RequestBody ProjectListDto dto) throws Exception {
         String s = projectListService.updateStatusByCancellId(dto);
         return ResponseEntity.ok(s);
     }
+
+    /**
+     * 查询未关联项目的报告号
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "查询未关联项目的报告号")
+    @GetMapping(value = "/getProjectList")
+    public String getProjectList()  {
+        List<ProgramReportNo> listInfos= projectListService.getProjectList();
+        return JSON.toJSONString(listInfos);
+    }
+
+    /**
+     * 将报告号添加到报告号作废表中
+     */
+    @ApiOperation(value = "将报告号添加到报告号作废表中")
+    @GetMapping(value = "/insertReportNo")
+    public void insertReportNo(String value){
+        projectListService.insertReportNo(value);
+    }
+
 }

+ 21 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/domain/ProgramReportCancellation.java

@@ -0,0 +1,21 @@
+package com.jeeplus.assess.program.configuration.projectList.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName("program_report_cancellation")
+public class ProgramReportCancellation extends BaseEntity {
+
+    /**
+     * 报告号
+     */
+    private String reportNo;
+
+    /**
+     * 添加标识(1: 删除或作废时添加进来的  2:定时任务中添加进来的)
+     */
+    private String inFlag;
+
+}

+ 19 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/ProgramReportCancellationMapper.java

@@ -0,0 +1,19 @@
+package com.jeeplus.assess.program.configuration.projectList.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportCancellation;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ProgramReportCancellationMapper extends BaseMapper<ProgramReportCancellation> {
+    ProgramReportCancellation getByReportNo(@Param("reportNo") String reportNo);
+
+    void deleteByCanId(@Param("id") String id);
+
+    void updateInfoById(ProgramReportCancellation cancellation);
+
+    ProgramReportCancellation getInfos(@Param("type") String type);
+}

+ 5 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/ProgramReportNoMapper.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportNo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @Entity com.jeeplus.test.program.configuration.projectList.domain.ProgramReportNo
@@ -19,6 +22,8 @@ public interface ProgramReportNoMapper extends BaseMapper<ProgramReportNo> {
      */
     @InterceptorIgnore(tenantLine = "true")
     ProgramReportNo selectByProgramId(String id);
+    @InterceptorIgnore(tenantLine = "true")
+    List<ProgramReportNo> getByProgramId(@Param("id") String id);
 }
 
 

+ 45 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/xml/ProgramReportCancellationMapper.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.assess.program.configuration.projectList.mapper.ProgramReportCancellationMapper">
+    <select id="getByReportNo" resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportCancellation">
+        select
+            id,
+            create_by_id,
+            create_time
+            report_no,
+            in_flag,
+            del_flag
+        from program_report_cancellation
+        where report_no = #{reportNo}
+    </select>
+
+    <delete id="deleteByCanId">
+        delete from program_report_cancellation where id = #{id}
+    </delete>
+
+    <update id="updateInfoById">
+        update program_report_cancellation set del_flag = #{delFlag} where id = #{id}
+    </update>
+
+    <select id="getInfos" resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportCancellation">
+        SELECT
+            id,
+            create_by_id,
+            create_time,
+            report_no,
+            in_flag,
+            del_flag
+        FROM program_report_cancellation
+        WHERE (
+        create_time &lt; DATE_SUB(NOW(), INTERVAL (SELECT dv.label FROM sys_dict_type dt LEFT JOIN sys_dict_value dv ON dt.id = dv.dict_type_id WHERE dt.type = 'program_report_days') DAY)
+        OR in_flag = '2'
+        )
+        AND YEAR(create_time) = YEAR(CURDATE())
+        AND report_no LIKE concat('%',#{type},'%')
+        and del_flag = '0'
+        ORDER BY create_time ASC
+        LIMIT 1
+    </select>
+</mapper>

+ 5 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/xml/ProgramReportNoMapper.xml

@@ -31,4 +31,9 @@
             resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportNo">
         select * from program_report_no where program_id = #{id} and del_flag = 0
     </select>
+
+    <select id="getByProgramId"
+            resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportNo">
+        select id,create_by_id,create_time,del_flag,program_id,report_no from program_report_no where program_id = #{id} and del_flag = 0
+    </select>
 </mapper>

+ 239 - 7
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/service/ProjectListService.java

@@ -101,6 +101,9 @@ public class ProjectListService {
 
     @Autowired
     private ProgramCancellationMapper programCancellationMapper;
+
+    @Autowired
+    private ProgramReportCancellationMapper reportCancellationMapper;
 //    @Autowired
 //    private UserService userService;
 
@@ -157,15 +160,35 @@ public class ProjectListService {
         String id = UUID.randomUUID().toString().replace("-", "");
         if (("true").equals(dto.getGenerateReportNumber())) {
             if(StringUtils.isNotBlank(info.getReportType())){
+                //用于查询报告号时不同的报告类型
+                String type = "";
                 if (info.getReportType().equals("1")){
-                    reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
+                    //先从报告号作废表中查询当年是否还有未被使用的报告号
+                    type = "报字";
+                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                    if (ObjectUtil.isNotEmpty(infos)){
+                        reportNo = infos.getReportNo();
+                    }else {
+                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
+                    }
                 } else if (info.getReportType().equals("2")) {
-                    reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+                    type = "咨字";
+                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                    if (ObjectUtil.isNotEmpty(infos)){
+                        reportNo = infos.getReportNo();
+                    }else {
+                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+                    }
                 }
                 ProgramReportNo programReportNo = new ProgramReportNo();
                 programReportNo.setProgramId(id);
                 programReportNo.setReportNo(reportNo);
                 programReportNoMapper.insert(programReportNo);
+                //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+                ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(reportNo);
+                if (ObjectUtil.isNotEmpty(byReportNo)){
+                    reportCancellationMapper.deleteById(byReportNo.getId());
+                }
             }
         }
         //合同编号生成
@@ -438,15 +461,70 @@ public class ProjectListService {
             ProgramReportNo programReportNo = programReportNoMapper.selectByProgramId(info.getId());
             if (null == programReportNo) {
                 if(StringUtils.isNotBlank(info.getReportType())){
-                    if (info.getReportType().equals("1")){
-                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
-                    } else if (info.getReportType().equals("2")) {
-                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+                    //用于查询报告号时不同的报告类型
+                    String type = "";
+                    if (info.getReportType().equals("1")) {
+                        //先从报告号作废表中查询当年是否还有未被使用的报告号
+                        type = "报字";
+                        ProgramReportCancellation infos = reportCancellationMapper.getInfos(type);
+                        if (ObjectUtil.isNotEmpty(infos)) {
+                            reportNo = infos.getReportNo();
+                        } else {
+                            reportNo = SpringUtil.getBean(IWorkAttachmentApi.class).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE, currentToken);
+                        }
+                    }else if (info.getReportType().equals("2")) {
+                        type = "咨字";
+                        ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                        if (ObjectUtil.isNotEmpty(infos)){
+                            reportNo = infos.getReportNo();
+                        }else {
+                            reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+                        }
                     }
                     programReportNo = new ProgramReportNo();
                     programReportNo.setProgramId(info.getId());
                     programReportNo.setReportNo(reportNo);
                     programReportNoMapper.insert(programReportNo);
+                    //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+                    ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(reportNo);
+                    if (ObjectUtil.isNotEmpty(byReportNo)){
+                        reportCancellationMapper.deleteById(byReportNo.getId());
+                    }
+                }
+            }else {
+                //判断该报告中的报告号是否被使用
+                ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(programReportNo.getReportNo());
+                if (1 == byReportNo.getDelFlag()){
+                    //如果该报告号已经被使用,则重新生成新的报告号
+                    if (("true").equals(info.getGenerateReportNumber())) {
+                        if(StringUtils.isNotBlank(info.getReportType())){
+                            //用于查询报告号时不同的报告类型
+                            String type = "";
+                            if (info.getReportType().equals("1")){
+                                //先从报告号作废表中查询当年是否还有未被使用的报告号
+                                type = "报字";
+                                ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                                if (ObjectUtil.isNotEmpty(infos)){
+                                    reportNo = infos.getReportNo();
+                                }else {
+                                    reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
+                                }
+                            } else if (info.getReportType().equals("2")) {
+                                type = "咨字";
+                                ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                                if (ObjectUtil.isNotEmpty(infos)){
+                                    reportNo = infos.getReportNo();
+                                }else {
+                                    reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+                                }
+                            }
+                            ProgramReportNo programReportNo1 = programReportNoMapper.selectByProgramId(info.getId());
+                            ProgramReportNo programReport = new ProgramReportNo();
+                            programReport.setId(programReportNo1.getId());
+                            programReport.setReportNo(reportNo);
+                            programReportNoMapper.updateById(programReport);
+                        }
+                    }
                 }
             }
 
@@ -698,6 +776,25 @@ public class ProjectListService {
 //        LambdaQueryWrapper<WorkAttachmentInfo> wrapper = new LambdaQueryWrapper<>();
 //        wrapper.eq(WorkAttachmentInfo::getAttachmentId, id);
         SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(id);
+        //根据id查找报告号,并将报告号存到报告号作废表中
+        ProgramProjectListInfo listInfo = projectListMapper.getById(id);
+        if (ObjectUtil.isNotEmpty(listInfo)){
+            //先查询报告号作废表中是否存在该数据
+            ProgramReportCancellation reportNo = reportCancellationMapper.getByReportNo(listInfo.getReportNo());
+            if (ObjectUtil.isNotEmpty(reportNo)){
+                //存在则进行删除
+                reportCancellationMapper.deleteByCanId(reportNo.getId());
+            }
+                if (StringUtils.isNotBlank(listInfo.getReportNo())){
+                    ProgramReportCancellation programReportCancellation = new ProgramReportCancellation();
+                    programReportCancellation.setInFlag("1");
+                    programReportCancellation.setReportNo(listInfo.getReportNo());
+                    programReportCancellation.setId(UUID.randomUUID().toString().replace("-",""));
+                    reportCancellationMapper.insert(programReportCancellation);
+                }
+
+
+        }
         return "删除项目成功";
     }
 
@@ -1953,6 +2050,28 @@ public class ProjectListService {
             programCancellation.setReason(projectListDto.getReason());
             programCancellationMapper.updateById(programCancellation);
             canId=projectListDto.getCancellId();
+            //项目作废后将该项目的报告号存到报告号作废表中
+            if ("5".equals(projectListDto.getStatus())){
+                ProgramProjectListInfo listInfo = projectListMapper.getById(projectListDto.getId());
+                if (ObjectUtil.isNotEmpty(listInfo)){
+                    //先查询报告号作废表中是否存在该数据
+                    ProgramReportCancellation reportNo = reportCancellationMapper.getByReportNo(listInfo.getReportNo());
+                    if (ObjectUtil.isNotEmpty(reportNo)){
+                        //存在则进行删除
+                        reportCancellationMapper.deleteByCanId(reportNo.getId());
+                    }
+                        if (StringUtils.isNotBlank(listInfo.getReportNo())){
+                            ProgramReportCancellation programReportCancellation = new ProgramReportCancellation();
+                            programReportCancellation.setInFlag("1");
+                            programReportCancellation.setReportNo(listInfo.getReportNo());
+                            programReportCancellation.setId(UUID.randomUUID().toString().replace("-",""));
+                            reportCancellationMapper.insert(programReportCancellation);
+                        }
+
+
+                }
+            }
+
         }else {
             String id = UUID.randomUUID().toString().replace("-", "");
             ProgramCancellation programCancellation = new ProgramCancellation();
@@ -1971,8 +2090,121 @@ public class ProjectListService {
      * @param dto
      * @return
      */
-    public String updateStatusByCancellId(ProjectListDto dto) {
+    public String updateStatusByCancellId(ProjectListDto dto) throws Exception {
+        String currentToken = TokenProvider.getCurrentToken();
         programCancellationMapper.updateStatusById(dto.getCancellId(),dto.getCancellationStatus());
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        //根据id查询项目
+        ProgramCancellation programCancellation = programCancellationMapper.selectById(dto.getCancellId());
+        if (ObjectUtil.isNotEmpty(programCancellation)){
+            ProgramProjectListInfo listInfo = projectListMapper.getById(programCancellation.getProjectId());
+            if (ObjectUtil.isNotEmpty(listInfo) && "true".equals(listInfo.getGenerateReportNumber())){
+                //根据报告号去报告号作废表中是否有该报告号
+                ProgramReportCancellation programReportCancellation=reportCancellationMapper.getByReportNo(listInfo.getReportNo());
+                if (ObjectUtil.isNotEmpty(programReportCancellation)){
+                    if (0==programReportCancellation.getDelFlag()){
+                        ProgramReportCancellation cancellation = new ProgramReportCancellation();
+                        cancellation.setId(programReportCancellation.getId());
+                        cancellation.setDelFlag(1);
+                        reportCancellationMapper.updateInfoById(cancellation);
+                    }else {
+                        //如果该报告号已经被使用,则重新生成新的报告号
+                        String reportNo = "";
+                        if (("true").equals(listInfo.getGenerateReportNumber())) {
+                            if(StringUtils.isNotBlank(listInfo.getReportType())){
+                                //用于查询报告号时不同的报告类型
+                                String type = "";
+                                if (listInfo.getReportType().equals("1")){
+                                    //先从报告号作废表中查询当年是否还有未被使用的报告号
+                                    type = "报字";
+                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                                    if (ObjectUtil.isNotEmpty(infos)){
+                                        reportNo = infos.getReportNo();
+                                    }else {
+                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
+                                    }
+                                } else if (listInfo.getReportType().equals("2")) {
+                                    type = "咨字";
+                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type);
+                                    if (ObjectUtil.isNotEmpty(infos)){
+                                        reportNo = infos.getReportNo();
+                                    }else {
+                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+                                    }
+                                }
+                                ProgramReportNo programReportNo = programReportNoMapper.selectByProgramId(listInfo.getId());
+                                ProgramReportNo programReport = new ProgramReportNo();
+                                programReport.setId(programReportNo.getId());
+                                programReport.setReportNo(reportNo);
+                                programReportNoMapper.updateById(programReport);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
         return "操作成功";
     }
+
+    /**
+     * 查询未关联项目的报告号
+     * @return
+     */
+    public List<ProgramReportNo> getProjectList() {
+        ArrayList<ProgramReportNo> programProjectListInfos = new ArrayList<>();
+        //查询报告
+        QueryWrapper<ProgramReportNo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("del_flag", 0);
+        List<ProgramReportNo> reportNos = programReportNoMapper.selectList(queryWrapper);
+        //查询需要生成报告的项目
+        QueryWrapper<ProgramProjectListInfo> projectListInfoQueryWrapper = new QueryWrapper<>();
+        List<ProgramProjectListInfo> listInfos = projectListMapper.selectList(projectListInfoQueryWrapper);
+
+        HashSet<String> strings = new HashSet<>();
+        //将项目id存到list中
+        for (ProgramProjectListInfo listInfo : listInfos) {
+            strings.add(listInfo.getId());
+        }
+        //将未关联项目的报告存到集合中
+        for (ProgramReportNo reportNo : reportNos) {
+            if (StringUtils.isNotBlank(reportNo.getProgramId())){
+                if (!strings.contains(reportNo.getProgramId())){
+                    programProjectListInfos.add(reportNo);
+                }
+            }else {
+                programProjectListInfos.add(reportNo);
+            }
+        }
+
+        for (ProgramProjectListInfo listInfo : listInfos) {
+            //查找项目下的报告
+           List<ProgramReportNo> list= programReportNoMapper.getByProgramId(listInfo.getId());
+           if (CollectionUtils.isNotEmpty(list)){
+               if (list.size()>1){
+                   programProjectListInfos.addAll(list);
+               }
+           }
+        }
+        //进行去重
+        List<ProgramReportNo> distinctInfos = programProjectListInfos.stream()
+                                                .distinct()
+                                                .collect(Collectors.toList());
+
+        return distinctInfos;
+
+    }
+
+    /*8
+    将报告号添加到报告号作废表中
+     */
+    public void insertReportNo(String value) {
+        ProgramReportCancellation reportCancellation=JSON.parseObject(value,ProgramReportCancellation.class);
+        //先去查询看是否有这条数据
+        ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(reportCancellation.getReportNo());
+        //没有的话进行添加,有的话不做任何操作
+        if (ObjectUtil.isEmpty(byReportNo)){
+            reportCancellationMapper.insert(reportCancellation);
+        }
+    }
 }

+ 14 - 0
jeeplus-modules/jeeplus-xxl-job-executor-sample/src/main/java/com/jeeplus/domain/ProgramProjectListInfo.java

@@ -336,6 +336,20 @@ public class ProgramProjectListInfo {
      */
     private String showInvoiceFlag;
 
+    /**
+     * 报告作废表中添加标识
+     * @return
+     */
+    private String inFlag;
+
+    public String getInFlag() {
+        return inFlag;
+    }
+
+    public void setInFlag(String inFlag) {
+        this.inFlag = inFlag;
+    }
+
     public String getContractId() {
         return contractId;
     }

+ 19 - 0
jeeplus-modules/jeeplus-xxl-job-executor-sample/src/main/java/com/jeeplus/domain/ProgramReportCancellationDTO.java

@@ -0,0 +1,19 @@
+package com.jeeplus.domain;
+
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class ProgramReportCancellationDTO extends BaseEntity {
+
+    /**
+     * 报告号
+     */
+    private String reportNo;
+
+    /**
+     * 添加标识(1: 删除或作废时添加进来的  2:定时任务中添加进来的)
+     */
+    private String inFlag;
+
+}

+ 31 - 0
jeeplus-modules/jeeplus-xxl-job-executor-sample/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java

@@ -1,5 +1,6 @@
 package com.xxl.job.executor.service.jobhandler;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.TypeReference;
@@ -23,6 +24,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
+import springfox.documentation.spring.web.json.Json;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
@@ -96,6 +98,35 @@ public class SampleXxlJob {
     }
 
     /**
+     * 评估-保存未关联项目的报告中的报告号
+     * @throws Exception
+     */
+    @XxlJob("reportCancellation")
+    public void reportCancellation(){
+        //查询未关联项目的报告
+        String projectList = SpringUtil.getBean(IAssessApi.class).getProjectList();
+        List<ProgramProjectListInfo> infos = JSON.parseObject(projectList, new TypeReference<List<ProgramProjectListInfo>>() {});
+        if (CollectionUtil.isNotEmpty(infos)){
+            for (ProgramProjectListInfo info : infos) {
+                ProgramReportCancellationDTO dto = new ProgramReportCancellationDTO();
+                String id = UUID.randomUUID().toString().replace("-", "");
+                dto.setId(id);
+                dto.setCreateById("1");
+                dto.setCreateTime(new Date());
+                dto.setUpdateById("1");
+                dto.setUpdateTime(new Date());
+                dto.setInFlag("2");
+                dto.setReportNo(info.getReportNo());
+
+                String value = JSON.toJSONString(dto);
+                //保存数据
+                SpringUtil.getBean(IAssessApi.class).insertReportNo(value);
+            }
+        }
+    }
+
+
+    /**
      * 6、给所有的财务员工及评估员工发送完善个人信息待办
      */
     @XxlJob("processForUser")