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); } 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); } 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; business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoFlag.java
New file @@ -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; } business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoResponseVO.java
New file @@ -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; // 季度进度 private List<ProgressPlanInfoFlag> seasonProgress; // 年度进度 private List<ProgressPlanInfoFlag> yearProgress; } business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
New file @@ -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 { // 计划项id 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; } 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); } 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); }); // 查询季度计划项 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 */ 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); } 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>