|
|
|
@@ -6,6 +6,7 @@ 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.common.util.MessageUtils;
|
|
|
|
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
|
|
|
|
import com.jero.modules.laws.common.constant.ResultCommon;
|
|
|
|
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
|
|
|
@@ -68,6 +69,14 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) {
|
|
|
|
|
List<String> standardIdList = lawsStandardTempPermission.getStandardIdList();
|
|
|
|
|
for (String id : standardIdList) {
|
|
|
|
|
if (!this.hasESAuth(UserUtils.getUserId(), Collections.singletonList(id))) {
|
|
|
|
|
LawsEnterpriseStandard es = enterpriseStandardService.getById(id);
|
|
|
|
|
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.YOU_HAVE_NOT_DATA_AUTH, es.getStandardNumber()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<EnterpriseStandardAuthUser> esAuthUsers = new ArrayList<>();
|
|
|
|
|
for (String standardId : lawsStandardTempPermission.getStandardIdList()) {
|
|
|
|
|
for (String userId : lawsStandardTempPermission.getUserIdList()) {
|
|
|
|
@@ -152,6 +161,82 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean hasESAuth(String userId, List<String> standardIds) {
|
|
|
|
|
List<Map<String, Object>> records = new ArrayList<>();
|
|
|
|
|
for (String id : standardIds) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put(FieldCommon.ID, id);
|
|
|
|
|
records.add(map);
|
|
|
|
|
}
|
|
|
|
|
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId);
|
|
|
|
|
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
|
|
|
|
|
List<String> departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
|
|
|
|
|
.in(CollUtil.isNotEmpty(standardIds), 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(CollUtil.isNotEmpty(standardIds), 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(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthDept::getStandardId, standardIds);
|
|
|
|
|
authDeptWrapper.in(CollUtil.isNotEmpty(departIds), EnterpriseStandardAuthDept::getAuthDept, departIds);
|
|
|
|
|
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());
|
|
|
|
|
|
|
|
|
|
// 起草部门有所有企标的查看权限
|
|
|
|
|
if (!departNames.isEmpty() && departNames.contains(draftDepartName)) {
|
|
|
|
|
// 全部设置为有权限
|
|
|
|
|
records.forEach(kv -> kv.put(FieldCommon.DETAIL_FLAG, true));
|
|
|
|
|
}
|
|
|
|
|
for (Map<String, Object> map : records) {
|
|
|
|
|
String standardId = (String) map.get(FieldCommon.ID);
|
|
|
|
|
LawsEnterpriseStandard es = esMap.get(standardId);
|
|
|
|
|
// 授权部门和临时权限
|
|
|
|
|
if (authStandardIds.contains(standardId)) {
|
|
|
|
|
map.put(FieldCommon.DETAIL_FLAG, true);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
// 等级分类
|
|
|
|
|
String gradeClassification = es.getGradeClassification();
|
|
|
|
|
// 全公司可以看
|
|
|
|
|
if (gradeClassification.equals("1")) {
|
|
|
|
|
map.put(FieldCommon.DETAIL_FLAG, true);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
// 企标等级分类级别可查看部门
|
|
|
|
|
if (gradeClassification.equals("2") || gradeClassification.equals("3") || gradeClassification.equals("4")) {
|
|
|
|
|
if (levelDeptIds.stream().anyMatch(departIds::contains)) {
|
|
|
|
|
map.put(FieldCommon.DETAIL_FLAG, true);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
map.put(FieldCommon.DETAIL_FLAG, false);
|
|
|
|
|
}
|
|
|
|
|
// 遍历map
|
|
|
|
|
for (Map<String, Object> map : records) {
|
|
|
|
|
if (!(boolean) map.get(FieldCommon.DETAIL_FLAG)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void editFlagSet(List<Map<String, Object>> records) {
|
|
|
|
|
// 只有创建人和管理员才有维护的权限
|
|
|
|
|