fix(导入拆分结果): 企标权限判断
This commit is contained in:
+6
@@ -66,6 +66,12 @@ public interface IDocumentSplitService {
|
||||
*/
|
||||
void saveDocumentSplitInfo(SarFileSplitInfoEO sarFileSplitInfoEO);
|
||||
|
||||
/**
|
||||
* 企标权限校验
|
||||
* @param sarFileSplitInfoEO
|
||||
*/
|
||||
void enterpriseCheck(SarFileSplitInfoEO sarFileSplitInfoEO);
|
||||
|
||||
/**
|
||||
* 唯一性校验
|
||||
*/
|
||||
|
||||
+74
-1
@@ -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) {
|
||||
// 查询全部字段列表
|
||||
|
||||
+2
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user