Files
ArmedPolice/app/model/work_repair.go

73 lines
2.2 KiB
Go

package model
import (
"ArmedPolice/app/common/model"
"ArmedPolice/serve/orm"
"fmt"
)
type WorkRepair struct {
*model.WorkRepair
}
// WorkRepairInfo 维修工单信息
type WorkRepairInfo struct {
*model.WorkRepair
Title string `json:"title"`
EquipmentCode string `json:"equipment_code"`
EquipmentTitle string `json:"equipment_title"`
Priority int `json:"priority"`
Breakdown string `json:"-"`
BreakdownTitle string `json:"breakdown_title"`
Username string `json:"username"`
}
type WorkRepairEvaluateInfo struct {
Name string `json:"name"`
}
// Repairs 维修工单信息
func (m *WorkRepair) Repairs(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*WorkRepairInfo, error) {
db := orm.GetDB().Table(m.TableName()+" r").
Select("r.id", "r.order_no", "e.code AS equipment_code", "e.title AS equipment_title", "w.priority",
"w.breakdown",
//"(SELECT GROUP_CONCAT(s_b.title) FROM (SELECT id, title FROM sys_breakdown) AS s_b WHERE FIND_IN_SET(s_b.id, w.breakdown)) AS breakdown_title",
"r.is_evaluate", "r.evaluate_score", "r.status", "u.name AS username", "r.created_at").
Joins(fmt.Sprintf("LEFT JOIN %s AS w ON r.work_id = w.id", model.NewWorkInstance().TableName())).
Joins(fmt.Sprintf("LEFT JOIN %s AS e ON w.equipment_id = e.id", model.NewManageEquipment().TableName())).
Joins(fmt.Sprintf("LEFT JOIN %s AS u ON w.uid = u.uuid", model.NewSysUser().TableName())).
Where("r.is_deleted = ?", model.DeleteStatusForNot)
if len(where) > 0 {
for _, wo := range where {
db = db.Where(wo.Condition, wo.Value)
}
}
out := make([]*WorkRepairInfo, 0)
if err := db.Count(count).Error; err != nil {
return nil, err
}
if err := db.Order("r.id " + model.OrderModeToDesc).Offset((page - 1) * pageSize).Limit(pageSize).Scan(&out).Error; err != nil {
return nil, err
}
return out, nil
}
// Detail 维修工单信息
func (m *WorkRepair) Detail(id uint64) (*WorkRepairInfo, error) {
db := orm.GetDB().Table(m.TableName()+" r").
Select("r.*").Where("r.id = ?", id)
out := new(WorkRepairInfo)
if err := db.Scan(&out).Error; err != nil {
return nil, err
}
return out, nil
}
func NewWorkRepair() *WorkRepair {
return &WorkRepair{model.NewWorkRepair()}
}