123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- package service
- import (
- "errors"
- "fmt"
- "gas-cylinder-api/app/admin/model"
- "gas-cylinder-api/app/admin/service/dto"
- "gas-cylinder-api/common/actions"
- cDto "gas-cylinder-api/common/dto"
- "gas-cylinder-api/common/global"
- "gogs.baozhida.cn/zoie/OAuth-core/service"
- "gorm.io/gorm"
- "strconv"
- "strings"
- )
- type InspectExpand struct {
- service.Service
- }
- // GetPage 获取InspectExpand列表
- func (e *InspectExpand) GetPage(c *dto.InspectExpandGetPageReq, list *[]model.InspectExpand, count *int64, p *actions.DataPermission) error {
- var err error
- var data model.InspectExpand
- err = e.Orm.Model(&data).
- Scopes(
- cDto.MakeCondition(c.GetNeedSearch()),
- cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
- actions.Permission(data.TableName(), p),
- ).
- Find(list).Limit(-1).Offset(-1).
- Count(count).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.GetFailedErr
- }
- return nil
- }
- // Insert 创建InspectExpand对象
- func (e *InspectExpand) Insert(c *dto.InspectExpandInsertReq, p *actions.DataPermission) error {
- var err error
- var data model.InspectExpand
- tx := e.Orm.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- err = tx.Where("dept_id = ? and inspect_explain = ?", p.DeptId).First(&data).Error
- if err == nil {
- c.Id = data.Id
- return nil
- }
- var inspectItem string
- err = tx.Where("dept_id = ?", p.DeptId).Last(&data).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- if errors.Is(err, gorm.ErrRecordNotFound) {
- inspectItem = "ITEM_1"
- } else {
- return global.CreateFailedErr
- }
- } else {
- item, _ := strconv.Atoi(strings.Split(data.InspectItem, "_")[1])
- inspectItem = fmt.Sprintf("ITEM_%d", item+1)
- }
- data.Id = 0
- data.InspectItem = inspectItem
- c.Generate(&data)
- err = tx.Create(&data).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.CreateFailedErr
- }
- c.Id = data.Id
- return nil
- }
- // Update 修改InspectExpand对象
- func (e *InspectExpand) Update(c *dto.InspectExpandInsertReq) error {
- var err error
- tx := e.Orm.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- var InspectExpandModel = model.InspectExpand{}
- // 查询入户安全检查项是否存在
- err = e.Orm.First(&InspectExpandModel, c.GetId()).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- if errors.Is(err, gorm.ErrRecordNotFound) {
- return global.UpdateNotFoundOrNoPermissionErr
- }
- return global.UpdateFailedErr
- }
- c.UpdateGenerate(&InspectExpandModel)
- err = tx.Save(&InspectExpandModel).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.UpdateFailedErr
- }
- c.Id = InspectExpandModel.Id
- return nil
- }
- // Init 初始化
- func (e *InspectExpand) Init(userId, deptId int) error {
- var err error
- tx := e.Orm.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- inspectionItems := []model.InspectExpand{
- {InspectItem: "ITEM_1", InspectExplain: "检查是否违规在地下室、卫生间或密闭的房间内存放使用瓶装液化气。"},
- {InspectItem: "ITEM_2", InspectExplain: "检查液化气瓶、炉具使用或气瓶存放的房间内是否违反规定安床住人。"},
- {InspectItem: "ITEM_3", InspectExplain: "检查液化气瓶、炉具使用或存放的房间上方是否搭建阁楼。"},
- {InspectItem: "ITEM_4", InspectExplain: "检查液化气瓶、炉具使用或存放的房间内通风是否良好及加装换气装置。"},
- {InspectItem: "ITEM_5", InspectExplain: "检查液化气瓶、炉具使用或存放的场所是否配备灭火器。"},
- {InspectItem: "ITEM_6", InspectExplain: "检查液化气瓶存放间内是否按照国家规范安装燃气浓度报警仪装置。"},
- {InspectItem: "ITEM_7", InspectExplain: "检查液化气瓶、炉具使用或存放处是否堆放易燃物及其它杂物。"},
- {InspectItem: "ITEM_8", InspectExplain: "检查液化气瓶、炉具、软管是否放在不易碰撞且易操作检查的地方。"},
- {InspectItem: "ITEM_9", InspectExplain: "检查液化气瓶是否摆放在密闭狭小的橱柜内使用。"},
- {InspectItem: "ITEM_10", InspectExplain: "检查液化气炉具下方是否密闭及不具备通风条件。"},
- {InspectItem: "ITEM_11", InspectExplain: "检查液化气瓶是否完好有效、开关是否正常无泄漏。"},
- {InspectItem: "ITEM_12", InspectExplain: "检查燃气炉具工作性能正常,无破损、无泄漏,且开关完好正常。"},
- {InspectItem: "ITEM_13", InspectExplain: "检查减压阀是否功能完好无破损,且安装到位无松动、无异常、无泄漏。"},
- {InspectItem: "ITEM_14", InspectExplain: "检查连接软管是否完好无老化、龟裂、鼓包、破损、泄漏等现象。"},
- {InspectItem: "ITEM_15", InspectExplain: "检查软管与炉具、减压阀连接处是否安装到位且卡子紧固无松动、无泄漏。"},
- {InspectItem: "ITEM_16", InspectExplain: "检查连接软管有无加装三通、套管、穿墙或铺设顶棚、埋地等不易检查处。"},
- {InspectItem: "ITEM_17", InspectExplain: "检查连接软管是否放置炉具底部靠近明火、高温或电源线路及电器处。"},
- {InspectItem: "ITEM_18", InspectExplain: "检查气瓶护罩及气瓶周围是否堆放或悬挂杂物。"},
- {InspectItem: "ITEM_19", InspectExplain: "检查气瓶是否与炉具、高温物体保持一定的安全间距。"},
- {InspectItem: "ITEM_20", InspectExplain: "检查燃气热水器是否放置在卫生间或其它密闭不通风的房间内使用。"},
- {InspectItem: "ITEM_21", InspectExplain: "检查燃气热水器或汤锅桶是否安装排烟管将废气引出室外。"},
- {InspectItem: "ITEM_22", InspectExplain: "检查是否明确专人负责具体操作及日常安全巡查管理。"},
- }
- for i := 0; i < len(inspectionItems); i++ {
- inspectionItems[i].CreateBy = userId
- inspectionItems[i].DeptId = deptId
- }
- err = tx.Create(&inspectionItems).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return errors.New("初始化安全检查项失败")
- }
- return nil
- }
- // Init 初始化
- func (e *InspectExpand) DeleteByDeptId(deptId int) error {
- var err error
- tx := e.Orm.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- inspectExpand := model.InspectExpand{}
- err = tx.Where("dept_id = ?", deptId).Delete(&inspectExpand).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return errors.New("删除安全检查项失败")
- }
- return nil
- }
- // Remove 删除GasCylinderStatus
- func (e *InspectExpand) Remove(c *dto.InspectExpandDeleteReq, p *actions.DataPermission) error {
- var err error
- tx := e.Orm.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- var inspectExpandModel model.InspectExpand
- // 查询钢瓶是否存在
- err = e.Orm.Scopes(actions.Permission(inspectExpandModel.TableName(), p)).
- First(&inspectExpandModel, c.GetId()).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- if errors.Is(err, gorm.ErrRecordNotFound) {
- return global.DeleteNotFoundOrNoPermissionErr
- }
- return global.DeleteFailedErr
- }
- db := tx.Delete(&inspectExpandModel)
- if err = db.Error; err != nil {
- e.Log.Errorf("db error: %s", err)
- return global.DeleteFailedErr
- }
- if db.RowsAffected == 0 {
- return global.DeleteNotFoundOrNoPermissionErr
- }
- return nil
- }
- func (e *InspectExpand) SyncStore(c *dto.InspectExpandSyncStoreReq, p *actions.DataPermission) error {
- var err error
- var data model.InspectExpand
- var list []model.InspectExpand
- tx := e.Orm.Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- err = e.Orm.Model(&data).
- Scopes(
- actions.Permission(data.TableName(), p),
- ).
- Find(&list).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return errors.New("获取安全检查项失败")
- }
- if len(list) == 0 {
- return errors.New("暂无安全检查项可同步")
- }
- for _, storeId := range c.StoreIds {
- if storeId == p.DeptId {
- continue
- }
- inspectExpand := model.InspectExpand{}
- err = tx.Where("dept_id = ?", storeId).Delete(&inspectExpand).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return errors.New("删除安全检查项失败")
- }
- inspectExpandList := []model.InspectExpand{}
- for _, v := range list {
- v.Id = 0
- v.DeptId = storeId
- v.CreateBy = p.UserId
- inspectExpandList = append(inspectExpandList, v)
- }
- err = tx.Create(&inspectExpandList).Error
- if err != nil {
- e.Log.Errorf("db error: %s", err)
- return errors.New("同步安全检查项失败")
- }
- }
- return nil
- }
|