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