worksitecheck.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  1. package worksitecheck
  2. import (
  3. "errors"
  4. "fmt"
  5. "time"
  6. "zhiyuan/models"
  7. "zhiyuan/pkg/app"
  8. "zhiyuan/pkg/db"
  9. "zhiyuan/pkg/utils"
  10. "zhiyuan/services/form"
  11. "zhiyuan/services/user"
  12. "zhiyuan/services/work/worksite"
  13. "zhiyuan/services/work/worksitenode"
  14. )
  15. var WorkSiteCheck models.WorkSiteCheck
  16. func AddCheck(form form.WorkSiteCheckAdd, adminID int) (int64, error) {
  17. worksitenodeInfo, _ := worksitenode.GetInfoByID(form.SiteNodeId, nil, nil)
  18. if worksitenodeInfo == nil {
  19. return 0, errors.New("invalid worksitenode id")
  20. }
  21. if worksitenodeInfo.State == 3 {
  22. return 0, errors.New("节点已验收")
  23. }
  24. worksiteInfo, err := worksite.GetInfoByID(worksitenodeInfo.SiteId, nil, nil)
  25. if worksiteInfo == nil {
  26. return 0, errors.New("invalid worksite id")
  27. }
  28. if worksiteInfo.State != 1 {
  29. return 0, errors.New("项目未开工")
  30. }
  31. if form.Type == 0 {
  32. type WorkSiteProcessRequireList struct {
  33. ID int `json:"id"`
  34. }
  35. requireList := make([]WorkSiteProcessRequireList, 0)
  36. db.GetMultiRaw("SELECT `zy_work_process_require`.`id` from `zy_work_process_require` left join `zy_work_site_process_point` on `zy_work_site_process_point`.`require_id` = `zy_work_process_require`.`id` AND `zy_work_site_process_point`.`deleted_at`=0 AND `zy_work_site_process_point`.`site_node_id`={{site_node_id}} left join `zy_work_process` on `zy_work_process`.`id` = `zy_work_process_require`.`process_id` ", map[string]string{
  37. "where": "`zy_work_process_require`.`id`>0 AND `zy_work_process_require`.`deleted_at`=0 AND `zy_work_process_require`.`state`=1 AND `zy_work_process`.`node_id`={{node_id}} AND FIND_IN_SET(`zy_work_process`.`id`, {{process_ids}}) AND ISNULL(`zy_work_site_process_point`.`id`)",
  38. "_order_by": "`zy_work_process_require`.`id` desc",
  39. "_group_by": "`zy_work_process_require`.`id`",
  40. }, map[string]interface{}{
  41. "site_node_id": worksitenodeInfo.ID,
  42. "node_id": worksitenodeInfo.NodeId,
  43. "process_ids": worksitenodeInfo.ProcessIds,
  44. }, &requireList)
  45. if len(requireList) != 0 {
  46. return 0, errors.New("存在图片未上传")
  47. }
  48. _, err = db.Update(models.WorkSiteNode{}.TableName(), map[string]interface{}{"id": form.SiteNodeId}, map[string]interface{}{"state": 2})
  49. if err != nil {
  50. return 0, err
  51. }
  52. }
  53. workSiteCheckMap := map[string]interface{}{
  54. "`site_id`": worksitenodeInfo.SiteId,
  55. "`site_node_id`": form.SiteNodeId,
  56. "`type`": form.Type,
  57. "`days`": form.Days,
  58. "`pictures`": form.Pictures,
  59. "`content`": form.Content,
  60. "`admin_id`": adminID,
  61. }
  62. workSiteCheckID, err := db.InsertOne(WorkSiteCheck.TableName(), workSiteCheckMap)
  63. if err != nil {
  64. return 0, err
  65. }
  66. return workSiteCheckID, nil
  67. }
  68. func AddSiteCheck(form form.WorkSiteCheckAddSite, adminID int) (int64, error) {
  69. worksiteInfo, err := worksite.GetInfoByID(form.SiteId, nil, nil)
  70. if worksiteInfo == nil {
  71. return 0, errors.New("invalid worksite id")
  72. }
  73. if form.Type == 2 {
  74. //now := time.Now().Unix()
  75. //if now >= int64(worksiteInfo.StartTime)+57600 && now <= int64(worksiteInfo.StartTime)+86400 {
  76. // return 0, errors.New("停工暂不可用")
  77. //}
  78. s := db.ModelQuery(db.Type(models.WorkSiteNode{}), map[string]interface{}{
  79. "site_id": worksiteInfo.ID,
  80. }, true)
  81. db.WhereParse(&s, map[string]interface{}{
  82. "state >=": 2,
  83. })
  84. deleted := models.WorkSiteNode{}.DeletedField()
  85. if deleted != "" {
  86. s.Where = append(s.Where, fmt.Sprintf("`%s`.`%s` = 0", models.WorkSiteNode{}.TableName(), deleted))
  87. }
  88. query, params := s.Query()
  89. list, err := db.QueryMap(query, params, nil)
  90. if err != nil {
  91. return 0, err
  92. }
  93. if list == nil {
  94. list = make([]map[string]interface{}, 0)
  95. }
  96. if len(list) == 0 {
  97. return 0, errors.New("需先发起节点验收")
  98. }
  99. }
  100. workSiteCheckMap := map[string]interface{}{
  101. "`site_id`": form.SiteId,
  102. "`site_node_id`": 0,
  103. "`type`": form.Type,
  104. "`days`": form.Days,
  105. "`pictures`": form.Pictures,
  106. "`content`": form.Content,
  107. "`admin_id`": adminID,
  108. }
  109. workSiteCheckID, err := db.InsertOne(WorkSiteCheck.TableName(), workSiteCheckMap)
  110. if err != nil {
  111. return 0, err
  112. }
  113. return workSiteCheckID, nil
  114. }
  115. func CheckPass(id int, forms form.WorkSiteCheckFrom, adminID int) error {
  116. worksitecheck, err := GetInfoByID(id, nil, nil)
  117. if worksitecheck == nil {
  118. return errors.New("invalid worksitecheck id")
  119. }
  120. if worksitecheck.State != 0 && worksitecheck.State != 3 {
  121. return errors.New("验收状态错误")
  122. }
  123. worksiteInfo, err := worksite.GetInfoByID(worksitecheck.SiteId, nil, nil)
  124. if worksiteInfo == nil {
  125. return errors.New("invalid worksite id")
  126. }
  127. now := time.Now().Unix()
  128. state := 1
  129. check_id := "`check_id`"
  130. explain := "`explain`"
  131. switch worksitecheck.Type {
  132. case 0:
  133. worksitenodeInfo, err := worksitenode.GetInfoByID(worksitecheck.SiteNodeId, nil, nil)
  134. if worksitenodeInfo == nil {
  135. return errors.New("invalid worksitenode id")
  136. }
  137. type WorkSiteProcessRequireList struct {
  138. ID int `json:"id"`
  139. }
  140. requireList := make([]WorkSiteProcessRequireList, 0)
  141. db.GetMultiRaw("SELECT `zy_work_process_require`.`id` from `zy_work_process_require` left join `zy_work_site_process_point` on `zy_work_site_process_point`.`require_id` = `zy_work_process_require`.`id` AND `zy_work_site_process_point`.`deleted_at`=0 AND `zy_work_site_process_point`.`site_node_id`={{site_node_id}} AND `zy_work_site_process_point`.`id` in (select max(`zy_work_site_process_point`.`id`) from `zy_work_site_process_point` where `zy_work_site_process_point`.`deleted_at`=0 group by `zy_work_site_process_point`.`site_node_id`, `zy_work_site_process_point`.`require_id`) left join `zy_work_process` on `zy_work_process`.`id` = `zy_work_process_require`.`process_id` ", map[string]string{
  142. "where": "`zy_work_process_require`.`id`>0 AND `zy_work_process_require`.`deleted_at`=0 AND `zy_work_process_require`.`state`=1 AND `zy_work_process`.`node_id`={{node_id}} AND FIND_IN_SET(`zy_work_process`.`id`, {{process_ids}}) AND (ISNULL(`zy_work_site_process_point`.`state`) OR `zy_work_site_process_point`.`state` != 1)",
  143. "_order_by": "`zy_work_process_require`.`id` desc",
  144. "_group_by": "`zy_work_process_require`.`id`",
  145. }, map[string]interface{}{
  146. "site_node_id": worksitenodeInfo.ID,
  147. "node_id": worksitenodeInfo.NodeId,
  148. "process_ids": worksitenodeInfo.ProcessIds,
  149. }, &requireList)
  150. if len(requireList) != 0 {
  151. return errors.New("存在图片未审核")
  152. }
  153. /*if worksitenodeInfo.QualityAcceptID != 0 {
  154. s := db.ModelQuery(db.Type(models.WorkSiteQualityAcceptItemModel{}), map[string]interface{}{
  155. "quality_accept_id": worksitenodeInfo.QualityAcceptID,
  156. "site_node_id": worksitenodeInfo.ID,
  157. }, true)
  158. s.Where = append(s.Where, "(`siteitem`.`state` != 1 OR isnull(`siteitem`.`state`))")
  159. deleted := models.WorkSiteQualityAcceptItemModel{}.DeletedField()
  160. if deleted != "" {
  161. s.Where = append(s.Where, fmt.Sprintf("`%s`.`%s` = 0", models.WorkSiteQualityAcceptItemModel{}.TableName(), deleted))
  162. }
  163. query, params := s.Query()
  164. list, err := db.QueryMap(query, params, nil)
  165. if err != nil {
  166. return err
  167. }
  168. if list == nil {
  169. list = make([]map[string]interface{}, 0)
  170. }
  171. if len(list) != 0 {
  172. return errors.New("未完成质检")
  173. }
  174. }
  175. if worksitenodeInfo.ReturnVisitID != 0 && worksitenodeInfo.ReturnVisitContent == "" {
  176. return errors.New("未完成客服回访")
  177. }*/
  178. s := db.ModelQuery(db.Type(models.WorkSiteProblem{}), map[string]interface{}{
  179. "site_node_id": worksitenodeInfo.ID,
  180. }, true)
  181. db.WhereParse(&s, map[string]interface{}{
  182. "state !=": 6,
  183. })
  184. deleted := models.WorkSiteProblem{}.DeletedField()
  185. if deleted != "" {
  186. s.Where = append(s.Where, fmt.Sprintf("`%s`.`%s` = 0", models.WorkSiteProblem{}.TableName(), deleted))
  187. }
  188. query, params := s.Query()
  189. list, err := db.QueryMap(query, params, nil)
  190. if err != nil {
  191. return err
  192. }
  193. if list == nil {
  194. list = make([]map[string]interface{}, 0)
  195. }
  196. if len(list) != 0 {
  197. return errors.New("存在问题未完结")
  198. }
  199. _, err = db.Update(worksitenodeInfo.TableName(), map[string]interface{}{"id": worksitenodeInfo.ID}, map[string]interface{}{
  200. "real_endtime": now,
  201. "quality_time": time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, 1).Unix(),
  202. "state": 3,
  203. })
  204. if err != nil {
  205. return err
  206. }
  207. var model models.WorkSiteNode
  208. s = db.ModelQuery(db.Type(model), map[string]interface{}{
  209. "site_id": worksiteInfo.ID,
  210. }, true)
  211. db.WhereParse(&s, map[string]interface{}{
  212. "state !=": 3,
  213. })
  214. deleted = model.DeletedField()
  215. if deleted != "" {
  216. s.Where = append(s.Where, fmt.Sprintf("`%s`.`%s` = 0", model.TableName(), deleted))
  217. }
  218. query, params = s.Query()
  219. list, err = db.QueryMap(query, params, nil)
  220. if err != nil {
  221. return err
  222. }
  223. if list == nil {
  224. list = make([]map[string]interface{}, 0)
  225. }
  226. if len(list) == 0 {
  227. _, err = db.Update(worksiteInfo.TableName(), map[string]interface{}{"id": worksiteInfo.ID}, map[string]interface{}{
  228. "real_endtime": now,
  229. "state": 2,
  230. })
  231. if err != nil {
  232. return err
  233. }
  234. userID := user.CreateNewUser(worksiteInfo.Username, worksiteInfo.Phone)
  235. if userID > 0 {
  236. _, err := user.HouseAdd(form.HouseAdd{
  237. UserID: userID,
  238. Address: worksiteInfo.Address + " " + worksiteInfo.Village,
  239. Designer: worksiteInfo.DesignerId,
  240. Supervisor: worksiteInfo.ManagerId,
  241. ProjectStart: time.Unix(int64(worksiteInfo.StartTime), 0).Format("2006-01-02"),
  242. ProjectEnd: time.Unix(int64(worksiteInfo.EndTime), 0).Format("2006-01-02"),
  243. WarrantyPeriodBase: 2,
  244. WarrantyPeriodMaterial: 1,
  245. WarrantyPeriodElectric: 5,
  246. WarrantyStart: time.Now().Format("2006-01") + fmt.Sprintf("-%02d", time.Now().Day()+1),
  247. })
  248. if err != nil {
  249. return err
  250. }
  251. }
  252. }
  253. case 1:
  254. nodes := make([]models.WorkSiteNode, 0)
  255. db.GetModel(map[string]interface{}{
  256. "site_id": worksitecheck.SiteId,
  257. "deleted_at": 0,
  258. }, &nodes)
  259. for _, node := range nodes {
  260. if node.State < 2 {
  261. data := map[string]interface{}{
  262. "endtime": node.EndTime + worksitecheck.Days*86400,
  263. }
  264. if int64(node.StartTime) >= now {
  265. data["starttime"] = node.StartTime + worksitecheck.Days*86400
  266. } else {
  267. data["days"] = node.Days + worksitecheck.Days
  268. }
  269. db.UpdateModel(db.Type(models.WorkSiteNode{}), int64(node.ID), data)
  270. }
  271. }
  272. if worksiteInfo.State < 2 {
  273. data := map[string]interface{}{
  274. "endtime": worksiteInfo.EndTime + worksitecheck.Days*86400,
  275. }
  276. if worksiteInfo.State == 0 {
  277. data["starttime"] = worksiteInfo.StartTime + worksitecheck.Days*86400
  278. }
  279. db.UpdateModel(db.Type(worksiteInfo), int64(worksiteInfo.ID), data)
  280. }
  281. case 2:
  282. if int64(worksitecheck.Days) <= now {
  283. db.UpdateModel(db.Type(worksiteInfo), int64(worksiteInfo.ID), map[string]interface{}{
  284. "stoptime": worksitecheck.Days,
  285. "state": 3,
  286. })
  287. }
  288. case 3:
  289. if int64(worksitecheck.Days) <= now {
  290. nodes := make([]models.WorkSiteNode, 0)
  291. db.GetModel(map[string]interface{}{
  292. "site_id": worksitecheck.SiteId,
  293. "deleted_at": 0,
  294. }, &nodes)
  295. for _, node := range nodes {
  296. if node.State < 2 {
  297. data := map[string]interface{}{
  298. "endtime": node.EndTime + worksitecheck.Days - worksiteInfo.StopTime,
  299. }
  300. if node.StartTime >= worksiteInfo.StopTime {
  301. data["starttime"] = node.StartTime + worksitecheck.Days - worksiteInfo.StopTime
  302. } else {
  303. data["days"] = node.Days + int((worksitecheck.Days-worksiteInfo.StopTime)/86400)
  304. }
  305. db.UpdateModel(db.Type(models.WorkSiteNode{}), int64(node.ID), data)
  306. }
  307. }
  308. data := map[string]interface{}{
  309. "state": 1,
  310. "endtime": worksiteInfo.EndTime + worksitecheck.Days - worksiteInfo.StopTime,
  311. }
  312. db.UpdateModel(db.Type(worksiteInfo), int64(worksiteInfo.ID), data)
  313. }
  314. case 4:
  315. if worksitecheck.State == 0 {
  316. state = 3
  317. } else {
  318. check_id = "`check_ids`"
  319. explain = "`explains`"
  320. worksitenodeInfo, _ := worksitenode.GetInfoByID(worksitecheck.SiteNodeId, nil, nil)
  321. if worksitenodeInfo == nil {
  322. return errors.New("invalid worksitenode id")
  323. }
  324. data := map[string]interface{}{
  325. "endtime": worksitenodeInfo.EndTime + worksitecheck.Days*86400,
  326. }
  327. if int64(worksitenodeInfo.StartTime) >= now {
  328. data["starttime"] = worksitenodeInfo.StartTime + worksitecheck.Days*86400
  329. } else {
  330. data["days"] = worksitenodeInfo.Days + worksitecheck.Days
  331. }
  332. db.UpdateModel(db.Type(models.WorkSiteNode{}), int64(worksitenodeInfo.ID), data)
  333. }
  334. case 5:
  335. if worksitecheck.State == 0 {
  336. state = 3
  337. } else {
  338. check_id = "`check_ids`"
  339. explain = "`explains`"
  340. worksitenodeInfo, _ := worksitenode.GetInfoByID(worksitecheck.SiteNodeId, nil, nil)
  341. if worksitenodeInfo == nil {
  342. return errors.New("invalid worksitenode id")
  343. }
  344. db.UpdateModel(db.Type(models.WorkSiteNode{}), int64(worksitenodeInfo.ID), map[string]interface{}{
  345. "state": 4,
  346. "process_ids": "",
  347. "return_visit_id": 0,
  348. "quality_accept_id": 0,
  349. })
  350. }
  351. }
  352. data := map[string]interface{}{
  353. "`state`": state,
  354. explain: forms.Explain,
  355. check_id: adminID,
  356. }
  357. if worksitecheck.State == 0 {
  358. data["check_at"] = now
  359. }
  360. _, err = db.Update(WorkSiteCheck.TableName(), map[string]interface{}{
  361. "id": worksitecheck.ID,
  362. }, data)
  363. if err != nil {
  364. return err
  365. }
  366. return nil
  367. }
  368. func CheckCron() {
  369. day, _ := time.ParseInLocation("2006-01-02", time.Now().Format("2006-01-02"), time.Local)
  370. now := day.Unix()
  371. checks := make([]models.WorkSiteCheck, 0)
  372. db.GetModel(map[string]interface{}{
  373. "days": day.Unix(),
  374. "state": 1,
  375. "deleted_at": 0,
  376. }, &checks)
  377. for _, check := range checks {
  378. worksiteInfo, _ := worksite.GetInfoByID(check.SiteId, nil, nil)
  379. if worksiteInfo == nil {
  380. return
  381. }
  382. switch check.Type {
  383. case 2:
  384. db.UpdateModel(db.Type(worksiteInfo), int64(worksiteInfo.ID), map[string]interface{}{
  385. "stoptime": now,
  386. "state": 3,
  387. })
  388. case 3:
  389. nodes := make([]models.WorkSiteNode, 0)
  390. db.GetModel(map[string]interface{}{
  391. "site_id": check.SiteId,
  392. "deleted_at": 0,
  393. }, &nodes)
  394. for _, node := range nodes {
  395. if node.State < 2 {
  396. data := map[string]interface{}{
  397. "endtime": node.EndTime + check.Days - worksiteInfo.StopTime,
  398. }
  399. if node.StartTime >= worksiteInfo.StopTime {
  400. data["starttime"] = node.StartTime + check.Days - worksiteInfo.StopTime
  401. } else {
  402. data["days"] = node.Days + int((check.Days-worksiteInfo.StopTime)/86400)
  403. }
  404. db.UpdateModel(db.Type(models.WorkSiteNode{}), int64(node.ID), data)
  405. }
  406. }
  407. data := map[string]interface{}{
  408. "state": 1,
  409. "endtime": worksiteInfo.EndTime + check.Days - worksiteInfo.StopTime,
  410. }
  411. db.UpdateModel(db.Type(worksiteInfo), int64(worksiteInfo.ID), data)
  412. }
  413. }
  414. }
  415. func CheckFail(id int, forms form.WorkSiteCheckFrom, adminID int) error {
  416. worksitecheck, err := GetInfoByID(id, nil, nil)
  417. if worksitecheck == nil {
  418. return errors.New("invalid worksitecheck id")
  419. }
  420. if worksitecheck.Type == 0 {
  421. worksitenodeInfo, err := worksitenode.GetInfoByID(worksitecheck.SiteNodeId, nil, nil)
  422. if worksitenodeInfo == nil {
  423. return errors.New("invalid worksitenode id")
  424. }
  425. _, err = db.Update(worksitenodeInfo.TableName(), map[string]interface{}{
  426. "id": worksitenodeInfo.ID,
  427. }, map[string]interface{}{
  428. "state": 0,
  429. })
  430. if err != nil {
  431. return err
  432. }
  433. }
  434. _, err = db.Update(WorkSiteCheck.TableName(), map[string]interface{}{
  435. "id": worksitecheck.ID,
  436. }, map[string]interface{}{
  437. "state": 2,
  438. "`explain`": forms.Explain,
  439. "`check_id`": adminID,
  440. })
  441. if err != nil {
  442. return err
  443. }
  444. return nil
  445. }
  446. func DeleteByID(id int) error {
  447. info, _ := GetInfoByID(id, nil, nil)
  448. if info == nil {
  449. return errors.New("invalid id")
  450. }
  451. _, err := db.DeleteSoft(WorkSiteCheck.TableName(), map[string]interface{}{"id": id})
  452. return err
  453. }
  454. func Count(where map[string]interface{}) (int64, error) {
  455. return db.Count(WorkSiteCheck.TableName(), where)
  456. }
  457. func CountRaw(where string, param map[string]interface{}) (int64, error) {
  458. query := "`zy_work_site_check` left join `zy_work_site` on `zy_work_site`.`id` = `zy_work_site_check`.`site_id` WHERE " + where
  459. return db.CountRaw(query, param)
  460. }
  461. func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.WorkSiteCheck, error) {
  462. if page.PageNum > 0 && page.PageSize > 0 {
  463. where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize))
  464. }
  465. return WorkSiteCheck.GetMulti(where, fields, retVal)
  466. }
  467. func GetWorkSiteChecksRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  468. field := "SELECT `zy_work_site_check`.*, `zy_work_site_node`.`name` as `node_name`, `zy_work_node`.`color` as `node_color`, `zy_work_node`.`logo` as `node_logo`, `zy_admin`.`username` as `admin_name`, `zy_admin`.`headimgurl` as `admin_headimgurl`, `check`.`username` as `check_name`, `check`.`headimgurl` as `check_headimgurl`, `checks`.`username` as `checks_name`, `checks`.`headimgurl` as `checks_headimgurl`, `zy_work_site`.`username` as `username`, `zy_work_site`.`phone` as `phone`, `zy_work_site`.`village` as `village`, `zy_work_site`.`address` as `address`, `zy_work_site`.`room_no` as `room_no`, `zy_work_site`.`area` as `area`, `zy_work_site`.`starttime` as `site_starttime`, `zy_work_site`.`endtime` as `site_endtime`, `zy_work_site`.`state` as `site_state`, `zy_work_site`.`servicer_id` as `site_servicer_id` from `zy_work_site_check` left join `zy_admin` on `zy_admin`.`id` = `zy_work_site_check`.`admin_id` left join `zy_work_site_node` on `zy_work_site_node`.`id` = `zy_work_site_check`.`site_node_id` left join `zy_work_node` on `zy_work_node`.`id` = `zy_work_site_node`.`node_id` left join `zy_admin` as `check` on `check`.`id` = `zy_work_site_check`.`check_id` left join `zy_work_site` on `zy_work_site`.`id` = `zy_work_site_check`.`site_id` left join `zy_admin` as `checks` on `checks`.`id` = `zy_work_site_check`.`check_ids`"
  469. return db.GetMultiRaw(field, where, param, retVal)
  470. }
  471. func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.WorkSiteCheck, error) {
  472. return WorkSiteCheck.GetOne(where, fields, retVal)
  473. }
  474. func GetWorkSiteCheckOne(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  475. field := "SELECT `zy_work_site_check`.*, `zy_work_site_node`.`name` as `node_name`, `zy_work_node`.`color` as `node_color`, `zy_work_node`.`logo` as `node_logo`, `zy_admin`.`username` as `admin_name`, `zy_admin`.`headimgurl` as `admin_headimgurl`, `check`.`username` as `check_name`, `check`.`headimgurl` as `check_headimgurl`, `zy_work_site`.`username` as `username`, `zy_work_site`.`phone` as `phone`, `zy_work_site`.`village` as `village`, `zy_work_site`.`address` as `address`, `zy_work_site`.`room_no` as `room_no`, `zy_work_site`.`area` as `area`, `zy_work_site`.`starttime` as `site_starttime`, `zy_work_site`.`endtime` as `site_endtime`, `zy_work_site`.`state` as `site_state` from `zy_work_site_check` left join `zy_admin` on `zy_admin`.`id` = `zy_work_site_check`.`admin_id` left join `zy_work_site_node` on `zy_work_site_node`.`id` = `zy_work_site_check`.`site_node_id` left join `zy_work_node` on `zy_work_node`.`id` = `zy_work_site_node`.`node_id` left join `zy_admin` as `check` on `check`.`id` = `zy_work_site_check`.`check_id` left join `zy_work_site` on `zy_work_site`.`id` = `zy_work_site_check`.`site_id`"
  476. where["_page_size"] = utils.ToStr(1)
  477. where["_page_num"] = utils.ToStr(1)
  478. return db.GetMultiRaw(field, where, param, retVal)
  479. }
  480. func GetWorkSiteCheckByID(id int, retVal interface{}) error {
  481. where := map[string]string{
  482. "where": "`zy_work_site_check`.`id` = {{id}}",
  483. }
  484. param := map[string]interface{}{"id": id}
  485. return GetWorkSiteCheckOne(where, param, retVal)
  486. }
  487. func GetInfoByID(id int, fields []string, retVal interface{}) (*models.WorkSiteCheck, error) {
  488. return GetOne(map[string]interface{}{"id": id}, fields, retVal)
  489. }