审核按钮权限控制

master
pengqiang 2021-11-23 17:32:08 +08:00
parent f0c7c99541
commit 32f8b20d91
5 changed files with 19 additions and 7 deletions

View File

@ -458,7 +458,7 @@ public class AccountService {
return new ArrayList<>(); return new ArrayList<>();
} }
String sql = "select u.id as id from sys_user_role ur left join sys_user u on u.id=ur.user_id where ur.role_id in (?)"; String sql = "select u.id as id from sys_user_role ur left join sys_user u on u.id=ur.user_id where ur.role_id in (?)";
String ids = roleIds.stream().collect(Collectors.joining()); String ids = String.join("", roleIds);
List<Record> records = pagination.find(sql, ids); List<Record> records = pagination.find(sql, ids);
if (records == null || records.isEmpty()) { if (records == null || records.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();
@ -466,7 +466,10 @@ public class AccountService {
List<String> userIds = new ArrayList<>(roleIds.size()); List<String> userIds = new ArrayList<>(roleIds.size());
for (Record record : records) { for (Record record : records) {
userIds.add(record.getInt("id") + ""); Integer id = record.getInt("id");
if (id != null) {
userIds.add(id.toString());
}
} }
return userIds; return userIds;
} }

View File

@ -1,6 +1,8 @@
package cn.palmte.work.service; package cn.palmte.work.service;
import cn.palmte.work.config.activiti.ActConstant;
import cn.palmte.work.model.ActTaskDef;
import cn.palmte.work.model.Admin; import cn.palmte.work.model.Admin;
import cn.palmte.work.model.AdminRepository; import cn.palmte.work.model.AdminRepository;
import cn.palmte.work.utils.ActUtil; import cn.palmte.work.utils.ActUtil;
@ -55,8 +57,9 @@ public class ActListenerService {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(procInsId).singleResult(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(procInsId).singleResult();
logger.info("addCandidateUsers : {}, taskName:{}, hasProcIns:{}", candidateUsers, delegateTask.getName(), processInstance != null); logger.info("addCandidateUsers : {}, taskName:{}, hasProcIns:{}", candidateUsers, delegateTask.getName(), processInstance != null);
if (actUtil.isProjectProcessIns(processInstance)) { if (actUtil.isProjectProcessIns(processInstance)) {
updateProjectApprover(candidateUsers, processInstance); updateProjectApprover(candidateUsers, processInstance, procDefId, taskDefKey);
} }
delegateTask.addCandidateUsers(candidateUsers); delegateTask.addCandidateUsers(candidateUsers);
@ -87,13 +90,15 @@ public class ActListenerService {
* @param candidateUsers * @param candidateUsers
* @param processInstance * @param processInstance
*/ */
private void updateProjectApprover(List<String> candidateUsers, ProcessInstance processInstance) { private void updateProjectApprover(List<String> candidateUsers, ProcessInstance processInstance, String procDefId, String taskDefKey) {
String businessKey = processInstance.getBusinessKey(); String businessKey = processInstance.getBusinessKey();
logger.info("businessKey : {}", businessKey); logger.info("businessKey : {}", businessKey);
ActTaskDef actTaskDef = actTaskDefService.findFirstByProcDefIdAndTaskKey(procDefId, taskDefKey);
try { try {
int adminId = 0; int adminId = 0;
if (!candidateUsers.isEmpty()) { if (!candidateUsers.isEmpty() && actTaskDef!=null && actTaskDef.getTaskIndex() != ActConstant.TASK_INDEX_FIRST_USER_TASK) {
//回退到发起节点 审批人设置为空
for (String id : candidateUsers) { for (String id : candidateUsers) {
Admin one = adminRepository.findOne(Integer.parseInt(id)); Admin one = adminRepository.findOne(Integer.parseInt(id));
if (!one.isDeleted() && one.getEnabled() == 1) { if (!one.isDeleted() && one.getEnabled() == 1) {
@ -103,6 +108,7 @@ public class ActListenerService {
} }
} }
} }
projectInstanceService.updateApprover(Integer.parseInt(businessKey), adminId); projectInstanceService.updateApprover(Integer.parseInt(businessKey), adminId);
} catch (Exception e) { } catch (Exception e) {
logger.error("", e); logger.error("", e);

View File

@ -204,6 +204,9 @@ public class ActUtil {
for (IdentityLink identityLink : identityLinkList) { for (IdentityLink identityLink : identityLinkList) {
if ("assignee".equals(identityLink.getType()) || "candidate".equals(identityLink.getType())) { if ("assignee".equals(identityLink.getType()) || "candidate".equals(identityLink.getType())) {
String assigneeUserId = identityLink.getUserId(); String assigneeUserId = identityLink.getUserId();
if (StrKit.isBlank(assigneeUserId) || "null".equals(assigneeUserId)) {
continue;
}
namesBuilder.append(accountService.getNameById(Integer.parseInt(assigneeUserId))); namesBuilder.append(accountService.getNameById(Integer.parseInt(assigneeUserId)));
namesBuilder.append(","); namesBuilder.append(",");
} }

View File

@ -1872,7 +1872,7 @@
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);"> <button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">
返回上一级 返回上一级
</button> </button>
<#if project.creatorId!=project.approveId && adminId==project.approveId> <#if adminId==project.approveId>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveFinal">审核</button> <button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveFinal">审核</button>
</#if> </#if>
</div> </div>

View File

@ -271,7 +271,7 @@
</button>--> </button>-->
<#if list.creatorId!=list.approveId && adminId==list.approveId> <#if adminId==list.approveId>
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/approve?listFrom=list&id=${list.id}'"><span onclick="location.href='${base}/project/approve?listFrom=list&id=${list.id}'"><span