From 12f485986b8a4263733f2540c7f29551c73fb01f Mon Sep 17 00:00:00 2001 From: lanyulei Date: Sat, 26 Jun 2021 17:16:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E9=9C=80=E6=89=A7=E8=A1=8C=E7=9A=84=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/process/workOrder.go | 2 ++ pkg/service/createWorkOrder.go | 30 +++++++++++++---------- pkg/service/handle.go | 44 ++++++++++++++++++---------------- tools/captcha/captcha.go | 13 +++++----- 4 files changed, 48 insertions(+), 41 deletions(-) diff --git a/apis/process/workOrder.go b/apis/process/workOrder.go index ee5412e..0527d54 100644 --- a/apis/process/workOrder.go +++ b/apis/process/workOrder.go @@ -116,6 +116,7 @@ func ProcessWorkOrder(c *gin.Context) { FlowProperties int `json:"flow_properties"` // 流转类型 0 拒绝,1 同意,2 其他 Remarks string `json:"remarks"` // 处理的备注信息 Tpls []map[string]interface{} `json:"tpls"` // 表单数据 + IsExecTask bool `json:"is_exec_task"` // 是否执行任务 } ) @@ -146,6 +147,7 @@ func ProcessWorkOrder(c *gin.Context) { params.FlowProperties, // 流转属性 params.Remarks, // 备注信息 params.Tpls, // 工单数据更新 + params.IsExecTask, // 是否执行任务 ) if err != nil { app.Error(c, -1, err, fmt.Sprintf("处理工单失败,%v", err.Error())) diff --git a/pkg/service/createWorkOrder.go b/pkg/service/createWorkOrder.go index a923a90..ee93254 100644 --- a/pkg/service/createWorkOrder.go +++ b/pkg/service/createWorkOrder.go @@ -40,6 +40,7 @@ func CreateWorkOrder(c *gin.Context) (err error) { SourceState string `json:"source_state"` Tasks json.RawMessage `json:"tasks"` Source string `json:"source"` + IsExecTask bool `json:"is_exec_task"` } paramsValue struct { Id int `json:"id"` @@ -348,23 +349,26 @@ func CreateWorkOrder(c *gin.Context) (err error) { }() } - // 执行任务 - err = json.Unmarshal(workOrderValue.Tasks, &taskList) - if err != nil { - return - } - if len(taskList) > 0 { - paramsValue.Id = workOrderInfo.Id - paramsValue.Title = workOrderInfo.Title - paramsValue.Priority = workOrderInfo.Priority - paramsValue.FormData = workOrderValue.Tpls["form_data"] - var params []byte - params, err = json.Marshal(paramsValue) + if workOrderValue.IsExecTask { + // 执行任务 + err = json.Unmarshal(workOrderValue.Tasks, &taskList) if err != nil { return } + if len(taskList) > 0 { + paramsValue.Id = workOrderInfo.Id + paramsValue.Title = workOrderInfo.Title + paramsValue.Priority = workOrderInfo.Priority + paramsValue.FormData = workOrderValue.Tpls["form_data"] + var params []byte + params, err = json.Marshal(paramsValue) + if err != nil { + return + } - go ExecTask(taskList, string(params)) + go ExecTask(taskList, string(params)) + } } + return } diff --git a/pkg/service/handle.go b/pkg/service/handle.go index b775a88..42cd065 100644 --- a/pkg/service/handle.go +++ b/pkg/service/handle.go @@ -404,6 +404,7 @@ func (h *Handle) HandleWorkOrder( flowProperties int, remarks string, tpls []map[string]interface{}, + isExecTask bool, ) (err error) { h.workOrderId = workOrderId h.flowProperties = flowProperties @@ -907,30 +908,31 @@ func (h *Handle) HandleWorkOrder( }(bodyData) } - // 执行流程公共任务及节点任务 - if h.stateValue["task"] != nil { - for _, task := range h.stateValue["task"].([]interface{}) { - tasks = append(tasks, task.(string)) - } - } -continueTag: - for _, task := range tasks { - for _, t := range execTasks { - if t == task { - continue continueTag + if isExecTask { + // 执行流程公共任务及节点任务 + if h.stateValue["task"] != nil { + for _, task := range h.stateValue["task"].([]interface{}) { + tasks = append(tasks, task.(string)) } } - execTasks = append(execTasks, task) - } + continueTag: + for _, task := range tasks { + for _, t := range execTasks { + if t == task { + continue continueTag + } + } + execTasks = append(execTasks, task) + } - paramsValue.Id = h.workOrderDetails.Id - paramsValue.Title = h.workOrderDetails.Title - paramsValue.Priority = h.workOrderDetails.Priority - params, err := json.Marshal(paramsValue) - if err != nil { - return err + paramsValue.Id = h.workOrderDetails.Id + paramsValue.Title = h.workOrderDetails.Title + paramsValue.Priority = h.workOrderDetails.Priority + params, err := json.Marshal(paramsValue) + if err != nil { + return err + } + go ExecTask(execTasks, string(params)) } - go ExecTask(execTasks, string(params)) - return } diff --git a/tools/captcha/captcha.go b/tools/captcha/captcha.go index 63bb469..8562e04 100644 --- a/tools/captcha/captcha.go +++ b/tools/captcha/captcha.go @@ -1,9 +1,10 @@ package captcha import ( + "image/color" + "github.com/google/uuid" "github.com/mojocn/base64Captcha" - "image/color" ) var store = base64Captcha.DefaultMemStore @@ -20,9 +21,8 @@ type configJsonBody struct { DriverDigit *base64Captcha.DriverDigit } - -func DriverStringFunc() (id, b64s string, err error) { - e :=configJsonBody{} +func DriverStringFunc() (id, b64s string, err error) { + e := configJsonBody{} e.Id = uuid.New().String() e.DriverString = base64Captcha.NewDriverString(46, 140, 2, 2, 4, "234567890abcdefghjkmnpqrstuvwxyz", &color.RGBA{240, 240, 246, 246}, []string{"wqy-microhei.ttc"}) driver := e.DriverString.ConvertFonts() @@ -30,12 +30,11 @@ func DriverStringFunc() (id, b64s string, err error) { return cap.Generate() } - func DriverDigitFunc() (id, b64s string, err error) { e := configJsonBody{} e.Id = uuid.New().String() - e.DriverDigit = base64Captcha.DefaultDriverDigit + e.DriverDigit = base64Captcha.NewDriverDigit(80, 240, 4, 0.7, 80) driver := e.DriverDigit cap := base64Captcha.NewCaptcha(driver, store) return cap.Generate() -} \ No newline at end of file +}