Skip to content

Commit 8525503

Browse files
committed
添加lowerBoundEqual、upperBoundEqual和BoundEqual判断
1 parent 6efdf17 commit 8525503

File tree

1 file changed

+39
-8
lines changed

1 file changed

+39
-8
lines changed

workflow-engine/flow/node.go

+39-8
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,12 @@ type NodeCondition struct {
9797
ParamLabel string `json:"paramLabel,omitempty"`
9898
IsEmpty bool `json:"isEmpty,omitempty"`
9999
// 类型为range
100-
LowerBound string `json:"lowerBound,omitempty"`
101-
UpperBound string `json:"upperBound,omitempty"`
102-
Unit string `json:"unit,omitempty"`
100+
LowerBound string `json:"lowerBound,omitempty"`
101+
LowerBoundEqual string `json:"lowerBoundEqual,omitempty"`
102+
UpperBoundEqual string `json:"upperBoundEqual,omitempty"`
103+
UpperBound string `json:"upperBound,omitempty"`
104+
BoundEqual string `json:"boundEqual,omitempty"`
105+
Unit string `json:"unit,omitempty"`
103106
// 类型为 value
104107
ParamValues []string `json:"paramValues,omitempty"`
105108
OriValue []string `json:"oriValue,omitempty"`
@@ -122,6 +125,7 @@ type NodeInfo struct {
122125
Aprover string `json:"approver"`
123126
AproverType string `json:"aproverType"`
124127
MemberCount int8 `json:"memberCount"`
128+
Level int8 `json:"level"`
125129
ActType string `json:"actType"`
126130
}
127131

@@ -395,16 +399,26 @@ func checkConditions(cond *NodeCondition, value string) (bool, error) {
395399
if err != nil {
396400
return false, err
397401
}
398-
if len(cond.LowerBound) == 0 && len(cond.UpperBound) == 0 {
402+
if len(cond.LowerBound) == 0 && len(cond.UpperBound) == 0 && len(cond.LowerBoundEqual) == 0 && len(cond.UpperBoundEqual) == 0 && len(cond.BoundEqual) == 0 {
399403
return false, errors.New("条件【" + cond.Type + "】的上限或者下限值不能全为空")
400404
}
401-
// 判断下限,lowerBound包含等于
405+
// 判断下限,lowerBound
402406
if len(cond.LowerBound) > 0 {
403407
low, err := strconv.Atoi(cond.LowerBound)
404408
if err != nil {
405409
return false, err
406410
}
407-
if val < low {
411+
if val <= low {
412+
// fmt.Printf("val:%d小于lowerBound:%d\n", val, low)
413+
return false, nil
414+
}
415+
}
416+
if len(cond.LowerBoundEqual) > 0 {
417+
le, err := strconv.Atoi(cond.LowerBoundEqual)
418+
if err != nil {
419+
return false, err
420+
}
421+
if val < le {
408422
// fmt.Printf("val:%d小于lowerBound:%d\n", val, low)
409423
return false, nil
410424
}
@@ -415,8 +429,25 @@ func checkConditions(cond *NodeCondition, value string) (bool, error) {
415429
if err != nil {
416430
return false, err
417431
}
418-
if val > upper {
419-
// fmt.Printf("val:%d大于upperBound:%d\n", val, upper)
432+
if val >= upper {
433+
return false, nil
434+
}
435+
}
436+
if len(cond.UpperBoundEqual) > 0 {
437+
ge, err := strconv.Atoi(cond.UpperBoundEqual)
438+
if err != nil {
439+
return false, err
440+
}
441+
if val > ge {
442+
return false, nil
443+
}
444+
}
445+
if len(cond.BoundEqual) > 0 {
446+
equal, err := strconv.Atoi(cond.BoundEqual)
447+
if err != nil {
448+
return false, err
449+
}
450+
if val != equal {
420451
return false, nil
421452
}
422453
}

0 commit comments

Comments
 (0)