ACT_RU_TASK.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package dao
  2. import (
  3. "github.com/jinzhu/gorm"
  4. "server/global"
  5. )
  6. // import _ "github.com/jinzhu/gorm"
  7. // Task 流程任务表
  8. // ExecutionID 执行流ID
  9. // Name 任务名称,在流程文件中定义
  10. // TaskDefKey 任务定义的ID值
  11. // Assignee 被指派执行该任务的人
  12. // Owner 任务拥有人
  13. type Task struct {
  14. global.GVA_MODEL
  15. // Company 任务创建人对应的公司
  16. // Company string `json:"company"`
  17. // ExecutionID string `json:"executionID"`
  18. // 当前执行流所在的节点
  19. NodeID string `json:"nodeId"`
  20. Step int `json:"step"`
  21. // 流程实例id
  22. ProcInstID int `json:"procInstID"`
  23. Assignee string `json:"assignee"`
  24. CreateTime string `json:"createTime"`
  25. ClaimTime string `json:"claimTime"`
  26. // 还未审批的用户数,等于0代表会签已经全部审批结束,默认值为1
  27. MemberCount int8 `json:"memberCount" gorm:"default:1"`
  28. UnCompleteNum int8 `json:"unCompleteNum" gorm:"default:1"`
  29. //审批通过数
  30. AgreeNum int8 `json:"agreeNum"`
  31. // and 为会签,or为或签,默认为or
  32. ActType string `json:"actType" gorm:"default:'or'"`
  33. IsFinished bool `gorm:"default:false" json:"isFinished"`
  34. }
  35. // NewTask 新建任务
  36. func (t *Task) NewTask() (int, error) {
  37. err := global.GVA_DB.Create(t).Error
  38. if err != nil {
  39. return 0, err
  40. }
  41. return int(t.ID), nil
  42. }
  43. // UpdateTx UpdateTx
  44. func (t *Task) UpdateTx(tx *gorm.DB) error {
  45. err := tx.Model(&Task{}).Updates(t).Error
  46. return err
  47. }
  48. // GetTaskByID GetTaskById
  49. func GetTaskByID(id int) (*Task, error) {
  50. var t = &Task{}
  51. err := global.GVA_DB.Where("id=?", id).Find(t).Error
  52. return t, err
  53. }
  54. // GetTaskLastByProInstID GetTaskLastByProInstID
  55. // 根据流程实例id获取上一个任务
  56. func GetTaskLastByProInstID(procInstID int) (*Task, error) {
  57. var t = &Task{}
  58. err := global.GVA_DB.Where("proc_inst_id=? and is_finished=1", procInstID).Order("claim_time desc").First(t).Error
  59. return t, err
  60. }
  61. // NewTaskTx begin tx
  62. // 开启事务
  63. func (t *Task) NewTaskTx(tx *gorm.DB) (int, error) {
  64. // str, _ := util.ToJSONStr(t)
  65. // fmt.Printf("newTask:%s", str)
  66. err := tx.Create(t).Error
  67. if err != nil {
  68. return 0, err
  69. }
  70. return int(t.ID), nil
  71. }
  72. // DeleteTask 删除任务
  73. func DeleteTask(id int) error {
  74. err := global.GVA_DB.Where("id=?", id).Delete(&Task{}).Error
  75. return err
  76. }