feat: 企标列表权限

This commit is contained in:
2023-09-27 17:14:52 +08:00
parent 7288b7d78a
commit df3f9c9c9b
4 changed files with 108 additions and 37 deletions
@@ -57,6 +57,8 @@ public class FieldCommon {
public static final String STR_TO_DATE_SUFFIX = "','%Y-%m-%d %H:%i:%s')"; // 格式化时间格式的后缀
// 收藏标识
public static final String COLLECTION_FLAG = "collectionFlag";
// 查看详情权限标识
public static final String DETAIL_FLAG = "detailFlag";
// 我的收藏
public static final String MY_COLLECTION = "MyCollection";
// 主键
@@ -20,6 +20,7 @@ import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectContentService;
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
import com.jero.modules.laws.standard.entity.LawsNodeRelation;
@@ -113,6 +114,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 自我注入
@Autowired
private ILawsCommonService commonService;
@Resource
private EnterpriseStandardAuthUserService esAuthUserService;
/**
* @Author: liao
@@ -151,7 +154,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 企标独有权限
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
// 是否能查看详情
this.detailFlag(infoPage.getRecords());
esAuthUserService.detailFlagSet(infoPage.getRecords());
}
// 是否收藏判断标识
collectionFlag(infoPage.getRecords());
@@ -240,40 +243,6 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
return fieldList;
}
/**
* @Author: liao
* @Date: 2023/9/11 14:49
* @Description: 是否能进入详情页判断
**/
private void detailFlag(List<Map<String, Object>> records) {
// 获取全部id集合
List<String> ids = records.stream().map(kv ->
String.valueOf(kv.get("id"))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(ids)) return;
// 获取登录用户
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查询标准收藏表
LambdaQueryWrapper<LawsStandardCollection> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LawsStandardCollection::getCollectorId, loginUser.getId());
queryWrapper.in(LawsStandardCollection::getStandardId, ids);
List<LawsStandardCollection> standardCollectionList = lawsStandardCollectionService.list(queryWrapper);
if (CollectionUtils.isEmpty(standardCollectionList)) {
records.forEach(map -> map.put(FieldCommon.COLLECTION_FLAG, false));
return;
}
List<String> standardIdList = standardCollectionList.stream()
.map(LawsStandardCollection::getStandardId).collect(Collectors.toList());
records.forEach(map -> {
if (standardIdList.contains(String.valueOf(map.get("id")))) {
map.put(FieldCommon.COLLECTION_FLAG, true);
} else {
map.put(FieldCommon.COLLECTION_FLAG, false);
}
});
}
/**
* @Author: liao
* @Date: 2023/9/11 14:49
@@ -4,6 +4,9 @@ import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
import java.util.List;
import java.util.Map;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_temp_permission(企业标准)】的数据库操作Service
@@ -12,4 +15,6 @@ import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
public interface EnterpriseStandardAuthUserService extends IService<EnterpriseStandardAuthUser> {
void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission);
void detailFlagSet(List<Map<String, Object>> records);
}
@@ -1,17 +1,33 @@
package com.jero.modules.laws.enterprise.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthUser;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthUserMapper;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
import com.jero.modules.sys.entity.LawsGrade;
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
import com.jero.modules.sys.service.ILawsGradeService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author ThinkBook
@@ -23,6 +39,18 @@ import java.util.List;
@Slf4j
public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<EnterpriseStandardAuthUserMapper, EnterpriseStandardAuthUser> implements EnterpriseStandardAuthUserService {
@Resource
private EnterpriseStandardAuthDeptService authDeptService;
@Resource
private ISysUserService sysUserService;
@Resource
private ILawsEnterpriseStandardService enterpriseStandardService;
@Resource
private ILawsEnterpriseStandardLevelService standardLevelService;
@Override
public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) {
List<EnterpriseStandardAuthUser> esAuthUsers = new ArrayList<>();
@@ -39,6 +67,73 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
}
saveBatch(esAuthUsers);
}
@Override
public void detailFlagSet(List<Map<String, Object>> records) {
SysUser currentUser = sysUserService.getById(UserUtils.getUserId());
String userId = currentUser.getId();
String deptId = currentUser.getDepartIds();
List<String> standardIds = new ArrayList<>();
records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID))));
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
.in(LawsEnterpriseStandard::getId, standardIds)
.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getId, e -> e));
// 查询临时授权人员
Date date = new Date();
LambdaQueryWrapper<EnterpriseStandardAuthUser> authUserWrapper = new LambdaQueryWrapper<>();
authUserWrapper.in(EnterpriseStandardAuthUser::getStandardId, standardIds);
authUserWrapper.eq(EnterpriseStandardAuthUser::getAuthUser, userId);
authUserWrapper.ge(EnterpriseStandardAuthUser::getAuthExpireDate, date);
List<EnterpriseStandardAuthUser> authUserList = list(authUserWrapper);
Set<String> authStandardIds = authUserList.stream().map(EnterpriseStandardAuthUser::getStandardId).collect(Collectors.toSet());
// 查询授权部门-和临时授权部门
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
authDeptWrapper.in(EnterpriseStandardAuthDept::getStandardId, standardIds);
authDeptWrapper.eq(EnterpriseStandardAuthDept::getAuthDept, deptId);
List<EnterpriseStandardAuthDept> authDeptList = authDeptService.list(authDeptWrapper);
authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date);
authDeptList.addAll(authDeptService.list(authDeptWrapper));
authStandardIds.addAll(authDeptList.stream().map(EnterpriseStandardAuthDept::getStandardId).collect(Collectors.toSet()));
// 企标级别授权的部门
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
for (Map<String, Object> map : records) {
String standardId = (String) map.get(FieldCommon.ID);
LawsEnterpriseStandard es = esMap.get(standardId);
// 等级分类
String gradeClassification = es.getGradeClassification();
// 全公司可以看
if (gradeClassification.equals("1")) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
// 企标等级分类级别可查看部门
if (gradeClassification.equals("2") || gradeClassification.equals("3")) {
if (levelDeptIds.contains(deptId)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
}
// 授权部门和临时权限
if (authStandardIds.contains(standardId)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
// 起草部门
String mainDraftDeptId = es.getMainDraftingUnit();
if (deptId.equals(mainDraftDeptId)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
map.put(FieldCommon.DETAIL_FLAG, false);
}
}
}