project_process.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package dao
  2. import "server/global"
  3. type ProjectProcess struct {
  4. global.GVA_MODEL
  5. ProjectProcessName string `json:"projectProcessName" form:"projectProcessName" gorm:"comment:项目审批名称"`
  6. Applicant int `json:"applicant" form:"applicant" gorm:"comment:申请人"`
  7. User SysUser `json:"user" form:"user" gorm:"foreignKey:Applicant;references:id;"`
  8. ProjectId int `json:"projectId" form:"projectId" gorm:"comment:项目id"`
  9. CurrentNodeOrder int `json:"currentNodeOrder" form:"currentNodeOrder" gorm:"comment:当前审批节点id"`
  10. Node Node `json:"node" form:"node" gorm:"foreignKey:CurrentNodeOrder;references:id;"`
  11. ProcessApprovalId int `json:"processApprovalId" form:"processApprovalId" gorm:"comment:当前审批流程id"`
  12. Process Process `json:"process" form:"process" gorm:"foreignKey:ProcessApprovalId;references:id"`
  13. ProjectType string `json:"projectType" form:"projectType" gorm:"comment:项目类型"`
  14. Descriptions []Description `json:"descriptions" form:"descriptions" gorm:"foreignKey:ProjectProcessId;"`
  15. }
  16. func (ProjectProcess) TableName() string {
  17. return "project_process"
  18. }
  19. func QueryProjectApplicantList(limit, offset, applicant int) (projectProcesses []ProjectProcess, total int64, err error) {
  20. // 创建db
  21. db := global.GVA_DB.Model(&ProjectProcess{})
  22. // 如果有条件搜索 下方会自动创建搜索语句
  23. if applicant != 0 {
  24. db = db.Where("applicant = ?", applicant)
  25. }
  26. err = db.Count(&total).Error
  27. if err != nil {
  28. return
  29. }
  30. err = db.Order("id desc").Limit(limit).Offset(offset).Preload("User").Preload("Node").Preload("Process").Preload("Descriptions").Find(&projectProcesses).Error
  31. return projectProcesses, total, err
  32. }
  33. func QueryProjectProcessList(limit, offset, applicant int) (projectProcesses []ProjectProcess, total int64, err error) {
  34. // 创建db
  35. db := global.GVA_DB.Model(&ProjectProcess{}).Joins("JOIN node ON project_process.current_node_order = node.id").Where("node.approver_id = ?", applicant)
  36. // 如果有条件搜索 下方会自动创建搜索语句
  37. err = db.Count(&total).Error
  38. if err != nil {
  39. return
  40. }
  41. err = db.Order("id desc").Limit(limit).Offset(offset).Preload("User").Preload("Node").Preload("Process").Preload("Descriptions").Find(&projectProcesses).Error
  42. return projectProcesses, total, err
  43. }
  44. func QueryProjectProcessById(id int) (projectProcess ProjectProcess, err error) {
  45. return projectProcess, global.GVA_DB.Where("id =?", id).Preload("User").Preload("Node").Preload("Process").Preload("Descriptions").First(&projectProcess).Error
  46. }
  47. func QueryProjectProcessByProcessApprovalId(id int) (projectProcess []ProjectProcess, err error) {
  48. return projectProcess, global.GVA_DB.Where("process_approval_id =?", id).Preload("User").Preload("Node").Preload("Process").Preload("Descriptions").Find(&projectProcess).Error
  49. }
  50. func (pp ProjectProcess) CreateProjectProcess() error {
  51. return global.GVA_DB.Create(&pp).Error
  52. }
  53. func (pp ProjectProcess) UpdateProjectProcess() error {
  54. return global.GVA_DB.Where("id = ?", pp.ID).Updates(&pp).Error
  55. }
  56. func (pp ProjectProcess) DeleteProjectProcess() error {
  57. return global.GVA_DB.Unscoped().Delete(&pp).Error
  58. }