15 changed files with 2335 additions and 27 deletions
File diff suppressed because it is too large
@ -0,0 +1,151 @@ |
|||
package workflowengine |
|||
|
|||
import ( |
|||
"key_performance_indicators/overall/publicmethod" |
|||
|
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
/* |
|||
* |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-03-06 13:35:25 |
|||
@ 功能: 判断是否显示(指定审批节点自选)选项及可选节点 |
|||
@ 参数 |
|||
|
|||
# |
|||
|
|||
@ 返回值 |
|||
|
|||
# |
|||
|
|||
@ 方法原型 |
|||
|
|||
# |
|||
*/ |
|||
func (a *ApiMethod) JudgeOptionalNode(c *gin.Context) { |
|||
var receivedValue PublicChildNode |
|||
c.ShouldBindJSON(&receivedValue) |
|||
var alc outAllNodeCont |
|||
alc.sendAllNode(receivedValue) |
|||
publicmethod.Result(0, alc, c) |
|||
} |
|||
|
|||
// 递归输出所有节点
|
|||
func (o *outAllNodeCont) sendAllNode(val PublicChildNode) { |
|||
var cont NodePublicStruct |
|||
cont.NodeName = val.NodeName |
|||
cont.NodeNumber = val.NodeNumber |
|||
cont.Type = val.Type |
|||
cont.FromNode = val.FromNode |
|||
cont.GotoNode = val.GotoNode |
|||
if publicmethod.IsInTrue[string](val.NodeNumber, o.AllNumber) == false { |
|||
o.AllCont = append(o.AllCont, cont) |
|||
o.AllNumber = append(o.AllNumber, val.NodeNumber) |
|||
} |
|||
if val.ChildNode != nil { |
|||
o.sendAllNode(*val.ChildNode) |
|||
} |
|||
if val.ConditionNodes != nil && len(*val.ConditionNodes) > 0 { |
|||
for _, v := range *val.ConditionNodes { |
|||
o.sendAllNode(v) |
|||
} |
|||
} |
|||
} |
|||
|
|||
/* |
|||
* |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-03-06 14:53:49 |
|||
@ 功能: 获取所有父级审批节点 |
|||
@ 参数 |
|||
|
|||
# |
|||
|
|||
@ 返回值 |
|||
|
|||
# |
|||
|
|||
@ 方法原型 |
|||
|
|||
# |
|||
*/ |
|||
func (a *ApiMethod) GetAllParentNode(c *gin.Context) { |
|||
var receivedValue JudgePrintNode |
|||
err := c.ShouldBindJSON(&receivedValue) |
|||
if err != nil { |
|||
publicmethod.Result(100, err, c) |
|||
return |
|||
} |
|||
if receivedValue.Id == "" { |
|||
publicmethod.Result(101, err, c) |
|||
return |
|||
} |
|||
var sendCont OutputPrintNode |
|||
if len(receivedValue.AllCont) < 1 { |
|||
sendCont.Total = 0 |
|||
publicmethod.Result(0, sendCont, c) |
|||
return |
|||
} |
|||
var outCont outAllNodeCont |
|||
outCont.SeekFromNodeCont(receivedValue.Id, receivedValue.AllCont) |
|||
sendCont.AllCont = outCont.AllCont |
|||
sendCont.Total = len(outCont.AllCont) |
|||
publicmethod.Result(0, sendCont, c) |
|||
} |
|||
|
|||
/* |
|||
* |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-03-07 08:35:59 |
|||
@ 功能: 递归查找所有上级审批点 |
|||
@ 参数 |
|||
|
|||
#parentNumber 来源节点编号 |
|||
#allListCont 所有可操作节点 |
|||
|
|||
@ 返回值 |
|||
|
|||
#outAllNodeCont 结果集 |
|||
|
|||
@ 方法原型 |
|||
|
|||
#func (o *outAllNodeCont) SeekFromNodeCont(parentNumber string, allListCont []NodePublicStruct) |
|||
*/ |
|||
func (o *outAllNodeCont) SeekFromNodeCont(parentNumber string, allListCont []NodePublicStruct) { |
|||
for _, v := range allListCont { |
|||
if v.NodeNumber == parentNumber { |
|||
if v.Type == 1 { |
|||
if publicmethod.IsInTrue[string](v.NodeNumber, o.AllNumber) == false { |
|||
o.AllCont = append(o.AllCont, v) |
|||
o.AllNumber = append(o.AllNumber, v.NodeNumber) |
|||
} |
|||
} |
|||
if v.FromNode != "" { |
|||
o.SeekFromNodeCont(v.FromNode, allListCont) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
/* |
|||
* |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-03-08 16:00:58 |
|||
@ 功能: 判断条件 |
|||
@ 参数 |
|||
|
|||
# |
|||
|
|||
@ 返回值 |
|||
|
|||
# |
|||
|
|||
@ 方法原型 |
|||
|
|||
# |
|||
*/ |
|||
func (a *ApiMethod) JudgingCondition(c *gin.Context) { |
|||
var sendListCont []BranchingCondition |
|||
publicmethod.Result(0, sendListCont, c) |
|||
} |
|||
Loading…
Reference in new issue