Browse Source

增加上级指导处室枚举类,以及对应权限过滤数据

master
gjh 4 days ago
parent
commit
e3889d5d53
  1. 1
      easy-sys/src/main/java/com/easy/admin/auth/dao/mapping/SysRoleMapper.xml
  2. 69
      huzhou/src/main/java/com/easy/admin/common/enums/SuperLeaderEnum.java
  3. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectassessmentMapper.xml
  4. 30
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectassessmentService.java
  5. 31
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouSubProjectinfoServiceImpl.java
  6. 5
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectassessmentOV.java

1
easy-sys/src/main/java/com/easy/admin/auth/dao/mapping/SysRoleMapper.xml

@ -42,6 +42,7 @@
left join sys_user_role sur on t.id = sur.role_id
where sur.user_id = #{userId}
</select>
<select id="selectAllRoleCodes" resultType="java.lang.String">
select code from sys_role t
</select>

69
huzhou/src/main/java/com/easy/admin/common/enums/SuperLeaderEnum.java

@ -0,0 +1,69 @@
package com.easy.admin.common.enums;
/**
* 上级指导处室 枚举
* 编码 -> 处室名称 映射
*/
public enum SuperLeaderEnum {
YI_ZHENG("1", "医政处"),
FU_YOU("2", "妇幼处"),
KE_JIAO("3", "科教处"),
TI_GAI("4", "体改处"),
GUI_XIN("5", "规信处"),
ZHONG_YI("6", "中医处"),
CAI_SHEN("7", "财审处"),
JI_GUAN_DANG_WEI("8", "机关党委"),
ZU_ZHI_REN_SHI("9", "组织人事处"),
OTHER("10", "其他");
private final String code;
private final String name;
SuperLeaderEnum(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
/**
* 根据编码获取处室名称
* @param code 处室编码
* @return 对应的处室名称未找到返回 "未知处室"
*/
public static String getNameByCode(String code) {
for (SuperLeaderEnum item : values()) {
if (item.code.equals(code)) {
return item.name;
}
}
return "未知处室";
}
/**
* 判断编码是否有效
* @param code 待验证的编码
* @return 是否有效
*/
public static boolean isValid(String code) {
if (code == null) return false;
for (SuperLeaderEnum item : values()) {
if (item.code.equals(code)) {
return true;
}
}
return false;
}
@Override
public String toString() {
return name; // 例如:SuperLeaderEnum.YI_ZHENG.toString() 返回 "医政处"
}
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectassessmentMapper.xml

@ -38,7 +38,7 @@
<select id="getProjectassessmentPageList" resultType="com.easy.admin.modules.huzhou.vo.HuzhouProjectassessmentOV" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
SELECT h.id,h.description,u.id as projectId,u.project_name,u.admin_division,u.duty_workplace,u.workplace_properties,u.reform_name,u.super_leader,
SELECT h.id,h.description,u.id as projectId,u.project_contacts,u.project_name,u.admin_division,u.duty_workplace,u.workplace_properties,u.reform_name,u.super_leader,
h.pscores
from huzhou_sub_projectinfo u inner join
huzhou_projectassessment h on h.project_id=u.id

30
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectassessmentService.java

@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysRoleService;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.common.enums.SuperLeaderEnum;
import com.easy.admin.common.util.CommonUtils;
import com.easy.admin.modules.huzhou.dao.HuzhouPerformanMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouPerformancescoreMapper;
@ -21,6 +23,7 @@ import com.easy.admin.modules.huzhou.vo.HuzhouProjectassessmentOV;
import com.easy.admin.modules.huzhou.vo.ProjectInfoAuthSelect;
import com.easy.admin.modules.huzhou.vo.SubmitRatingVo;
import com.easy.admin.modules.huzhou.vo.SubprojectSelectVo;
import com.easy.admin.util.ShiroUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -37,6 +40,7 @@ import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Transactional
@ -54,13 +58,39 @@ public class HuzhouProjectassessmentService extends ServiceImpl<HuzhouProjectass
@Autowired
private IHuzhouSubProjectinfoService subProjectInfoService;
@Autowired
private SysRoleService roleService;
@Value(value = "${jeecg.path.upload}")
private String uploadpath;
@Override
public Page<HuzhouProjectassessmentOV> getProjectassessmentPageList(Page page, HuzhouProjectinfo projectinfo) {
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo);
SysUser currentUser = ShiroUtil.getCurrentUser();
String userId = currentUser.getId();
List<String> codeList = roleService.selectRoleCodeByUserId(userId);
Page<HuzhouProjectassessmentOV> projectassessmentPageList = projectassessmentMapper.getProjectassessmentPageList(page, projectInfoAuthSelect);
List<HuzhouProjectassessmentOV> records = projectassessmentPageList.getRecords();
if (codeList.contains("sys:admin")) {
return projectassessmentPageList;
} else if (codeList.contains("projectContact")) {
// 项目联系人
records = records.stream()
.filter(x -> x.getProjectContacts().equals(userId))
.collect(Collectors.toList());
projectassessmentPageList.setRecords(records);
} else {
// 任务牵头处室
records = records.stream()
.filter(x -> codeList.contains(SuperLeaderEnum.getNameByCode(x.getSuperLeader())))
.collect(Collectors.toList());
projectassessmentPageList.setRecords(records);
}
return projectassessmentPageList;
}

31
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouSubProjectinfoServiceImpl.java

@ -2,15 +2,21 @@ package com.easy.admin.modules.huzhou.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysRoleService;
import com.easy.admin.common.constant.CommonConstant;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.common.enums.SuperLeaderEnum;
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfoMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouSubProjectinfoMapper;
import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.modules.huzhou.vo.HuzhouPlaninfoOV;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.modules.huzhou.vo.SubprojectSelectVo;
import com.easy.admin.util.ShiroUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -46,7 +52,7 @@ public class HuzhouSubProjectinfoServiceImpl extends ServiceImpl<HuzhouSubProjec
private HuzhouPlaninfoMapper planinfoMapper;
@Autowired
private IHuzhouProcessinfoService processinfoService;
private SysRoleService roleService;
private static final Pattern PATTERN_PREFIX_1 = Pattern.compile("^1");
@Override
@ -186,11 +192,28 @@ public class HuzhouSubProjectinfoServiceImpl extends ServiceImpl<HuzhouSubProjec
@Override
public List<SubprojectSelectVo> getSubProjectNames() {
SysUser currentUser = ShiroUtil.getCurrentUser();
String userId = currentUser.getId();
List<String> codeList = roleService.selectRoleCodeByUserId(userId);
//sys:admin
List<SubprojectSelectVo> rs = new ArrayList<>();
List<HuzhouSubProjectinfo> subProjectInfos = subProjectinfoMapper.selectList(null);
for (HuzhouSubProjectinfo subProjectInfo : subProjectInfos) {
SubprojectSelectVo addVo = new SubprojectSelectVo(subProjectInfo.getProjectName(), subProjectInfo.getId());
rs.add(addVo);
if (codeList.contains("sys:admin")) {
rs = subProjectInfos.stream()
.map(x -> new SubprojectSelectVo(x.getProjectName(), x.getId()))
.collect(Collectors.toList());
} else if (codeList.contains("projectContact")) {
// 项目联系人
rs = subProjectInfos.stream()
.filter(x -> x.getProjectContacts().equals(userId))
.map(x -> new SubprojectSelectVo(x.getProjectName(), x.getId()))
.collect(Collectors.toList());
} else {
// 任务牵头处室
rs = subProjectInfos.stream()
.filter(x -> codeList.contains(SuperLeaderEnum.getNameByCode(x.getSuperLeader())))
.map(x -> new SubprojectSelectVo(x.getProjectName(), x.getId()))
.collect(Collectors.toList());
}
return rs.size() > 0 ? rs : null;
}

5
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectassessmentOV.java

@ -43,4 +43,9 @@ public class HuzhouProjectassessmentOV {
* 描述
*/
private String description;
/**
* 项目联系人
*/
private String projectContacts;
}

Loading…
Cancel
Save