添加邮件通知。
This commit is contained in:
parent
9f3e66e50f
commit
c2c9576ac0
@ -213,9 +213,11 @@ func CreateWorkOrder(c *gin.Context) {
|
|||||||
SendTo: map[string]interface{}{
|
SendTo: map[string]interface{}{
|
||||||
"userList": sendToUserList,
|
"userList": sendToUserList,
|
||||||
},
|
},
|
||||||
Subject: "您有一条待办工单,请及时处理。",
|
Subject: "您有一条待办工单,请及时处理",
|
||||||
|
Description: "您有一条待办工单请及时处理,工单描述如下",
|
||||||
Classify: noticeList,
|
Classify: noticeList,
|
||||||
Id: workOrderValue.Id,
|
ProcessId: workOrderValue.Process,
|
||||||
|
Id: workOrderInfo.Id,
|
||||||
Title: workOrderValue.Title,
|
Title: workOrderValue.Title,
|
||||||
Creator: userInfo.NickName,
|
Creator: userInfo.NickName,
|
||||||
Priority: workOrderValue.Priority,
|
Priority: workOrderValue.Priority,
|
||||||
|
@ -4,7 +4,6 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"ferry/models/system"
|
"ferry/models/system"
|
||||||
"ferry/pkg/notify/email"
|
"ferry/pkg/notify/email"
|
||||||
"os"
|
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
@ -26,6 +25,8 @@ type BodyData struct {
|
|||||||
PriorityValue string // 工单优先级
|
PriorityValue string // 工单优先级
|
||||||
CreatedAt string // 工单创建时间
|
CreatedAt string // 工单创建时间
|
||||||
Content string // 通知的内容
|
Content string // 通知的内容
|
||||||
|
Description string // 表格上面的描述信息
|
||||||
|
ProcessId int // 流程ID
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BodyData) ParsingTemplate() (err error) {
|
func (b *BodyData) ParsingTemplate() (err error) {
|
||||||
@ -34,7 +35,6 @@ func (b *BodyData) ParsingTemplate() (err error) {
|
|||||||
buf bytes.Buffer
|
buf bytes.Buffer
|
||||||
)
|
)
|
||||||
|
|
||||||
log.Info(os.Getwd())
|
|
||||||
tmpl, err := template.ParseFiles("./pkg/notify/template/email.html")
|
tmpl, err := template.ParseFiles("./pkg/notify/template/email.html")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@ -68,7 +68,9 @@ func (b *BodyData) SendNotify() {
|
|||||||
for _, c := range b.Classify {
|
for _, c := range b.Classify {
|
||||||
switch c {
|
switch c {
|
||||||
case 1: // 邮件
|
case 1: // 邮件
|
||||||
for _, user := range b.SendTo.(map[string]interface{})["userList"].([]system.SysUser) {
|
users := b.SendTo.(map[string]interface{})["userList"].([]system.SysUser)
|
||||||
|
if len(users) > 0 {
|
||||||
|
for _, user := range users {
|
||||||
emailList = append(emailList, user.Email)
|
emailList = append(emailList, user.Email)
|
||||||
}
|
}
|
||||||
err = b.ParsingTemplate()
|
err = b.ParsingTemplate()
|
||||||
@ -79,4 +81,5 @@ func (b *BodyData) SendNotify() {
|
|||||||
go email.SendMail(emailList, b.Subject, b.Content)
|
go email.SendMail(emailList, b.Subject, b.Content)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<br>
|
<br>
|
||||||
您有一条待办工单请及时处理,以下为工单详情:
|
{{ .Description }}:
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<table>
|
<table>
|
||||||
@ -29,7 +29,7 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a href="" target="_blank">点击此处跳转工单详情</a>
|
<a href="http://localhost:9527/#/process/handle-ticket?workOrderId={{ .Id }}&processId={{ .ProcessId }}" target="_blank">点击此处跳转到工单详情</a>
|
||||||
</body>
|
</body>
|
||||||
<style>
|
<style>
|
||||||
table {
|
table {
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"ferry/models/base"
|
"ferry/models/base"
|
||||||
"ferry/models/process"
|
"ferry/models/process"
|
||||||
"ferry/models/system"
|
"ferry/models/system"
|
||||||
|
"ferry/pkg/notify"
|
||||||
"ferry/tools"
|
"ferry/tools"
|
||||||
"ferry/tools/app"
|
"ferry/tools/app"
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -338,6 +339,11 @@ func (h *Handle) HandleWorkOrder(
|
|||||||
parallelStatusOk bool
|
parallelStatusOk bool
|
||||||
processInfo process.Info
|
processInfo process.Info
|
||||||
currentUserInfo system.SysUser
|
currentUserInfo system.SysUser
|
||||||
|
sendToUserList []system.SysUser
|
||||||
|
noticeList []int
|
||||||
|
stateList []map[string]interface{}
|
||||||
|
sendSubject string = "您有一条待办工单,请及时处理"
|
||||||
|
sendDescription string = "您有一条待办工单请及时处理,工单描述如下"
|
||||||
)
|
)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -651,9 +657,10 @@ func (h *Handle) HandleWorkOrder(
|
|||||||
h.tx.Rollback()
|
h.tx.Rollback()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断目标是否是结束节点
|
// 判断目标是否是结束节点
|
||||||
if h.targetStateValue["clazz"] == "end" && h.endHistory == true {
|
if h.targetStateValue["clazz"] == "end" && h.endHistory == true {
|
||||||
|
sendSubject = "您的工单已完成"
|
||||||
|
sendDescription = "您的工单已完成,工单描述如下"
|
||||||
err = h.tx.Create(&process.CirculationHistory{
|
err = h.tx.Create(&process.CirculationHistory{
|
||||||
Model: base.Model{},
|
Model: base.Model{},
|
||||||
Title: h.workOrderDetails.Title,
|
Title: h.workOrderDetails.Title,
|
||||||
@ -672,6 +679,39 @@ func (h *Handle) HandleWorkOrder(
|
|||||||
|
|
||||||
h.tx.Commit() // 提交事务
|
h.tx.Commit() // 提交事务
|
||||||
|
|
||||||
|
// 发送通知
|
||||||
|
err = json.Unmarshal(processInfo.Notice, ¬iceList)
|
||||||
|
if err != nil {
|
||||||
|
app.Error(c, -1, err, "")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(noticeList) > 0 {
|
||||||
|
sendToUserList, err = GetPrincipalUserInfo(stateList, h.workOrderDetails.Creator)
|
||||||
|
if err != nil {
|
||||||
|
app.Error(c, -1, err, fmt.Sprintf("获取所有处理人的用户信息失败,%v", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发送通知
|
||||||
|
go func() {
|
||||||
|
bodyData := notify.BodyData{
|
||||||
|
SendTo: map[string]interface{}{
|
||||||
|
"userList": sendToUserList,
|
||||||
|
},
|
||||||
|
Subject: sendSubject,
|
||||||
|
Description: sendDescription,
|
||||||
|
Classify: noticeList,
|
||||||
|
ProcessId: h.workOrderDetails.Process,
|
||||||
|
Id: h.workOrderDetails.Id,
|
||||||
|
Title: h.workOrderDetails.Title,
|
||||||
|
Creator: currentUserInfo.NickName,
|
||||||
|
Priority: h.workOrderDetails.Priority,
|
||||||
|
CreatedAt: h.workOrderDetails.CreatedAt.Format("2006-01-02 15:04:05"),
|
||||||
|
}
|
||||||
|
bodyData.SendNotify()
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
// 执行流程公共任务及节点任务
|
// 执行流程公共任务及节点任务
|
||||||
if h.stateValue["task"] != nil {
|
if h.stateValue["task"] != nil {
|
||||||
for _, task := range h.stateValue["task"].([]interface{}) {
|
for _, task := range h.stateValue["task"].([]interface{}) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user