luohairen
2024-11-27 cccb705d0007796019d8dbc5bb56817e856fb075
上级批复,计划日志展示
9个文件已修改
1个文件已添加
159 ■■■■■ 已修改文件
business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/DepartmentApprovalResponseVO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProjectPlanInfoService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java
@@ -26,7 +26,7 @@
@RequiredArgsConstructor
@Api(value = "项目审核记录表", tags = "项目审核记录表管理")
@RestController
@RequestMapping("/project-plan-examine-record")
@RequestMapping("/api/project-plan-examine-record")
public class ProjectPlanExamineRecordController {
    private final ProjectPlanExamineRecordService projectPlanExamineRecordService;
@@ -79,4 +79,14 @@
    public Result list() {
        return projectPlanExamineRecordService.all();
    }
    @GetMapping("/departmentApproval/{id}")
    public Result departmentApproval(@PathVariable("id") Integer projectPlanRecordId) {
        return projectPlanExamineRecordService.departmentApproval(projectPlanRecordId);
    }
    @GetMapping("/planLog/{id}")
    public Result planLog(@PathVariable("id") Integer projectPlanRecordId) {
        return projectPlanExamineRecordService.planLog(projectPlanRecordId);
    }
}
business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java
@@ -93,4 +93,9 @@
    public Result savePlanInfo(@RequestBody ProjectPlanInfo item) {
        return projectPlanInfoService.savePlanInfo(item);
    }
    @PostMapping("/delayPlanInfo")
    public Result delayPlanInfo(@RequestBody ProjectPlanInfoForm request) {
        return projectPlanInfoService.delayPlanInfo(request);
    }
}
business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java
@@ -6,6 +6,7 @@
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * 项目审核记录表
@@ -65,10 +66,10 @@
    @TableField("delay_start_time")
    /** 延期开始时间 */
    private LocalDateTime delayStartTime;
    private Date delayStartTime;
    @TableField("delay_end_time")
    /** 延期结束时间 */
    private LocalDateTime delayEndTime;
    private Date delayEndTime;
}
business/src/main/java/com/ycl/domain/vo/DepartmentApprovalResponseVO.java
New file
@@ -0,0 +1,24 @@
package com.ycl.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DepartmentApprovalResponseVO {
    private Long id;
    private String title;
    private Integer departmentExamine;
    private String departmentApproval;
    private String departmentApprovalReply;
    private Integer manageExamine;
    private String manageApproval;
    private String manageApprovalReply;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date gmtCreate;
}
business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java
@@ -3,10 +3,13 @@
import com.ycl.domain.entity.ProjectPlanExamineRecord;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.domain.vo.DepartmentApprovalResponseVO;
import com.ycl.domain.vo.ProjectPlanExamineRecordVO;
import com.ycl.domain.query.ProjectPlanExamineRecordQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 项目审核记录表 Mapper 接口
@@ -30,4 +33,8 @@
    IPage getPage(IPage page, @Param("query") ProjectPlanExamineRecordQuery query);
    void insertOne(ProjectPlanExamineRecord item);
    List<DepartmentApprovalResponseVO> selectInfo(Integer projectPlanRecordId);
    List<DepartmentApprovalResponseVO> getPlanLog(Integer projectPlanRecordId);
}
business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
@@ -62,4 +62,18 @@
     * @return
     */
    Result all();
    /**
     * 上级批复
     * @param projectPlanRecordId
     * @return
     */
    Result departmentApproval(Integer projectPlanRecordId);
    /**
     *  计划日志
     * @param projectPlanRecordId
     * @return
     */
    Result planLog(Integer projectPlanRecordId);
}
business/src/main/java/com/ycl/service/ProjectPlanInfoService.java
@@ -76,4 +76,10 @@
     * @return
     */
    Result savePlanInfo(ProjectPlanInfo item);
    /**
     * 延期
     * @return
     */
    Result delayPlanInfo(ProjectPlanInfoForm request);
}
business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.domain.entity.ProjectPlanExamineRecord;
import com.ycl.domain.vo.DepartmentApprovalResponseVO;
import com.ycl.mapper.ProjectPlanExamineRecordMapper;
import com.ycl.service.ProjectPlanExamineRecordService;
import com.ycl.common.base.Result;
@@ -116,4 +117,16 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result departmentApproval(Integer projectPlanRecordId) {
        List<DepartmentApprovalResponseVO> vo =baseMapper.selectInfo(projectPlanRecordId);
        return Result.ok().data(vo);
    }
    @Override
    public Result planLog(Integer projectPlanRecordId) {
        List<DepartmentApprovalResponseVO> vo =baseMapper.getPlanLog(projectPlanRecordId);
        return Result.ok().data(vo);
    }
}
business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
@@ -162,6 +162,7 @@
        item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue());
        item.setEventType(0);
        item.setGmtCreate(new Date());
        item.setDeleted(0);
        list.stream().forEach(i -> {
            item.setProjectPlanInfoId(i.getId().longValue());
            projectPlanExamineRecordMapper.insertOne(item);
@@ -184,4 +185,26 @@
        }
        return Result.ok("保存成功");
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Result delayPlanInfo(ProjectPlanInfoForm request) {
        // 更改计划项时间
        new LambdaUpdateChainWrapper<>(baseMapper)
                .eq(ProjectPlanInfo::getId, request.getId())
                .set(ProjectPlanInfo::getStartTime, request.getStartTime())
                .set(ProjectPlanInfo::getEndTime, request.getEndTime())
                .update();
        // 新增一条审核记录
        ProjectPlanExamineRecord item = new ProjectPlanExamineRecord();
        item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue());
        item.setProjectPlanInfoId(request.getId().longValue());
        item.setEventType(1);
        item.setDelayStartTime(request.getStartTime());
        item.setDelayEndTime(request.getEndTime());
        item.setGmtCreate(new Date());
        item.setDeleted(0);
        projectPlanExamineRecordMapper.insertOne(item);
        return Result.ok("延期成功");
    }
}
business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
@@ -20,6 +20,19 @@
        <result column="gmt_create" property="gmtCreate" />
        <result column="gmt_update" property="gmtUpdate" />
    </resultMap>
    <resultMap id="selectInfoResultMap" type="com.ycl.domain.vo.DepartmentApprovalResponseVO">
        <id property="id" column="id" />
        <result property="title" column="title" />
        <result property="departmentExamine" column="department_examine" />
        <result property="departmentApproval" column="department_approval" />
        <result property="departmentApprovalReply" column="department_approval_reply" />
        <result property="manageExamine" column="manage_examine" />
        <result property="manageApproval" column="manage_approval" />
        <result property="manageApprovalReply" column="manage_approval_reply" />
        <result property="gmtCreate" column="gmt_create" />
    </resultMap>
    <insert id="insertOne">
        insert into t_project_plan_examine_record (
            project_plan_record_id,
@@ -103,5 +116,42 @@
        WHERE
            TPPER.deleted = 0
    </select>
    <select id="selectInfo" resultType="com.ycl.domain.vo.DepartmentApprovalResponseVO">
        SELECT
            ranked.id,
            (SELECT title FROM t_project_plan_info WHERE id = ranked.project_plan_info_id) as title,
            ranked.department_examine,
            ranked.department_approval,
            ranked.department_approval_reply,
            ranked.manage_examine,
            ranked.manage_approval,
            ranked.manage_approval_reply,
            ranked.gmt_create
        FROM (
                 SELECT
                     *,
                     ROW_NUMBER() OVER (PARTITION BY project_plan_info_id ORDER BY gmt_update DESC) AS rn
                 FROM t_project_plan_examine_record AS pper
                 WHERE project_plan_record_id = #{projectPlanRecordId}
             ) AS ranked
        WHERE rn = 1;
    </select>
    <select id="getPlanLog" resultType="com.ycl.domain.vo.DepartmentApprovalResponseVO">
        SELECT
            pper.id,
            (SELECT title FROM t_project_plan_info WHERE id = pper.project_plan_info_id) as title,
            pper.department_examine,
            pper.department_approval,
            pper.department_approval_reply,
            pper.manage_examine,
            pper.manage_approval,
            pper.manage_approval_reply,
            pper.gmt_create
        FROM t_project_plan_examine_record AS pper
        WHERE
            pper.project_plan_record_id = #{projectPlanRecordId}
        ORDER BY gmt_update DESC
    </select>
</mapper>