Commit 18935870 authored by 鲍德's avatar 鲍德

Merge branch 'develop' into dev-鲍德

parents 053cfcfc c39e94b4
...@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -63,6 +64,9 @@ public class RiskPlanAppController extends BaseController { ...@@ -63,6 +64,9 @@ public class RiskPlanAppController extends BaseController {
@Resource @Resource
private ISysDictDataService dictDataService; private ISysDictDataService dictDataService;
@Resource
private IRiskPlanUserBuildingService riskPlanUserBuildingService;
/** /**
* 服务器地址 * 服务器地址
*/ */
...@@ -126,31 +130,101 @@ public class RiskPlanAppController extends BaseController { ...@@ -126,31 +130,101 @@ public class RiskPlanAppController extends BaseController {
*/ */
@GetMapping("/create/list") @GetMapping("/create/list")
public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByCreateUser(String status) { public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByCreateUser(String status) {
List<RiskPlanStatusType> statusList; List<RiskPlanStatusType> statusList = new ArrayList<>();
String state; String state = "";
if ("running".equals(status)) { if ("wait".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.WAIT_START, RiskPlanStatusType.RUNNING); statusList = Arrays.asList(RiskPlanStatusType.CREATE_TASK,RiskPlanStatusType.WAIT_START);
state = "待执行"; state = "待执行";
} else { } else if ("running".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.WAIT_FINISH, RiskPlanStatusType.FINISH statusList = Arrays.asList(RiskPlanStatusType.RUNNING,RiskPlanStatusType.WAIT_RETURN);
, RiskPlanStatusType.WAIT_ADJUST, RiskPlanStatusType.REVOKE); state = "执行中";
} else if ("finish".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.WAIT_LEADER_APPROVE,RiskPlanStatusType.WAIT_APPROVE
,RiskPlanStatusType.PROJECT_REPORT,RiskPlanStatusType.FINISH);
state = "已执行"; state = "已执行";
} }
List<RiskPlanAppListDto> list = riskPlanService.getRiskPlanAppListDtoList(statusList, getUserId(), null); List<RiskPlanAppListDto> list = riskPlanService.getRiskPlanAppListDtoList(statusList,getUserId(),null ,null);
String finalState = state;
list.forEach(dto -> {
dto.setState(finalState);
});
return R.ok(list);
}
/**
* 任务执行情况列表
*
* @param status 状态 wait 待评估,running 执行中,finish 已完成
* @real_return {@link R<List<RiskPlanAppListDto>>}
*/
@GetMapping("/allocation/list")
public R<List<RiskPlanAppListDto>> getAllocationRiskPlanAppListDtoListByCreateUser(String status) {
List<RiskPlanStatusType> statusList = new ArrayList<>();
String state = "";
if ("wait".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.CREATE_TASK,RiskPlanStatusType.WAIT_START);
state = "待评估";
} else if ("running".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.RUNNING,RiskPlanStatusType.WAIT_RETURN);
state = "执行中";
} else if ("finish".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.WAIT_LEADER_APPROVE,RiskPlanStatusType.WAIT_APPROVE
,RiskPlanStatusType.PROJECT_REPORT,RiskPlanStatusType.FINISH);
state = "已完成";
}
List<RiskPlanAppListDto> list = riskPlanService.getRiskPlanAppListDtoList(statusList, getUserId(),null,null);
String finalState = state;
list.forEach(dto -> { list.forEach(dto -> {
dto.setState(state); Long finishNumber = riskPlanUserBuildingService.countStatusByPlanIdAndStatus(dto.getId(), "finish");
Long totalNumber = riskPlanUserBuildingService.countStatusByPlanIdAndStatus(dto.getId(), null);
dto.setState(finalState+"("+finishNumber+"/"+totalNumber+")");
}); });
return R.ok(list); return R.ok(list);
} }
/**
* 任务执行情况-楼栋详情列表
*
* @param planId 任务id
* @real_return {@link R<List<RiskPlanAppListDto>>}
*/
@GetMapping("/allocation/building/list/{planId}")
public R<List<RiskPlanAppBuildingListDto>> getRiskPlanAppBuildingListDtoByPlanId(@PathVariable Long planId) {
return R.ok(riskPlanUserBuildingService.getRiskPlanAppBuildingListDtoByPlanId(planId));
}
/** /**
* 风险评估列表 * 风险评估列表
* *
* @param status 状态 running 待执行,finish 已执行,return 已退回
* @real_return {@link R<List<RiskPlanAppListDto>>} * @real_return {@link R<List<RiskPlanAppListDto>>}
*/ */
@GetMapping("/task/list") @GetMapping("/task/list")
public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByLeaderUser() { public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByLeaderUser(String status) {
return R.ok(riskPlanService.getRiskPlanAppListDtoList(null, null, getUserId())); List<RiskPlanStatusType> statusList = new ArrayList<>();
String state = "";
if ("running".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.CREATE_TASK,RiskPlanStatusType.WAIT_START,RiskPlanStatusType.RUNNING);
state = "待执行";
} else if ("finish".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.WAIT_LEADER_APPROVE,RiskPlanStatusType.WAIT_APPROVE
,RiskPlanStatusType.PROJECT_REPORT,RiskPlanStatusType.FINISH);
state = "已执行";
} else if ("return".equals(status)) {
statusList = Arrays.asList(RiskPlanStatusType.WAIT_RETURN);
state = "已退回";
}
List<RiskPlanAppListDto> list = riskPlanService.getRiskPlanAppListDtoList(statusList, null, null,getUserId());
String finalState = state;
list.forEach(dto -> {
Long finishNumber = riskPlanUserBuildingService.countStatusByPlanIdAndStatus(dto.getId(), "finish");
Long totalNumber = riskPlanUserBuildingService.countStatusByPlanIdAndStatus(dto.getId(), null);
dto.setState(finalState+"("+finishNumber+"/"+totalNumber+")");
});
return R.ok(list);
} }
/** /**
...@@ -160,8 +234,8 @@ public class RiskPlanAppController extends BaseController { ...@@ -160,8 +234,8 @@ public class RiskPlanAppController extends BaseController {
* @real_return {@link R<RiskPlanAppDetailsDto>} * @real_return {@link R<RiskPlanAppDetailsDto>}
*/ */
@GetMapping("/details/{planId}") @GetMapping("/details/{planId}")
public R<RiskPlanAppDetailsDto> getRiskPlanAppDetailsDtoByPlanId(@PathVariable("planId") Long planId) { public R<RiskPlanAppDetailsDto> getRiskPlanAppDetailsDtoByPlanId(@PathVariable("planId") Long planId,Long buildingId) {
return R.ok(riskPlanService.getRiskPlanAppDetailsDtoByPlanId(planId)); return R.ok(riskPlanService.getRiskPlanAppDetailsDtoByPlanId(planId,buildingId));
} }
/** /**
...@@ -343,16 +417,28 @@ public class RiskPlanAppController extends BaseController { ...@@ -343,16 +417,28 @@ public class RiskPlanAppController extends BaseController {
return R.ok(riskPlanExistingListService.saveRiskExistingListSaveDto(saveDto)); return R.ok(riskPlanExistingListService.saveRiskExistingListSaveDto(saveDto));
} }
/**
* 风险评估-任务完成
*
* @param planId 任务id
* @param buildingId 楼宇id
* @real_return {@link R<Integer>}
*/
@PostMapping("/submit/{planId}/{buildingId}")
public R<Integer> submitByPlanIdAndBuildingId(@PathVariable Long planId, @PathVariable Long buildingId) {
return R.ok(riskPlanUserBuildingService.submitByPlanIdAndBuildingId(planId,buildingId, getUserId()));
}
/** /**
* 根据风险任务审批列表 * 根据风险任务审批列表
* *
* @param status 状态 running 待审批 completed 已审批
* @real_return {@link R<List<RiskPlanAppExistingListDto>>} * @real_return {@link R<List<RiskPlanAppExistingListDto>>}
*/ */
@GetMapping("/approve/list") @GetMapping("/approve/list")
public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByApproveUser() { public R<List<RiskPlanAppListDto>> getRiskPlanAppListDtoListByApproveUser(String status) {
List<RiskPlanStatusType> statusList = Arrays.asList(RiskPlanStatusType.WAIT_FINISH); return R.ok(riskPlanService.getRiskPlanAppListDtoListByApproveUser(getUserId(),status));
return R.ok(riskPlanService.getRiskPlanAppListDtoList(statusList, null, getUserId()));
} }
...@@ -363,6 +449,7 @@ public class RiskPlanAppController extends BaseController { ...@@ -363,6 +449,7 @@ public class RiskPlanAppController extends BaseController {
*/ */
@PostMapping("/approve") @PostMapping("/approve")
public R<Integer> approveAppApproveDto(@RequestBody RiskPlanAppApproveDto appApproveDto) { public R<Integer> approveAppApproveDto(@RequestBody RiskPlanAppApproveDto appApproveDto) {
appApproveDto.setUserId(getUserId());
return R.ok(riskPlanService.approveAppApproveDto(appApproveDto)); return R.ok(riskPlanService.approveAppApproveDto(appApproveDto));
} }
......
package com.censoft.censoftrongtong.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 计划人员与楼宇关系表 risk_plan_user_building
*
* @author ruoyi
* @date 2023-07-05
*/
@Data
@TableName("risk_plan_user_building")
public class RiskPlanUserBuilding {
@TableId(type = IdType.AUTO)
private Long id;
/**
* 计划id
*/
@TableField("plan_id")
private Long planId;
/**
* 楼宇id
*/
@TableField("building_id")
private Long buildingId;
/**
* 处理人员ids
*/
@TableField("user_ids")
private String userIds;
/**
* 发起时间
*/
@TableField("start_time")
private Date startTime;
/**
* 结束时间
*/
@TableField("finish_time")
private Date finishTime;
/**
* 执行状态
*/
@TableField("status")
private String status;
/**
* 提交人id
*/
@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; ...@@ -3,6 +3,8 @@ package com.censoft.censoftrongtong.domain.dto;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @author 周昊 * @author 周昊
...@@ -19,4 +21,10 @@ public class RiskPlanAppApproveDto { ...@@ -19,4 +21,10 @@ public class RiskPlanAppApproveDto {
/** 经办意见 */ /** 经办意见 */
private String taskOpinion; private String taskOpinion;
/** 操作人id */
private Long userId;
/** 楼宇经办意见 */
private List<RiskPlanAppApproveBuildingDto> buildingDtos;
} }
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 RiskPlanAppBuildingListDto {
/** 计划id */
private Long id;
/** 楼宇id */
private Long buildingId;
/** 楼宇名称 */
private String buildingName;
/** 创建人员 */
private String createUserName;
/** 处理人员 */
private String workUserNames;
/** 发起时间 */
private Date startTime;
/** 状态 */
private String status;
}
...@@ -2,56 +2,82 @@ package com.censoft.censoftrongtong.enums; ...@@ -2,56 +2,82 @@ package com.censoft.censoftrongtong.enums;
public enum RiskPlanStatusType { public enum RiskPlanStatusType {
/** /**
* 任务发起 * 创建任务计划
*/ */
WAIT_START("WAIT_START"), CREATE_TASK("CREATE_TASK","创建任务计划"),
/** /**
* 风险评估 * 任务待执行
*/ */
RUNNING("RUNNING"), WAIT_START("WAIT_START","任务待执行"),
/** /**
* 评估审核 * 执行任务
*/ */
WAIT_FINISH("WAIT_APPROVE"), RUNNING("RUNNING","执行任务"),
/**
* 验收任务
*/
WAIT_LEADER_APPROVE("WAIT_LEADER_APPROVE","验收任务"),
/**
* 审批任务
*/
WAIT_APPROVE("WAIT_APPROVE","审批任务"),
/**
* 项目评估报告
*/
PROJECT_REPORT("PROJECT_REPORT","项目评估报告"),
/** /**
* 项目完成 * 项目完成
*/ */
FINISH("FINISH"), FINISH("FINISH","项目完成"),
/** /**
* 已退回 * 已退回
*/ */
WAIT_ADJUST("WAIT_RETURN"), WAIT_RETURN("WAIT_RETURN","已退回"),
/** /**
* 已撤销 * 已撤销
*/ */
REVOKE("REVOKE"); REVOKE("REVOKE","已撤销");
private final String status; private final String status;
RiskPlanStatusType(String status) { private final String title;
RiskPlanStatusType(String status, String title) {
this.status = status; this.status = status;
this.title = title;
} }
public String getStatus() { public String getStatus() {
return status; return status;
} }
public String getTitle() {
return title;
}
public static String getTitleByStatus(String status){ public static RiskPlanStatusType getTitleByStatus(String status){
switch (status){ switch (status){
case "CREATE_TASK":
return CREATE_TASK;
case "WAIT_START": case "WAIT_START":
return "任务发起"; return WAIT_START;
case "RUNNING": case "RUNNING":
return "风险评估"; return RUNNING;
case "WAIT_LEADER_APPROVE":
return WAIT_LEADER_APPROVE;
case "WAIT_APPROVE": case "WAIT_APPROVE":
return "评估审核"; return WAIT_APPROVE;
case "PROJECT_REPORT":
return PROJECT_REPORT;
case "FINISH": case "FINISH":
return "项目完成"; return FINISH;
case "WAIT_RETURN": case "WAIT_RETURN":
return "已退回"; return WAIT_RETURN;
case "REVOKE": case "REVOKE":
return "已撤销"; return REVOKE;
} }
return ""; return null;
} }
} }
...@@ -2,8 +2,10 @@ package com.censoft.censoftrongtong.mapper; ...@@ -2,8 +2,10 @@ package com.censoft.censoftrongtong.mapper;
import com.censoft.censoftrongtong.domain.RiskPlan; import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.dto.*; import com.censoft.censoftrongtong.domain.dto.*;
import com.censoft.censoftrongtong.enums.RiskPlanStatusType;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
...@@ -63,13 +65,16 @@ public interface RiskPlanMapper ...@@ -63,13 +65,16 @@ public interface RiskPlanMapper
public int deleteRiskPlanByIds(Long[] ids); public int deleteRiskPlanByIds(Long[] ids);
List<RiskPlanAppListDto> getRiskPlanAppListDtoList(@Param("statusStringList") List<String> statusStringList List<RiskPlanAppListDto> getRiskPlanAppListDtoList(@Param("statusStringList") List<String> statusStringList
, @Param("createUserId") Long createUserId, @Param("leaderUserId") Long leaderUserId); , @Param("createUserId") Long createUserId, @Param("leaderUserId") Long leaderUserId, @Param("workUserId") Long workUserId);
RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(@Param("planId") Long planId); RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(@Param("planId") Long planId);
RiskPlanAppTaskDetailsDto getRiskPlanAppTaskDetailsDtoByPlanId(@Param("planId") Long planId); RiskPlanAppTaskDetailsDto getRiskPlanAppTaskDetailsDtoByPlanId(@Param("planId") Long planId);
List<RiskPlanAppRiskBuildingListDto> getRiskBuildingListDtoByPlanId(@Param("planId") Long planId); List<RiskPlanAppRiskBuildingListDto> getRiskBuildingListDtoByPlanId(@Param("planId") Long planId
,@Param("buildingId") Long buildingId);
List<RiskPlanAppApproveListDto> getApproveListDtoByPlanId(@Param("planId") Long planId); List<RiskPlanAppApproveListDto> getApproveListDtoByPlanId(@Param("planId") Long planId);
List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(@Param("userId") Long userId,@Param("status") String status);
} }
package com.censoft.censoftrongtong.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.censoft.censoftrongtong.domain.LawList;
import com.censoft.censoftrongtong.domain.LedgerRoom;
import com.censoft.censoftrongtong.domain.RiskPlanUserBuilding;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppBuildingListDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 计划人员与楼宇关系表Mapper接口
*
* @author ruoyi
* @date 2023-06-26
*/
public interface RiskPlanUserBuildingMapper extends BaseMapper<RiskPlanUserBuilding> {
List<RiskPlanAppBuildingListDto> getRiskPlanAppBuildingListDtoByPlanId(@Param("planId") Long planId);
}
...@@ -67,13 +67,16 @@ public interface IRiskPlanService ...@@ -67,13 +67,16 @@ public interface IRiskPlanService
int saveRiskPlan(RiskPlan riskPlan); int saveRiskPlan(RiskPlan riskPlan);
List<RiskPlanAppListDto> getRiskPlanAppListDtoList(List<RiskPlanStatusType> statusList, Long createUserId, Long leaderUserId); List<RiskPlanAppListDto> getRiskPlanAppListDtoList(List<RiskPlanStatusType> statusList, Long createUserId
, Long leaderUserId, Long workUserId);
RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(Long planId); RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(Long planId,Long buildingId);
List<LedgerBuilding> getBuildingListByPlanId(Long planId); List<LedgerBuilding> getBuildingListByPlanId(Long planId);
int approveAppApproveDto(RiskPlanAppApproveDto appApproveDto); int approveAppApproveDto(RiskPlanAppApproveDto appApproveDto);
int revokeByPlanId(Long planId, Long userId); int revokeByPlanId(Long planId, Long userId);
List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(Long userId,String status);
} }
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;
/**
* 基Service接口
*
* @author ruoyi
* @date 2023-06-26
*/
public interface IRiskPlanUserBuildingService extends IService<RiskPlanUserBuilding> {
Long countStatusByPlanIdAndStatus(Long planId, String status);
List<RiskPlanAppBuildingListDto> getRiskPlanAppBuildingListDtoByPlanId(Long planId);
Integer submitByPlanIdAndBuildingId(Long planId, Long buildingId, Long userId);
void updateByRiskPlanAppApproveBuildingDto(Long planId,Long userId, List<RiskPlanAppApproveBuildingDto> buildingDtos);
}
...@@ -7,6 +7,7 @@ import java.util.stream.Collectors; ...@@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import com.censoft.censoftrongtong.domain.LedgerBuilding; import com.censoft.censoftrongtong.domain.LedgerBuilding;
import com.censoft.censoftrongtong.domain.RiskPlan; import com.censoft.censoftrongtong.domain.RiskPlan;
import com.censoft.censoftrongtong.domain.RiskPlanTask; import com.censoft.censoftrongtong.domain.RiskPlanTask;
import com.censoft.censoftrongtong.domain.RiskPlanUserBuilding;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppApproveDto; import com.censoft.censoftrongtong.domain.dto.RiskPlanAppApproveDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppDetailsDto; import com.censoft.censoftrongtong.domain.dto.RiskPlanAppDetailsDto;
import com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto; import com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto;
...@@ -15,6 +16,7 @@ import com.censoft.censoftrongtong.mapper.RiskPlanMapper; ...@@ -15,6 +16,7 @@ import com.censoft.censoftrongtong.mapper.RiskPlanMapper;
import com.censoft.censoftrongtong.service.ILedgerBuildingService; import com.censoft.censoftrongtong.service.ILedgerBuildingService;
import com.censoft.censoftrongtong.service.IRiskPlanService; import com.censoft.censoftrongtong.service.IRiskPlanService;
import com.censoft.censoftrongtong.service.IRiskPlanTaskService; import com.censoft.censoftrongtong.service.IRiskPlanTaskService;
import com.censoft.censoftrongtong.service.IRiskPlanUserBuildingService;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -38,6 +40,9 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -38,6 +40,9 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
@Resource @Resource
private ILedgerBuildingService ledgerBuildingService; private ILedgerBuildingService ledgerBuildingService;
@Resource
private IRiskPlanUserBuildingService riskPlanUserBuildingService;
/** /**
* 查询风险计划 * 查询风险计划
* *
...@@ -110,14 +115,14 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -110,14 +115,14 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
public int saveRiskPlan(RiskPlan riskPlan) { public int saveRiskPlan(RiskPlan riskPlan) {
//插入主表 //插入主表
riskPlan.setNo(getNo()); riskPlan.setNo(getNo());
riskPlan.setStatus(RiskPlanStatusType.RUNNING.getStatus()); riskPlan.setStatus(RiskPlanStatusType.WAIT_START.getStatus());
int i = insertRiskPlan(riskPlan); int i = insertRiskPlan(riskPlan);
//插入任务表 已完成任务发起 //插入任务表 已完成任务发起
RiskPlanTask riskPlanTask = new RiskPlanTask(); RiskPlanTask riskPlanTask = new RiskPlanTask();
riskPlanTask.setPlanId(riskPlan.getId()); riskPlanTask.setPlanId(riskPlan.getId());
riskPlanTask.setTaskKey(RiskPlanStatusType.WAIT_START.getStatus()); riskPlanTask.setTaskKey(RiskPlanStatusType.CREATE_TASK.getStatus());
riskPlanTask.setTaskName(RiskPlanStatusType.getTitleByStatus(RiskPlanStatusType.WAIT_START.getStatus())); riskPlanTask.setTaskName(RiskPlanStatusType.CREATE_TASK.getTitle());
riskPlanTask.setStatus("completed"); riskPlanTask.setStatus("completed");
riskPlanTask.setStartTime(new Date()); riskPlanTask.setStartTime(new Date());
riskPlanTask.setCompletedTime(new Date()); riskPlanTask.setCompletedTime(new Date());
...@@ -127,16 +132,30 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -127,16 +132,30 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
RiskPlanTask riskPlanTask1 = new RiskPlanTask(); RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(riskPlan.getId()); riskPlanTask1.setPlanId(riskPlan.getId());
riskPlanTask1.setApprovalUserId(riskPlan.getLeaderUserId()); riskPlanTask1.setApprovalUserId(riskPlan.getLeaderUserId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.RUNNING.getStatus()); riskPlanTask1.setTaskKey(RiskPlanStatusType.WAIT_START.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.getTitleByStatus(RiskPlanStatusType.RUNNING.getStatus())); riskPlanTask1.setTaskName(RiskPlanStatusType.WAIT_START.getTitle());
riskPlanTask1.setStatus("running"); riskPlanTask1.setStatus("running");
riskPlanTask1.setStartTime(new Date()); riskPlanTask1.setStartTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1); riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
//插入计划人员与楼宇关系表
List<RiskPlanUserBuilding> list = Arrays.stream(riskPlan.getBuildingIds().split(",")).map(buildingId -> {
RiskPlanUserBuilding riskPlanUserBuilding = new RiskPlanUserBuilding();
riskPlanUserBuilding.setPlanId(riskPlan.getId());
riskPlanUserBuilding.setBuildingId(Long.valueOf(buildingId));
riskPlanUserBuilding.setUserIds(riskPlan.getWorkUserIds());
riskPlanUserBuilding.setStartTime(new Date());
riskPlanUserBuilding.setStatus("wait");
return riskPlanUserBuilding;
}).collect(Collectors.toList());
riskPlanUserBuildingService.saveBatch(list);
return i; return i;
} }
@Override @Override
public List<RiskPlanAppListDto> getRiskPlanAppListDtoList(List<RiskPlanStatusType> statusList, Long createUserId, Long leaderUserId) { public List<RiskPlanAppListDto> getRiskPlanAppListDtoList(List<RiskPlanStatusType> statusList, Long createUserId
, Long leaderUserId, Long workUserId) {
List<String> statusStringList = null; List<String> statusStringList = null;
//枚举类转化为数据库存的状态值 //枚举类转化为数据库存的状态值
if (statusList != null) { if (statusList != null) {
...@@ -146,24 +165,30 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -146,24 +165,30 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
} }
//查询并把状态值转化为状态名称 //查询并把状态值转化为状态名称
return riskPlanMapper.getRiskPlanAppListDtoList(statusStringList, createUserId, leaderUserId).stream().map(dto -> { return riskPlanMapper.getRiskPlanAppListDtoList(statusStringList, createUserId, leaderUserId, workUserId)
String status = RiskPlanStatusType.getTitleByStatus(dto.getStatus()); .stream()
.map(dto -> {
String status = RiskPlanStatusType.getTitleByStatus(dto.getStatus()).getTitle();
dto.setStatus(status); dto.setStatus(status);
return dto; return dto;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
@Override @Override
public RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(Long planId) { public RiskPlanAppDetailsDto getRiskPlanAppDetailsDtoByPlanId(Long planId,Long buildingId) {
//获取任务单基础信息 //获取任务单基础信息
RiskPlanAppDetailsDto dto = riskPlanMapper.getRiskPlanAppDetailsDtoByPlanId(planId); RiskPlanAppDetailsDto dto = riskPlanMapper.getRiskPlanAppDetailsDtoByPlanId(planId);
dto.setStatus(RiskPlanStatusType.getTitleByStatus(dto.getStatusKey())); dto.setStatus(RiskPlanStatusType.getTitleByStatus(dto.getStatusKey()).getTitle());
//获取任务详情 //获取任务详情
dto.setDetailsDto(riskPlanMapper.getRiskPlanAppTaskDetailsDtoByPlanId(planId)); dto.setDetailsDto(riskPlanMapper.getRiskPlanAppTaskDetailsDtoByPlanId(planId));
if (buildingId != null) {
LedgerBuilding ledgerBuilding = ledgerBuildingService.selectLedgerBuildingById(buildingId);
dto.getDetailsDto().setBuildingNames(ledgerBuilding.getName());
}
//风险清单 //风险清单
dto.setRiskBuildingListDtos(riskPlanMapper.getRiskBuildingListDtoByPlanId(planId)); dto.setRiskBuildingListDtos(riskPlanMapper.getRiskBuildingListDtoByPlanId(planId,buildingId));
//审批记录 //审批记录
dto.setApproveListDtos(riskPlanMapper.getApproveListDtoByPlanId(planId)); dto.setApproveListDtos(riskPlanMapper.getApproveListDtoByPlanId(planId));
...@@ -182,6 +207,7 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -182,6 +207,7 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
@Override @Override
public int approveAppApproveDto(RiskPlanAppApproveDto appApproveDto) { public int approveAppApproveDto(RiskPlanAppApproveDto appApproveDto) {
//获取最新的task //获取最新的task
RiskPlanTask lastRiskPlanTask = riskPlanTaskService.getLastRiskPlanTaskByPlanId(appApproveDto.getId()); RiskPlanTask lastRiskPlanTask = riskPlanTaskService.getLastRiskPlanTaskByPlanId(appApproveDto.getId());
lastRiskPlanTask.setTaskResult(appApproveDto.getTaskResult()); lastRiskPlanTask.setTaskResult(appApproveDto.getTaskResult());
...@@ -198,20 +224,62 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -198,20 +224,62 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
//插入任务表 已退回风险评估 //插入任务表 已退回风险评估
RiskPlanTask riskPlanTask1 = new RiskPlanTask(); RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId()); riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setApprovalUserId(riskPlan.getLeaderUserId()); riskPlanTask1.setTaskKey(RiskPlanStatusType.WAIT_RETURN.getStatus());
riskPlanTask1.setTaskKey(RiskPlanStatusType.WAIT_ADJUST.getStatus()); riskPlanTask1.setTaskName(RiskPlanStatusType.WAIT_RETURN.getTitle());
riskPlanTask1.setTaskName(RiskPlanStatusType.getTitleByStatus(RiskPlanStatusType.WAIT_ADJUST.getStatus()));
riskPlanTask1.setStatus("running"); riskPlanTask1.setStatus("running");
riskPlanTask1.setStartTime(new Date()); riskPlanTask1.setStartTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1); riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
//修改计划状态 //修改计划状态
riskPlan.setStatus(RiskPlanStatusType.WAIT_ADJUST.getStatus()); riskPlan.setStatus(RiskPlanStatusType.WAIT_RETURN.getStatus());
updateRiskPlan(riskPlan); updateRiskPlan(riskPlan);
//如果是组长审批 同时退回修改 楼宇单子的状态
riskPlanUserBuildingService.updateByRiskPlanAppApproveBuildingDto(appApproveDto.getId(),appApproveDto.getUserId()
,appApproveDto.getBuildingDtos());
} else { } else {
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()); riskPlan.setStatus(RiskPlanStatusType.FINISH.getStatus());
updateRiskPlan(riskPlan); 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; return 1;
} }
...@@ -231,7 +299,7 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -231,7 +299,7 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
RiskPlanTask riskPlanTask1 = new RiskPlanTask(); RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId()); riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.REVOKE.getStatus()); riskPlanTask1.setTaskKey(RiskPlanStatusType.REVOKE.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.getTitleByStatus(RiskPlanStatusType.REVOKE.getStatus())); riskPlanTask1.setTaskName(RiskPlanStatusType.REVOKE.getTitle());
riskPlanTask1.setStatus("completed"); riskPlanTask1.setStatus("completed");
riskPlanTask1.setStartTime(new Date()); riskPlanTask1.setStartTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1); riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
...@@ -243,6 +311,18 @@ public class RiskPlanServiceImpl implements IRiskPlanService { ...@@ -243,6 +311,18 @@ public class RiskPlanServiceImpl implements IRiskPlanService {
return 1; return 1;
} }
@Override
public List<RiskPlanAppListDto> getRiskPlanAppListDtoListByApproveUser(Long userId,String status) {
//查询并把状态值转化为状态名称
return riskPlanMapper.getRiskPlanAppListDtoListByApproveUser(userId,status)
.stream()
.map(dto -> {
String statusName = RiskPlanStatusType.getTitleByStatus(dto.getStatus()).getTitle();
dto.setStatus(statusName);
return dto;
}).collect(Collectors.toList());
}
private String getNo() { private String getNo() {
Random random = new Random(); Random random = new Random();
int randomNumber = random.nextInt(1000); // 生成0到999之间的随机数 int randomNumber = random.nextInt(1000); // 生成0到999之间的随机数
......
package com.censoft.censoftrongtong.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
import com.censoft.censoftrongtong.service.IRiskPlanService;
import com.censoft.censoftrongtong.service.IRiskPlanTaskService;
import com.censoft.censoftrongtong.service.IRiskPlanUserBuildingService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* 基础数据-楼层Service业务层处理
*
* @author ruoyi
* @date 2023-06-26
*/
@Service
public class RiskPlanUserBuildingServiceImpl
extends ServiceImpl<RiskPlanUserBuildingMapper, RiskPlanUserBuilding>
implements IRiskPlanUserBuildingService {
@Resource
private RiskPlanUserBuildingMapper riskPlanUserBuildingMapper;
@Resource
private IRiskPlanService riskPlanService;
@Resource
private IRiskPlanTaskService riskPlanTaskService;
@Override
public Long countStatusByPlanIdAndStatus(Long planId, String status) {
LambdaQueryWrapper<RiskPlanUserBuilding> wrapper = new LambdaQueryWrapper<>();
wrapper = wrapper.eq(RiskPlanUserBuilding::getPlanId, planId);
if (status != null){
wrapper = wrapper.eq(RiskPlanUserBuilding::getStatus, status);
}
return count(wrapper);
}
@Override
public List<RiskPlanAppBuildingListDto> getRiskPlanAppBuildingListDtoByPlanId(Long planId) {
return riskPlanUserBuildingMapper.getRiskPlanAppBuildingListDtoByPlanId(planId);
}
@Override
public Integer submitByPlanIdAndBuildingId(Long planId, Long buildingId, Long userId) {
//更新楼宇人员关系表状态
LambdaQueryWrapper<RiskPlanUserBuilding> wrapper = new LambdaQueryWrapper<>();
wrapper = wrapper.eq(RiskPlanUserBuilding::getPlanId, planId).eq(RiskPlanUserBuilding::getBuildingId, buildingId);
RiskPlanUserBuilding riskPlanUserBuilding = getOne(wrapper);
riskPlanUserBuilding.setStatus("finish");
riskPlanUserBuilding.setFinishTime(new Date());
riskPlanUserBuilding.setSubmitUserId(userId);
updateById(riskPlanUserBuilding);
//查看是否全部楼宇提交
LambdaQueryWrapper<RiskPlanUserBuilding> wrapper2 = new LambdaQueryWrapper<>();
wrapper2 = wrapper2.eq(RiskPlanUserBuilding::getPlanId, planId);
List<RiskPlanUserBuilding> list = list(wrapper2);
if (list.stream().allMatch(po -> po.getStatus().equals("finish"))) {
//获取最新的task
RiskPlanTask lastRiskPlanTask = riskPlanTaskService.getLastRiskPlanTaskByPlanId(planId);
lastRiskPlanTask.setStatus("completed");
lastRiskPlanTask.setCompletedTime(new Date());
riskPlanTaskService.updateRiskPlanTask(lastRiskPlanTask);
//计划
RiskPlan riskPlan = riskPlanService.selectRiskPlanById(planId);
//插入任务表 组长验收任务
RiskPlanTask riskPlanTask1 = new RiskPlanTask();
riskPlanTask1.setPlanId(lastRiskPlanTask.getPlanId());
riskPlanTask1.setApprovalUserId(riskPlan.getLeaderUserId());
riskPlanTask1.setTaskKey(RiskPlanStatusType.WAIT_LEADER_APPROVE.getStatus());
riskPlanTask1.setTaskName(RiskPlanStatusType.WAIT_LEADER_APPROVE.getTitle());
riskPlanTask1.setStatus("running");
riskPlanTask1.setStartTime(new Date());
riskPlanTaskService.insertRiskPlanTask(riskPlanTask1);
//修改计划状态
riskPlan.setStatus(RiskPlanStatusType.WAIT_LEADER_APPROVE.getStatus());
riskPlanService.updateRiskPlan(riskPlan);
}
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.setStatus("return");
planUserBuilding.setApprovalUserId(userId);
updateById(planUserBuilding);
});
}
}
...@@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectLawListVo"> <sql id="selectLawListVo">
select id, name, type, sketch, `RANGE`, normative_references, issue_date, implementation_date, del_flag, create_by, create_time, update_by, update_time from law_list select id, name, type, sketch, `range`, normative_references, issue_date, implementation_date, del_flag, create_by, create_time, update_by, update_time from law_list
</sql> </sql>
<select id="selectLawListList" parameterType="com.censoft.censoftrongtong.domain.LawList" resultMap="LawListResult"> <select id="selectLawListList" parameterType="com.censoft.censoftrongtong.domain.LawList" resultMap="LawListResult">
...@@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="type != null and type != ''"> and type = #{type}</if> <if test="type != null and type != ''"> and type = #{type}</if>
<if test="sketch != null and sketch != ''"> and sketch = #{sketch}</if> <if test="sketch != null and sketch != ''"> and sketch = #{sketch}</if>
<if test="range != null and range != ''"> and range = #{range}</if> <if test="range != null and range != ''"> and `range` = #{range}</if>
<if test="normativeReferences != null and normativeReferences != ''"> and normative_references = #{normativeReferences}</if> <if test="normativeReferences != null and normativeReferences != ''"> and normative_references = #{normativeReferences}</if>
<if test="issueDate != null "> and issue_date = #{issueDate}</if> <if test="issueDate != null "> and issue_date = #{issueDate}</if>
<if test="implementationDate != null "> and implementation_date = #{implementationDate}</if> <if test="implementationDate != null "> and implementation_date = #{implementationDate}</if>
...@@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="name != null">name,</if> <if test="name != null">name,</if>
<if test="type != null">type,</if> <if test="type != null">type,</if>
<if test="sketch != null">sketch,</if> <if test="sketch != null">sketch,</if>
<if test="range != null">range,</if> <if test="range != null">`range`,</if>
<if test="normativeReferences != null">normative_references,</if> <if test="normativeReferences != null">normative_references,</if>
<if test="issueDate != null">issue_date,</if> <if test="issueDate != null">issue_date,</if>
<if test="implementationDate != null">implementation_date,</if> <if test="implementationDate != null">implementation_date,</if>
...@@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="name != null">name = #{name},</if> <if test="name != null">name = #{name},</if>
<if test="type != null">type = #{type},</if> <if test="type != null">type = #{type},</if>
<if test="sketch != null">sketch = #{sketch},</if> <if test="sketch != null">sketch = #{sketch},</if>
<if test="range != null">range = #{range},</if> <if test="range != null">`range` = #{range},</if>
<if test="normativeReferences != null">normative_references = #{normativeReferences},</if> <if test="normativeReferences != null">normative_references = #{normativeReferences},</if>
<if test="issueDate != null">issue_date = #{issueDate},</if> <if test="issueDate != null">issue_date = #{issueDate},</if>
<if test="implementationDate != null">implementation_date = #{implementationDate},</if> <if test="implementationDate != null">implementation_date = #{implementationDate},</if>
......
...@@ -65,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -65,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where> <where>
<if test="createUserId != null"> and rp.create_user_id = #{createUserId}</if> <if test="createUserId != null"> and rp.create_user_id = #{createUserId}</if>
<if test="leaderUserId != null"> and rp.leader_user_id = #{leaderUserId}</if> <if test="leaderUserId != null"> and rp.leader_user_id = #{leaderUserId}</if>
<if test="workUserId != null"> and (find_in_set(#{workUserId},rp.work_user_ids) or rp.leader_user_id = #{workUserId}) </if>
<if test="statusStringList != null and statusStringList.size >0"> <if test="statusStringList != null and statusStringList.size >0">
and rp.`status` in and rp.`status` in
<foreach collection="statusStringList" item="status" open="(" separator="," close=")"> <foreach collection="statusStringList" item="status" open="(" separator="," close=")">
...@@ -151,6 +152,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -151,6 +152,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND lf.del_flag = '0' AND lf.del_flag = '0'
AND lr.`status` = '0' AND lr.`status` = '0'
AND lr.del_flag = '0' AND lr.del_flag = '0'
<if test="buildingId != null">
AND lb.id = #{buildingId}
</if>
GROUP BY GROUP BY
lb.id lb.id
</select> </select>
...@@ -171,6 +175,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -171,6 +175,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY ORDER BY
rpt.start_time ASC rpt.start_time ASC
</select> </select>
<select id="getRiskPlanAppListDtoListByApproveUser"
resultType="com.censoft.censoftrongtong.domain.dto.RiskPlanAppListDto">
SELECT
rp.id,
rp.`name`,
rp.start_time AS startTime,
rp.`status`,
su.nick_name AS leaderUserName
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 ((rpt.approval_user_id = #{userId} and (rpt.task_key = 'WAIT_LEADER_APPROVE' or rpt.task_key = 'WAIT_RETURN'))
or
(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>
<insert id="insertRiskPlan" parameterType="com.censoft.censoftrongtong.domain.RiskPlan" useGeneratedKeys="true" keyProperty="id"> <insert id="insertRiskPlan" parameterType="com.censoft.censoftrongtong.domain.RiskPlan" useGeneratedKeys="true" keyProperty="id">
insert into risk_plan insert into risk_plan
......
...@@ -43,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -43,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getLastRiskPlanTaskByPlanId" resultMap="RiskPlanTaskResult"> <select id="getLastRiskPlanTaskByPlanId" resultMap="RiskPlanTaskResult">
<include refid="selectRiskPlanTaskVo"/> <include refid="selectRiskPlanTaskVo"/>
where plan_id = #{id} where plan_id = #{id}
order BY start_time desc order BY start_time desc,id desc
limit 1 limit 1
</select> </select>
...@@ -81,8 +81,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -81,8 +81,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskName != null">task_name = #{taskName},</if> <if test="taskName != null">task_name = #{taskName},</if>
<if test="taskResult != null">task_result = #{taskResult},</if> <if test="taskResult != null">task_result = #{taskResult},</if>
<if test="taskOpinion != null">task_opinion = #{taskOpinion},</if> <if test="taskOpinion != null">task_opinion = #{taskOpinion},</if>
<if test="approvalDeptId != null">approval_dept_id = #{approvalDeptId},</if>
<if test="approvalRoleKey != null">approval_role_key = #{approvalRoleKey},</if>
<if test="status != null">status = #{status},</if> <if test="status != null">status = #{status},</if>
<if test="approvalUserId != null">approval_user_id = #{approvalUserId},</if> <if test="approvalUserId != null">approval_user_id = #{approvalUserId},</if>
<if test="startTime != null">start_time = #{startTime},</if> <if test="startTime != null">start_time = #{startTime},</if>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.censoft.censoftrongtong.mapper.RiskPlanUserBuildingMapper">
<select id="getRiskPlanAppBuildingListDtoByPlanId"
resultType="com.censoft.censoftrongtong.domain.dto.RiskPlanAppBuildingListDto">
SELECT
rp.id,
rpub.building_id AS buildingId,
lb.`name` AS buildingName,
( SELECT nick_name FROM sys_user WHERE user_id = rp.create_user_id ) AS createUserName,
( SELECT GROUP_CONCAT( nick_name ) FROM sys_user WHERE FIND_IN_SET( user_id, rpub.user_ids ) ) AS workUserNames,
rpub.start_time AS startTime,
rpub.`status`
FROM
risk_plan rp
LEFT JOIN risk_plan_user_building rpub ON rpub.plan_id = rp.id
LEFT JOIN ledger_building lb ON lb.id = rpub.building_id
WHERE
rp.id = #{planId}
</select>
</mapper>
\ No newline at end of file
package com.ruoyi.web.controller.app;
import com.censoft.censoftrongtong.domain.*;
import com.censoft.censoftrongtong.domain.dto.*;
import com.censoft.censoftrongtong.enums.RiskPlanStatusType;
import com.censoft.censoftrongtong.service.*;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.service.ISysUploadFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 菜单app端接口
*
* @author censoft
* @date 2023-06-27
* @module 融通项目
*/
@RestController
@RequestMapping("/app-api/menu")
public class SysMenuAppController extends BaseController {
@Autowired
private ISysMenuService menuService;
/**
* 菜单栏
*
* @param httpServletRequest
* @return
*/
@GetMapping("/getMenu")
@ResponseBody
public AjaxResult menu(HttpServletRequest httpServletRequest) {
SysMenu menu = new SysMenu();
menu.setParentId(2055L);
menu.getParams().put("userId", getUserId());
Map menus = new HashMap<>();
if (SysUser.isAdmin(getUserId())) {
menu.getParams().put("isAdmin", true);
}
List<SysMenu> title = menuService.selectMenusApp(menu);
for (int i = 0; i < title.size(); i++) {
menu.setParentId(title.get(i).getMenuId());
List<SysMenu> menus1 = menuService.selectMenusApp(menu);
menus.put(title.get(i).getMenuName(), menus1);
}
return AjaxResult.success(menus);
}
}
...@@ -19,6 +19,13 @@ public interface SysMenuMapper ...@@ -19,6 +19,13 @@ public interface SysMenuMapper
*/ */
public List<SysMenu> selectMenuList(SysMenu menu); public List<SysMenu> selectMenuList(SysMenu menu);
/**
* 查询移动端菜单
* @param menu
* @return
*/
public List<SysMenu> selectMenusApp(SysMenu menu);
/** /**
* 根据用户所有权限 * 根据用户所有权限
* *
......
...@@ -2,6 +2,7 @@ package com.ruoyi.system.service; ...@@ -2,6 +2,7 @@ package com.ruoyi.system.service;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.RouterVo;
...@@ -11,8 +12,7 @@ import com.ruoyi.system.domain.vo.RouterVo; ...@@ -11,8 +12,7 @@ import com.ruoyi.system.domain.vo.RouterVo;
* *
* @author ruoyi * @author ruoyi
*/ */
public interface ISysMenuService public interface ISysMenuService {
{
/** /**
* 根据用户查询系统菜单列表 * 根据用户查询系统菜单列表
* *
...@@ -21,6 +21,13 @@ public interface ISysMenuService ...@@ -21,6 +21,13 @@ public interface ISysMenuService
*/ */
public List<SysMenu> selectMenuList(Long userId); public List<SysMenu> selectMenuList(Long userId);
/**
* 根据用户查询移动端菜单列表
*
* @return 菜单列表
*/
public List<SysMenu> selectMenusApp(SysMenu menu);
/** /**
* 根据用户查询系统菜单列表 * 根据用户查询系统菜单列表
* *
......
...@@ -8,6 +8,7 @@ import java.util.LinkedList; ...@@ -8,6 +8,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
...@@ -31,8 +32,7 @@ import com.ruoyi.system.service.ISysMenuService; ...@@ -31,8 +32,7 @@ import com.ruoyi.system.service.ISysMenuService;
* @author ruoyi * @author ruoyi
*/ */
@Service @Service
public class SysMenuServiceImpl implements ISysMenuService public class SysMenuServiceImpl implements ISysMenuService {
{
public static final String PREMISSION_STRING = "perms[\"{0}\"]"; public static final String PREMISSION_STRING = "perms[\"{0}\"]";
@Autowired @Autowired
...@@ -51,11 +51,20 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -51,11 +51,20 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<SysMenu> selectMenuList(Long userId) public List<SysMenu> selectMenuList(Long userId) {
{
return selectMenuList(new SysMenu(), userId); return selectMenuList(new SysMenu(), userId);
} }
/**
* 查询移动端菜单
* @param menu
* @return
*/
@Override
public List<SysMenu> selectMenusApp(SysMenu menu) {
return menuMapper.selectMenusApp(menu);
}
/** /**
* 查询系统菜单列表 * 查询系统菜单列表
* *
...@@ -63,16 +72,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -63,16 +72,12 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<SysMenu> selectMenuList(SysMenu menu, Long userId) public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
{
List<SysMenu> menuList = null; List<SysMenu> menuList = null;
// 管理员显示所有菜单信息 // 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) if (SysUser.isAdmin(userId)) {
{
menuList = menuMapper.selectMenuList(menu); menuList = menuMapper.selectMenuList(menu);
} } else {
else
{
menu.getParams().put("userId", userId); menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu); menuList = menuMapper.selectMenuListByUserId(menu);
} }
...@@ -86,14 +91,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -86,14 +91,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 权限列表 * @return 权限列表
*/ */
@Override @Override
public Set<String> selectMenuPermsByUserId(Long userId) public Set<String> selectMenuPermsByUserId(Long userId) {
{
List<String> perms = menuMapper.selectMenuPermsByUserId(userId); List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
Set<String> permsSet = new HashSet<>(); Set<String> permsSet = new HashSet<>();
for (String perm : perms) for (String perm : perms) {
{ if (StringUtils.isNotEmpty(perm)) {
if (StringUtils.isNotEmpty(perm))
{
permsSet.addAll(Arrays.asList(perm.trim().split(","))); permsSet.addAll(Arrays.asList(perm.trim().split(",")));
} }
} }
...@@ -107,14 +109,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -107,14 +109,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 权限列表 * @return 权限列表
*/ */
@Override @Override
public Set<String> selectMenuPermsByRoleId(Long roleId) public Set<String> selectMenuPermsByRoleId(Long roleId) {
{
List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId); List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
Set<String> permsSet = new HashSet<>(); Set<String> permsSet = new HashSet<>();
for (String perm : perms) for (String perm : perms) {
{ if (StringUtils.isNotEmpty(perm)) {
if (StringUtils.isNotEmpty(perm))
{
permsSet.addAll(Arrays.asList(perm.trim().split(","))); permsSet.addAll(Arrays.asList(perm.trim().split(",")));
} }
} }
...@@ -128,15 +127,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -128,15 +127,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<SysMenu> selectMenuTreeByUserId(Long userId) public List<SysMenu> selectMenuTreeByUserId(Long userId) {
{
List<SysMenu> menus = null; List<SysMenu> menus = null;
if (SecurityUtils.isAdmin(userId)) if (SecurityUtils.isAdmin(userId)) {
{
menus = menuMapper.selectMenuTreeAll(); menus = menuMapper.selectMenuTreeAll();
} } else {
else
{
menus = menuMapper.selectMenuTreeByUserId(userId); menus = menuMapper.selectMenuTreeByUserId(userId);
} }
return getChildPerms(menus, 0); return getChildPerms(menus, 0);
...@@ -149,8 +144,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -149,8 +144,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 选中菜单列表 * @return 选中菜单列表
*/ */
@Override @Override
public List<Long> selectMenuListByRoleId(Long roleId) public List<Long> selectMenuListByRoleId(Long roleId) {
{
SysRole role = roleMapper.selectRoleById(roleId); SysRole role = roleMapper.selectRoleById(roleId);
return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
} }
...@@ -162,11 +156,9 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -162,11 +156,9 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 路由列表 * @return 路由列表
*/ */
@Override @Override
public List<RouterVo> buildMenus(List<SysMenu> menus) public List<RouterVo> buildMenus(List<SysMenu> menus) {
{
List<RouterVo> routers = new LinkedList<RouterVo>(); List<RouterVo> routers = new LinkedList<RouterVo>();
for (SysMenu menu : menus) for (SysMenu menu : menus) {
{
RouterVo router = new RouterVo(); RouterVo router = new RouterVo();
router.setHidden("1".equals(menu.getVisible())); router.setHidden("1".equals(menu.getVisible()));
router.setName(getRouteName(menu)); router.setName(getRouteName(menu));
...@@ -175,14 +167,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -175,14 +167,11 @@ public class SysMenuServiceImpl implements ISysMenuService
router.setQuery(menu.getQuery()); router.setQuery(menu.getQuery());
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
List<SysMenu> cMenus = menu.getChildren(); List<SysMenu> cMenus = menu.getChildren();
if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
{
router.setAlwaysShow(true); router.setAlwaysShow(true);
router.setRedirect("noRedirect"); router.setRedirect("noRedirect");
router.setChildren(buildMenus(cMenus)); router.setChildren(buildMenus(cMenus));
} } else if (isMenuFrame(menu)) {
else if (isMenuFrame(menu))
{
router.setMeta(null); router.setMeta(null);
List<RouterVo> childrenList = new ArrayList<RouterVo>(); List<RouterVo> childrenList = new ArrayList<RouterVo>();
RouterVo children = new RouterVo(); RouterVo children = new RouterVo();
...@@ -193,9 +182,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -193,9 +182,7 @@ public class SysMenuServiceImpl implements ISysMenuService
children.setQuery(menu.getQuery()); children.setQuery(menu.getQuery());
childrenList.add(children); childrenList.add(children);
router.setChildren(childrenList); router.setChildren(childrenList);
} } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
{
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
router.setPath("/"); router.setPath("/");
List<RouterVo> childrenList = new ArrayList<RouterVo>(); List<RouterVo> childrenList = new ArrayList<RouterVo>();
...@@ -220,22 +207,18 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -220,22 +207,18 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 树结构列表 * @return 树结构列表
*/ */
@Override @Override
public List<SysMenu> buildMenuTree(List<SysMenu> menus) public List<SysMenu> buildMenuTree(List<SysMenu> menus) {
{
List<SysMenu> returnList = new ArrayList<SysMenu>(); List<SysMenu> returnList = new ArrayList<SysMenu>();
List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();) for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) {
{
SysMenu menu = (SysMenu) iterator.next(); SysMenu menu = (SysMenu) iterator.next();
// 如果是顶级节点, 遍历该父节点的所有子节点 // 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(menu.getParentId())) if (!tempList.contains(menu.getParentId())) {
{
recursionFn(menus, menu); recursionFn(menus, menu);
returnList.add(menu); returnList.add(menu);
} }
} }
if (returnList.isEmpty()) if (returnList.isEmpty()) {
{
returnList = menus; returnList = menus;
} }
return returnList; return returnList;
...@@ -248,8 +231,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -248,8 +231,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 下拉树结构列表 * @return 下拉树结构列表
*/ */
@Override @Override
public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) {
{
List<SysMenu> menuTrees = buildMenuTree(menus); List<SysMenu> menuTrees = buildMenuTree(menus);
return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
} }
...@@ -261,8 +243,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -261,8 +243,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单信息 * @return 菜单信息
*/ */
@Override @Override
public SysMenu selectMenuById(Long menuId) public SysMenu selectMenuById(Long menuId) {
{
return menuMapper.selectMenuById(menuId); return menuMapper.selectMenuById(menuId);
} }
...@@ -273,8 +254,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -273,8 +254,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean hasChildByMenuId(Long menuId) public boolean hasChildByMenuId(Long menuId) {
{
int result = menuMapper.hasChildByMenuId(menuId); int result = menuMapper.hasChildByMenuId(menuId);
return result > 0; return result > 0;
} }
...@@ -286,8 +266,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -286,8 +266,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean checkMenuExistRole(Long menuId) public boolean checkMenuExistRole(Long menuId) {
{
int result = roleMenuMapper.checkMenuExistRole(menuId); int result = roleMenuMapper.checkMenuExistRole(menuId);
return result > 0; return result > 0;
} }
...@@ -299,8 +278,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -299,8 +278,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertMenu(SysMenu menu) public int insertMenu(SysMenu menu) {
{
return menuMapper.insertMenu(menu); return menuMapper.insertMenu(menu);
} }
...@@ -311,8 +289,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -311,8 +289,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateMenu(SysMenu menu) public int updateMenu(SysMenu menu) {
{
return menuMapper.updateMenu(menu); return menuMapper.updateMenu(menu);
} }
...@@ -323,8 +300,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -323,8 +300,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteMenuById(Long menuId) public int deleteMenuById(Long menuId) {
{
return menuMapper.deleteMenuById(menuId); return menuMapper.deleteMenuById(menuId);
} }
...@@ -335,12 +311,10 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -335,12 +311,10 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean checkMenuNameUnique(SysMenu menu) public boolean checkMenuNameUnique(SysMenu menu) {
{
Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) {
{
return UserConstants.NOT_UNIQUE; return UserConstants.NOT_UNIQUE;
} }
return UserConstants.UNIQUE; return UserConstants.UNIQUE;
...@@ -352,12 +326,10 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -352,12 +326,10 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 路由名称 * @return 路由名称
*/ */
public String getRouteName(SysMenu menu) public String getRouteName(SysMenu menu) {
{
String routerName = StringUtils.capitalize(menu.getPath()); String routerName = StringUtils.capitalize(menu.getPath());
// 非外链并且是一级目录(类型为目录) // 非外链并且是一级目录(类型为目录)
if (isMenuFrame(menu)) if (isMenuFrame(menu)) {
{
routerName = StringUtils.EMPTY; routerName = StringUtils.EMPTY;
} }
return routerName; return routerName;
...@@ -369,23 +341,19 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -369,23 +341,19 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 路由地址 * @return 路由地址
*/ */
public String getRouterPath(SysMenu menu) public String getRouterPath(SysMenu menu) {
{
String routerPath = menu.getPath(); String routerPath = menu.getPath();
// 内链打开外网方式 // 内链打开外网方式
if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
{
routerPath = innerLinkReplaceEach(routerPath); routerPath = innerLinkReplaceEach(routerPath);
} }
// 非外链并且是一级目录(类型为目录) // 非外链并且是一级目录(类型为目录)
if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType())
&& UserConstants.NO_FRAME.equals(menu.getIsFrame())) && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
{
routerPath = "/" + menu.getPath(); routerPath = "/" + menu.getPath();
} }
// 非外链并且是一级目录(类型为菜单) // 非外链并且是一级目录(类型为菜单)
else if (isMenuFrame(menu)) else if (isMenuFrame(menu)) {
{
routerPath = "/"; routerPath = "/";
} }
return routerPath; return routerPath;
...@@ -397,19 +365,13 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -397,19 +365,13 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 组件信息 * @return 组件信息
*/ */
public String getComponent(SysMenu menu) public String getComponent(SysMenu menu) {
{
String component = UserConstants.LAYOUT; String component = UserConstants.LAYOUT;
if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
{
component = menu.getComponent(); component = menu.getComponent();
} } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu))
{
component = UserConstants.INNER_LINK; component = UserConstants.INNER_LINK;
} } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu))
{
component = UserConstants.PARENT_VIEW; component = UserConstants.PARENT_VIEW;
} }
return component; return component;
...@@ -421,8 +383,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -421,8 +383,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 结果 * @return 结果
*/ */
public boolean isMenuFrame(SysMenu menu) public boolean isMenuFrame(SysMenu menu) {
{
return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType())
&& menu.getIsFrame().equals(UserConstants.NO_FRAME); && menu.getIsFrame().equals(UserConstants.NO_FRAME);
} }
...@@ -433,8 +394,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -433,8 +394,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 结果 * @return 结果
*/ */
public boolean isInnerLink(SysMenu menu) public boolean isInnerLink(SysMenu menu) {
{
return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
} }
...@@ -444,8 +404,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -444,8 +404,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 结果 * @return 结果
*/ */
public boolean isParentView(SysMenu menu) public boolean isParentView(SysMenu menu) {
{
return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
} }
...@@ -456,15 +415,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -456,15 +415,12 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param parentId 传入的父节点ID * @param parentId 传入的父节点ID
* @return String * @return String
*/ */
public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {
{
List<SysMenu> returnList = new ArrayList<SysMenu>(); List<SysMenu> returnList = new ArrayList<SysMenu>();
for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();) for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
{
SysMenu t = (SysMenu) iterator.next(); SysMenu t = (SysMenu) iterator.next();
// 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
if (t.getParentId() == parentId) if (t.getParentId() == parentId) {
{
recursionFn(list, t); recursionFn(list, t);
returnList.add(t); returnList.add(t);
} }
...@@ -478,15 +434,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -478,15 +434,12 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param list 分类表 * @param list 分类表
* @param t 子节点 * @param t 子节点
*/ */
private void recursionFn(List<SysMenu> list, SysMenu t) private void recursionFn(List<SysMenu> list, SysMenu t) {
{
// 得到子节点列表 // 得到子节点列表
List<SysMenu> childList = getChildList(list, t); List<SysMenu> childList = getChildList(list, t);
t.setChildren(childList); t.setChildren(childList);
for (SysMenu tChild : childList) for (SysMenu tChild : childList) {
{ if (hasChild(list, tChild)) {
if (hasChild(list, tChild))
{
recursionFn(list, tChild); recursionFn(list, tChild);
} }
} }
...@@ -495,15 +448,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -495,15 +448,12 @@ public class SysMenuServiceImpl implements ISysMenuService
/** /**
* 得到子节点列表 * 得到子节点列表
*/ */
private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) {
{
List<SysMenu> tlist = new ArrayList<SysMenu>(); List<SysMenu> tlist = new ArrayList<SysMenu>();
Iterator<SysMenu> it = list.iterator(); Iterator<SysMenu> it = list.iterator();
while (it.hasNext()) while (it.hasNext()) {
{
SysMenu n = (SysMenu) it.next(); SysMenu n = (SysMenu) it.next();
if (n.getParentId().longValue() == t.getMenuId().longValue()) if (n.getParentId().longValue() == t.getMenuId().longValue()) {
{
tlist.add(n); tlist.add(n);
} }
} }
...@@ -513,8 +463,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -513,8 +463,7 @@ public class SysMenuServiceImpl implements ISysMenuService
/** /**
* 判断是否有子节点 * 判断是否有子节点
*/ */
private boolean hasChild(List<SysMenu> list, SysMenu t) private boolean hasChild(List<SysMenu> list, SysMenu t) {
{
return getChildList(list, t).size() > 0; return getChildList(list, t).size() > 0;
} }
...@@ -523,10 +472,9 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -523,10 +472,9 @@ public class SysMenuServiceImpl implements ISysMenuService
* *
* @return 替换后的内链域名 * @return 替换后的内链域名
*/ */
public String innerLinkReplaceEach(String path) public String innerLinkReplaceEach(String path) {
{ return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."},
return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, "." }, new String[]{"", "", "", "/"});
new String[] { "", "", "", "/" });
} }
@Override @Override
......
...@@ -5,26 +5,26 @@ ...@@ -5,26 +5,26 @@
<mapper namespace="com.ruoyi.system.mapper.SysMenuMapper"> <mapper namespace="com.ruoyi.system.mapper.SysMenuMapper">
<resultMap type="SysMenu" id="SysMenuResult"> <resultMap type="SysMenu" id="SysMenuResult">
<id property="menuId" column="menu_id" /> <id property="menuId" column="menu_id"/>
<result property="menuName" column="menu_name" /> <result property="menuName" column="menu_name"/>
<result property="parentName" column="parent_name" /> <result property="parentName" column="parent_name"/>
<result property="parentId" column="parent_id" /> <result property="parentId" column="parent_id"/>
<result property="orderNum" column="order_num" /> <result property="orderNum" column="order_num"/>
<result property="path" column="path" /> <result property="path" column="path"/>
<result property="component" column="component" /> <result property="component" column="component"/>
<result property="query" column="query" /> <result property="query" column="query"/>
<result property="isFrame" column="is_frame" /> <result property="isFrame" column="is_frame"/>
<result property="isCache" column="is_cache" /> <result property="isCache" column="is_cache"/>
<result property="menuType" column="menu_type" /> <result property="menuType" column="menu_type"/>
<result property="visible" column="visible" /> <result property="visible" column="visible"/>
<result property="status" column="status" /> <result property="status" column="status"/>
<result property="perms" column="perms" /> <result property="perms" column="perms"/>
<result property="icon" column="icon" /> <result property="icon" column="icon"/>
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by"/>
<result property="remark" column="remark" /> <result property="remark" column="remark"/>
</resultMap> </resultMap>
<sql id="selectMenuVo"> <sql id="selectMenuVo">
...@@ -48,6 +48,25 @@ ...@@ -48,6 +48,25 @@
order by parent_id, order_num order by parent_id, order_num
</select> </select>
<select id="selectMenusApp" parameterType="SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status,
ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
LEFT JOIN sys_role ro on ur.role_id = ro.role_id
<where>
and m.parent_id = #{parentId}
<if test=" params.isAdmin ==null or !params.isAdmin ">
AND ro.status = 0
and ur.user_id = #{params.userId}
</if>
</where>
order by m.parent_id, m.order_num
</select>
<select id="selectMenuTreeAll" resultMap="SysMenuResult"> <select id="selectMenuTreeAll" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0 from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0
...@@ -55,7 +74,8 @@ ...@@ -55,7 +74,8 @@
</select> </select>
<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult"> <select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status,
ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id left join sys_user_role ur on rm.role_id = ur.role_id
...@@ -90,7 +110,8 @@ ...@@ -90,7 +110,8 @@
left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_role_menu rm on m.menu_id = rm.menu_id
where rm.role_id = #{roleId} where rm.role_id = #{roleId}
<if test="menuCheckStrictly"> <if test="menuCheckStrictly">
and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId}) and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id =
rm.menu_id and rm.role_id = #{roleId})
</if> </if>
order by m.parent_id, m.order_num order by m.parent_id, m.order_num
</select> </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