worksiteprocesspoint.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package worksiteprocesspoint
  2. import (
  3. "errors"
  4. "zhiyuan/models"
  5. "zhiyuan/pkg/app"
  6. "zhiyuan/pkg/db"
  7. "zhiyuan/pkg/utils"
  8. "zhiyuan/services/form"
  9. "zhiyuan/services/work/worksite"
  10. "zhiyuan/services/work/worksitenode"
  11. )
  12. var WorkSiteProcessPoint models.WorkSiteProcessPoint
  13. func Add(form form.WorkSiteProcessPointAdd, adminID int) (int64, error) {
  14. worksitenodeInfo, err := worksitenode.GetInfoByID(form.SiteNodeId, nil, nil)
  15. if worksitenodeInfo == nil {
  16. return 0, errors.New("invalid worksitenode id")
  17. }
  18. /*if worksitenodeInfo.State == 4 {
  19. return 0, errors.New("节点已验收")
  20. }*/
  21. worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil)
  22. if worksiteInfo == nil {
  23. return 0, errors.New("invalid worksite id")
  24. }
  25. if worksiteInfo.State != 1 {
  26. return 0, errors.New("项目未开工")
  27. }
  28. workSiteProcessPointMap := map[string]interface{}{
  29. "`site_node_id`": form.SiteNodeId,
  30. "`require_id`": form.RequireId,
  31. "`pictures`": form.Pictures,
  32. "`mark`": form.Mark,
  33. }
  34. workSiteProcessPointID, err := db.InsertOne(WorkSiteProcessPoint.TableName(), workSiteProcessPointMap)
  35. if err != nil {
  36. return 0, nil
  37. }
  38. return workSiteProcessPointID, nil
  39. }
  40. func CheckByID(id int, adminID int) error {
  41. info, _ := GetInfoByID(id, nil, nil)
  42. if info == nil {
  43. return errors.New("invalid id")
  44. }
  45. worksitenodeInfo, err := worksitenode.GetInfoByID(info.SiteNodeId, nil, nil)
  46. if worksitenodeInfo == nil {
  47. return errors.New("invalid worksitenode id")
  48. }
  49. worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil)
  50. if worksiteInfo == nil {
  51. return errors.New("invalid worksite id")
  52. }
  53. if worksiteInfo.State != 1 {
  54. return errors.New("项目未开工")
  55. }
  56. _, err = db.Update(info.TableName(), map[string]interface{}{"id": info.ID}, map[string]interface{}{
  57. "state": 1,
  58. })
  59. return err
  60. }
  61. func DeleteByID(id int, adminID int) error {
  62. info, _ := GetInfoByID(id, nil, nil)
  63. if info == nil {
  64. return errors.New("invalid id")
  65. }
  66. worksitenodeInfo, err := worksitenode.GetInfoByID(info.SiteNodeId, nil, nil)
  67. if worksitenodeInfo == nil {
  68. return errors.New("invalid worksitenode id")
  69. }
  70. if worksitenodeInfo.State == 4 {
  71. return errors.New("节点已验收")
  72. }
  73. worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil)
  74. if worksiteInfo == nil {
  75. return errors.New("invalid worksite id")
  76. }
  77. if worksiteInfo.ManagerId != adminID {
  78. return errors.New("账号权限有误")
  79. }
  80. if worksiteInfo.State == 2 {
  81. return errors.New("项目已完工")
  82. }
  83. _, err = db.DeleteSoft(WorkSiteProcessPoint.TableName(), map[string]interface{}{"id": id})
  84. return err
  85. }
  86. func Count(where map[string]interface{}) (int64, error) {
  87. return db.Count(WorkSiteProcessPoint.TableName(), where)
  88. }
  89. func CountRaw(where string, param map[string]interface{}) (int64, error) {
  90. query := "`zy_work_site_process_point` WHERE " + where
  91. return db.CountRaw(query, param)
  92. }
  93. func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.WorkSiteProcessPoint, error) {
  94. if page.PageNum > 0 && page.PageSize > 0 {
  95. where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize))
  96. }
  97. return WorkSiteProcessPoint.GetMulti(where, fields, retVal)
  98. }
  99. func GetWorkSiteProcessPointsRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  100. field := "SELECT `zy_work_site_process_point`.*, `zy_work_process_require`.`name` FROM `zy_work_site_process_point` left join `zy_work_process_require` on `zy_work_process_require`.`id` = `zy_work_site_process_point`.`require_id` "
  101. return db.GetMultiRaw(field, where, param, retVal)
  102. }
  103. func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.WorkSiteProcessPoint, error) {
  104. return WorkSiteProcessPoint.GetOne(where, fields, retVal)
  105. }
  106. func GetWorkSiteProcessPointOne(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  107. field := "SELECT `zy_work_site_process_point`.*, `zy_work_process_require`.`name` FROM `zy_work_site_process_point` left join `zy_work_process_require` on `zy_work_process_require`.`id` = `zy_work_site_process_point`.`require_id` "
  108. where["_page_size"] = utils.ToStr(1)
  109. where["_page_num"] = utils.ToStr(1)
  110. return db.GetMultiRaw(field, where, param, retVal)
  111. }
  112. func GetWorkSiteProcessPointByID(id int, retVal interface{}) error {
  113. where := map[string]string{
  114. "where": "`zy_work_site_process_point`.`id` = {{id}}",
  115. }
  116. param := map[string]interface{}{"id": id}
  117. return GetWorkSiteProcessPointOne(where, param, retVal)
  118. }
  119. func GetInfoByID(id int, fields []string, retVal interface{}) (*models.WorkSiteProcessPoint, error) {
  120. return GetOne(map[string]interface{}{"id": id}, fields, retVal)
  121. }