154 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package erp
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"git.kumo.work/shama/service/client"
 | |
| 	workflow2 "git.kumo.work/shama/service/erp/workflow"
 | |
| 	"git.kumo.work/shama/service/lib/bean"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| type workflow struct {
 | |
| 	workflow2.Workflow
 | |
| }
 | |
| type ArgsWorkflowList struct {
 | |
| 	Page   bean.Page
 | |
| 	Search WorkflowSearch
 | |
| }
 | |
| 
 | |
| type WorkflowSearch struct {
 | |
| 	BusinessId    int64 // 业务id
 | |
| 	BusinessType  string
 | |
| 	BusinessTypes []string
 | |
| 	Status        AuditStatus
 | |
| 	AuditStaffIds []int64 // 审核人
 | |
| }
 | |
| type ReplyWorkflowList struct {
 | |
| 	List  []WorkflowItem
 | |
| 	Total int64
 | |
| }
 | |
| type WorkflowItem struct {
 | |
| 	Id             int64       `json:"id"`             // 审批流id
 | |
| 	BusinessId     int64       `json:"businessId"`     // 业务id
 | |
| 	BusinessType   string      `json:"businessType"`   // 业务类型
 | |
| 	BusinessName   string      `json:"businessName"`   // 业务名称
 | |
| 	Title          string      `json:"title"`          // 审批流标题
 | |
| 	Content        string      `json:"content"`        // 审批流内容
 | |
| 	Status         AuditStatus `json:"status"`         // 审批流状态
 | |
| 	ReviewComments string      `json:"reviewComments"` // 审批意见
 | |
| 	CreatedStaffId int64       `json:"createdStaffId"` // 创建人
 | |
| 	CreatedAt      *time.Time  `json:"createdAt"`      // 创建时间
 | |
| 	UpdatedAt      *time.Time  `json:"updatedAt"`      // 更新时间
 | |
| 	Data           string      `json:"data"`
 | |
| }
 | |
| 
 | |
| // List @TITLE 审核列表
 | |
| func (w *workflow) List(ctx context.Context, args ArgsWorkflowList) (reply ReplyWorkflowList, err error) {
 | |
| 	xClient, err := client.GetClient(w)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	err = xClient.Call(ctx, "List", args, &reply)
 | |
| 	return
 | |
| }
 | |
| 
 | |
| type ReplyWorkflowInfo struct {
 | |
| 	Id             int64              `json:"id"`             // 审批流id
 | |
| 	BusinessId     int64              `json:"businessId"`     // 业务id
 | |
| 	BusinessType   string             `json:"businessType"`   // 业务类型
 | |
| 	BusinessName   string             `json:"businessName"`   // 业务名称
 | |
| 	Title          string             `json:"title"`          // 审批流标题
 | |
| 	Content        string             `json:"content"`        // 审批流内容
 | |
| 	Status         AuditStatus        `json:"status"`         // 审批流状态
 | |
| 	ReviewComments string             `json:"reviewComments"` // 审批意见
 | |
| 	CreatedStaffId int64              `json:"createdStaffId"` // 创建人
 | |
| 	CreatedAt      *time.Time         `json:"createdAt"`      // 创建时间
 | |
| 	Nodes          []WorkflowNodeItem `json:"nodes"`
 | |
| }
 | |
| type WorkflowNodeItem struct {
 | |
| 	Id             int64       `json:"id"`             // 审批流节点id
 | |
| 	Status         AuditStatus `json:"status"`         // 审批流节点状态
 | |
| 	ReviewStaffId  int64       `json:"reviewStaffId"`  // 审批流节点审核人
 | |
| 	ReviewAt       *time.Time  `json:"reviewAt"`       // 审批流节点审核时间
 | |
| 	ReviewComments string      `json:"reviewComments"` // 审批流节点审核意见
 | |
| 	Index          int64       `json:"index"`          // 审批流节点顺序
 | |
| 
 | |
| }
 | |
| type ArgsWorkflowInfo struct {
 | |
| 	WorkflowId     int64 // 审批流id
 | |
| 	WorkflowNodeId int64 // 审批流节点
 | |
| }
 | |
| 
 | |
| // Info @TITLE 审核详情
 | |
| func (w *workflow) Info(ctx context.Context, args ArgsWorkflowInfo) (reply ReplyWorkflowInfo, err error) {
 | |
| 	xClient, err := client.GetClient(w)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	err = xClient.Call(ctx, "Info", args, &reply)
 | |
| 	return
 | |
| }
 | |
| 
 | |
| type ArgsWorkflowAdopt struct {
 | |
| 	StaffId    int64 // 审核人
 | |
| 	WorkflowId int64 // 工作流
 | |
| }
 | |
| 
 | |
| // Adopt @TITLE 审核通过
 | |
| func (w *workflow) Adopt(ctx context.Context, args ArgsWorkflowAdopt) (err error) {
 | |
| 	xClient, err := client.GetClient(w)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	reply := 0
 | |
| 	err = xClient.Call(ctx, "Adopt", args, &reply)
 | |
| 	return
 | |
| }
 | |
| 
 | |
| type ArgsWorkflowReject struct {
 | |
| 	StaffId    int64  // 审核人
 | |
| 	WorkflowId int64  // 工作流
 | |
| 	Reason     string // 审核结果
 | |
| }
 | |
| 
 | |
| // Reject @TITLE 审核驳回
 | |
| func (w *workflow) Reject(ctx context.Context, args ArgsWorkflowReject) (err error) {
 | |
| 	xClient, err := client.GetClient(w)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	reply := 0
 | |
| 	err = xClient.Call(ctx, "Reject", args, &reply)
 | |
| 	return
 | |
| }
 | |
| 
 | |
| type ReplyReviewNode struct {
 | |
| 	ReviewStaffId int64 `json:"reviewStaffId"`
 | |
| }
 | |
| 
 | |
| // ReviewNode @TITLE 获取审批节点
 | |
| func (w *workflow) ReviewNode(ctx context.Context, workflowId int64) (reply ReplyReviewNode, err error) {
 | |
| 	xClient, err := client.GetClient(w)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	err = xClient.Call(ctx, "ReviewNode", workflowId, &reply)
 | |
| 	return
 | |
| }
 | |
| 
 | |
| type ArgsWorkflowCancel struct {
 | |
| 	StaffId    int64 // 审核人
 | |
| 	WorkflowId int64 // 工作流
 | |
| }
 | |
| 
 | |
| // Cancel @TITLE 审核撤回
 | |
| func (w *workflow) Cancel(ctx context.Context, args ArgsWorkflowCancel) (err error) {
 | |
| 	xClient, err := client.GetClient(w)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	reply := 0
 | |
| 	err = xClient.Call(ctx, "Cancel", args, &reply)
 | |
| 	return
 | |
| }
 |