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