From e8b11c6f789923ba0f9d21e85423231c567d92d2 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期三, 27 十一月 2024 18:37:49 +0800 Subject: [PATCH] 进度上报查询 --- business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java | 75 ++++++++++++++++++ business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java | 32 ++++++++ business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java | 3 business/src/main/java/com/ycl/controller/ProgressPlanController.java | 2 business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java | 2 business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java | 2 business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml | 28 +++++++ business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoFlag.java | 17 ++++ business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoResponseVO.java | 19 ++++ business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java | 4 10 files changed, 178 insertions(+), 6 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProgressPlanController.java b/business/src/main/java/com/ycl/controller/ProgressPlanController.java index ace5749..ef2147b 100644 --- a/business/src/main/java/com/ycl/controller/ProgressPlanController.java +++ b/business/src/main/java/com/ycl/controller/ProgressPlanController.java @@ -69,7 +69,7 @@ @GetMapping("/{id}") @ApiOperation(value = "璇︽儏", notes = "璇︽儏") - @PreAuthorize("hasAuthority('progressPlan:detail')") +// @PreAuthorize("hasAuthority('progressPlan:detail')") public Result detail(@PathVariable("id") Integer id) { return progressPlanService.detail(id); } diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java b/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java index 913fa2e..c19d78f 100644 --- a/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java +++ b/business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java @@ -69,7 +69,7 @@ @GetMapping("/{id}") @ApiOperation(value = "璇︽儏", notes = "璇︽儏") - @PreAuthorize("hasAuthority('projectPlanProgressReport:detail')") +// @PreAuthorize("hasAuthority('projectPlanProgressReport:detail')") public Result detail(@PathVariable("id") Integer id) { return projectPlanProgressReportService.detail(id); } 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 a1933c7..02506a9 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java +++ b/business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.system.domain.base.AbsEntity; import lombok.Data; @@ -34,10 +35,12 @@ 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/vo/ProgressPlanInfoFlag.java b/business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoFlag.java new file mode 100644 index 0000000..52bb59c --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoFlag.java @@ -0,0 +1,17 @@ +package com.ycl.domain.vo; + +import com.ycl.domain.entity.ProjectPlanInfo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProgressPlanInfoFlag { + private Integer planTime; + private Integer planTimeFlag; + private List<ProjectPlanInfo> planInfoList; +} diff --git a/business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoResponseVO.java new file mode 100644 index 0000000..121bbbc --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoResponseVO.java @@ -0,0 +1,19 @@ +package com.ycl.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProgressPlanInfoResponseVO { + // 鏈堝害杩涘害 + private List<ProgressPlanInfoFlag> monthProgress; + // 瀛e害杩涘害 + private List<ProgressPlanInfoFlag> seasonProgress; + // 骞村害杩涘害 + private List<ProgressPlanInfoFlag> yearProgress; +} diff --git a/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java new file mode 100644 index 0000000..241086e --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java @@ -0,0 +1,32 @@ +package com.ycl.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ProgressReportResponseVO { + // 璁″垝椤筰d + private Integer id; + private Integer planTime; + private Integer PlanTimeFlag; + private String title; + private Date startTime; + private Date endTime; + private Date actualStartTime; + private Date actualEndTime; + private String progressStatus; + private BigDecimal actualInvest; + private Integer departmentExamine; + private String departmentApproval; + private String departmentApprovalReply; + private Integer manageExamine; + private String manageApproval; + private String manageApprovalReply; + +} diff --git a/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java b/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java index 08f3ee4..e4f81c5 100644 --- a/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java +++ b/business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.domain.query.ProjectPlanProgressReportQuery; +import com.ycl.domain.vo.ProgressReportResponseVO; import com.ycl.domain.vo.ProjectPlanProgressReportVO; import com.ycl.domain.form.ProjectPlanProgressReportForm; import java.util.List; @@ -31,4 +32,5 @@ */ IPage getPage(IPage page, @Param("query") ProjectPlanProgressReportQuery query); + ProgressReportResponseVO getDetail(Integer id); } diff --git a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java index cb52f7d..e18139b 100644 --- a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java @@ -1,20 +1,28 @@ package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; import com.ycl.domain.entity.ProgressPlan; +import com.ycl.domain.entity.ProjectPlanInfo; +import com.ycl.domain.entity.ProjectPlanRecord; import com.ycl.domain.form.ProgressPlanForm; import com.ycl.domain.query.ProgressPlanQuery; +import com.ycl.domain.vo.ProgressPlanInfoFlag; +import com.ycl.domain.vo.ProgressPlanInfoResponseVO; import com.ycl.domain.vo.ProgressPlanVO; import com.ycl.framework.utils.PageUtil; import com.ycl.mapper.ProgressPlanMapper; +import com.ycl.mapper.ProjectPlanInfoMapper; +import com.ycl.mapper.ProjectPlanRecordMapper; import com.ycl.service.ProgressPlanService; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -29,6 +37,8 @@ public class ProgressPlanServiceImpl extends ServiceImpl<ProgressPlanMapper, ProgressPlan> implements ProgressPlanService { private final ProgressPlanMapper progressPlanMapper; + private final ProjectPlanRecordMapper projectPlanRecordMapper; + private final ProjectPlanInfoMapper projectPlanInfoMapper; /** * 娣诲姞 @@ -99,12 +109,73 @@ */ @Override public Result detail(Integer id) { - ProgressPlanVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + ProgressPlanInfoResponseVO vo = new ProgressPlanInfoResponseVO(); + List<ProgressPlanInfoFlag> monthProgress = new ArrayList<>(); + List<ProgressPlanInfoFlag> seasonProgress = new ArrayList<>(); + List<ProgressPlanInfoFlag> yearProgress = new ArrayList<>(); + + // 鏌ヨ鏈堝害璁″垝椤� + new LambdaQueryChainWrapper<>(projectPlanRecordMapper) + .eq(ProjectPlanRecord::getProjectInfoId, id) + .eq(ProjectPlanRecord::getPlanTimeFlag, 0) + .list() + .stream().forEach(record -> { + ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag(); + progressPlanInfoFlag.setPlanTime(record.getPlanTime()); + progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag()); + progressPlanInfoFlag.setPlanInfoList( + new LambdaQueryChainWrapper<>(projectPlanInfoMapper) + .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId()) + .list() + ); + monthProgress.add(progressPlanInfoFlag); + }); + + // 鏌ヨ瀛e害璁″垝椤� + new LambdaQueryChainWrapper<>(projectPlanRecordMapper) + .eq(ProjectPlanRecord::getProjectInfoId, id) + .eq(ProjectPlanRecord::getPlanTimeFlag, 1) + .list() + .stream().forEach(record -> { + ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag(); + progressPlanInfoFlag.setPlanTime(record.getPlanTime()); + progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag()); + progressPlanInfoFlag.setPlanInfoList( + new LambdaQueryChainWrapper<>(projectPlanInfoMapper) + .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId()) + .list() + ); + seasonProgress.add(progressPlanInfoFlag); + }); + + // 鏌ヨ骞村害璁″垝椤� + new LambdaQueryChainWrapper<>(projectPlanRecordMapper) + .eq(ProjectPlanRecord::getProjectInfoId, id) + .eq(ProjectPlanRecord::getPlanTimeFlag, 2) + .list() + .stream().forEach(record -> { + ProgressPlanInfoFlag progressPlanInfoFlag = new ProgressPlanInfoFlag(); + progressPlanInfoFlag.setPlanTime(record.getPlanTime()); + progressPlanInfoFlag.setPlanTimeFlag(record.getPlanTimeFlag()); + progressPlanInfoFlag.setPlanInfoList( + new LambdaQueryChainWrapper<>(projectPlanInfoMapper) + .eq(ProjectPlanInfo::getProjectPlanRecordId, record.getId()) + .list() + ); + yearProgress.add(progressPlanInfoFlag); + }); + + vo.setMonthProgress(monthProgress); + vo.setSeasonProgress(seasonProgress); + vo.setYearProgress(yearProgress); return Result.ok().data(vo); } /** + * + */ + + /** * 鍒楄〃 * @return */ 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 fe9851a..79674ce 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.common.base.Result; import com.ycl.domain.entity.ProjectPlanProgressReport; +import com.ycl.domain.vo.ProgressReportResponseVO; import com.ycl.framework.utils.PageUtil; import com.ycl.mapper.ProjectPlanProgressReportMapper; import com.ycl.service.ProjectPlanProgressReportService; @@ -100,8 +101,7 @@ */ @Override public Result detail(Integer id) { - ProjectPlanProgressReportVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + ProgressReportResponseVO vo = baseMapper.getDetail(id); return Result.ok().data(vo); } diff --git a/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml b/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml index 8a6d576..80f9304 100644 --- a/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml +++ b/business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml @@ -17,6 +17,7 @@ + <select id="getById" resultMap="BaseResultMap"> SELECT TPPPR.project_plan_info_id, @@ -46,4 +47,31 @@ TPPPR.deleted = 0 </select> + + <select id="getDetail" resultType="com.ycl.domain.vo.ProgressReportResponseVO"> + SELECT + ppi.id, + ppr.plan_time, + ppr.plan_time_flag, + ppi.title, + ppi.start_time, + ppi.end_time, + pppr.start_time AS actual_start_time, + pppr.end_time AS actual_end_time, + pppr.progress_status, + pppr.actual_invest, + pper.department_examine, + pper.department_approval, + pper.department_approval_reply, + pper.manage_examine, + pper.manage_approval, + pper.manage_approval_reply + FROM t_project_plan_info AS ppi + INNER JOIN t_project_plan_record AS ppr ON ppi.project_plan_record_id = ppr.id + LEFT JOIN t_project_plan_progress_report AS pppr ON pppr.project_plan_info_id = ppi.id + RIGHT JOIN t_project_plan_examine_record AS pper ON pper.project_plan_info_id = ppi.id + WHERE ppi.id = #{id} + ORDER BY pper.gmt_create DESC LIMIT 1 + </select> + </mapper> -- Gitblit v1.8.0