|
@@ -8,6 +8,8 @@ import (
|
|
|
"eta_gn/eta_api/models/knowledge_approve/response"
|
|
|
"eta_gn/eta_api/utils"
|
|
|
"fmt"
|
|
|
+ "sort"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -27,14 +29,46 @@ func GetKnowledgeResourceApproveFlowList(condition string, pars []interface{}, s
|
|
|
msg = "获取审批流程列表失败"
|
|
|
return
|
|
|
}
|
|
|
- items = toKnowledgeResourceApproveFlowItem(flowList)
|
|
|
+ obj := new(knowledge.KnowledgeClassify)
|
|
|
+ classifyList, err := obj.GetAllClassify(knowledge.KnowledgeResourceTypeOpinion)
|
|
|
+ if err != nil {
|
|
|
+ msg = "获取审批流程列表失败"
|
|
|
+ err = fmt.Errorf("获取分类列表失败,%+v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sort.Slice(classifyList, func(i, j int) bool {
|
|
|
+ if classifyList[i].Level != classifyList[j].Level {
|
|
|
+ return classifyList[i].Level < classifyList[j].Level
|
|
|
+ }
|
|
|
+ return classifyList[i].ClassifyId < classifyList[j].ClassifyId
|
|
|
+ })
|
|
|
+ classifyMap := make(map[int]*knowledge.KnowledgeClassify)
|
|
|
+ for _, classify := range classifyList {
|
|
|
+ classifyMap[classify.ClassifyId] = classify
|
|
|
+ }
|
|
|
+ classifyPathMap := make(map[int]map[int]string)
|
|
|
+ for _, classify := range classifyList {
|
|
|
+ if _, ok := classifyPathMap[classify.ClassifyId]; !ok {
|
|
|
+ classifyPathMap[classify.ClassifyId] = make(map[int]string)
|
|
|
+ }
|
|
|
+ currClassify := classify
|
|
|
+ for i := classify.Level; i > 0; i-- {
|
|
|
+ classifyPathMap[currClassify.ClassifyId][currClassify.Level] = currClassify.ClassifyName
|
|
|
+ if currClassify.ParentId == 0 {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ currClassify = classifyMap[currClassify.ParentId]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ items = toKnowledgeResourceApproveFlowItem(flowList, classifyPathMap)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// SaveKnowledgeResourceApproveFlow 保存审批流
|
|
|
func SaveKnowledgeResourceApproveFlow(flow *request.KnowledgeResourceApproveFlowSaveReq) (ok bool, msg string, err error) {
|
|
|
obj := new(knowledge.KnowledgeClassify)
|
|
|
- classifyInfo, err := obj.GetClassifyById(flow.ClassifyId)
|
|
|
+ _, err = obj.GetClassifyById(flow.ClassifyId)
|
|
|
if err != nil {
|
|
|
if utils.IsErrNoRow(err) {
|
|
|
msg = "保存审批流失败, 分类不存在"
|
|
@@ -57,12 +91,11 @@ func SaveKnowledgeResourceApproveFlow(flow *request.KnowledgeResourceApproveFlow
|
|
|
}
|
|
|
|
|
|
t := &knowledge_approve.KnowledgeResourceApproveFlow{
|
|
|
- FlowName: flow.FlowName,
|
|
|
- ClassifyId: flow.ClassifyId,
|
|
|
- ClassifyName: classifyInfo.ClassifyName,
|
|
|
- CurrVersion: 1,
|
|
|
- CreateTime: time.Now(),
|
|
|
- ModifyTime: time.Now(),
|
|
|
+ FlowName: flow.FlowName,
|
|
|
+ ClassifyId: flow.ClassifyId,
|
|
|
+ CurrVersion: 1,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
}
|
|
|
knowledgeFlowNodeItems := make([]*knowledge_approve.KnowledgeResourceApproveNode, 0)
|
|
|
for _, node := range flow.Nodes {
|
|
@@ -205,14 +238,20 @@ func CheckDeleteKnowledgeResourceApproveFlow(flowId int) (ok bool, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func toKnowledgeResourceApproveFlowItem(src []*knowledge_approve.KnowledgeResourceApproveFlow) (res []*response.KnowledgeResourceApproveFlowItem) {
|
|
|
+func toKnowledgeResourceApproveFlowItem(src []*knowledge_approve.KnowledgeResourceApproveFlow, classifyPathMap map[int]map[int]string) (res []*response.KnowledgeResourceApproveFlowItem) {
|
|
|
res = make([]*response.KnowledgeResourceApproveFlowItem, 0, len(src))
|
|
|
for _, item := range src {
|
|
|
+ classifyArr := make([]string, 0)
|
|
|
+ for i := 1; i <= 3; i++ {
|
|
|
+ if v, ok := classifyPathMap[item.ClassifyId][i]; ok {
|
|
|
+ classifyArr = append(classifyArr, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
res = append(res, &response.KnowledgeResourceApproveFlowItem{
|
|
|
KnowledgeResourceApproveFlowId: item.KnowledgeResourceApproveFlowId,
|
|
|
FlowName: item.FlowName,
|
|
|
ClassifyId: item.ClassifyId,
|
|
|
- ClassifyName: item.ClassifyName,
|
|
|
+ ClassifyName: strings.Join(classifyArr, "/"),
|
|
|
CurrVersion: item.CurrVersion,
|
|
|
CreateTime: item.CreateTime.Format(utils.FormatDateTime),
|
|
|
ModifyTime: item.ModifyTime.Format(utils.FormatDateTime),
|
|
@@ -243,17 +282,17 @@ func FormatFlowAndNodesItem2Detail(flowItem *knowledge_approve.KnowledgeResource
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func ModifyKnowledgeResourceApproveFlowClassify(classifyId int, classifyName string) (err error) {
|
|
|
- flow, err := knowledge_approve.GetKnowledgeResourceApproveFlowByClassifyId(classifyId)
|
|
|
- if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- return
|
|
|
- }
|
|
|
- if utils.IsErrNoRow(err) {
|
|
|
- err = nil
|
|
|
- return
|
|
|
- }
|
|
|
- if classifyName != "" && flow.ClassifyName != classifyName {
|
|
|
- err = knowledge_approve.UpdateFlowClassifyName(classifyId, classifyName)
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
+// func ModifyKnowledgeResourceApproveFlowClassify(classifyId int, classifyName string) (err error) {
|
|
|
+// flow, err := knowledge_approve.GetKnowledgeResourceApproveFlowByClassifyId(classifyId)
|
|
|
+// if err != nil && !utils.IsErrNoRow(err) {
|
|
|
+// return
|
|
|
+// }
|
|
|
+// if utils.IsErrNoRow(err) {
|
|
|
+// err = nil
|
|
|
+// return
|
|
|
+// }
|
|
|
+// if classifyName != "" && flow.ClassifyName != classifyName {
|
|
|
+// err = knowledge_approve.UpdateFlowClassifyName(classifyId, classifyName)
|
|
|
+// }
|
|
|
+// return
|
|
|
+// }
|