Merge remote-tracking branch 'origin/master'
This commit is contained in:
+62
-19
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.laws.documenttool.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -28,7 +29,9 @@ import com.jero.modules.laws.documenttool.handler.impl.UniversalImpl;
|
||||
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
|
||||
import com.jero.modules.laws.documenttool.mapper.LawsDocumentSplitMapper;
|
||||
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
|
||||
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.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
@@ -47,8 +50,10 @@ import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
|
||||
import com.jero.modules.system.entity.SysDict;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.model.DepartIdModel;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import com.jero.modules.system.service.ISysUserDepartService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.tag.entity.LawsTag;
|
||||
import com.jero.modules.tag.enums.LawsFieldTypeEnum;
|
||||
@@ -100,6 +105,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
private final ILawsEnterpriseStandardLevelService lawsEnterpriseStandardLevelService;
|
||||
private final EnterpriseStandardAuthUserService enterpriseStandardAuthUserService;
|
||||
private final ISysUserService sysUserService;
|
||||
private final EnterpriseStandardAuthDeptService enterpriseStandardAuthDeptService;
|
||||
private final ISysUserDepartService sysUserDepartService;
|
||||
private static final String INFO_ID = "info_id";
|
||||
private static final String ID = "id";
|
||||
private static final String IDS = "ids";
|
||||
@@ -121,7 +128,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
ILawsEnterpriseStandardService lawsEnterpriseStandardService,
|
||||
ILawsEnterpriseStandardLevelService lawsEnterpriseStandardLevelService,
|
||||
EnterpriseStandardAuthUserService enterpriseStandardAuthUserService,
|
||||
ISysUserService sysUserService) {
|
||||
ISysUserService sysUserService,
|
||||
EnterpriseStandardAuthDeptService enterpriseStandardAuthDeptService,
|
||||
ISysUserDepartService sysUserDepartService) {
|
||||
this.documentSplitMapper = documentSplitMapper;
|
||||
this.sarFileSplitInfoService = sarFileSplitInfoService;
|
||||
this.lawsCommonMapper = lawsCommonMapper;
|
||||
@@ -135,10 +144,14 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
this.lawsEnterpriseStandardLevelService = lawsEnterpriseStandardLevelService;
|
||||
this.enterpriseStandardAuthUserService = enterpriseStandardAuthUserService;
|
||||
this.sysUserService = sysUserService;
|
||||
this.enterpriseStandardAuthDeptService = enterpriseStandardAuthDeptService;
|
||||
this.sysUserDepartService = sysUserDepartService;
|
||||
}
|
||||
|
||||
@Value("${jero.path.exportExcelTempPath}")
|
||||
private String exportExcelTempPath;
|
||||
@Value("${draftDepartName}")
|
||||
private String draftDepartName;
|
||||
|
||||
@Override
|
||||
public IPage<DocumentSplitInfo> queryByPage(DocumentSplitInfo documentSplitInfo, Integer pageNo, Integer pageSize) {
|
||||
@@ -300,6 +313,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
|
||||
@Override
|
||||
public void enterpriseCheck(SarFileSplitInfoEO sarFileSplitInfoEO) {
|
||||
// 企标
|
||||
LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.getOne(
|
||||
new LambdaQueryWrapper<LawsEnterpriseStandard>()
|
||||
.eq(LawsEnterpriseStandard::getStandardNumber, sarFileSplitInfoEO.getSerialNumber()));
|
||||
@@ -308,44 +322,73 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
if (StringUtils.isBlank(sarFileSplitInfoEO.getStandardId())){
|
||||
sarFileSplitInfoEO.setStandardId(id);
|
||||
}
|
||||
// 登陆人信息
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// 等级
|
||||
String gradeClassification = lawsEnterpriseStandard.getGradeClassification();
|
||||
if ("2".equals(gradeClassification)){
|
||||
List<LawsEnterpriseStandardLevel> standardLevelList = lawsEnterpriseStandardLevelService.list();
|
||||
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
|
||||
if (levelDeptIds.contains(sysUser.getDepartIds())){
|
||||
// 有权限
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ("4".equals(gradeClassification)
|
||||
&& (sysUser.getDepartIds().equals(lawsEnterpriseStandard.getMainDraftingUnit()))){
|
||||
// 登陆人所在部门
|
||||
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(sysUser.getId());
|
||||
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
|
||||
List<String> departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList());
|
||||
|
||||
// 起草部门有所有企标的查看权限
|
||||
if (!departNames.isEmpty() && departNames.contains(draftDepartName)) {
|
||||
// 有权限
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询临时授权人员
|
||||
Date date = new Date();
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthUser> authUserWrapper = new LambdaQueryWrapper<>();
|
||||
authUserWrapper.eq(StringUtils.isNotBlank(id), EnterpriseStandardAuthUser::getStandardId, id);
|
||||
authUserWrapper.eq(EnterpriseStandardAuthUser::getStandardId, id);
|
||||
authUserWrapper.eq(EnterpriseStandardAuthUser::getAuthUser, sysUser.getId());
|
||||
authUserWrapper.ge(EnterpriseStandardAuthUser::getAuthExpireDate, date);
|
||||
List<EnterpriseStandardAuthUser> authUserList = enterpriseStandardAuthUserService.list(authUserWrapper);
|
||||
Set<String> authStandardIds = authUserList.stream().map(EnterpriseStandardAuthUser::getStandardId).collect(Collectors.toSet());
|
||||
if (authStandardIds.contains(id)) {
|
||||
if (!authUserList.isEmpty()){
|
||||
// 有权限
|
||||
return;
|
||||
}
|
||||
// 起草部门
|
||||
if (sysUser.getDepartIds().equals(lawsEnterpriseStandard.getMainDraftingUnit())){
|
||||
|
||||
// 查询授权部门-和临时授权部门
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
|
||||
authDeptWrapper.eq(EnterpriseStandardAuthDept::getStandardId, id);
|
||||
authDeptWrapper.in(CollUtil.isNotEmpty(departIds), EnterpriseStandardAuthDept::getAuthDept, departIds);
|
||||
List<EnterpriseStandardAuthDept> authDeptList = enterpriseStandardAuthDeptService.list(authDeptWrapper);
|
||||
if (!authDeptList.isEmpty()){
|
||||
// 有权限
|
||||
return;
|
||||
}
|
||||
authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date);
|
||||
List<EnterpriseStandardAuthDept> authDeptExpireDateList = enterpriseStandardAuthDeptService.list(authDeptWrapper);
|
||||
if (!authDeptExpireDateList.isEmpty()){
|
||||
// 有权限
|
||||
return;
|
||||
}
|
||||
|
||||
// 企标级别授权的部门
|
||||
List<LawsEnterpriseStandardLevel> standardLevelList = lawsEnterpriseStandardLevelService.list();
|
||||
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
|
||||
|
||||
if (levelCheck(lawsEnterpriseStandard, departIds, levelDeptIds)) return;
|
||||
|
||||
// 无权限
|
||||
noAccess();
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean levelCheck(LawsEnterpriseStandard lawsEnterpriseStandard, List<String> departIds, List<String> levelDeptIds) {
|
||||
// 等级
|
||||
String gradeClassification = lawsEnterpriseStandard.getGradeClassification();
|
||||
|
||||
// 全公司可以看
|
||||
if ("1".equals(gradeClassification)) {
|
||||
// 有权限
|
||||
return true;
|
||||
}
|
||||
|
||||
// 企标等级分类级别可查看部门
|
||||
return ("2".equals(gradeClassification) || "3".equals(gradeClassification))
|
||||
&& levelDeptIds.stream().anyMatch(departIds::contains);
|
||||
}
|
||||
|
||||
private void noAccess() {
|
||||
if(LanguageEnum.CN.equals(MessageUtils.getLanguage())) {
|
||||
throw new JeroBootException("无权限!");
|
||||
@@ -713,7 +756,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
// 填充说明
|
||||
Cell cell = headerRowTwo.createCell(0);
|
||||
String explain = "模版说明:\n" +
|
||||
"1. 条文号/条文标题/条文内容不能为空\n" +
|
||||
"1. 条文号必填,条文标题和条文内容非必填\n" +
|
||||
"2. 仅支持zip格式文件夹";
|
||||
|
||||
CellStyle cellStyleTwo = workbook.createCellStyle();
|
||||
|
||||
+5
-1
@@ -87,12 +87,16 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
|
||||
}
|
||||
|
||||
public List<SarFileSplitMenuEO> queryAllChildrenById(SarFileSplitMenuEO sarMenuEO) {
|
||||
List<SarFileSplitMenuEO> result = new ArrayList<>();
|
||||
SarFileSplitMenuEO sarFileSplitMenuEO = dao.selectByPrimaryKey(sarMenuEO.getId());
|
||||
SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage();
|
||||
if (Objects.isNull(sarFileSplitMenuEO)){
|
||||
return result;
|
||||
}
|
||||
page.setInfoId(sarFileSplitMenuEO.getInfoId());
|
||||
List<SarFileSplitMenuEO> listAll = dao.queryByList(page); // 查询所有目录
|
||||
|
||||
List<SarFileSplitMenuEO> result = new ArrayList<>();
|
||||
|
||||
// 递归查询 指定父节点下的所有子节点,包括父节点
|
||||
if (CollectionUtil.isNotEmpty(listAll)) {
|
||||
result.add(sarFileSplitMenuEO); // 加上父节点
|
||||
|
||||
Reference in New Issue
Block a user