From 2d0c245d5b5c9099969f7618bddbc3696ccfb6a9 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 28 十一月 2024 00:06:25 +0800
Subject: [PATCH] 修改项目计划bug

---
 business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java                |    4 ++
 business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java           |    8 ++-
 business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java                     |    2 -
 business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java           |    2 +
 business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoItem.java                     |    3 +
 business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java                   |    3 +
 business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java          |    3 +
 business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java    |    5 +-
 business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java            |    4 ++
 business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml                |   34 ++++++++++++++---
 business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml                 |    8 ++-
 business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java |   43 ++++++++++++++++++++-
 12 files changed, 98 insertions(+), 21 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java b/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java
index c19d78f..64db8ca 100644
--- a/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java
+++ b/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java
@@ -6,6 +6,7 @@
 import com.ycl.common.group.Update;
 import com.ycl.domain.form.ProjectPlanProgressReportForm;
 import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+import com.ycl.domain.vo.ProgressReportResponseVO;
 import com.ycl.service.ProjectPlanProgressReportService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -34,8 +35,8 @@
 
     @PostMapping
     @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
-    @PreAuthorize("hasAuthority('projectPlanProgressReport:add')")
-    public Result add(@RequestBody @Validated(Add.class) ProjectPlanProgressReportForm form) {
+//    @PreAuthorize("hasAuthority('projectPlanProgressReport:add')")
+    public Result add(@RequestBody @Validated(Add.class) ProgressReportResponseVO form) {
         return projectPlanProgressReportService.add(form);
     }
 
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java
index 02506a9..60a26e1 100644
--- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java
@@ -35,12 +35,10 @@
     private Integer progressStatus;
 
     @TableField("start_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     /** 璁″垝寮�濮嬫椂闂� */
     private Date startTime;
 
     @TableField("end_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     /** 璁″垝瀹屾垚鏃堕棿 */
     private Date endTime;
 
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java
index 7e51dcb..b170006 100644
--- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanProgressReport.java
@@ -3,10 +3,12 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ycl.system.domain.base.AbsEntity;
+import com.ycl.system.domain.base.AbsEntityOnlyId;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 杩涘害涓婃姤鍐呭
@@ -16,7 +18,7 @@
  */
 @Data
 @TableName("t_project_plan_progress_report")
-public class ProjectPlanProgressReport extends AbsEntity {
+public class ProjectPlanProgressReport extends AbsEntityOnlyId {
 
     private static final long serialVersionUID = 1L;
 
@@ -26,11 +28,11 @@
 
     @TableField("start_time")
     /** 瀹為檯寮�濮嬫椂闂� */
-    private LocalDateTime startTime;
+    private Date startTime;
 
     @TableField("end_time")
     /** 瀹為檯瀹屾垚鏃堕棿 */
-    private LocalDateTime endTime;
+    private Date endTime;
 
     @TableField("progress_status")
     /** 杩涘害鎯呭喌 */
diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java b/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java
index 9495cb1..4056d7d 100644
--- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java
+++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanRecord.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ycl.system.domain.base.AbsEntity;
+import com.ycl.system.domain.base.AbsEntityOnlyId;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -17,7 +18,7 @@
  */
 @Data
 @TableName("t_project_plan_record")
-public class ProjectPlanRecord extends AbsEntity {
+public class ProjectPlanRecord extends AbsEntityOnlyId {
 
     private static final long serialVersionUID = 1L;
 
diff --git a/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
index 241086e..2536961 100644
--- a/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
+++ b/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
@@ -13,6 +13,10 @@
 public class ProgressReportResponseVO {
     // 璁″垝椤筰d
     private Integer id;
+    // 杩涘害涓婃姤id
+    private Integer progressReportId;
+    // 瀹℃牳璁板綍id
+    private Integer examineRecordId;
     private Integer planTime;
     private Integer PlanTimeFlag;
     private String title;
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoItem.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoItem.java
index 9be4fa1..fee3153 100644
--- a/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoItem.java
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanInfoItem.java
@@ -1,11 +1,14 @@
 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
diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java
index e4f81c5..794b47c 100644
--- a/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java
+++ b/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java
@@ -33,4 +33,8 @@
     IPage getPage(IPage page, @Param("query") ProjectPlanProgressReportQuery query);
 
     ProgressReportResponseVO getDetail(Integer id);
+
+    void insertOne(ProjectPlanProgressReport projectPlanProgressReport);
+
+    void updateOne(ProjectPlanProgressReport projectPlanProgressReport);
 }
diff --git a/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java b/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java
index 0a9802c..c9fbd88 100644
--- a/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java
+++ b/business/src/main/java/com/ycl/service/ProjectPlanProgressReportService.java
@@ -5,6 +5,7 @@
 import com.ycl.domain.entity.ProjectPlanProgressReport;
 import com.ycl.domain.form.ProjectPlanProgressReportForm;
 import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+import com.ycl.domain.vo.ProgressReportResponseVO;
 
 import java.util.List;
 
@@ -21,7 +22,7 @@
      * @param form
      * @return
      */
-    Result add(ProjectPlanProgressReportForm form);
+    Result add(ProgressReportResponseVO form);
 
     /**
      * 淇敼
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 55690a8..a202490 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java
@@ -20,6 +20,7 @@
 import com.ycl.service.ProjectPlanInfoService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
@@ -165,6 +166,7 @@
         item.setDeleted(0);
         list.stream().forEach(i -> {
             item.setProjectPlanInfoId(i.getId().longValue());
+//            projectPlanExamineRecordMapper.insert(item);
             projectPlanExamineRecordMapper.insertOne(item);
         });
         return Result.ok("娣诲姞鎴愬姛");
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
index 79674ce..65e7358 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
@@ -1,10 +1,15 @@
 package com.ycl.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.ycl.common.base.Result;
+import com.ycl.domain.entity.ProjectPlanExamineRecord;
+import com.ycl.domain.entity.ProjectPlanInfo;
 import com.ycl.domain.entity.ProjectPlanProgressReport;
 import com.ycl.domain.vo.ProgressReportResponseVO;
 import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.ProjectPlanExamineRecordMapper;
+import com.ycl.mapper.ProjectPlanInfoMapper;
 import com.ycl.mapper.ProjectPlanProgressReportMapper;
 import com.ycl.service.ProjectPlanProgressReportService;
 
@@ -12,9 +17,11 @@
 import com.ycl.domain.form.ProjectPlanProgressReportForm;
 import com.ycl.domain.vo.ProjectPlanProgressReportVO;
 import com.ycl.domain.query.ProjectPlanProgressReportQuery;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
 import java.util.List;
@@ -31,16 +38,46 @@
 public class ProjectPlanProgressReportServiceImpl extends ServiceImpl<ProjectPlanProgressReportMapper, ProjectPlanProgressReport> implements ProjectPlanProgressReportService {
 
     private final ProjectPlanProgressReportMapper projectPlanProgressReportMapper;
+    @Autowired
+    private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper;
+    @Autowired
+    private ProjectPlanInfoMapper projectPlanInfoMapper;
 
     /**
      * 娣诲姞
      * @param form
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     @Override
-    public Result add(ProjectPlanProgressReportForm form) {
-        ProjectPlanProgressReport entity = ProjectPlanProgressReportForm.getEntityByForm(form, null);
-        baseMapper.insert(entity);
+    public Result add(ProgressReportResponseVO form) {
+
+        ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport();
+        projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue());
+        projectPlanProgressReport.setStartTime(form.getActualStartTime());
+        projectPlanProgressReport.setEndTime(form.getActualEndTime());
+        projectPlanProgressReport.setProgressStatus(form.getProgressStatus());
+        projectPlanProgressReport.setActualInvest(form.getActualInvest());
+        if (form.getProgressReportId() == null) {
+            baseMapper.insertOne(projectPlanProgressReport);
+        }else {
+            projectPlanProgressReport.setId(form.getProgressReportId());
+//            baseMapper.updateOne(projectPlanProgressReport);
+            baseMapper.updateById(projectPlanProgressReport);
+        }
+
+        // 鏇存柊涓婄骇鎵瑰
+        new LambdaUpdateChainWrapper<>(projectPlanExamineRecordMapper)
+                .eq(ProjectPlanExamineRecord::getId, form.getExamineRecordId())
+                .set(ProjectPlanExamineRecord::getDepartmentApprovalReply, form.getDepartmentApprovalReply())
+                .set(ProjectPlanExamineRecord::getManageApprovalReply, form.getManageApprovalReply())
+                .update();
+
+        // 鏇存柊涓婃姤鐘舵��
+        new LambdaUpdateChainWrapper<>(projectPlanInfoMapper)
+                .eq(ProjectPlanInfo::getId, form.getId())
+                .set(ProjectPlanInfo::getProgressStatus, 2)
+                .update();
         return Result.ok("娣诲姞鎴愬姛");
     }
 
diff --git a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
index 14a03c2..1f5eea5 100644
--- a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
+++ b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml
@@ -49,7 +49,8 @@
             delay_start_time,
             delay_end_time,
             gmt_create,
-            gmt_update
+            gmt_update,
+            deleted
         ) values (
             #{projectPlanRecordId},
             #{projectPlanInfoId},
@@ -65,7 +66,8 @@
             #{delayStartTime},
             #{delayEndTime},
             #{gmtCreate},
-            #{gmtUpdate}
+            #{gmtUpdate},
+            #{deleted}
         )
     </insert>
     <update id="updateByForm">
@@ -142,7 +144,7 @@
                  FROM t_project_plan_examine_record AS pper
                  WHERE project_plan_record_id = #{projectPlanRecordId}
              ) AS ranked
-        WHERE rn = 1;
+        WHERE rn = 1 AND ranked.deleted = 0
     </select>
 
     <select id="getPlanLog" resultType="com.ycl.domain.vo.DepartmentApprovalResponseVO">
diff --git a/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml b/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml
index 80f9304..5e7ddeb 100644
--- a/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml
+++ b/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml
@@ -10,12 +10,32 @@
         <result column="progress_status" property="progressStatus" />
         <result column="actual_invest" property="actualInvest" />
     </resultMap>
-
-
-
-
-
-
+    <insert id="insertOne">
+        INSERT INTO t_project_plan_progress_report (
+            project_plan_info_id,
+            start_time,
+            end_time,
+            progress_status,
+            actual_invest
+        )
+        VALUES (
+            #{projectPlanInfoId},
+            #{startTime},
+            #{endTime},
+            #{progressStatus},
+            #{actualInvest}
+        )
+    </insert>
+    <update id="updateOne">
+        UPDATE t_project_plan_progress_report
+        SET
+            start_time = #{startTime},
+            end_time = #{endTime},
+            progress_status = #{progressStatus},
+            actual_invest = #{actualInvest}
+        WHERE
+            id = #{id}
+    </update>
 
 
     <select id="getById" resultMap="BaseResultMap">
@@ -51,6 +71,8 @@
     <select id="getDetail" resultType="com.ycl.domain.vo.ProgressReportResponseVO">
         SELECT
             ppi.id,
+            pppr.id AS progress_report_id,
+            pper.id AS examine_record_id,
             ppr.plan_time,
             ppr.plan_time_flag,
             ppi.title,

--
Gitblit v1.8.0