fix(导入拆分结果): 企标权限判断

This commit is contained in:
yjz
2023-11-01 17:46:54 +08:00
parent 616f38bf69
commit 1ebe423593
3 changed files with 82 additions and 1 deletions
@@ -66,6 +66,12 @@ public interface IDocumentSplitService {
*/
void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO);
/**
* 企标权限校验
* @param sarFileSplitInfoEO
*/
void enterpriseCheck(SarFileSplitInfoEO sarFileSplitInfoEO);
/**
* 唯一性校验
*/
@@ -27,6 +27,10 @@ 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.EnterpriseStandardAuthUser;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
@@ -37,6 +41,8 @@ import com.jero.modules.split.page.SarFileSplitMenuEOPage;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import com.jero.modules.split.service.impl.FileSpiltService;
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
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.service.ISysDictItemService;
@@ -87,6 +93,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
private final SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper;
private final ISysDictService sysDictService;
private final ISysDictItemService sysDictItemService;
private final ILawsEnterpriseStandardService lawsEnterpriseStandardService;
private final ILawsEnterpriseStandardLevelService lawsEnterpriseStandardLevelService;
private final EnterpriseStandardAuthUserService enterpriseStandardAuthUserService;
private static final String INFO_ID = "info_id";
private static final String ID = "id";
private static final String IDS = "ids";
@@ -104,7 +113,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
LawsDocumentSplitMapper lawsDocumentSplitMapper,
SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper,
ISysDictService sysDictService,
ISysDictItemService sysDictItemService) {
ISysDictItemService sysDictItemService,
ILawsEnterpriseStandardService lawsEnterpriseStandardService,
ILawsEnterpriseStandardLevelService lawsEnterpriseStandardLevelService,
EnterpriseStandardAuthUserService enterpriseStandardAuthUserService) {
this.documentSplitMapper = documentSplitMapper;
this.sarFileSplitInfoService = sarFileSplitInfoService;
this.lawsCommonMapper = lawsCommonMapper;
@@ -114,6 +126,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
this.sarFileSplitItemsValEOMapper = sarFileSplitItemsValEOMapper;
this.sysDictService = sysDictService;
this.sysDictItemService = sysDictItemService;
this.lawsEnterpriseStandardService = lawsEnterpriseStandardService;
this.lawsEnterpriseStandardLevelService = lawsEnterpriseStandardLevelService;
this.enterpriseStandardAuthUserService = enterpriseStandardAuthUserService;
}
@Value("${jero.path.exportExcelTempPath}")
@@ -257,6 +272,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override
public void add(SarFileSplitInfoEO sarFileSplitInfoEO) {
// 企标权限校验
enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验
uniqueCheck(sarFileSplitInfoEO);
// 保存文本拆分数据
@@ -273,6 +290,62 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
}
}
@Override
public void enterpriseCheck(SarFileSplitInfoEO sarFileSplitInfoEO) {
LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.getOne(
new LambdaQueryWrapper<LawsEnterpriseStandard>()
.eq(LawsEnterpriseStandard::getStandardNumber, sarFileSplitInfoEO.getSerialNumber()));
if (!Objects.isNull(lawsEnterpriseStandard)){
String id = lawsEnterpriseStandard.getId();
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()))){
// 有权限
return;
}
// 查询临时授权人员
Date date = new Date();
LambdaQueryWrapper<EnterpriseStandardAuthUser> authUserWrapper = new LambdaQueryWrapper<>();
authUserWrapper.eq(StringUtils.isNotBlank(id), 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)) {
// 有权限
return;
}
// 起草部门
if (sysUser.getDepartIds().equals(lawsEnterpriseStandard.getMainDraftingUnit())){
// 有权限
return;
}
// 无权限
noAccess();
}
}
private void noAccess() {
if(LanguageEnum.CN.equals(MessageUtils.getLanguage())) {
throw new JeroBootException("无权限!");
}else{
throw new JeroBootException("No access!");
}
}
@Override
public void editDocumentSplitDetail(Map<String, Object> parameter) {
// 查询全部字段列表
@@ -1674,6 +1674,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
@Override
public Result<?> importSplitResult(String splitFileId, String cut, SarFileSplitInfoEO sarFileSplitInfoEO) throws IOException {
// 企标权限校验
documentSplitService.enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验
documentSplitService.uniqueCheck(sarFileSplitInfoEO);