worksitecheck.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package work
  2. import (
  3. "zhiyuan/pkg/app"
  4. "zhiyuan/pkg/utils"
  5. "zhiyuan/services/form"
  6. "zhiyuan/services/work/worksitecheck"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func WorkSiteCheckList(c *gin.Context) {
  10. page := app.HandlePageNums(c)
  11. where := map[string]string{
  12. "where": "`zy_work_site_check`.`id`>0 AND `zy_work_site_check`.`deleted_at`=0",
  13. "_order_by": "`zy_work_site_check`.`id` desc",
  14. }
  15. if page.PageSize != 0 {
  16. where["_page_size"] = utils.ToStr(page.PageSize)
  17. where["_page_num"] = utils.ToStr(page.PageNum)
  18. }
  19. param := make(map[string]interface{})
  20. site_id := utils.ToInt(c.Query("site_id"))
  21. if site_id != 0 {
  22. where["where"] = where["where"] + " AND `zy_work_site_check`.`site_id`={{site_id}}"
  23. param["site_id"] = site_id
  24. }
  25. site_node_id := utils.ToInt(c.Query("site_node_id"))
  26. if site_node_id != 0 {
  27. where["where"] = where["where"] + " AND `zy_work_site_check`.`site_node_id`={{site_node_id}}"
  28. param["site_node_id"] = site_node_id
  29. }
  30. types := utils.ToInt(c.Query("type"))
  31. if types != 0 {
  32. where["where"] = where["where"] + " AND `zy_work_site_check`.`type`={{type}}"
  33. param["type"] = types - 1
  34. }
  35. admin_id := utils.ToInt(c.Query("admin_id"))
  36. if admin_id != 0 {
  37. where["where"] = where["where"] + " AND `zy_work_site_check`.`admin_id`={{admin_id}}"
  38. param["admin_id"] = admin_id
  39. }
  40. state := utils.ToInt(c.Query("state"))
  41. if state != 0 {
  42. where["where"] = where["where"] + " AND `zy_work_site_check`.`state`={{state}}"
  43. param["state"] = state - 1
  44. }
  45. if utils.ToInt(c.Query("my")) != 0 {
  46. where["where"] = where["where"] + " AND (`zy_work_site`.`manager_id`={{adminID}} OR `zy_work_site`.`designer_id`={{adminID}} OR `zy_work_site`.`salesman_id`={{adminID}} OR `zy_work_site`.`project_manager_id`={{adminID}} OR `zy_work_site`.`project_leader_id`={{adminID}} OR `zy_work_site`.`servicer_id`={{adminID}} OR `zy_work_site`.`quality_id`={{adminID}} OR `zy_work_site`.`assistant_id`={{adminID}} OR `zy_work_site`.`created_id`={{adminID}} OR FIND_IN_SET({{adminID}}, `zy_work_site`.`admin_ids`))"
  47. param["adminID"] = c.GetInt("adminID")
  48. }
  49. total, err := worksitecheck.CountRaw(where["where"], param)
  50. if err != nil {
  51. app.Error(c, err.Error())
  52. return
  53. }
  54. type WorkSiteCheckList struct {
  55. ID int `json:"id"`
  56. SiteId int `json:"site_id"`
  57. SiteNodeId int `json:"site_node_id"`
  58. Type int `json:"type"`
  59. Days int `json:"days"`
  60. AdminId int `json:"admin_id"`
  61. Content string `json:"content"`
  62. Pictures string `json:"pictures"`
  63. CheckId int `json:"check_id"`
  64. Explain string `json:"explain"`
  65. CheckdAt int `json:"check_at"`
  66. CheckIds int `json:"check_ids"`
  67. Explains string `json:"explains"`
  68. State int `json:"state"`
  69. CreatedAt int `json:"created_at"`
  70. UpdatedAt int `json:"updated_at"`
  71. AdminName string `json:"admin_name"`
  72. AdminHeadimgurl string `json:"admin_headimgurl"`
  73. CheckName string `json:"check_name"`
  74. CheckHeadimgurl string `json:"check_headimgurl"`
  75. NodeName string `json:"node_name"`
  76. NodeColor string `json:"node_color"`
  77. NodeLogo string `json:"node_logo"`
  78. Username string `json:"username"`
  79. Phone string `json:"phone"`
  80. Village string `json:"village"`
  81. Address string `json:"address"`
  82. RoomNo string `json:"room_no"`
  83. SiteStarttime string `json:"site_starttime"`
  84. SiteEndtime string `json:"site_endtime"`
  85. SiteState string `json:"site_state"`
  86. SiteServicerId int `json:"site_servicer_id"`
  87. }
  88. workSiteCheckList := make([]WorkSiteCheckList, 0)
  89. if err = worksitecheck.GetWorkSiteChecksRaw(where, param, &workSiteCheckList); err != nil {
  90. app.Error(c, err.Error())
  91. return
  92. }
  93. data := gin.H{
  94. "list": workSiteCheckList,
  95. "total": total,
  96. "limit": page.PageSize,
  97. }
  98. app.Success(c, data)
  99. }
  100. func WorkSiteCheckInfo(c *gin.Context) {
  101. id := utils.StrTo(c.Param("id")).MustInt()
  102. if id <= 0 {
  103. app.ErrorMsg(c, "department id must be a number", nil)
  104. return
  105. }
  106. type WorkSiteCheckInfo struct {
  107. ID int `json:"id"`
  108. SiteId int `json:"site_id"`
  109. SiteNodeId int `json:"site_node_id"`
  110. Type int `json:"type"`
  111. AdminId int `json:"admin_id"`
  112. Days int `json:"days"`
  113. Content string `json:"content"`
  114. Pictures string `json:"pictures"`
  115. CheckId int `json:"check_id"`
  116. Explain string `json:"explain"`
  117. CheckdAt int `json:"check_at"`
  118. CheckIds int `json:"check_ids"`
  119. Explains string `json:"explains"`
  120. State int `json:"state"`
  121. CreatedAt int `json:"created_at"`
  122. UpdatedAt int `json:"updated_at"`
  123. AdminName string `json:"admin_name"`
  124. AdminHeadimgurl string `json:"admin_headimgurl"`
  125. CheckName string `json:"check_name"`
  126. CheckHeadimgurl string `json:"check_headimgurl"`
  127. ChecksName string `json:"checks_name"`
  128. ChecksHeadimgurl string `json:"checks_headimgurl"`
  129. SiteServicerId int `json:"site_servicer_id"`
  130. NodeName string `json:"node_name"`
  131. NodeColor string `json:"node_color"`
  132. NodeLogo string `json:"node_logo"`
  133. }
  134. var checkInfo WorkSiteCheckInfo
  135. where := map[string]string{
  136. "where": "`zy_work_site_check`.`id` = {{id}} AND `zy_work_site_check`.`deleted_at`=0",
  137. }
  138. param := map[string]interface{}{
  139. "id": id,
  140. }
  141. if err := worksitecheck.GetWorkSiteChecksRaw(where, param, &checkInfo); err != nil {
  142. app.Error(c, err.Error())
  143. return
  144. }
  145. app.Success(c, checkInfo)
  146. }
  147. func WorkSiteCheckAdd(c *gin.Context) {
  148. var addForm form.WorkSiteCheckAdd
  149. if app.Bind(c, &addForm) != nil {
  150. return
  151. }
  152. id, err := worksitecheck.AddCheck(addForm, c.GetInt("adminID"))
  153. if err != nil {
  154. app.Error(c, err.Error())
  155. return
  156. }
  157. app.Success(c, gin.H{"id": id})
  158. }
  159. func WorkSiteCheckAddSite(c *gin.Context) {
  160. var addForm form.WorkSiteCheckAddSite
  161. if app.Bind(c, &addForm) != nil {
  162. return
  163. }
  164. id, err := worksitecheck.AddSiteCheck(addForm, c.GetInt("adminID"))
  165. if err != nil {
  166. app.Error(c, err.Error())
  167. return
  168. }
  169. app.Success(c, gin.H{"id": id})
  170. }
  171. func WorkSiteCheckPass(c *gin.Context) {
  172. id := utils.ToInt(c.Param("id"))
  173. if id <= 0 {
  174. app.ErrorMsg(c, "id must be a number", nil)
  175. return
  176. }
  177. var checkFrom form.WorkSiteCheckFrom
  178. if app.Bind(c, &checkFrom) != nil {
  179. return
  180. }
  181. err := worksitecheck.CheckPass(id, checkFrom, c.GetInt("adminID"))
  182. if err != nil {
  183. app.ErrorMsg(c, err.Error(), nil)
  184. return
  185. }
  186. app.Success(c, nil)
  187. }
  188. func WorkSiteCheckFail(c *gin.Context) {
  189. id := utils.ToInt(c.Param("id"))
  190. if id <= 0 {
  191. app.ErrorMsg(c, "id must be a number", nil)
  192. return
  193. }
  194. var checkFrom form.WorkSiteCheckFrom
  195. if app.Bind(c, &checkFrom) != nil {
  196. return
  197. }
  198. err := worksitecheck.CheckFail(id, checkFrom, c.GetInt("adminID"))
  199. if err != nil {
  200. app.ErrorMsg(c, err.Error(), nil)
  201. return
  202. }
  203. app.Success(c, nil)
  204. }