From cccb705d0007796019d8dbc5bb56817e856fb075 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期三, 27 十一月 2024 00:09:52 +0800 Subject: [PATCH] 上级批复,计划日志展示 --- business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java | 12 +++ business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java | 13 ++++ business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java | 7 ++ business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java | 23 +++++++ business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java | 5 + business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java | 14 ++++ business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java | 5 + business/src/main/java/com/ycl/service/ProjectPlanInfoService.java | 6 ++ business/src/main/java/com/ycl/domain/vo/DepartmentApprovalResponseVO.java | 24 ++++++++ business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml | 50 ++++++++++++++++ 10 files changed, 156 insertions(+), 3 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java b/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java index c7f7aa2..dc7f016 100644 --- a/business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java +++ b/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); + } } diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java b/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java index 84e7722..7bc3652 100644 --- a/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java +++ b/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); + } } diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java index 0a2777c..d2474d0 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanExamineRecord.java +++ b/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; } diff --git a/business/src/main/java/com/ycl/domain/vo/DepartmentApprovalResponseVO.java b/business/src/main/java/com/ycl/domain/vo/DepartmentApprovalResponseVO.java new file mode 100644 index 0000000..3b642ee --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/DepartmentApprovalResponseVO.java @@ -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; +} diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java index 9d323cf..356c6ff 100644 --- a/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java +++ b/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); } diff --git a/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java b/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java index c2018d1..cc1b984 100644 --- a/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java +++ b/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); } diff --git a/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java b/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java index e8c4e77..66aa756 100644 --- a/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java +++ b/business/src/main/java/com/ycl/service/ProjectPlanInfoService.java @@ -76,4 +76,10 @@ * @return */ Result savePlanInfo(ProjectPlanInfo item); + + /** + * 寤舵湡 + * @return + */ + Result delayPlanInfo(ProjectPlanInfoForm request); } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java index 9ad060e..729eeba 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java +++ b/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); + } } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java index a706a1b..55690a8 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java +++ b/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("寤舵湡鎴愬姛"); + } } diff --git a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml index 32dc202..be6c346 100644 --- a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml +++ b/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> -- Gitblit v1.8.0