Sfoglia il codice sorgente

freature(联调): 修复联调测试过程中发现的问题

likai 2 anni fa
parent
commit
9bb0017ff4

+ 7 - 0
opms_admin/app/service/context.go

@@ -165,6 +165,13 @@ func (c *contextService) GetCxtUserDingtalkId() string {
 	return c.CxtUser.DingtalkId
 }
 
+func (c *contextService) GetCxtUserDingtalkUid() string {
+	if c.CxtUser == nil {
+		return "-1"
+	}
+	return c.CxtUser.DingtalkUid
+}
+
 func (c *contextService) GetCxtUserDeptId() int {
 	if c.CxtUser == nil {
 		return -1

+ 11 - 2
opms_parent/app/handler/dingtalk/ding_event.go

@@ -9,6 +9,7 @@ import (
 	"dashoo.cn/opms_libary/plugin/dingtalk"
 	dingContext "dashoo.cn/opms_libary/plugin/dingtalk/context"
 	"dashoo.cn/opms_libary/plugin/dingtalk/message"
+	"database/sql"
 	"fmt"
 	"github.com/gogf/gf/os/glog"
 )
@@ -77,6 +78,14 @@ func (h *DingHandler) handleBpmsInstanceChange(msg *message.MixMessage, ctx *din
 	}
 	// 获取审批实例数据
 	instance, err := s.GetWorkflowInstance(msg.ProcessInstanceId)
+	if err != nil {
+		if err == sql.ErrNoRows {
+			glog.Error("无匹配的审批实例")
+			return "无匹配的审批实例"
+		}
+		glog.Error(err)
+		return err.Error()
+	}
 	// 处理实例数据(不需要钉钉审批实例参数)
 	switch instance.BizType {
 	case model.CustomerReceive:
@@ -84,12 +93,12 @@ func (h *DingHandler) handleBpmsInstanceChange(msg *message.MixMessage, ctx *din
 			srv, err := custServer.NewCustomerService(ctx.SubsMessage.Ctx)
 			if err != nil {
 				glog.Error(err)
-				return "fail"
+				return err.Error()
 			}
 			err = srv.AssignCustomerRequestApproval(instance, msg)
 			if err != nil {
 				glog.Error(err)
-				return "fail"
+				return err.Error()
 			}
 		}
 		return "success"

+ 7 - 0
opms_parent/app/service/context.go

@@ -70,6 +70,13 @@ func (c *ContextService) GetCxtUserDingtalkId() string {
 	return c.CxtUser.DingtalkId
 }
 
+func (c *ContextService) GetCxtUserDingtalkUid() string {
+	if c.CxtUser == nil {
+		return "-1"
+	}
+	return c.CxtUser.DingtalkUid
+}
+
 func (c *ContextService) GetCxtUserDeptId() int {
 	if c.CxtUser == nil {
 		return -1

+ 16 - 15
opms_parent/app/service/cust/cust_customer.go

@@ -3,6 +3,8 @@ package cust
 import (
 	"bytes"
 	"context"
+	"dashoo.cn/opms_libary/plugin/dingtalk/workflow"
+	"dashoo.cn/opms_libary/utils"
 	"fmt"
 	"math"
 	"strconv"
@@ -10,7 +12,6 @@ import (
 
 	"dashoo.cn/opms_libary/myerrors"
 	"dashoo.cn/opms_libary/plugin/dingtalk/message"
-	"dashoo.cn/opms_libary/plugin/dingtalk/workflow"
 	"github.com/360EntSecGroup-Skylar/excelize"
 	"github.com/gogf/gf/database/gdb"
 	"github.com/gogf/gf/encoding/gjson"
@@ -336,11 +337,7 @@ func (s *CustomerService) MoveToPubic(Ids []int64) (err error) {
 
 var AssignCustomerRequestProcessCode = "PROC-FE42B2D1-6097-4DE8-8AC5-23541B7D5C8A"
 
-func ptrString(s string) *string {
-	return &s
-}
-
-// 领取客户申请
+// AssignCustomerRequest 领取客户申请
 func (s *CustomerService) AssignCustomerRequest(ctx context.Context, req *model.AssignCustomerReq) error {
 	data, err := s.Dao.Where("id in (?)", req.Ids).LockShared().All()
 	if err != nil {
@@ -366,20 +363,24 @@ func (s *CustomerService) AssignCustomerRequest(ctx context.Context, req *model.
 			ProcessCode: &AssignCustomerRequestProcessCode,
 			FormComponentValues: []*workflow.StartProcessInstanceRequestFormComponentValues{
 				{
-					Name:  ptrString("客户编码"),
-					Value: ptrString(u.CustCode),
+					Id:    utils.String("TextField_1QEXO83G7GDC0"),
+					Name:  utils.String("客户编码"),
+					Value: utils.String(u.CustCode),
 				},
 				{
-					Name:  ptrString("客户名称"),
-					Value: ptrString(u.CustName),
+					Id:    utils.String("TextField_13MDZ97RV16K0"),
+					Name:  utils.String("客户名称"),
+					Value: utils.String(u.CustName),
 				},
 				{
-					Name:  ptrString("申请人"),
-					Value: ptrString(s.GetCxtUserName()),
+					Id:    utils.String("TextField_1ZY48VZY6WG00"),
+					Name:  utils.String("申请人"),
+					Value: utils.String(s.GetCxtUserName()),
 				},
 				{
-					Name:  ptrString("申请说明"),
-					Value: ptrString(""),
+					Id:    utils.String("TextareaField_5U6VKA6N1VK0"),
+					Name:  utils.String("申请说明"),
+					Value: utils.String("申请说明"),
 				},
 			},
 		})
@@ -429,7 +430,7 @@ func (s *CustomerService) AssignCustomerRequestApproval(flow *workflowModel.Plat
 	if msg.ProcessType != "finish" && msg.ProcessType != "terminate" {
 		return fmt.Errorf("无法识别的 ProcessType :%s", msg.ProcessType)
 	}
-	if msg.Result != "agree" && msg.Result != "refuse" {
+	if msg.Result != "agree" && msg.Result != "refuse" && msg.Result != "" {
 		return fmt.Errorf("无法识别的 Result :%s", msg.Result)
 	}
 

+ 5 - 4
opms_parent/app/service/workflow/work_flow.go

@@ -50,8 +50,10 @@ func (s *workflowService) StartProcessInstance(bizCode, bizType string, flow *wo
 	g.Log().Info("搜索值", flow)
 	// 参数调整
 	if flow.OriginatorUserId == nil {
-		// TODO s.GetCxtDingId() 目前写死
-		flow.OriginatorUserId = utils.String("2710120955840801")
+		flow.OriginatorUserId = utils.String(s.GetCxtUserDingtalkUid())
+	}
+	if flow.DeptId == nil {
+		flow.DeptId = utils.Int64(435711466)
 	}
 	// 调用钉钉接口
 	client := dingtalk.NewClient()
@@ -70,8 +72,7 @@ func (s *workflowService) RevokeProcessInstance(instId, remark string) (string,
 	// 调用钉钉接口
 	client := dingtalk.NewClient()
 	w := client.GetWorkflow()
-	// TODO 获取当前用户的钉钉中的Id  s.GetCxtDingId()
-	resp, err := w.RevokeProcessInstance(instId, remark, "s.GetCxtDingId()")
+	resp, err := w.RevokeProcessInstance(instId, remark, s.GetCxtUserDingtalkUid())
 	if err != nil {
 		return "", err
 	}