luohairen
2024-11-27 e8b11c6f789923ba0f9d21e85423231c567d92d2
进度上报查询
7个文件已修改
3个文件已添加
184 ■■■■■ 已修改文件
business/src/main/java/com/ycl/controller/ProgressPlanController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectPlanProgressReportController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/ProjectPlanInfo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoFlag.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProgressPlanInfoResponseVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/ProjectPlanProgressReportMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectPlanProgressReportMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>