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>