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