123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package dao
- import (
- "server/global"
- )
- type ProjectWorkingHours struct {
- global.GVA_MODEL
- ProjectCode string `json:"projectCode" form:"projectCode" gorm:"comment:项目编号"`
- People int `json:"people" form:"people" gorm:"comment:报工人"`
- SysUser SysUser `json:"constructor" form:"constructor" gorm:"foreignKey:People;references:id;"`
- Days float64 `json:"days" form:"days" gorm:"type:double(5,1);not null;comment:天数"`
- PeopleTime string `json:"peopleTime" form:"peopleTime" gorm:"comment:报工时间"`
- }
- func (ProjectWorkingHours) TableName() string {
- return "project_working_hours"
- }
- // TODO:工时查询
- // QueryWorkingHoursList 查询工时详情列表
- func QueryWorkingHoursList(limit, offset, people int, code, time, yearTime string) (projectWorkingHours []ProjectWorkingHours, total int64, err error) {
- // 创建db
- db := global.GVA_DB.Model(&ProjectWorkingHours{})
- // 如果有条件搜索 下方会自动创建搜索语句
- if code != "" {
- db = db.Where("project_code like ?", "%"+code+"%")
- }
- if people != 0 {
- db = db.Where("people = ?", people)
- }
- if time != "" {
- db = db.Where("DATE_FORMAT(people_time, '%Y-%m') = ?", time)
- }
- if yearTime != "" {
- db = db.Where("DATE_FORMAT(people_time, '%Y') = ?", yearTime)
- }
- err = db.Count(&total).Error
- if err != nil {
- return
- }
- err = db.Order("id desc").Limit(limit).Offset(offset).Preload("SysUser").Find(&projectWorkingHours).Error
- return projectWorkingHours, total, err
- }
- func QueryWorkingHoursSum(limit, offset, people int, code, time, yearTime string) (list interface{}, total int64, err error) {
- type Result struct {
- People uint
- Name string
- SumDay float64
- PriceSum float64
- }
- var results []Result
- db := global.GVA_DB.Model(&ProjectWorkingHours{}).Select("people,sys_users.`nick_name` as name,SUM(days) as sum_day,(SUM(days) * one_price) as price_sum").
- Joins("JOIN sys_users ON project_working_hours.people = sys_users.id")
- // 如果有条件搜索 下方会自动创建搜索语句
- if code != "" {
- db = db.Where("project_code like ?", "%"+code+"%")
- }
- if people != 0 {
- db = db.Where("people = ?", people)
- }
- if time != "" {
- db = db.Where("DATE_FORMAT(people_time, '%Y-%m') = ?", time)
- }
- if yearTime != "" {
- db = db.Where("DATE_FORMAT(people_time, '%Y') = ?", yearTime)
- }
- err = db.Group("people").Limit(limit).Offset(offset).Preload("SysUser").Count(&total).Scan(&results).Error
- return results, total, err
- }
- // QueryWorkingHours 查询工时
- func QueryWorkingHours(code string) (workingHours []ProjectWorkingHours, err error) {
- err = global.GVA_DB.Model(&ProjectWorkingHours{}).Where("project_code = ?", code).Preload("SysUser").Find(&workingHours).Error
- return workingHours, err
- }
- // QueryWorkingHoursByCode 查询单个工时 按id
- func QueryWorkingHoursByCode(code string, people int) (workingHours ProjectWorkingHours, err error) {
- err = global.GVA_DB.Model(&ProjectWorkingHours{}).Where("code = ? and people = ?", code, people).Preload("SysUser").First(&workingHours).Error
- return workingHours, err
- }
- // TODO:工时新增
- // CreateWorkingHours 创建工时
- func (pwh ProjectWorkingHours) CreateWorkingHours() error {
- return global.GVA_DB.Create(&pwh).Error
- }
- // TODO:工时修改
- // UpdateWorkingHours 修改工时
- func (pwh ProjectWorkingHours) UpdateWorkingHours() error {
- return global.GVA_DB.Model(&ProjectWorkingHours{}).Where("id = ?", pwh.ID).Updates(&pwh).Error
- }
- // TODO:工时删除
- // DeleteWorkingHours 删除工时
- func (pwh ProjectWorkingHours) DeleteWorkingHours() error {
- return global.GVA_DB.Model(&ProjectWorkingHours{}).Unscoped().Delete(&pwh).Error
- }
|