lizhenhao 2 år sedan
förälder
incheckning
2b1c5beda8
15 ändrade filer med 697 tillägg och 14 borttagningar
  1. 35 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/controller/ProjectListController.java
  2. 89 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramAudit.java
  3. 33 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramAuditAssessPeople.java
  4. 55 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListInfo.java
  5. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProgramAuditAssessPeopleMapper.java
  6. 18 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProgramAuditMapper.java
  7. 30 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProgramAuditAssessPeopleMapper.xml
  8. 104 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProgramAuditMapper.xml
  9. 13 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectListMapper.xml
  10. 99 13
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java
  11. 30 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProgramAuditAssessPeopleDto.java
  12. 106 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProgramAuditDto.java
  13. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/mapstruct/ProgramAuditAssessPeopleWrapper.java
  14. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/mapstruct/ProgramAuditWrapper.java
  15. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/service/WorkContractService.java

+ 35 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/controller/ProjectListController.java

@@ -12,6 +12,7 @@ import com.jeeplus.test.program.configuration.projectList.mapper.ProgramReportNo
 import com.jeeplus.test.program.configuration.projectList.service.ProjectListService;
 import com.jeeplus.test.program.configuration.projectList.service.dto.ContractDto;
 import com.jeeplus.test.program.configuration.projectList.service.dto.ExportFileDto;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditDto;
 import com.jeeplus.test.program.configuration.projectList.service.dto.ProjectListDto;
 import com.jeeplus.test.projectRecords.domain.Project;
 import com.jeeplus.test.projectRecords.service.dto.FileUploadListDTO;
@@ -47,6 +48,16 @@ public class ProjectListController {
     }
 
     /**
+     * 新增/修改三级校审
+     */
+    @ApiOperation(value = "新增/修改三级校审")
+    @PostMapping(value = "/saveFormThree")
+    public ResponseEntity saveFormThree(@RequestBody ProgramAuditDto programAuditDto) throws Exception{
+        String id = projectListService.saveFormThree(programAuditDto);
+        return ResponseUtil.newInstance().add("businessTable", "program_audit").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
      * 流程保存
      */
     @ApiOperation(value = "流程保存")
@@ -69,6 +80,18 @@ public class ProjectListController {
     }
 
     /**
+     * 根据id查询三级校审
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id查询三级校审")
+    @GetMapping(value = "/findByIdAudit")
+    public ResponseEntity<ProgramAuditDto> findByIdAudit(@RequestParam String id){
+        ProgramAuditDto dto = projectListService.findByIdAudit(id);
+        return ResponseEntity.ok(dto);
+    }
+
+    /**
      * 根据id删除
      * @param id
      * @return
@@ -106,6 +129,18 @@ public class ProjectListController {
     }
 
     /**
+     * 根据id修改三级校审状态值status
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value = "根据id修改三级校审状态值status")
+    @PostMapping(value = "/updateStatusByAuditId")
+    public ResponseEntity<String> updateStatusByAuditId(@RequestBody ProjectListDto dto) {
+        String s = projectListService.updateStatusByAuditId(dto);
+        return ResponseEntity.ok(s);
+    }
+
+    /**
      * 合同登记列表
      * @param info
      * @param page

+ 89 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramAudit.java

@@ -0,0 +1,89 @@
+package com.jeeplus.test.program.configuration.projectList.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 新项目管理-项目登记-三级校审
+ * @TableName program_audit
+ */
+@Data
+@TableName(value = "program_audit")
+public class ProgramAudit extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String programId;
+
+    /**
+     * 校审级别
+     */
+    private String auditLevel;
+
+    /**
+     * 审核人
+     */
+    private String auditPeople;
+
+    /**
+     * 审核通过时间
+     */
+    private Date auditDate;
+
+    /**
+     * 执行人员保留意见
+     */
+    private String retainOpinion;
+
+    /**
+     * 审核人员审核未修改意见
+     */
+    private String changeOpinion;
+
+    /**
+     * 审核意见及回复/明细表
+     */
+    private String detailOpinion;
+
+    /**
+     * 审核意见及回复/评估报告
+     */
+    private String reportOpinion;
+
+    /**
+     * 审核意见及回复/技术说明
+     */
+    private String remarksOpinion;
+
+    /**
+     * 审核意见及回复/工作底稿
+     */
+    private String workOpinion;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    /**
+     * 流程信息
+     */
+    private String processDefinitionId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    private static final long serialVersionUID = 1L;
+}

+ 33 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramAuditAssessPeople.java

@@ -0,0 +1,33 @@
+package com.jeeplus.test.program.configuration.projectList.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 新项目管理-项目登记-三级校审-评估人员
+ * @TableName program_audit_assess_people
+ */
+@Data
+@TableName(value = "program_audit_assess_people")
+public class ProgramAuditAssessPeople extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 校审id
+     */
+    private String auditId;
+
+    /**
+     * 评估人员
+     */
+    private String assessPeople;
+
+    private static final long serialVersionUID = 1L;
+}

+ 55 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListInfo.java

@@ -218,4 +218,59 @@ public class ProgramProjectListInfo {
      */
     @TableField(exist = false)
     private String reportNo;
+
+    /**
+     * 一级校审状态
+     */
+    @TableField(exist = false)
+    private String status1;
+
+    /**
+     * 二级校审状态
+     */
+    @TableField(exist = false)
+    private String status2;
+
+    /**
+     * 三级校审状态
+     */
+    @TableField(exist = false)
+    private String status3;
+
+    /**
+     * 一级校审id
+     */
+    @TableField(exist = false)
+    private String auditId1;
+
+    /**
+     * 二级校审id
+     */
+    @TableField(exist = false)
+    private String auditId2;
+
+    /**
+     * 三级校审id
+     */
+    @TableField(exist = false)
+    private String auditId3;
+
+    /**
+     * 三级校审流程id
+     */
+    @TableField(exist = false)
+    private String procInsId1;
+
+    /**
+     * 三级校审流程id
+     */
+    @TableField(exist = false)
+    private String procInsId2;
+
+    /**
+     * 三级校审流程id
+     */
+    @TableField(exist = false)
+    private String procInsId3;
+
 }

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProgramAuditAssessPeopleMapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.program.configuration.projectList.mapper;
+
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramAuditAssessPeople;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.jeeplus.test.program.configuration.projectList.domain.ProgramAuditAssessPeople
+ */
+@Mapper
+public interface ProgramAuditAssessPeopleMapper extends BaseMapper<ProgramAuditAssessPeople> {
+
+}
+
+
+
+

+ 18 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProgramAuditMapper.java

@@ -0,0 +1,18 @@
+package com.jeeplus.test.program.configuration.projectList.mapper;
+
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditDto;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.jeeplus.test.program.configuration.projectList.domain.ProgramAudit
+ */
+@Mapper
+public interface ProgramAuditMapper extends BaseMapper<ProgramAudit> {
+    ProgramAuditDto findByIdAudit(String id);
+}
+
+
+
+

+ 30 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProgramAuditAssessPeopleMapper.xml

@@ -0,0 +1,30 @@
+<?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.test.program.configuration.projectList.mapper.ProgramAuditAssessPeopleMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditAssessPeopleDto">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="auditId" column="audit_id" jdbcType="VARCHAR"/>
+            <result property="assessPeople" column="assess_people" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        paap.id,
+        paap.create_by,
+        paap.create_date,
+        paap.update_by,
+        paap.update_date,
+        paap.del_flag,
+        paap.remarks,
+        paap.audit_id,
+        paap.assess_people
+    </sql>
+</mapper>

+ 104 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProgramAuditMapper.xml

@@ -0,0 +1,104 @@
+<?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.test.program.configuration.projectList.mapper.ProgramAuditMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditDto">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="programId" column="program_id" jdbcType="VARCHAR"/>
+            <result property="auditLevel" column="audit_level" jdbcType="VARCHAR"/>
+            <result property="auditPeople" column="audit_people" jdbcType="VARCHAR"/>
+            <result property="auditDate" column="audit_date" jdbcType="TIMESTAMP"/>
+            <result property="retainOpinion" column="retain_opinion" jdbcType="VARCHAR"/>
+            <result property="changeOpinion" column="change_opinion" jdbcType="VARCHAR"/>
+            <result property="detailOpinion" column="detail_opinion" jdbcType="VARCHAR"/>
+            <result property="reportOpinion" column="report_opinion" jdbcType="VARCHAR"/>
+            <result property="remarksOpinion" column="remarks_opinion" jdbcType="VARCHAR"/>
+            <result property="workOpinion" column="work_opinion" jdbcType="VARCHAR"/>
+            <result property="procInsId" column="proc_ins_id" jdbcType="VARCHAR"/>
+            <result property="processDefinitionId" column="process_definition_id" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="VARCHAR"/>
+            <association property="programProjectListInfo" select="getProgram" javaType="com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo" column="program_id"></association>
+            <collection property="programAuditAssessPeopleDtoList" select="getAssess" ofType="com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditAssessPeopleDto" column="id"></collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        pa.id,
+        pa.create_by,
+        pa.create_date,
+        pa.update_by,
+        pa.update_date,
+        pa.del_flag,
+        pa.remarks,
+        pa.program_id,
+        pa.audit_level,
+        pa.audit_people,
+        pa.audit_date,
+        pa.retain_opinion,
+        pa.change_opinion,
+        pa.detail_opinion,
+        pa.report_opinion,
+        pa.remarks_opinion,
+        pa.work_opinion,
+        pa.proc_ins_id,
+        pa.process_definition_id,
+        pa.status
+    </sql>
+    <sql id="Program_Column_List">
+        id,create_by,create_date,
+        update_by,update_date,del_flag,
+        contract_id,contract_name,client,
+        client_name,amount,contract_type,
+        name,no,project_type,
+        approval_no,company,project_mould,
+        property_holder,property_holder_name,location,
+        is_first,year_num,check_year,
+        project_manager,project_manager_name,report_type,
+        industry,enterprise_type,risk_level,
+        project_source,estimate,plan_end_time,
+        use_num,appointment,work_hours,
+        remarks,assessment_enterprise,assessment_enterprise_name,
+        link_num,relationship,assessment_way,
+        assessment_objective,assessment_date,num,
+        project_development,delegate_project_type,assessment_object,
+        work_begin_date,work_end_date,reporting_date,
+        is_have,is_influence,mode,
+        status,proc_ins_id,process_definition_id
+    </sql>
+    <sql id="Assess_Column_List">
+        paap.id,
+        paap.create_by,
+        paap.create_date,
+        paap.update_by,
+        paap.update_date,
+        paap.del_flag,
+        paap.remarks,
+        paap.audit_id,
+        paap.assess_people
+    </sql>
+    <select id="getAssess" resultType="com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditAssessPeopleDto">
+        select
+        <include refid="Assess_Column_List"></include>
+        from program_audit_assess_people paap
+        where paap.del_flag = '0' and paap.audit_id = #{id}
+    </select>
+    <select id="getProgram" resultType="com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo">
+        select
+        <include refid="Program_Column_List"></include>
+        from program_project_list_info ppli
+        where ppli.del_flag = '0' and id = #{program_id}
+    </select>
+    <select id="findByIdAudit" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from program_audit pa
+        where pa.del_flag = '0' and pa.id = #{id}
+    </select>
+</mapper>

+ 13 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProjectListMapper.xml

@@ -116,12 +116,24 @@
            a.status,
            a.proc_ins_id,
            a.process_definition_id,
-           prn.report_no
+           prn.report_no,
+           pa1.status as status1,
+           pa1.id as auditId1,
+           pa1.proc_ins_id as procInsId1,
+           pa2.status as status2,
+           pa2.id as auditId2,
+           pa2.proc_ins_id as procInsId2,
+           pa3.status as status3,
+           pa3.id as auditId3,
+           pa3.proc_ins_id as procInsId3
         FROM
             program_project_list_info a
             LEFT JOIN sys_user b ON a.create_by = b.id
             LEFT JOIN sys_user c ON a.project_manager = c.id
             LEFT JOIN program_report_no prn ON prn.program_id = a.id
+            LEFT JOIN program_audit pa1 ON pa1.program_id = a.id and pa1.audit_level = '1'
+            LEFT JOIN program_audit pa2 ON pa2.program_id = a.id and pa2.audit_level = '2'
+            LEFT JOIN program_audit pa3 ON pa3.program_id = a.id and pa3.audit_level = '3'
             ${ew.customSqlSegment}
             ORDER BY a.update_date DESC
     </select>

+ 99 - 13
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.test.program.configuration.projectList.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -14,18 +15,11 @@ import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.mould.service.SerialnumTplService;
 import com.jeeplus.test.oss.domain.WorkAttachment;
 import com.jeeplus.test.oss.mapper.OssServiceMapper;
-import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
-import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListLink;
-import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListMember;
-import com.jeeplus.test.program.configuration.projectList.domain.ProgramReportNo;
-import com.jeeplus.test.program.configuration.projectList.mapper.ProgramReportNoMapper;
-import com.jeeplus.test.program.configuration.projectList.mapper.ProjectLinkMapper;
-import com.jeeplus.test.program.configuration.projectList.mapper.ProjectListMapper;
-import com.jeeplus.test.program.configuration.projectList.mapper.ProjectMemberMapper;
-import com.jeeplus.test.program.configuration.projectList.service.dto.ContractDto;
-import com.jeeplus.test.program.configuration.projectList.service.dto.ExportFileDto;
-import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramReportNoDto;
-import com.jeeplus.test.program.configuration.projectList.service.dto.ProjectListDto;
+import com.jeeplus.test.program.configuration.projectList.domain.*;
+import com.jeeplus.test.program.configuration.projectList.mapper.*;
+import com.jeeplus.test.program.configuration.projectList.service.dto.*;
+import com.jeeplus.test.program.configuration.projectList.service.mapstruct.ProgramAuditAssessPeopleWrapper;
+import com.jeeplus.test.program.configuration.projectList.service.mapstruct.ProgramAuditWrapper;
 import com.jeeplus.test.workContract.domain.WorkContractInfo;
 import com.jeeplus.test.workContract.mapper.WorkContractInfoMapper;
 import com.jeeplus.test.workContract.service.WorkContractService;
@@ -37,6 +31,7 @@ import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 @Service
 public class ProjectListService {
@@ -56,9 +51,12 @@ public class ProjectListService {
     private SerialnumTplService serialnumTplService;
     @Resource
     private WorkContractService workContractService;
-
+    @Resource
+    private ProgramAuditMapper programAuditMapper;
     @Resource
     private ProgramReportNoMapper programReportNoMapper;
+    @Resource
+    private ProgramAuditAssessPeopleMapper programAuditAssessPeopleMapper;
 
     public String save(ProjectListDto dto) throws Exception{
         if (StringUtils.isNotEmpty(dto.getId())) {
@@ -117,9 +115,76 @@ public class ProjectListService {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             workContractService.saveFiles(dto.getFiles(), userDTO, id);
         }
+        // 三级校审添加
+        ProgramAudit programAudit1 = new ProgramAudit();
+        programAudit1.setAuditLevel("1");
+        programAudit1.setProgramId(info.getId());
+        programAudit1.setStatus("0");
+        programAuditMapper.insert(programAudit1);
+        ProgramAudit programAudit2 = new ProgramAudit();
+        programAudit2.setAuditLevel("2");
+        programAudit2.setProgramId(info.getId());
+        programAudit2.setStatus("0");
+        programAuditMapper.insert(programAudit2);
+        ProgramAudit programAudit3 = new ProgramAudit();
+        programAudit3.setAuditLevel("3");
+        programAudit3.setProgramId(info.getId());
+        programAudit3.setStatus("0");
+        programAuditMapper.insert(programAudit3);
         return id;
     }
 
+    public String saveFormThree(ProgramAuditDto programAuditDto) {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        ProgramAudit programAudit = ProgramAuditWrapper.INSTANCE.toEntity(programAuditDto);
+        if (StringUtils.isNotBlank(programAudit.getId())){
+            programAuditMapper.updateById(programAudit);
+        }else{
+            programAuditMapper.insert(programAudit);
+        }
+        if (ObjectUtil.isNotEmpty(programAuditDto)) {
+            //附件
+            if (CollectionUtil.isNotEmpty(programAuditDto.getWorkAttachmentDtoList())) {
+                List<String> ids = programAuditDto.getWorkAttachmentDtoList().stream().filter(item -> {
+                    if (StringUtils.isNotBlank(item.getId())) {
+                        return true;
+                    }
+                    return false;
+                }).map(WorkAttachmentDto::getId).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(ids)){
+                    ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda()
+                            .eq(WorkAttachment::getAttachmentId, programAudit.getId())
+                            .notIn(WorkAttachment::getId,ids));
+                }else{
+                    ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda()
+                            .eq(WorkAttachment::getAttachmentId, programAudit.getId()));
+                }
+
+                List<WorkAttachmentDto> dtoList = programAuditDto.getWorkAttachmentDtoList().stream().filter(item -> {
+                    if (StringUtils.isNotBlank(item.getId())) {
+                        return false;
+                    }
+                    return true;
+                }).collect(Collectors.toList());
+
+                workContractService.saveFilesNew(dtoList, userDTO, programAudit.getId(),"program");
+            } else {
+                ossServiceMapper.delete(new QueryWrapper<WorkAttachment>().lambda().eq(WorkAttachment::getAttachmentId, programAudit.getId()));
+            }
+            //专业评估人员
+            if (CollectionUtil.isNotEmpty(programAuditDto.getProgramAuditAssessPeopleDtoList())) {
+                programAuditAssessPeopleMapper.delete(new QueryWrapper<ProgramAuditAssessPeople>().lambda().eq(ProgramAuditAssessPeople::getAuditId,programAudit.getId()));
+                programAuditDto.getProgramAuditAssessPeopleDtoList().stream().forEach(item->{
+                    ProgramAuditAssessPeople programAuditAssessPeople = ProgramAuditAssessPeopleWrapper.INSTANCE.toEntity(item);
+                    programAuditAssessPeopleMapper.insert(programAuditAssessPeople);
+                });
+            }else{
+                programAuditAssessPeopleMapper.delete(new QueryWrapper<ProgramAuditAssessPeople>().lambda().eq(ProgramAuditAssessPeople::getAuditId,programAudit.getId()));
+            }
+        }
+        return programAudit.getId();
+    }
+
     public String update(ProjectListDto dto) {
         //获取当前登录人信息
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
@@ -197,6 +262,19 @@ public class ProjectListService {
         return dto;
     }
 
+    public ProgramAuditDto findByIdAudit(String id){
+        ProgramAuditDto byIdAudit = programAuditMapper.findByIdAudit(id);
+        // 查询附件信息
+        List<WorkAttachmentDto> files = workContractInfoMapper.findDtos(id);
+        if (CollectionUtils.isNotEmpty(files)) {
+            for (WorkAttachmentDto i : files) {
+                i.setCreateBy(UserUtils.get(i.getBy()));
+            }
+            byIdAudit.setWorkAttachmentDtoList(files);
+        }
+        return byIdAudit;
+    }
+
     public String deleteById(String id) {
         projectListMapper.deleteById(id);
         projectLinkMapper.deleteByInfoId(id);
@@ -217,6 +295,14 @@ public class ProjectListService {
         return "操作成功";
     }
 
+    public String updateStatusByAuditId(ProjectListDto dto) {
+        ProgramAudit programAudit = new ProgramAudit();
+        programAudit.setId(dto.getId());
+        programAudit.setStatus(dto.getStatus());
+        programAuditMapper.update(programAudit,new QueryWrapper<ProgramAudit>().lambda().eq(ProgramAudit::getId,programAudit.getId()));
+        return "操作成功";
+    }
+
     public IPage<ProgramProjectListInfo> list(Page<ProgramProjectListInfo> page, ProgramProjectListInfo info) throws Exception{
         QueryWrapper<ProgramProjectListInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ProgramProjectListInfo.class);
         wrapper.eq("a.del_flag", "0");

+ 30 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProgramAuditAssessPeopleDto.java

@@ -0,0 +1,30 @@
+package com.jeeplus.test.program.configuration.projectList.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+/**
+ * 新项目管理-项目登记-三级校审-评估人员
+ * @TableName program_audit_assess_people
+ */
+@Data
+public class ProgramAuditAssessPeopleDto extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 校审id
+     */
+    private String auditId;
+
+    /**
+     * 评估人员
+     */
+    private String assessPeople;
+
+    private static final long serialVersionUID = 1L;
+}

+ 106 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProgramAuditDto.java

@@ -0,0 +1,106 @@
+package com.jeeplus.test.program.configuration.projectList.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 新项目管理-项目登记-三级校审
+ * @TableName program_audit
+ */
+@Data
+public class ProgramAuditDto extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String programId;
+
+    /**
+     * 校审级别
+     */
+    private String auditLevel;
+
+    /**
+     * 审核人
+     */
+    private String auditPeople;
+
+    /**
+     * 审核通过时间
+     */
+    private Date auditDate;
+
+    /**
+     * 执行人员保留意见
+     */
+    private String retainOpinion;
+
+    /**
+     * 审核人员审核未修改意见
+     */
+    private String changeOpinion;
+
+    /**
+     * 审核意见及回复/明细表
+     */
+    private String detailOpinion;
+
+    /**
+     * 审核意见及回复/评估报告
+     */
+    private String reportOpinion;
+
+    /**
+     * 审核意见及回复/技术说明
+     */
+    private String remarksOpinion;
+
+    /**
+     * 审核意见及回复/工作底稿
+     */
+    private String workOpinion;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    /**
+     * 流程信息
+     */
+    private String processDefinitionId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 项目信息
+     */
+    private ProgramProjectListInfo programProjectListInfo;
+
+    /**
+     * 专业评估人员
+     */
+    private List<ProgramAuditAssessPeopleDto> programAuditAssessPeopleDtoList;
+
+    /**
+     * 附件信息
+     */
+    private List<WorkAttachmentDto> workAttachmentDtoList;
+
+    private static final long serialVersionUID = 1L;
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/mapstruct/ProgramAuditAssessPeopleWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.program.configuration.projectList.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramAudit;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramAuditAssessPeople;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditAssessPeopleDto;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditDto;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ProgramAuditAssessPeopleWrapper extends EntityWrapper<ProgramAuditAssessPeopleDto, ProgramAuditAssessPeople>{
+
+        ProgramAuditAssessPeopleWrapper INSTANCE = Mappers.getMapper(ProgramAuditAssessPeopleWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/mapstruct/ProgramAuditWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.program.configuration.projectList.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.finance.invoice.domain.FinanceInvoiceDetail;
+import com.jeeplus.test.finance.invoice.service.dto.FinanceInvoiceDetailDTO;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramAudit;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramAuditDto;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ProgramAuditWrapper extends EntityWrapper<ProgramAuditDto, ProgramAudit>{
+
+        ProgramAuditWrapper INSTANCE = Mappers.getMapper(ProgramAuditWrapper.class);
+
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/service/WorkContractService.java

@@ -196,6 +196,40 @@ public class WorkContractService {
     }
 
     /**
+     * 保存附件信息
+     * @param list 待保存的附件列表
+     * @param userDTO 当前登录用户
+     * @param id 关联id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveFilesNew(List<WorkAttachmentDto> list, UserDTO userDTO, String id,String attachmentFlag) {
+        int j = 1;
+        for (WorkAttachmentDto dto : list) {
+            WorkAttachment i = new WorkAttachment();
+            //包含了url、size、name
+            i.setId(UUID.randomUUID().toString().replace("-", ""));
+//            i.getCreateBy().setId(userDTO.getId());
+            i.setCreateDate(new Date());
+//            i.getUpdateBy().setId(userDTO.getId());
+            i.setUpdateDate(new Date());
+            i.setDelFlag(0);
+            i.setUrl(dto.getUrl());
+            //文件类型处理
+            List<String> strings = Arrays.asList(dto.getName().split("\\."));
+            if (CollectionUtils.isNotEmpty(strings)) {
+                i.setType(strings.get(1));
+            }
+            i.setAttachmentId(id);
+            i.setAttachmentName(dto.getName());
+            i.setAttachmentFlag(attachmentFlag);
+            i.setFileSize(dto.getSize());
+            i.setSort(j);
+            ossServiceMapper.insertWorkAttachment(i, userDTO);
+            j++;
+        }
+    }
+
+    /**
      * 修改附件信息
      * @param list 待修改的附件列表
      * @param userDTO 当前登录用户