Commit 97ef469a authored by 雍欢's avatar 雍欢

limitHandler 校验

parent c5ac7691
......@@ -302,7 +302,8 @@ public class FlowBroker extends BaseApplication implements TaskListener, Executi
return ActivityKind.APPROVE.equalsIgnoreCase(procUnitId);
}
/**currentGroupChiefApprovePassed
/**
* currentGroupChiefApprovePassed
* 流程通知事件处理
* <ul>
* <li>流程实例启动事件:调用<code>onStart</code>保存业务数据和历史流程实例扩展数据。</li>
......@@ -1162,18 +1163,23 @@ public class FlowBroker extends BaseApplication implements TaskListener, Executi
* @since 1.1.3
*/
private boolean isLimitHandler(String procUnitId, Integer groupId, Integer limitHandler) {
int procUnitHandlerCount = procUnitHandlerApplication.queryProcUnitHandlerIds(getBizId(), procUnitId, groupId).size();
if (procUnitHandlerCount < 2) {
if (limitHandler == null || limitHandler < 1) {
return false;
}
int procUnitHandlerCount = (int) procUnitHandlerApplication.queryProcUnitHandlers(getBizId(), procUnitId, groupId)
.stream()
.filter(handler -> CooperationModelKind.isChief(handler.getCooperationModelId()))
.count();
// 已完成的环节处理人(主审)
List<ProcUnitHandler> completedChiefProcUnitHandlers = procUnitHandlerApplication.queryCompletedProcUnitHandlers(getBizId(), procUnitId, groupId)
int completedChiefHandlerCount = (int) procUnitHandlerApplication.queryCompletedProcUnitHandlers(getBizId(), procUnitId, groupId)
.stream()
.filter(handler -> CooperationModelKind.isChief(handler.getCooperationModelId()))
.collect(Collectors.toList());
return limitHandler != null
&& limitHandler > 0
&& Objects.equals(limitHandler, completedChiefProcUnitHandlers.size());
.count();
int totalChiefHandlers = procUnitHandlerCount + completedChiefHandlerCount;
if (totalChiefHandlers < 2) {
return false;
}
return Objects.equals(limitHandler, completedChiefHandlerCount);
}
/**
......
......@@ -481,7 +481,7 @@ public class ApprovalRuleApplicationImpl extends BaseApplication implements Appr
ApprovalRuleHandlerGroup approvalRuleHandlerGroup = approvalRule.findApprovalRuleHandlerGroup(sourceApprovalRuleHandler.getGroupId());
sourceApprovalRuleHandler.fromEntity(approvalRuleHandler);
if(taskExecuteMode == null && limitHandler == null) {
if (taskExecuteMode == null && limitHandler == null) {
if (approvalRuleHandlerGroup != null) {
approvalRule.getApprovalRuleHandlerGroups().remove(approvalRuleHandlerGroup);
}
......@@ -500,11 +500,12 @@ public class ApprovalRuleApplicationImpl extends BaseApplication implements Appr
approvalRuleHandlerGroup.setTaskExecuteMode(taskExecuteMode);
}
if(limitHandler == null) {
if(approvalRuleHandlerGroup != null) {
if (limitHandler == null) {
if (approvalRuleHandlerGroup != null) {
approvalRuleHandlerGroup.setLimitHandler(null);
}
} else {
Assert.isTrue(limitHandler > 0, "最少审批人必须大于0");
if (approvalRuleHandlerGroup == null) {
approvalRuleHandlerGroup = new ApprovalRuleHandlerGroup();
approvalRule.getApprovalRuleHandlerGroups().add(approvalRuleHandlerGroup);
......
......@@ -39,7 +39,7 @@
label="任务执行模式" emptyOption="true" fieldCol="4" />
</div>
<div class="hg-form-row">
<x:inputC name="limitHandler" label="最少审批人数" spinner="true" mask="nnn" fieldCol="4" />
<x:inputC name="limitHandler" label="最少审批人数" spinner="true" mask="nnn" dataOptions="min:1" fieldCol="4" />
<x:inputC name="groupId" spinner="true" mask="nnn"
dataOptions="min:1" required="true" label="审批分组" fieldCol="4" />
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment