feat: 权限申请流程结束后自动赋予临时权限

This commit is contained in:
2024-04-15 10:15:29 +08:00
parent d0e0ccd1b3
commit 1fe776134a
2 changed files with 30 additions and 33 deletions
@@ -21,9 +21,13 @@ import com.jero.modules.activiti.process.espermissionapply.entity.ProcessEsPermi
import com.jero.modules.activiti.process.espermissionapply.service.EsPermissionApplyFlowService;
import com.jero.modules.activiti.process.espermissionapply.service.IProcessEsPermissionApplyService;
import com.jero.modules.activiti.process.espermissionapply.vo.EsPermissionApplyFlowVO;
import com.jero.modules.activiti.process.espermissionapply.vo.ProcessEsPermissionApplyVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RuntimeService;
@@ -74,6 +78,9 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
@Resource
private TaskService taskService;
@Resource
private EnterpriseStandardAuthUserService enterpriseStandardAuthUserService;
@Override
public void flowStart(EsPermissionApplyFlowVO esPermissionApplyFlowVO) {
// 流程信息
@@ -127,9 +134,9 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
private void handleBusinessData(EsPermissionApplyFlowVO esPermissionApplyFlowVO) {
ProcessEsPermissionApply processEsPermissionApply = esPermissionApplyFlowVO.getProcessEsPermissionApply();
if (StringUtils.isNotBlank(processEsPermissionApply.getId())){
if (StringUtils.isNotBlank(processEsPermissionApply.getId())) {
processEsPermissionApplyService.updateById(processEsPermissionApply);
}else {
} else {
processEsPermissionApplyService.save(processEsPermissionApply);
}
}
@@ -138,7 +145,7 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
Map<String, Object> stringObjectHashMap;
stringObjectHashMap = map.entrySet().stream().map(v -> {
if (v.getValue() instanceof List) {
List<String> list = (List<String>)v.getValue();
List<String> list = (List<String>) v.getValue();
v.setValue(String.join(",", list));
}
return v;
@@ -183,12 +190,12 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
.eq(ProcessDraft::getUserId, loginUser.getId())
.and(qw -> qw.ne(ProcessDraft::getSaveSource, "3")
.or().isNull(ProcessDraft::getSaveSource)));
if (!processDraftList.isEmpty()){
if (!processDraftList.isEmpty()) {
String id = "";
if(Objects.isNull(processAll)){
if (Objects.isNull(processAll)) {
processAll = new ProcessAll();
id = String.valueOf(SnowflakeUtils.snowflake());
}else {
} else {
id = processAll.getId();
}
// 存在草稿
@@ -196,22 +203,22 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
// 属性拷贝
BeanUtils.copyProperties(processDraft, processAll);
processAll.setId(id);
if (StringUtils.isNotBlank(processDraft.getHandleFile())){
if (StringUtils.isNotBlank(processDraft.getHandleFile())) {
processApprovalRecord.setCommitFile(processDraft.getHandleFile());
}
if (StringUtils.isNotBlank(processDraft.getHandleText())){
if (StringUtils.isNotBlank(processDraft.getHandleText())) {
processApprovalRecord.setCommitText(processDraft.getHandleText());
}
if (!Objects.isNull(processDraft.getProcessDueDate())){
if (!Objects.isNull(processDraft.getProcessDueDate())) {
processAll.setDueTime(processDraft.getProcessDueDate());
}
if (StringUtils.isNotBlank(processDraft.getProcessDescription())){
if (StringUtils.isNotBlank(processDraft.getProcessDescription())) {
processAll.setPrcMes(processDraft.getProcessDescription());
}
if (StringUtils.isNotBlank(processDraft.getInfoJsonStr())){
if (StringUtils.isNotBlank(processDraft.getInfoJsonStr())) {
esPermissionApplyFlowVO.setInfoJsonStr(processDraft.getInfoJsonStr());
}
}else {
} else {
// 不存在草稿
processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getUserId, loginUser.getId())
@@ -253,7 +260,7 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
.set(ProcessApprovalRecord::getEndTime, new Date()));
Task task = taskService.createTaskQuery().taskId(processAll.getTaskId()).singleResult();
if (task!= null) {
if (task != null) {
// 完成任务
taskService.complete(task.getId(), map);
// 处理业务表数据
@@ -265,18 +272,16 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
.set(ProcessApprovalRecord::getCommitFlag, processApprovalRecord.getCommitFlag()));
// 判断是否是最后一个节点
if (isLastNode(processAll.getProcessInstanceId())
&& map.containsKey("pass") && (boolean) map.get("pass")){
&& map.containsKey("pass") && (boolean) map.get("pass")) {
// 临时权限设置
/**
* ProcessEsPermissionApplyVO processEsPermissionApplyVO = processEsPermissionApplyService.queryByProjectId(processAll.getProjectId());
* List<LawsEnterpriseStandard> lawsEnterpriseStandardList = processEsPermissionApplyVO.getLawsEnterpriseStandardList();
* List<String> idList = lawsEnterpriseStandardList.stream().map(LawsEnterpriseStandard::getId).collect(Collectors.toList());
* LawsStandardTempPermission lawsStandardTempPermission = new LawsStandardTempPermission();
* lawsStandardTempPermission.setStandardIds(String.join(",", idList));
* lawsStandardTempPermission.setUserIds(processEsPermissionApplyVO.getUserId());
* lawsStandardTempPermission.setAuthDate(processEsPermissionApplyVO.getExpirationDate());
* enterpriseStandardAuthUserService.saveTempPermissionTwo(lawsStandardTempPermission);
*/
ProcessEsPermissionApplyVO processEsPermissionApplyVO = processEsPermissionApplyService.queryByProjectId(processAll.getProjectId());
List<LawsEnterpriseStandard> lawsEnterpriseStandardList = processEsPermissionApplyVO.getLawsEnterpriseStandardList();
List<String> idList = lawsEnterpriseStandardList.stream().map(LawsEnterpriseStandard::getId).collect(Collectors.toList());
LawsStandardTempPermission lawsStandardTempPermission = new LawsStandardTempPermission();
lawsStandardTempPermission.setStandardIds(String.join(",", idList));
lawsStandardTempPermission.setUserIds(processEsPermissionApplyVO.getUserId());
lawsStandardTempPermission.setAuthDate(processEsPermissionApplyVO.getExpirationDate());
enterpriseStandardAuthUserService.saveTempPermissionTwo(lawsStandardTempPermission);
}
}
}
@@ -142,15 +142,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
EnterpriseStandardAuthUser enterpriseStandardAuthUser = new EnterpriseStandardAuthUser();
enterpriseStandardAuthUser.setAuthUser(userId);
enterpriseStandardAuthUser.setStandardId(standardId);
if (lawsStandardTempPermission.getAuthDate() != null) {
Date authDate = lawsStandardTempPermission.getAuthDate();
// 对authDate加一天
Calendar c = Calendar.getInstance();
c.setTime(authDate);
c.add(Calendar.DATE, 1);
authDate = c.getTime();
enterpriseStandardAuthUser.setAuthExpireDate(authDate);
}
enterpriseStandardAuthUser.setAuthExpireDate(lawsStandardTempPermission.getAuthDate());
esAuthUsers.add(enterpriseStandardAuthUser);
}
}