From cfa72920da8570045b237503929e23191e362c62 Mon Sep 17 00:00:00 2001 From: "Mr. Lan" Date: Sun, 2 Aug 2020 20:51:12 +0800 Subject: [PATCH] fix bug. --- pkg/service/handle.go | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/pkg/service/handle.go b/pkg/service/handle.go index b6fccbf..779ffab 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -16,6 +16,7 @@ import ( "github.com/jinzhu/gorm" "github.com/gin-gonic/gin" + log "github.com/sirupsen/logrus" ) /* @@ -73,6 +74,7 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { err = json.Unmarshal(h.workOrderDetails.State, &stateList) if err != nil { + log.Error(err) return } @@ -99,6 +101,7 @@ func (h *Handle) Countersign(c *gin.Context) (err error) { h.endHistory = true err = h.circulation() if err != nil { + log.Error(err) return } } @@ -117,11 +120,13 @@ func (h *Handle) circulation() (err error) { } err = GetVariableValue(stateList, h.workOrderDetails.Creator) if err != nil { + log.Error(err) return } stateValue, err = json.Marshal(h.updateValue["state"]) if err != nil { + log.Error(err) return } @@ -133,6 +138,7 @@ func (h *Handle) circulation() (err error) { }).Error if err != nil { h.tx.Rollback() + log.Error(err) return } return @@ -155,6 +161,7 @@ func (h *Handle) ConditionalJudgment(condExpr map[string]interface{}) (result bo default: err = errors.New("未知错误") } + log.Error(err) return } }() @@ -163,6 +170,7 @@ func (h *Handle) ConditionalJudgment(condExpr map[string]interface{}) (result bo var formData map[string]interface{} err = json.Unmarshal(data, &formData) if err != nil { + log.Error(err) return } if condExprValue, condExprOk = formData[condExpr["key"].(string)]; condExprOk { @@ -172,6 +180,7 @@ func (h *Handle) ConditionalJudgment(condExpr map[string]interface{}) (result bo if condExprValue == nil { err = errors.New("未查询到对应的表单数据。") + log.Error(err) return } @@ -237,6 +246,7 @@ func (h *Handle) ConditionalJudgment(condExpr map[string]interface{}) (result bo } default: err = errors.New("条件判断目前仅支持字符串、整型。") + log.Error(err) } return @@ -251,6 +261,7 @@ func (h *Handle) completeAllParallel(c *gin.Context, target string) (statusOk bo err = json.Unmarshal(h.workOrderDetails.State, &stateList) if err != nil { err = fmt.Errorf("反序列化失败,%v", err.Error()) + log.Error(err) return } @@ -282,6 +293,7 @@ func (h *Handle) commonProcessing(c *gin.Context) (err error) { err = h.circulation() if err != nil { err = fmt.Errorf("工单跳转失败,%v", err.Error()) + log.Error(err) } return } @@ -293,23 +305,27 @@ func (h *Handle) commonProcessing(c *gin.Context) (err error) { h.endHistory = false err = h.Countersign(c) if err != nil { + log.Error(err) return } } else { err = h.circulation() if err != nil { + log.Error(err) return } } } else { err = h.circulation() if err != nil { + log.Error(err) return } } } else { err = h.circulation() if err != nil { + log.Error(err) return } } @@ -358,6 +374,7 @@ func (h *Handle) HandleWorkOrder( default: err = errors.New("未知错误") } + log.Error(err) return } }() @@ -365,28 +382,33 @@ func (h *Handle) HandleWorkOrder( // 获取工单信息 err = orm.Eloquent.Model(&process.WorkOrderInfo{}).Where("id = ?", workOrderId).Find(&h.workOrderDetails).Error if err != nil { + log.Error(err) return } // 获取流程信息 err = orm.Eloquent.Model(&process.Info{}).Where("id = ?", h.workOrderDetails.Process).Find(&processInfo).Error if err != nil { + log.Error(err) return } err = json.Unmarshal(processInfo.Structure, &h.processState.Structure) if err != nil { + log.Error(err) return } // 获取当前节点 h.stateValue, err = h.processState.GetNode(sourceState) if err != nil { + log.Error(err) return } // 目标状态 h.targetStateValue, err = h.processState.GetNode(targetState) if err != nil { + log.Error(err) return } @@ -395,6 +417,7 @@ func (h *Handle) HandleWorkOrder( Where("work_order = ?", workOrderId). Pluck("form_data", &h.workOrderData).Error if err != nil { + log.Error(err) return } @@ -404,11 +427,13 @@ func (h *Handle) HandleWorkOrder( Order("id desc"). Find(&h.cirHistoryList).Error if err != nil { + log.Error(err) return } err = json.Unmarshal(h.workOrderDetails.RelatedPerson, &relatedPersonList) if err != nil { + log.Error(err) return } relatedPersonStatus := false @@ -424,6 +449,7 @@ func (h *Handle) HandleWorkOrder( relatedPersonValue, err = json.Marshal(relatedPersonList) if err != nil { + log.Error(err) return } @@ -444,6 +470,7 @@ func (h *Handle) HandleWorkOrder( case "exclusiveGateway": sourceEdges, err = h.processState.GetEdge(h.targetStateValue["id"].(string), "source") if err != nil { + log.Error(err) return } breakTag: @@ -451,24 +478,28 @@ func (h *Handle) HandleWorkOrder( edgeCondExpr := make([]map[string]interface{}, 0) err = json.Unmarshal([]byte(edge["conditionExpression"].(string)), &edgeCondExpr) if err != nil { + log.Error(err) return } for _, condExpr := range edgeCondExpr { // 条件判断 condExprStatus, err = h.ConditionalJudgment(condExpr) if err != nil { + log.Error(err) return } if condExprStatus { // 进行节点跳转 h.targetStateValue, err = h.processState.GetNode(edge["target"].(string)) if err != nil { + log.Error(err) return } if h.targetStateValue["clazz"] == "userTask" || h.targetStateValue["clazz"] == "receiveTask" { if h.targetStateValue["assignValue"] == nil || h.targetStateValue["assignType"] == "" { err = errors.New("处理人不能为空") + log.Error(err) return } } @@ -482,6 +513,7 @@ func (h *Handle) HandleWorkOrder( err = h.commonProcessing(c) if err != nil { err = fmt.Errorf("流程流程跳转失败,%v", err.Error()) + log.Error(err) return } @@ -491,6 +523,7 @@ func (h *Handle) HandleWorkOrder( } if !condExprStatus { err = errors.New("所有流转均不符合条件,请确认。") + log.Error(err) return } // 并行/聚合网关 @@ -499,22 +532,26 @@ func (h *Handle) HandleWorkOrder( sourceEdges, err = h.processState.GetEdge(h.targetStateValue["id"].(string), "source") if err != nil { err = fmt.Errorf("查询流转信息失败,%v", err.Error()) + log.Error(err) return } targetEdges, err = h.processState.GetEdge(h.targetStateValue["id"].(string), "target") if err != nil { err = fmt.Errorf("查询流转信息失败,%v", err.Error()) + log.Error(err) return } if len(sourceEdges) > 0 { h.targetStateValue, err = h.processState.GetNode(sourceEdges[0]["target"].(string)) if err != nil { + log.Error(err) return } } else { err = errors.New("并行网关流程不正确") + log.Error(err) return } @@ -524,6 +561,7 @@ func (h *Handle) HandleWorkOrder( for _, edge := range sourceEdges { targetStateValue, err := h.processState.GetNode(edge["target"].(string)) if err != nil { + log.Error(err) return err } h.updateValue["state"] = append(h.updateValue["state"].([]map[string]interface{}), map[string]interface{}{ @@ -536,6 +574,7 @@ func (h *Handle) HandleWorkOrder( err = h.circulation() if err != nil { err = fmt.Errorf("工单跳转失败,%v", err.Error()) + log.Error(err) return } } else if len(sourceEdges) == 1 && len(targetEdges) > 1 { @@ -543,6 +582,7 @@ func (h *Handle) HandleWorkOrder( parallelStatusOk, err = h.completeAllParallel(c, sourceEdges[0]["target"].(string)) if err != nil { err = fmt.Errorf("并行检测失败,%v", err.Error()) + log.Error(err) return } if parallelStatusOk { @@ -566,6 +606,7 @@ func (h *Handle) HandleWorkOrder( err = h.circulation() if err != nil { err = fmt.Errorf("工单跳转失败,%v", err.Error()) + log.Error(err) return } } else { @@ -574,11 +615,13 @@ func (h *Handle) HandleWorkOrder( } else { err = errors.New("并行网关流程不正确") + log.Error(err) return } // 包容网关 case "inclusiveGateway": fmt.Println("inclusiveGateway") + log.Error(err) return case "start": stateValue["processor"] = []int{h.workOrderDetails.Creator} @@ -586,6 +629,7 @@ func (h *Handle) HandleWorkOrder( h.updateValue["state"] = []map[string]interface{}{stateValue} err = h.circulation() if err != nil { + log.Error(err) return } case "userTask": @@ -594,6 +638,7 @@ func (h *Handle) HandleWorkOrder( h.updateValue["state"] = []map[string]interface{}{stateValue} err = h.commonProcessing(c) if err != nil { + log.Error(err) return } case "receiveTask": @@ -602,6 +647,7 @@ func (h *Handle) HandleWorkOrder( h.updateValue["state"] = []map[string]interface{}{stateValue} err = h.commonProcessing(c) if err != nil { + log.Error(err) return } case "scriptTask": @@ -615,6 +661,7 @@ func (h *Handle) HandleWorkOrder( err = h.circulation() if err != nil { h.tx.Rollback() + log.Error(err) return } err = h.tx.Model(&process.WorkOrderInfo{}). @@ -622,6 +669,7 @@ func (h *Handle) HandleWorkOrder( Update("is_end", 1).Error if err != nil { h.tx.Rollback() + log.Error(err) return } } @@ -633,6 +681,7 @@ func (h *Handle) HandleWorkOrder( Order("create_time desc").Error if err != nil { h.tx.Rollback() + log.Error(err) return } for _, t := range cirHistoryValue { @@ -647,6 +696,7 @@ func (h *Handle) HandleWorkOrder( Where("user_id = ?", tools.GetUserId(c)). Find(¤tUserInfo).Error if err != nil { + log.Error(err) return } @@ -666,12 +716,14 @@ func (h *Handle) HandleWorkOrder( err = h.tx.Create(&cirHistoryData).Error if err != nil { h.tx.Rollback() + log.Error(err) return } // 获取流程通知类型列表 err = json.Unmarshal(processInfo.Notice, ¬iceList) if err != nil { + log.Error(err) return } @@ -706,6 +758,7 @@ func (h *Handle) HandleWorkOrder( }).Error if err != nil { h.tx.Rollback() + log.Error(err) return } if len(noticeList) > 0 { @@ -714,6 +767,7 @@ func (h *Handle) HandleWorkOrder( Where("user_id = ?", h.workOrderDetails.Creator). Find(&sendToUserList).Error if err != nil { + log.Error(err) return } @@ -727,6 +781,7 @@ func (h *Handle) HandleWorkOrder( go func(bodyData notify.BodyData) { err = bodyData.SendNotify() if err != nil { + log.Error(err) return } }(bodyData) @@ -739,6 +794,7 @@ func (h *Handle) HandleWorkOrder( if len(noticeList) > 0 { sendToUserList, err = GetPrincipalUserInfo(h.updateValue["state"].([]interface{}), h.workOrderDetails.Creator) if err != nil { + log.Error(err) return } @@ -752,6 +808,7 @@ func (h *Handle) HandleWorkOrder( go func(bodyData notify.BodyData) { err = bodyData.SendNotify() if err != nil { + log.Error(err) return } }(bodyData)