inspect_expand.go 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. package service
  2. import (
  3. "errors"
  4. "fmt"
  5. "gas-cylinder-api/app/admin/model"
  6. "gas-cylinder-api/app/admin/service/dto"
  7. "gas-cylinder-api/common/actions"
  8. cDto "gas-cylinder-api/common/dto"
  9. "gas-cylinder-api/common/global"
  10. "gogs.baozhida.cn/zoie/OAuth-core/service"
  11. "gorm.io/gorm"
  12. "strconv"
  13. "strings"
  14. )
  15. type InspectExpand struct {
  16. service.Service
  17. }
  18. // GetPage 获取InspectExpand列表
  19. func (e *InspectExpand) GetPage(c *dto.InspectExpandGetPageReq, list *[]model.InspectExpand, count *int64, p *actions.DataPermission) error {
  20. var err error
  21. var data model.InspectExpand
  22. err = e.Orm.Model(&data).
  23. Scopes(
  24. cDto.MakeCondition(c.GetNeedSearch()),
  25. cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
  26. actions.Permission(data.TableName(), p),
  27. ).
  28. Find(list).Limit(-1).Offset(-1).
  29. Count(count).Error
  30. if err != nil {
  31. e.Log.Errorf("db error: %s", err)
  32. return global.GetFailedErr
  33. }
  34. return nil
  35. }
  36. // Insert 创建InspectExpand对象
  37. func (e *InspectExpand) Insert(c *dto.InspectExpandInsertReq, p *actions.DataPermission) error {
  38. var err error
  39. var data model.InspectExpand
  40. tx := e.Orm.Begin()
  41. defer func() {
  42. if err != nil {
  43. tx.Rollback()
  44. } else {
  45. tx.Commit()
  46. }
  47. }()
  48. err = tx.Where("dept_id = ? and inspect_explain = ?", p.DeptId).First(&data).Error
  49. if err == nil {
  50. c.Id = data.Id
  51. return nil
  52. }
  53. var inspectItem string
  54. err = tx.Where("dept_id = ?", p.DeptId).Last(&data).Error
  55. if err != nil {
  56. e.Log.Errorf("db error: %s", err)
  57. if errors.Is(err, gorm.ErrRecordNotFound) {
  58. inspectItem = "ITEM_1"
  59. } else {
  60. return global.CreateFailedErr
  61. }
  62. } else {
  63. item, _ := strconv.Atoi(strings.Split(data.InspectItem, "_")[1])
  64. inspectItem = fmt.Sprintf("ITEM_%d", item+1)
  65. }
  66. data.Id = 0
  67. data.InspectItem = inspectItem
  68. c.Generate(&data)
  69. err = tx.Create(&data).Error
  70. if err != nil {
  71. e.Log.Errorf("db error: %s", err)
  72. return global.CreateFailedErr
  73. }
  74. c.Id = data.Id
  75. return nil
  76. }
  77. // Update 修改InspectExpand对象
  78. func (e *InspectExpand) Update(c *dto.InspectExpandInsertReq) error {
  79. var err error
  80. tx := e.Orm.Begin()
  81. defer func() {
  82. if err != nil {
  83. tx.Rollback()
  84. } else {
  85. tx.Commit()
  86. }
  87. }()
  88. var InspectExpandModel = model.InspectExpand{}
  89. // 查询入户安全检查项是否存在
  90. err = e.Orm.First(&InspectExpandModel, c.GetId()).Error
  91. if err != nil {
  92. e.Log.Errorf("db error: %s", err)
  93. if errors.Is(err, gorm.ErrRecordNotFound) {
  94. return global.UpdateNotFoundOrNoPermissionErr
  95. }
  96. return global.UpdateFailedErr
  97. }
  98. c.UpdateGenerate(&InspectExpandModel)
  99. err = tx.Save(&InspectExpandModel).Error
  100. if err != nil {
  101. e.Log.Errorf("db error: %s", err)
  102. return global.UpdateFailedErr
  103. }
  104. c.Id = InspectExpandModel.Id
  105. return nil
  106. }
  107. // Init 初始化
  108. func (e *InspectExpand) Init(userId, deptId int) error {
  109. var err error
  110. tx := e.Orm.Begin()
  111. defer func() {
  112. if err != nil {
  113. tx.Rollback()
  114. } else {
  115. tx.Commit()
  116. }
  117. }()
  118. inspectionItems := []model.InspectExpand{
  119. {InspectItem: "ITEM_1", InspectExplain: "检查是否违规在地下室、卫生间或密闭的房间内存放使用瓶装液化气。"},
  120. {InspectItem: "ITEM_2", InspectExplain: "检查液化气瓶、炉具使用或气瓶存放的房间内是否违反规定安床住人。"},
  121. {InspectItem: "ITEM_3", InspectExplain: "检查液化气瓶、炉具使用或存放的房间上方是否搭建阁楼。"},
  122. {InspectItem: "ITEM_4", InspectExplain: "检查液化气瓶、炉具使用或存放的房间内通风是否良好及加装换气装置。"},
  123. {InspectItem: "ITEM_5", InspectExplain: "检查液化气瓶、炉具使用或存放的场所是否配备灭火器。"},
  124. {InspectItem: "ITEM_6", InspectExplain: "检查液化气瓶存放间内是否按照国家规范安装燃气浓度报警仪装置。"},
  125. {InspectItem: "ITEM_7", InspectExplain: "检查液化气瓶、炉具使用或存放处是否堆放易燃物及其它杂物。"},
  126. {InspectItem: "ITEM_8", InspectExplain: "检查液化气瓶、炉具、软管是否放在不易碰撞且易操作检查的地方。"},
  127. {InspectItem: "ITEM_9", InspectExplain: "检查液化气瓶是否摆放在密闭狭小的橱柜内使用。"},
  128. {InspectItem: "ITEM_10", InspectExplain: "检查液化气炉具下方是否密闭及不具备通风条件。"},
  129. {InspectItem: "ITEM_11", InspectExplain: "检查液化气瓶是否完好有效、开关是否正常无泄漏。"},
  130. {InspectItem: "ITEM_12", InspectExplain: "检查燃气炉具工作性能正常,无破损、无泄漏,且开关完好正常。"},
  131. {InspectItem: "ITEM_13", InspectExplain: "检查减压阀是否功能完好无破损,且安装到位无松动、无异常、无泄漏。"},
  132. {InspectItem: "ITEM_14", InspectExplain: "检查连接软管是否完好无老化、龟裂、鼓包、破损、泄漏等现象。"},
  133. {InspectItem: "ITEM_15", InspectExplain: "检查软管与炉具、减压阀连接处是否安装到位且卡子紧固无松动、无泄漏。"},
  134. {InspectItem: "ITEM_16", InspectExplain: "检查连接软管有无加装三通、套管、穿墙或铺设顶棚、埋地等不易检查处。"},
  135. {InspectItem: "ITEM_17", InspectExplain: "检查连接软管是否放置炉具底部靠近明火、高温或电源线路及电器处。"},
  136. {InspectItem: "ITEM_18", InspectExplain: "检查气瓶护罩及气瓶周围是否堆放或悬挂杂物。"},
  137. {InspectItem: "ITEM_19", InspectExplain: "检查气瓶是否与炉具、高温物体保持一定的安全间距。"},
  138. {InspectItem: "ITEM_20", InspectExplain: "检查燃气热水器是否放置在卫生间或其它密闭不通风的房间内使用。"},
  139. {InspectItem: "ITEM_21", InspectExplain: "检查燃气热水器或汤锅桶是否安装排烟管将废气引出室外。"},
  140. {InspectItem: "ITEM_22", InspectExplain: "检查是否明确专人负责具体操作及日常安全巡查管理。"},
  141. }
  142. for i := 0; i < len(inspectionItems); i++ {
  143. inspectionItems[i].CreateBy = userId
  144. inspectionItems[i].DeptId = deptId
  145. }
  146. err = tx.Create(&inspectionItems).Error
  147. if err != nil {
  148. e.Log.Errorf("db error: %s", err)
  149. return errors.New("初始化安全检查项失败")
  150. }
  151. return nil
  152. }
  153. // Init 初始化
  154. func (e *InspectExpand) DeleteByDeptId(deptId int) error {
  155. var err error
  156. tx := e.Orm.Begin()
  157. defer func() {
  158. if err != nil {
  159. tx.Rollback()
  160. } else {
  161. tx.Commit()
  162. }
  163. }()
  164. inspectExpand := model.InspectExpand{}
  165. err = tx.Where("dept_id = ?", deptId).Delete(&inspectExpand).Error
  166. if err != nil {
  167. e.Log.Errorf("db error: %s", err)
  168. return errors.New("删除安全检查项失败")
  169. }
  170. return nil
  171. }
  172. // Remove 删除GasCylinderStatus
  173. func (e *InspectExpand) Remove(c *dto.InspectExpandDeleteReq, p *actions.DataPermission) error {
  174. var err error
  175. tx := e.Orm.Begin()
  176. defer func() {
  177. if err != nil {
  178. tx.Rollback()
  179. } else {
  180. tx.Commit()
  181. }
  182. }()
  183. var inspectExpandModel model.InspectExpand
  184. // 查询钢瓶是否存在
  185. err = e.Orm.Scopes(actions.Permission(inspectExpandModel.TableName(), p)).
  186. First(&inspectExpandModel, c.GetId()).Error
  187. if err != nil {
  188. e.Log.Errorf("db error: %s", err)
  189. if errors.Is(err, gorm.ErrRecordNotFound) {
  190. return global.DeleteNotFoundOrNoPermissionErr
  191. }
  192. return global.DeleteFailedErr
  193. }
  194. db := tx.Delete(&inspectExpandModel)
  195. if err = db.Error; err != nil {
  196. e.Log.Errorf("db error: %s", err)
  197. return global.DeleteFailedErr
  198. }
  199. if db.RowsAffected == 0 {
  200. return global.DeleteNotFoundOrNoPermissionErr
  201. }
  202. return nil
  203. }
  204. func (e *InspectExpand) SyncStore(c *dto.InspectExpandSyncStoreReq, p *actions.DataPermission) error {
  205. var err error
  206. var data model.InspectExpand
  207. var list []model.InspectExpand
  208. tx := e.Orm.Begin()
  209. defer func() {
  210. if err != nil {
  211. tx.Rollback()
  212. } else {
  213. tx.Commit()
  214. }
  215. }()
  216. err = e.Orm.Model(&data).
  217. Scopes(
  218. actions.Permission(data.TableName(), p),
  219. ).
  220. Find(&list).Error
  221. if err != nil {
  222. e.Log.Errorf("db error: %s", err)
  223. return errors.New("获取安全检查项失败")
  224. }
  225. if len(list) == 0 {
  226. return errors.New("暂无安全检查项可同步")
  227. }
  228. for _, storeId := range c.StoreIds {
  229. if storeId == p.DeptId {
  230. continue
  231. }
  232. inspectExpand := model.InspectExpand{}
  233. err = tx.Where("dept_id = ?", storeId).Delete(&inspectExpand).Error
  234. if err != nil {
  235. e.Log.Errorf("db error: %s", err)
  236. return errors.New("删除安全检查项失败")
  237. }
  238. inspectExpandList := []model.InspectExpand{}
  239. for _, v := range list {
  240. v.Id = 0
  241. v.DeptId = storeId
  242. v.CreateBy = p.UserId
  243. inspectExpandList = append(inspectExpandList, v)
  244. }
  245. err = tx.Create(&inspectExpandList).Error
  246. if err != nil {
  247. e.Log.Errorf("db error: %s", err)
  248. return errors.New("同步安全检查项失败")
  249. }
  250. }
  251. return nil
  252. }