From 99c3d7ccf9d518d441fc1af09f792f703f8f01de Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 27 十一月 2024 02:38:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 business/src/main/java/com/ycl/controller/ProjectPlanExamineRecordController.java    |   17 ++++
 business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java |   27 ++++++
 business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java            |   10 ++
 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          |   21 +++++
 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                |   58 ++++++++++++++
 10 files changed, 193 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..169c98f 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,19 @@
     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);
+    }
+
+    @PostMapping("/replyDepartmentApproval")
+    public Result replyDepartmentApproval(@RequestBody ProjectPlanExamineRecordForm form) {
+        return projectPlanExamineRecordService.replyDepartmentApproval(form);
+    }
 }
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..2d07cbd 100644
--- a/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java
+++ b/business/src/main/java/com/ycl/mapper/ProjectPlanExamineRecordMapper.java
@@ -3,10 +3,14 @@
 import com.ycl.domain.entity.ProjectPlanExamineRecord;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.domain.form.ProjectPlanExamineRecordForm;
+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 +34,10 @@
     IPage getPage(IPage page, @Param("query") ProjectPlanExamineRecordQuery query);
 
     void insertOne(ProjectPlanExamineRecord item);
+
+    List<DepartmentApprovalResponseVO> selectInfo(Integer projectPlanRecordId);
+
+    List<DepartmentApprovalResponseVO> getPlanLog(Integer projectPlanRecordId);
+
+    void updateByForm(@Param("form") ProjectPlanExamineRecordForm form);
 }
diff --git a/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java b/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
index c2018d1..3464ca2 100644
--- a/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
+++ b/business/src/main/java/com/ycl/service/ProjectPlanExamineRecordService.java
@@ -62,4 +62,25 @@
      * @return
      */
     Result all();
+
+    /**
+     * 涓婄骇鎵瑰
+     * @param projectPlanRecordId
+     * @return
+     */
+    Result departmentApproval(Integer projectPlanRecordId);
+
+    /**
+     *  璁″垝鏃ュ織
+     * @param projectPlanRecordId
+     * @return
+     */
+    Result planLog(Integer projectPlanRecordId);
+
+    /**
+     *  涓婄骇鍥炲
+     * @param form
+     * @return
+     */
+    Result replyDepartmentApproval(ProjectPlanExamineRecordForm form);
 }
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..0404651 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanExamineRecordServiceImpl.java
@@ -1,7 +1,9 @@
 package com.ycl.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 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;
@@ -15,6 +17,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.Assert;
 
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -116,4 +119,28 @@
                 .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);
+    }
+
+    @Override
+    public Result replyDepartmentApproval(ProjectPlanExamineRecordForm form) {
+        baseMapper.updateByForm(form);
+//        new LambdaUpdateChainWrapper<>(baseMapper)
+//               .eq(ProjectPlanExamineRecord::getId, form.getId())
+//                .set(ProjectPlanExamineRecord::getDepartmentApprovalReply,form.getDepartmentApprovalReply())
+//                .set(ProjectPlanExamineRecord::getManageApprovalReply, form.getManageApprovalReply())
+//                .set(ProjectPlanExamineRecord::getGmtUpdate ,new Date())
+//                .update();
+        return Result.ok("鍥炲鎴愬姛");
+    }
 }
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..14a03c2 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,
@@ -55,6 +68,14 @@
             #{gmtUpdate}
         )
     </insert>
+    <update id="updateByForm">
+        update t_project_plan_examine_record
+        set
+            department_approval_reply = #{form.departmentApprovalReply},
+            manage_approval_reply = #{form.manageApprovalReply}
+        where
+            id = #{form.id}
+    </update>
 
 
     <select id="getById" resultMap="BaseResultMap">
@@ -103,5 +124,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