package workrostering import ( "hr_server/models/workgroup" "hr_server/overall" "hr_server/overall/overallhandle" "strconv" "time" "github.com/gin-gonic/gin" ) //工作时间设定 /* * @ 作者: 秦东 @ 时间: 2022-12-13 18:38:21 @ 功能: 获取工作时间列表 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiModer) TeamTimeList(c *gin.Context) { var requestData WorkTimeList c.ShouldBindJSON(&requestData) var timeList []workgroup.WorkTimeType gormDb := overall.CONSTANT_DB_HR.Model(&workgroup.WorkTimeType{}).Where("`state` IN (1,2)") if requestData.Name != "" { gormDb = gormDb.Where("`name` LIKE ?", "%"+requestData.Name+"%") } err := gormDb.Find(&timeList).Error if err != nil { overallhandle.Result(107, err, c) return } var sendList []SendWorkTime for _, v := range timeList { var sendCont SendWorkTime sendCont.Id = strconv.FormatInt(v.Id, 10) sendCont.Name = v.Name sendCont.State = v.State if v.State == 1 { sendCont.States = true } else { sendCont.States = false } var workTimeCont workgroup.WorkingTimePeriod timeContList, _ := workTimeCont.ContMap(map[string]interface{}{`type_id`: v.Id}, "`name`", "`start_time`", "`end_time`") for _, wv := range timeContList { var teamContTime TemaTime teamContTime.Title = wv.Name teamContTime.StartTime = wv.StartTime teamContTime.EndTime = wv.EndTime sendCont.List = append(sendCont.List, teamContTime) } sendList = append(sendList, sendCont) } overallhandle.Result(0, sendList, c) } /* * @ 作者: 秦东 @ 时间: 2022-12-13 17:29:07 @ 功能: 添加工作时间设置 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiModer) AddTeamTime(c *gin.Context) { var requestData SetWorkTime err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Name == "" { overallhandle.Result(101, requestData, c) return } if len(requestData.List) < 1 { overallhandle.Result(1, requestData, c, "没有划分工作时间段!") return } isTrue := true for _, v := range requestData.List { if v.Title == "" || v.StartTime == "" || v.EndTime == "" { isTrue = false } // beginTime := fmt.Sprintf("%v",) } if !isTrue { overallhandle.Result(1, requestData, c, "您划分的工作时间段,有不符合规定的!请改正!") return } key := overallhandle.OnlyOneNumber(5) //工作时间段类型 var workTimeType workgroup.WorkTimeType //判断是否有同类型的安排 err = workTimeType.GetCont(map[string]interface{}{"`name`": requestData.Name}, "`id`") if err == nil { overallhandle.Result(1, requestData, c, "该名称已经存在!请不要重复添加!") return } workTimeType.Id = key workTimeType.Name = requestData.Name //type:string comment:类型名称 version:2022-11-13 16:57 workTimeType.State = 1 //类型:(1:启用;2:禁用;3:删除) version:2022-11-13 16:57 workTimeType.Time = time.Now().Unix() //工作时段 var workTimeList []workgroup.WorkingTimePeriod for _, lv := range requestData.List { var workTimeCont workgroup.WorkingTimePeriod workTimeCont.Name = lv.Title //type:string comment:工作时间段名称 version:2022-11-13 16:59 workTimeCont.Time = time.Now().Unix() //type:int64 comment:编辑时间;0 version:2022-11-13 16:59 workTimeCont.TypeId = key //type:int64 comment:类型 version:2022-11-13 16:59 workTimeCont.StartTime = lv.StartTime //type:string comment:开始时间 version:2022-11-13 16:59 workTimeCont.EndTime = lv.EndTime //type:string comment:结束时间 version:2022-11-13 16:59 workTimeList = append(workTimeList, workTimeCont) } err = overall.CONSTANT_DB_HR.Create(&workTimeType).Error if err != nil { overallhandle.Result(104, requestData, c) return } WriteWorkTime(key, workTimeList) overallhandle.Result(0, requestData, c) } /* * @ 作者: 秦东 @ 时间: 2022-12-13 18:06:08 @ 功能: 写入工作时段 @ 参数 #key 类型ID #workTimeList 时段列表 @ 返回值 #err 返回状态 @ 方法原型 # WriteWorkTime(key int64, workTimeList []workgroup.WorkingTimePeriod) (err error) */ func WriteWorkTime(key int64, workTimeList []workgroup.WorkingTimePeriod) (err error) { var workTimeCont workgroup.WorkingTimePeriod workTimeCont.DelCont(map[string]interface{}{"`type_id`": key}) err = overall.CONSTANT_DB_HR.Create(&workTimeList).Error return } /* * @ 作者: 秦东 @ 时间: 2022-12-14 08:14:45 @ 功能: 编辑状态 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiModer) EditWorkTimeState(c *gin.Context) { var requestData overallhandle.EditState err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == "" { overallhandle.Result(101, err, c) return } if requestData.State == 0 { requestData.State = 2 } if requestData.Constrain == 0 { requestData.Constrain = 2 } wher := overallhandle.MapOut() wher["id"] = requestData.Id var oldCont workgroup.WorkTimeType err = oldCont.GetCont(wher) if err != nil { overallhandle.Result(107, err, c) return } if requestData.State != oldCont.State { editCont := overallhandle.MapOut() if requestData.State < 3 { editCont["state"] = requestData.State editCont["time"] = time.Now().Unix() err = oldCont.EiteCont(wher, editCont) if err != nil { overallhandle.Result(106, err, c) return } } else { if requestData.Constrain != 1 { editCont["state"] = requestData.State editCont["time"] = time.Now().Unix() err = oldCont.EiteCont(wher, editCont) if err != nil { overallhandle.Result(108, err, c) return } } else { var workTimeLists workgroup.WorkingTimePeriod workTimeLists.DelCont(map[string]interface{}{"`type_id`": requestData.Id}) err = oldCont.DelCont(wher) if err != nil { overallhandle.Result(108, err, c) return } } } } overallhandle.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2022-12-14 09:20:07 @ 功能: 编辑时间段 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiModer) EditWorkTimeCont(c *gin.Context) { var requestData EditWorkTimeCont err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == "" { overallhandle.Result(101, requestData, c) return } if requestData.Name == "" { overallhandle.Result(101, requestData, c) return } if len(requestData.List) < 1 { overallhandle.Result(1, requestData, c, "没有划分工作时间段!") return } isTrue := true for _, v := range requestData.List { if v.Title == "" || v.StartTime == "" || v.EndTime == "" { isTrue = false } // beginTime := fmt.Sprintf("%v",) } if !isTrue { overallhandle.Result(1, requestData, c, "您划分的工作时间段,有不符合规定的!请改正!") return } wher := overallhandle.MapOut() wher["id"] = requestData.Id var oldCont workgroup.WorkTimeType err = oldCont.GetCont(wher) if err != nil { overallhandle.Result(107, err, c) return } editCont := overallhandle.MapOut() editCont["name"] = requestData.Name editCont["time"] = time.Now().Unix() err = oldCont.EiteCont(wher, editCont) if err != nil { overallhandle.Result(106, err, c) return } //工作时段 var workTimeList []workgroup.WorkingTimePeriod for _, lv := range requestData.List { var workTimeCont workgroup.WorkingTimePeriod workTimeCont.Name = lv.Title //type:string comment:工作时间段名称 version:2022-11-13 16:59 workTimeCont.Time = time.Now().Unix() //type:int64 comment:编辑时间;0 version:2022-11-13 16:59 workTimeCont.TypeId = oldCont.Id //type:int64 comment:类型 version:2022-11-13 16:59 workTimeCont.StartTime = lv.StartTime //type:string comment:开始时间 version:2022-11-13 16:59 workTimeCont.EndTime = lv.EndTime //type:string comment:结束时间 version:2022-11-13 16:59 workTimeList = append(workTimeList, workTimeCont) } WriteWorkTime(oldCont.Id, workTimeList) overallhandle.Result(0, err, c) }