Commit f55045b4 authored by 周昊's avatar 周昊

1、开发接口获取计划详情

parent 02cbf7db
......@@ -3,6 +3,7 @@ package com.censoft.censoftrongtong.controller;
import com.censoft.censoftrongtong.domain.LedgerBuilding;
import com.censoft.censoftrongtong.domain.LedgerProject;
import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppDetailsDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto;
import com.censoft.censoftrongtong.enums.RiskPlanStatusType;
import com.censoft.censoftrongtong.service.ILedgerBuildingService;
......@@ -114,4 +115,15 @@ public class RiskPlanAppController extends BaseController {
public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByLeaderUser(){
return R.ok(riskPlanService.getRiskPlanAppListDtoList(null,null,getUserId()));
}
/**
* 获取任务单详情
*
* @param planId 计划id
* @real_return {@link R<RiskPlanAppDetailsDto>}
*/
@GetMapping("/details/{planId}")
public R<RiskPlanAppDetailsDto> getRiskPlanAppDetailsDtoByPlanId(@PathVariable("planId") Long planId){
return R.ok(riskPlanService.getRiskPlanAppDetailsDtoByPlanId(planId));
}
}
package com.censoft.censoftrongtong.domain.dto;
import lombok.Data;
import java.util.Date;
/**
* @author 周昊
* @desc ...
* @date 2023-06-27 14:45:45
*/
@Data
public class RiskPlanAppApproveListDto {
/** 流程步骤id */
private Long taskId;
/** 开始时间 */
private Date startTime;
/** 审批人id */
private Long approvalUserId;
/** 审批人名称 */
private String approvalUserName;
/** 流程名称 */
private String taskName;
/** 审批结果 */
private String taskResult;
}
package com.censoft.censoftrongtong.domain.dto;
import com.ruoyi.framework.web.domain.server.SysFile;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author 周昊
* @desc ...
* @date 2023-06-27 14:45:45
*/
@Data
public class RiskPlanAppDetailsDto {
/** id */
private Long id;
/** 发起人员id */
private Long createUserId;
/** 发起人员名称 */
private String createUserName;
/** 项目负责人id */
private Long leaderUserId;
/** 项目负责人名称 */
private String leaderUserName;
/** 状态 */
private String status;
/** 发起时间 */
private Date startTime;
/** 结束时间 */
private Date endTime;
/** 任务流程节点 */
private String statusKey;
/** 任务详情 */
private RiskPlanAppTaskDetailsDto detailsDto;
/** 风险清单 */
private List<RiskPlanAppRiskBuildingListDto> riskBuildingListDtos;
/** 风险清单 */
private List<RiskPlanAppApproveListDto> approveListDtos;
/** 风险评估报告 */
private List<SysFile> files;
}
package com.censoft.censoftrongtong.domain.dto;
import lombok.Data;
import java.util.Date;
/**
* @author 周昊
* @desc ...
* @date 2023-06-27 14:45:45
*/
@Data
public class RiskPlanAppRiskBuildingListDto {
/** 建筑id */
private Long buildingId;
/** 建筑名称 */
private String buildingName;
/** 固有风险数量 */
private Integer inherentNumber;
/** 现有风险数量 */
private Integer existingNumber;
/** 状态 */
private String status;
}
package com.censoft.censoftrongtong.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* @author 周昊
* @desc ...
* @date 2023-06-27 14:45:45
*/
@Data
public class RiskPlanAppTaskDetailsDto {
/** id */
private Long id;
/** 任务编号 */
private String no;
/** 创建人员id */
private Long createUserId;
/** 创建人员名称 */
private String createUserName;
/** 创建单位 */
private Long createDeptId;
/** 创建单位名称 */
private String createDeptName;
/** 创建时间 */
private Date createTime;
/** 项目id */
private Long projectId;
/** 项目名称 */
private String projectName;
/** 所属单位id */
private Long projectDeptId;
/** 所属单位 */
private String projectDeptName;
/** 所在城市 */
private String city;
/** 楼栋ids */
private String buildingIds;
/** 楼栋名称 */
private String buildingNames;
/** 负责人id */
private Long leaderUserId;
/** 负责人名称 */
private String leaderUserName;
/** 执行人员ids */
private String workUserIds;
/** 执行人员名称 */
private String workUserNames;
/** 开始时间 */
private Date startTime;
/** 结束时间 */
private Date endTime;
}
package com.censoft.censoftrongtong.mapper;
import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto;
import com.censoft.censoftrongtong.domain.dto.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -64,4 +64,12 @@ public interface RiskPlanMapper
List<RiskPlanAppListDto> getRiskPlanAppListDtoList(@Param("statusStringList") List<String> statusStringList
, @Param("createUserId") Long createUserId, @Param("leaderUserId") Long leaderUserId);
RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(@Param("planId") Long planId);
RiskPlanAppTaskDetailsDto getRiskPlanAppTaskDetailsDtoByPlanId(@Param("planId") Long planId);
List<RiskPlanAppRiskBuildingListDto> getRiskBuildingListDtoByPlanId(@Param("planId") Long planId);
List<RiskPlanAppApproveListDto> getApproveListDtoByPlanId(@Param("planId") Long planId);
}
package com.censoft.censoftrongtong.service;
import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppDetailsDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto;
import com.censoft.censoftrongtong.enums.RiskPlanStatusType;
......@@ -65,4 +66,6 @@ public interface IRiskPlanService
int saveRiskPlan(RiskPlan riskPlan);
List<RiskPlanAppListDto> getRiskPlanAppListDtoList(List<RiskPlanStatusType> statusList, Long createUserId, Long leaderUserId);
RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(Long planId);
}
package com.censoft.censoftrongtong.service.impl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
......@@ -8,6 +9,7 @@ import java.util.stream.Collectors;
import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.RiskPlanTask;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppDetailsDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto;
import com.censoft.censoftrongtong.enums.RiskPlanStatusType;
import com.censoft.censoftrongtong.mapper.RiskPlanMapper;
......@@ -148,6 +150,27 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
}).collect(Collectors.toList());
}
@Override
public RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(Long planId) {
//获取任务单基础信息
RiskPlanAppDetailsDto dto = riskPlanMapper.getRiskPlanAppDetailsDtoByPlanId(planId);
dto.setStatus(RiskPlanStatusType.getTitleByStatus(dto.getStatusKey()));
//获取任务详情
dto.setDetailsDto(riskPlanMapper.getRiskPlanAppTaskDetailsDtoByPlanId(planId));
//风险清单
dto.setRiskBuildingListDtos(riskPlanMapper.getRiskBuildingListDtoByPlanId(planId));
//审批记录
dto.setApproveListDtos(riskPlanMapper.getApproveListDtoByPlanId(planId));
//风险评估报告
dto.setFiles(new ArrayList());
return dto;
}
private String getNo() {
Random random = new Random();
int randomNumber = random.nextInt(1000); // 生成0到999之间的随机数
......
......@@ -75,6 +75,102 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY
rp.start_time DESC
</select>
<select id="getRiskPlanAppDetailsDtoByPlanId"
resultType="com.censoft.censoftrongtong.domain.dto.RiskPlanAppDetailsDto">
SELECT
rp.id,
su1.user_id AS createUserId,
su1.nick_name AS createUserName,
su2.user_id AS leaderUserId,
su2.nick_name AS leaderUserName,
rp.`status` AS statusKey ,
rp.start_time AS startTime,
rp.end_time AS endTime
FROM
risk_plan rp
LEFT JOIN sys_user su1 ON su1.user_id = rp.create_user_id
LEFT JOIN sys_user su2 ON su2.user_id = rp.leader_user_id
WHERE
rp.id = #{planId}
</select>
<select id="getRiskPlanAppTaskDetailsDtoByPlanId"
resultType="com.censoft.censoftrongtong.domain.dto.RiskPlanAppTaskDetailsDto">
SELECT
rp.id,
rp.`no`,
su1.user_id AS createUserId,
su1.nick_name AS createUserName,
sd1.dept_id AS createDeptId,
sd1.dept_name AS createDeptName,
rp.create_time AS createTime,
lp.id AS projectId,
lp.`name` AS projectName,
sd2.dept_id AS projectDeptId,
sd2.dept_name AS projectDeptName,
lp.city,
rp.building_ids AS buildingIds,
( SELECT GROUP_CONCAT( `name` ) FROM ledger_building WHERE project_id = lp.id ) AS buildingNames,
su2.user_id AS leaderUserId,
su2.nick_name AS leaderUserName,
rp.work_user_ids AS workUserIds,
( SELECT GROUP_CONCAT( nick_name ) FROM sys_user WHERE FIND_IN_SET( user_id, rp.work_user_ids ) ) AS workUserNames,
rp.start_time AS startTime,
rp.end_time AS endTime
FROM
risk_plan rp
LEFT JOIN sys_user su1 ON su1.user_id = rp.create_user_id
LEFT JOIN sys_user su2 ON su2.user_id = rp.leader_user_id
LEFT JOIN sys_dept sd1 ON sd1.dept_id = rp.create_dept_id
LEFT JOIN ledger_project lp ON lp.id = rp.project_id
LEFT JOIN sys_dept sd2 ON sd2.dept_id = lp.dept_id
WHERE
rp.id = #{planId}
ORDER BY
rp.start_time DESC
</select>
<select id="getRiskBuildingListDtoByPlanId"
resultType="com.censoft.censoftrongtong.domain.dto.RiskPlanAppRiskBuildingListDto">
SELECT
lb.id AS buildingId,
lb.`name` AS buildingName,
count( rpil.id ) AS inherentNumber,
count( rpel.id ) AS existingNumber
FROM
risk_plan rp
LEFT JOIN ledger_building lb ON FIND_IN_SET( lb.id, rp.building_ids )
LEFT JOIN ledger_floor lf ON lf.building_id = lb.id
LEFT JOIN ledger_room lr ON lr.floor_id = lf.id
LEFT JOIN risk_plan_inherent_list rpil ON rpil.room_id = lr.id
AND rpil.plan_id = rp.id
LEFT JOIN risk_plan_existing_list rpel ON rpel.room_id = lr.id
AND rpel.plan_id = rp.id
WHERE
rp.id = #{planId}
AND lf.`status` = '0'
AND lf.del_flag = '0'
AND lr.`status` = '0'
AND lr.del_flag = '0'
GROUP BY
lb.id
</select>
<select id="getApproveListDtoByPlanId"
resultType="com.censoft.censoftrongtong.domain.dto.RiskPlanAppApproveListDto">
SELECT
rpt.id AS taskId,
rpt.start_time AS startTime,
rpt.approval_user_id AS approvalUserId,
su.nick_name AS approvalUserName,
rpt.task_name AS taskName,
rpt.task_result AS taskResult
FROM
risk_plan_task rpt
LEFT JOIN sys_user su ON su.user_id = rpt.approval_user_id
WHERE
rpt.plan_id = #{planId}
ORDER BY
rpt.start_time ASC
</select>
<insert id="insertRiskPlan" parameterType="com.censoft.censoftrongtong.domain.RiskPlan" useGeneratedKeys="true" keyProperty="id">
insert into risk_plan
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment