Commit ff4cf21f authored by 周昊's avatar 周昊

1、修改任务审批接口

parent dfa89ab2
......@@ -410,11 +410,12 @@ public class RiskPlanAppController extends BaseController {
/**
* 根据风险任务审批列表
*
* @param status 状态 running 待审批 completed 已审批
* @real_return {@link R<List<RiskPlanAppExistingListDto>>}
*/
@GetMapping("/approve/list")
public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByApproveUser() {
return R.ok(riskPlanService.getRiskPlanAppListDtoListByApproveUser(getUserId()));
public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByApproveUser(String status) {
return R.ok(riskPlanService.getRiskPlanAppListDtoListByApproveUser(getUserId(),status));
}
......@@ -425,6 +426,7 @@ public class RiskPlanAppController extends BaseController {
*/
@PostMapping("/approve")
public R<Integer> approveAppApproveDto(@RequestBody RiskPlanAppApproveDto appApproveDto) {
appApproveDto.setUserId(getUserId());
return R.ok(riskPlanService.approveAppApproveDto(appApproveDto));
}
......
......@@ -63,4 +63,22 @@ public class RiskPlanUserBuilding {
@TableField("submit_user_id")
private Long submitUserId;
/**
* 经办结果
*/
@TableField("task_result")
private String taskResult;
/**
* 经办意见
*/
@TableField("task_opinion")
private String taskOpinion;
/**
* 审批人id
*/
@TableField("approval_user_id")
private Long approvalUserId;
}
package com.censoft.censoftrongtong.domain.dto;
import lombok.Data;
import java.util.List;
/**
* @author 周昊
* @desc ...
* @date 2023-06-27 14:45:45
*/
@Data
public class RiskPlanAppApproveBuildingDto {
/** id */
private Long buildingId;
/** 经办结果 */
private String taskResult;
/** 经办意见 */
private String taskOpinion;
}
......@@ -3,6 +3,8 @@ package com.censoft.censoftrongtong.domain.dto;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.List;
/**
* @author 周昊
......@@ -19,4 +21,10 @@ public class RiskPlanAppApproveDto {
/** 经办意见 */
private String taskOpinion;
/** 操作人id */
private Long userId;
/** 楼宇经办意见 */
private List<RiskPlanAppApproveBuildingDto> buildingDtos;
}
......@@ -76,5 +76,5 @@ public interface RiskPlanMapper
List<RiskPlanAppApproveListDto> getApproveListDtoByPlanId(@Param("planId") Long planId);
List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(@Param("userId") Long userId);
List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(@Param("userId") Long userId,@Param("status") String status);
}
......@@ -78,5 +78,5 @@ public interface IRiskPlanService
int revokeByPlanId(Long planId, Long userId);
List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(Long userId);
List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(Long userId,String status);
}
......@@ -2,6 +2,7 @@ package com.censoft.censoftrongtong.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.censoft.censoftrongtong.domain.RiskPlanUserBuilding;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppApproveBuildingDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppBuildingListDto;
import java.util.List;
......@@ -19,4 +20,6 @@ public interface IRiskPlanUserBuildingService extends IService<RiskPlanUserBuild
List<RiskPlanAppBuildingListDto> getRiskPlanAppBuildingListDtoByPlanId(Long planId);
Integer submitByPlanIdAndBuildingId(Long planId, Long buildingId, Long userId);
void updateByRiskPlanAppApproveBuildingDto(Long planId,Long userId, List<RiskPlanAppApproveBuildingDto> buildingDtos);
}
......@@ -207,6 +207,7 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
@Override
public int approveAppApproveDto(RiskPlanAppApproveDto appApproveDto) {
//获取最新的task
RiskPlanTask lastRiskPlanTask = riskPlanTaskService.getLastRiskPlanTaskByPlanId(appApproveDto.getId());
lastRiskPlanTask.setTaskResult(appApproveDto.getTaskResult());
......@@ -223,7 +224,6 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
//插入任务表 已退回风险评估
RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setApprovalUserId(riskPlan.getLeaderUserId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.WAIT_RETURN.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.WAIT_RETURN.getStatus());
riskPlanTask1.setStatus("running");
......@@ -233,10 +233,53 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
//修改计划状态
riskPlan.setStatus(RiskPlanStatusType.WAIT_RETURN.getStatus());
updateRiskPlan(riskPlan);
//如果是组长审批 同时退回修改 楼宇单子的状态
riskPlanUserBuildingService.updateByRiskPlanAppApproveBuildingDto(appApproveDto.getId(),appApproveDto.getUserId()
,appApproveDto.getBuildingDtos());
} else {
//修改计划状态
riskPlan.setStatus(RiskPlanStatusType.FINISH.getStatus());
updateRiskPlan(riskPlan);
if (riskPlan.getStatus().equals(RiskPlanStatusType.WAIT_LEADER_APPROVE.getStatus())){
//修改计划状态
riskPlan.setStatus(RiskPlanStatusType.WAIT_APPROVE.getStatus());
updateRiskPlan(riskPlan);
//插入任务表 审批任务
RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setApprovalUserId(riskPlan.getCreateUserId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.WAIT_APPROVE.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.WAIT_APPROVE.getTitle());
riskPlanTask1.setStatus("running");
riskPlanTask1.setStartTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
}else {
//修改计划状态
riskPlan.setStatus(RiskPlanStatusType.FINISH.getStatus());
updateRiskPlan(riskPlan);
//插入任务表 项目评估报告
RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.PROJECT_REPORT.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.PROJECT_REPORT.getTitle());
riskPlanTask1.setStatus("completed");
riskPlanTask1.setStartTime(new Date());
riskPlanTask1.setCompletedTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
//插入任务表 已完成
RiskPlanTask riskPlanTask2 = new RiskPlanTask();
riskPlanTask2.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask2.setTaskKey(RiskPlanStatusType.FINISH.getStatus());
riskPlanTask2.setTaskName(RiskPlanStatusType.FINISH.getTitle());
riskPlanTask2.setStatus("completed");
riskPlanTask2.setStartTime(new Date());
riskPlanTask2.setCompletedTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask2);
}
}
return 1;
}
......@@ -256,7 +299,7 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.REVOKE.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.REVOKE.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.REVOKE.getTitle());
riskPlanTask1.setStatus("completed");
riskPlanTask1.setStartTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
......@@ -269,13 +312,13 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
}
@Override
public List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(Long userId) {
public List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(Long userId,String status) {
//查询并把状态值转化为状态名称
return riskPlanMapper.getRiskPlanAppListDtoListByApproveUser(userId)
return riskPlanMapper.getRiskPlanAppListDtoListByApproveUser(userId,status)
.stream()
.map(dto -> {
String status = RiskPlanStatusType.getTitleByStatus(dto.getStatus()).getTitle();
dto.setStatus(status);
String statusName = RiskPlanStatusType.getTitleByStatus(dto.getStatus()).getTitle();
dto.setStatus(statusName);
return dto;
}).collect(Collectors.toList());
}
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.RiskPlanTask;
import com.censoft.censoftrongtong.domain.RiskPlanUserBuilding;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppApproveBuildingDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppBuildingListDto;
import com.censoft.censoftrongtong.enums.RiskPlanStatusType;
import com.censoft.censoftrongtong.mapper.RiskPlanUserBuildingMapper;
......@@ -54,7 +55,7 @@ public class RiskPlanUserBuildingServiceImpl
public Integer submitByPlanIdAndBuildingId(Long planId, Long buildingId, Long userId) {
//更新楼宇人员关系表状态
LambdaQueryWrapper<RiskPlanUserBuilding> wrapper = new LambdaQueryWrapper<>();
wrapper = wrapper.eq(RiskPlanUserBuilding::getPlanId,planId).eq(RiskPlanUserBuilding::getBuildingId,buildingId);
wrapper = wrapper.eq(RiskPlanUserBuilding::getPlanId, planId).eq(RiskPlanUserBuilding::getBuildingId, buildingId);
RiskPlanUserBuilding riskPlanUserBuilding = getOne(wrapper);
riskPlanUserBuilding.setStatus("finish");
......@@ -64,9 +65,9 @@ public class RiskPlanUserBuildingServiceImpl
//查看是否全部楼宇提交
LambdaQueryWrapper<RiskPlanUserBuilding> wrapper2 = new LambdaQueryWrapper<>();
wrapper2 = wrapper2.eq(RiskPlanUserBuilding::getPlanId,planId).eq(RiskPlanUserBuilding::getBuildingId,buildingId);
wrapper2 = wrapper2.eq(RiskPlanUserBuilding::getPlanId, planId).eq(RiskPlanUserBuilding::getBuildingId, buildingId);
List<RiskPlanUserBuilding> list = list(wrapper2);
if (list.stream().allMatch(po -> po.getStatus().equals("finish"))){
if (list.stream().allMatch(po -> po.getStatus().equals("finish"))) {
//获取最新的task
RiskPlanTask lastRiskPlanTask = riskPlanTaskService.getLastRiskPlanTaskByPlanId(planId);
......@@ -94,4 +95,19 @@ public class RiskPlanUserBuildingServiceImpl
}
return 1;
}
@Override
public void updateByRiskPlanAppApproveBuildingDto(Long planId, Long userId, List<RiskPlanAppApproveBuildingDto> buildingDtos) {
buildingDtos.forEach(dto -> {
LambdaQueryWrapper<RiskPlanUserBuilding> wrapper = new LambdaQueryWrapper<>();
wrapper = wrapper
.eq(RiskPlanUserBuilding::getPlanId, planId)
.eq(RiskPlanUserBuilding::getBuildingId, dto.getBuildingId());
RiskPlanUserBuilding planUserBuilding = getOne(wrapper);
planUserBuilding.setTaskResult(dto.getTaskResult());
planUserBuilding.setTaskOpinion(dto.getTaskOpinion());
planUserBuilding.setApprovalUserId(userId);
updateById(planUserBuilding);
});
}
}
......@@ -186,14 +186,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM
risk_plan rp
LEFT JOIN sys_user su ON su.user_id = rp.leader_user_id
LEFT JOIN risk_plan_task rpt ON rpt.plan_id = rp.id
<where>
<if test="userId != null">
and ((rp.approval_user_id = #{userId} and rp.`status` = 'WAIT_LEADER_APPROVE')
and ((rpt.approval_user_id = #{userId} and (rpt.task_key = 'WAIT_LEADER_APPROVE' or rpt.task_key = 'WAIT_RETURN'))
or
(rp.create_user_id = #{userId} and rp.`status` = 'WAIT_APPROVE'))
(rpt.approval_user_id = #{userId} and rpt.task_key = 'WAIT_APPROVE'))
</if>
<if test="status != null and status != '' ">
and rpt.`status` = #{status}
</if>
</where>
GROUP BY
rp.id
ORDER BY
rp.start_time DESC
</select>
......
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