quality_dao.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /*
  2. * @description: 安全巡检数据库操作相关
  3. * @Author: LanJianRong
  4. * @Date: 2020-11-20
  5. * @FilePath: \construction_management\dao\quality_dao.go
  6. */
  7. package dao
  8. import (
  9. "fmt"
  10. "github.com/go-xorm/xorm"
  11. "go.mod/models"
  12. "go.mod/web/viewmodels"
  13. )
  14. //数据库操作引擎
  15. type QualityDao struct {
  16. engine *xorm.Engine
  17. }
  18. //获得一个DAO对象
  19. func NewQualityDao(engine *xorm.Engine) *QualityDao {
  20. return &QualityDao{
  21. engine: engine,
  22. }
  23. }
  24. func (d *QualityDao) FindById(id int) *models.CmQuality {
  25. data := &models.CmQuality{Id: id}
  26. ok, err := d.engine.Get(data)
  27. if ok && err == nil {
  28. return data
  29. } else {
  30. data.Id = 0
  31. return data
  32. }
  33. }
  34. // id获得数据
  35. func (d *QualityDao) GetListByBid(id int, pageNo int, pageSize int) ([]models.CmQuality, int64) {
  36. dataList := make([]models.CmQuality, 0)
  37. start := (pageNo - 1) * pageSize
  38. total, err := d.engine.
  39. Where("bidsection_id=?", id).
  40. Asc("id").
  41. Limit(pageSize, start).
  42. FindAndCount(&dataList)
  43. if err != nil {
  44. return dataList, 0
  45. }
  46. return dataList, total
  47. }
  48. // 插入单条记录
  49. func (d *QualityDao) InsertRecord(data models.CmQuality) (bool, error) {
  50. affected, err := d.engine.InsertOne(data)
  51. return affected > 0, err
  52. }
  53. // 删除记录
  54. func (d *QualityDao) DeleteRecord(id int) (bool, error) {
  55. Quality := models.CmQuality{}
  56. affected, err := d.engine.Id(id).Delete(Quality)
  57. return affected > 0, err
  58. }
  59. // 根据code获取记录
  60. func (d *QualityDao) FindByCode(code string) bool {
  61. data := &models.CmQuality{Code: code}
  62. has, _ := d.engine.Get(data)
  63. return has
  64. }
  65. // 筛选出应用了当前规则的条数
  66. func (d *QualityDao) CountRuleCode(bid int) (int64, error) {
  67. data := &models.CmQuality{}
  68. total, err := d.engine.Where("`bidsection_id` = ?", bid).Count(data)
  69. if err != nil {
  70. total = 0
  71. }
  72. return total, err
  73. }
  74. // 更改status
  75. func (d *QualityDao) ChangeStatus(id int, status int) error {
  76. data := &models.CmQuality{Status: status}
  77. _, err := d.engine.ID(id).Update(data)
  78. return err
  79. }
  80. // 获得某状态下的安全
  81. func (d *QualityDao) GetStatus(bidsectionId int, status int) []models.CmQuality {
  82. datalist := make([]models.CmQuality, 0)
  83. _ = d.engine.
  84. Where("bidsection_id = ? and status=? ", bidsectionId, status).
  85. Desc("id").
  86. Find(&datalist)
  87. return datalist
  88. }
  89. // 获得某年份下的安全
  90. func (d *QualityDao) GetTypeYear(bidsectionId int, year int) []viewmodels.QualitySurveyList {
  91. startYear := fmt.Sprintf("%d-01-01:00.00.00", year)
  92. endYear := fmt.Sprintf("%d-12-31:23.59.59", year)
  93. datalist := make([]viewmodels.QualitySurveyList, 0)
  94. _ = d.engine.Table("`cm_quality` as cs").
  95. Select("cs.id, cs.`create_time`, cs.`inspection_detail`, cs.status, pa.`name` as `audit_name`").
  96. Where("cs.bidsection_id = ? and cs.create_time>='"+startYear+"' and cs.create_time<='"+endYear+"' ", bidsectionId).
  97. Join("left", "cm_project_account as pa", "pa.id = cs.uid").
  98. Desc("id").
  99. Find(&datalist)
  100. // _ = d.engine.
  101. // Where("bidsection_id = ? and create_time>='"+startYear+"' and create_time<='"+endYear+"' ", bidsectionId).
  102. // Desc("id").
  103. // Find(&datalist)
  104. return datalist
  105. }
  106. // 获得某状态下的安全
  107. func (d *QualityDao) GetStatusByProjectAndAccount(projectId int, projectAccountId int, status int) []models.CmQuality {
  108. datalist := make([]models.CmQuality, 0)
  109. _ = d.engine.
  110. Where("project_id = ? and audit_id= ? and status=? ", projectId, projectAccountId, status).
  111. Desc("id").
  112. Find(&datalist)
  113. return datalist
  114. }