HR管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

777 lines
24 KiB

package workrostering
import (
"fmt"
"hr_server/models"
"hr_server/models/workgroup"
"hr_server/overall"
"hr_server/overall/overallhandle"
"strconv"
"strings"
"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
}
sendCont.RuleName = v.Rule
var workTimeCont workgroup.WorkingTimePeriod
timeContList, _ := workTimeCont.ContMap(map[string]interface{}{`type_id`: v.Id}, "`id`", "`name`", "`start_time`", "`end_time`")
for _, wv := range timeContList {
var teamContTime TemaTimes
teamContTime.Id = strconv.FormatInt(wv.Id, 10)
teamContTime.Title = wv.Name
teamContTime.StartTime = wv.StartTime
teamContTime.EndTime = wv.EndTime
sendCont.List = append(sendCont.List, teamContTime)
}
//获取轮询规则
var ruleCont workgroup.PollingRules
ruleList, _ := ruleCont.ContMap(map[string]interface{}{`type_id`: v.Id}, "`id`", "`teamid`", "`sort`", "`teamname`")
for _, rlv := range ruleList {
var ruleInfo TimeRules
ruleInfo.Id = strconv.FormatInt(rlv.Id, 10)
ruleInfo.Sort = rlv.Sort
ruleInfo.Teamid = strconv.FormatInt(rlv.Teamid, 10)
sendCont.Rule = append(sendCont.Rule, ruleInfo)
}
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.Rule) < 1 {
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()
// workTimeType.Rule = requestData.Rule
//工作时段
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
workTimeCont.State = 1
workTimeList = append(workTimeList, workTimeCont)
}
//轮询规则
var teamName []string
var ruleList []workgroup.PollingRules
for _, rv := range requestData.Rule {
var ruleCont workgroup.PollingRules
ruleCont.Teamid, _ = strconv.ParseInt(rv.Teamid, 10, 64) //type:int64 comment:班组 version:2022-11-16 09:16
ruleCont.State = 1 //type:*int comment:状态(1:启用;2:禁用;3:删除);状态(1:启用;2:禁用;3:删除) version:2022-11-16 09:16
ruleCont.Time = time.Now().Unix() //type:int64 comment:时间;时间 version:2022-11-16 09:16
ruleCont.Sort = rv.Sort //type:*int comment:排序 version:2022-11-16 09:16
ruleCont.TypeId = key //type:int64 comment:类型
var teamCont models.TeamGroup
teamCont.GetCont(map[string]interface{}{"`id`": rv.Teamid}, "`name`")
ruleCont.TeamName = teamCont.Name
teamName = append(teamName, teamCont.Name)
ruleList = append(ruleList, ruleCont)
}
workTimeType.Rule = strings.Join(teamName, ",")
err = overall.CONSTANT_DB_HR.Create(&workTimeType).Error
if err != nil {
overallhandle.Result(104, requestData, c)
return
}
WriteWorkTime(key, workTimeList)
WriteWorkTimeRule(key, ruleList)
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-16 09:17:39
@ 功能: 写入轮询顺序
@ 参数
#key 类型ID
#ruleList 时段列表
@ 返回值
#
@ 方法原型
#
*/
func WriteWorkTimeRule(key int64, ruleList []workgroup.PollingRules) (err error) {
var workTimeCont workgroup.PollingRules
workTimeCont.DelCont(map[string]interface{}{"`type_id`": key})
err = overall.CONSTANT_DB_HR.Create(&ruleList).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 EditWorkTimeConts
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.Rule) < 1 {
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["rule"] = requestData.Rule
editCont["time"] = time.Now().Unix()
//轮询规则
var teamName []string
// var ruleList []workgroup.PollingRules
for _, rv := range requestData.Rule {
var teamCont models.TeamGroup
teamCont.GetCont(map[string]interface{}{"`id`": rv.Teamid}, "`name`")
teamName = append(teamName, teamCont.Name)
}
editCont["rule"] = strings.Join(teamName, ",")
err = oldCont.EiteCont(wher, editCont)
if err != nil {
overallhandle.Result(106, err, c)
return
}
//工作时段
EditPeriodTime(oldCont.Id, requestData.List)
//编辑轮询规则
EditPollingRule(oldCont.Id, requestData.Rule)
overallhandle.Result(0, err, c)
}
func (a *ApiModer) EditWorkTimeContOld(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.Rule) < 1 {
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["rule"] = requestData.Rule
editCont["time"] = time.Now().Unix()
//轮询规则
var teamName []string
var ruleList []workgroup.PollingRules
for _, rv := range requestData.Rule {
var ruleCont workgroup.PollingRules
ruleCont.Teamid, _ = strconv.ParseInt(rv.Teamid, 10, 64) //type:int64 comment:班组 version:2022-11-16 09:16
ruleCont.State = 1 //type:*int comment:状态(1:启用;2:禁用;3:删除);状态(1:启用;2:禁用;3:删除) version:2022-11-16 09:16
ruleCont.Time = time.Now().Unix() //type:int64 comment:时间;时间 version:2022-11-16 09:16
ruleCont.Sort = rv.Sort //type:*int comment:排序 version:2022-11-16 09:16
ruleCont.TypeId = oldCont.Id //type:int64 comment:类型
var teamCont models.TeamGroup
teamCont.GetCont(map[string]interface{}{"`id`": rv.Teamid}, "`name`")
ruleCont.TeamName = teamCont.Name
teamName = append(teamName, teamCont.Name)
ruleList = append(ruleList, ruleCont)
}
editCont["rule"] = strings.Join(teamName, ",")
err = oldCont.EiteCont(wher, editCont)
if err != nil {
overallhandle.Result(106, err, c)
return
}
WriteWorkTimeRule(oldCont.Id, ruleList)
//工作时段
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)
}
/*
*
@ 作者: 秦东
@ 时间: 2022-12-16 16:23:22
@ 功能: 编辑轮询规则
@ 参数
#typeId 类型识别符
#ruleList 规则列表
@ 返回值
#
@ 方法原型
#
*/
func EditPollingRule(typeId int64, ruleList []TimeRules) {
var ruleCont workgroup.PollingRules
oldRuleList, _ := ruleCont.ContMap(map[string]interface{}{"`type_id`": typeId})
var saveData []workgroup.PollingRules
var editId []string
for _, rv := range ruleList {
var teamCont models.TeamGroup
teamCont.GetCont(map[string]interface{}{"`id`": rv.Teamid}, "`name`")
if rv.Id != "" {
var ruleContJude workgroup.PollingRules
//判断是否存在
err := ruleContJude.GetCont(map[string]interface{}{"`id`": rv.Id})
if err == nil {
if overallhandle.IsInTrue[string](rv.Id, editId) == false {
editId = append(editId, rv.Id)
}
editCont := overallhandle.MapOut()
editCont["`state`"] = 1
editCont["`teamid`"], _ = strconv.ParseInt(rv.Teamid, 10, 64)
editCont["`teamname`"] = teamCont.Name
editCont["`sort`"] = rv.Sort
editCont["`time`"] = time.Now().Unix()
var ruleContNewEdit workgroup.PollingRules
ruleContNewEdit.EiteCont(map[string]interface{}{"`id`": rv.Id}, editCont)
} else {
var ruleContNew workgroup.PollingRules
ruleContNew.Teamid, _ = strconv.ParseInt(rv.Teamid, 10, 64) //type:int64 comment:班组 version:2022-11-16 09:16
ruleContNew.State = 1 //type:*int comment:状态(1:启用;2:禁用;3:删除);状态(1:启用;2:禁用;3:删除) version:2022-11-16 09:16
ruleContNew.Time = time.Now().Unix() //type:int64 comment:时间;时间 version:2022-11-16 09:16
ruleContNew.Sort = rv.Sort //type:*int comment:排序 version:2022-11-16 09:16
ruleContNew.TypeId = typeId //type:int64 comment:类型
ruleContNew.TeamName = teamCont.Name
saveData = append(saveData, ruleContNew)
}
} else {
var ruleContNewAdd workgroup.PollingRules
ruleContNewAdd.Teamid, _ = strconv.ParseInt(rv.Teamid, 10, 64) //type:int64 comment:班组 version:2022-11-16 09:16
ruleContNewAdd.State = 1 //type:*int comment:状态(1:启用;2:禁用;3:删除);状态(1:启用;2:禁用;3:删除) version:2022-11-16 09:16
ruleContNewAdd.Time = time.Now().Unix() //type:int64 comment:时间;时间 version:2022-11-16 09:16
ruleContNewAdd.Sort = rv.Sort //type:*int comment:排序 version:2022-11-16 09:16
ruleContNewAdd.TypeId = typeId //type:int64 comment:类型
ruleContNewAdd.TeamName = teamCont.Name
saveData = append(saveData, ruleContNewAdd)
}
}
//将不在使用的项目删除
for _, dv := range oldRuleList {
idStr := strconv.FormatInt(dv.Id, 10)
if overallhandle.IsInTrue[string](idStr, editId) == false {
editCont := overallhandle.MapOut()
editCont["`state`"] = 3
editCont["`time`"] = time.Now().Unix()
var ruleContNewAddAll workgroup.PollingRules
ruleContNewAddAll.EiteCont(map[string]interface{}{"`id`": dv.Id}, editCont)
}
}
if len(saveData) > 0 {
overall.CONSTANT_DB_HR.Create(&saveData)
}
}
/*
*
@ 作者: 秦东
@ 时间: 2022-12-16 17:10:13
@ 功能: 编辑工作时段
@ 参数
#typeId 类型识别符
#ruleList 分班时间表
@ 返回值
#
@ 方法原型
#
*/
func EditPeriodTime(typeId int64, ruleList []TemaTimes) {
var workTimeCont workgroup.WorkingTimePeriod
workTimeListCont, _ := workTimeCont.ContMap(map[string]interface{}{"`type_id`": typeId})
var editId []string
var saveData []workgroup.WorkingTimePeriod
for _, v := range ruleList {
if v.Id != "" {
var workTimeContJudge workgroup.WorkingTimePeriod
err := workTimeContJudge.GetCont(map[string]interface{}{"`id`": v.Id})
if err == nil {
if overallhandle.IsInTrue[string](v.Id, editId) == false {
editId = append(editId, v.Id)
}
editCont := overallhandle.MapOut()
editCont["`state`"] = 1
editCont["`name`"] = v.Title
editCont["`time`"] = time.Now().Unix()
editCont["`start_time`"] = v.StartTime
editCont["`end_time`"] = v.EndTime
var workTimeContEs workgroup.WorkingTimePeriod
workTimeContEs.EiteCont(map[string]interface{}{"`id`": v.Id}, editCont)
} else {
var workTimeContAdd workgroup.WorkingTimePeriod
workTimeContAdd.Name = v.Title //type:string comment:工作时间段名称 version:2022-11-13 16:59
workTimeContAdd.Time = time.Now().Unix() //type:int64 comment:编辑时间;0 version:2022-11-13 16:59
workTimeContAdd.TypeId = typeId //type:int64 comment:类型 version:2022-11-13 16:59
workTimeContAdd.StartTime = v.StartTime //type:string comment:开始时间 version:2022-11-13 16:59
workTimeContAdd.EndTime = v.EndTime //type:string comment:结束时间 version:2022-11-13 16:59
saveData = append(saveData, workTimeContAdd)
}
} else {
var workTimeContAdd workgroup.WorkingTimePeriod
workTimeContAdd.Name = v.Title //type:string comment:工作时间段名称 version:2022-11-13 16:59
workTimeContAdd.Time = time.Now().Unix() //type:int64 comment:编辑时间;0 version:2022-11-13 16:59
workTimeContAdd.TypeId = typeId //type:int64 comment:类型 version:2022-11-13 16:59
workTimeContAdd.StartTime = v.StartTime //type:string comment:开始时间 version:2022-11-13 16:59
workTimeContAdd.EndTime = v.EndTime //type:string comment:结束时间 version:2022-11-13 16:59
saveData = append(saveData, workTimeContAdd)
}
}
//将不在使用的项目删除
for _, dv := range workTimeListCont {
idStr := strconv.FormatInt(dv.Id, 10)
if overallhandle.IsInTrue[string](idStr, editId) == false {
editCont := overallhandle.MapOut()
editCont["`state`"] = 3
editCont["`time`"] = time.Now().Unix()
var workTimeContEss workgroup.WorkingTimePeriod
workTimeContEss.EiteCont(map[string]interface{}{"`id`": dv.Id}, editCont)
}
}
if len(saveData) > 0 {
overall.CONSTANT_DB_HR.Create(&saveData)
}
}
/*
*
@ 作者: 秦东
@ 时间: 2022-12-17 09:35:20
@ 功能: 获取工作时段及轮询规则列表
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiModer) GetPeriodAndRuleList(c *gin.Context) {
var requestData overallhandle.ConstId
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.Id == "" {
overallhandle.Result(101, err, c)
return
}
var sendData SendPeriodRules
sendData.Id = requestData.Id
var genesisCont workgroup.Genesis
genesisCont.GetCont(map[string]interface{}{"`type_id`": requestData.Id})
if genesisCont.StartTime != 0 {
sendData.Time = overallhandle.UnixTimeToDay(genesisCont.StartTime, 14) //
}
if genesisCont.PeriodId != 0 {
sendData.Teamid = strconv.FormatInt(genesisCont.PeriodId, 10) //班组名称
}
if genesisCont.Rules != 0 {
sendData.RuleId = strconv.FormatInt(genesisCont.Rules, 10) //轮询规则
}
//获取工作时段列表
var periodCont workgroup.WorkingTimePeriod
periodList, _ := periodCont.ContMap(map[string]interface{}{"`state`": 1, "`type_id`": requestData.Id})
for _, v := range periodList {
var teamPeriod TemaTimes
teamPeriod.Id = strconv.FormatInt(v.Id, 10)
teamPeriod.Title = v.Name //班次名称
teamPeriod.StartTime = v.StartTime //开始时间
teamPeriod.EndTime = v.EndTime //结束时间
sendData.List = append(sendData.List, teamPeriod)
}
//获取轮询规则
var ruleList []workgroup.PollingRules
// ruleList, _ := ruleCont.ContMap(map[string]interface{}{`type_id`: requestData.Id})
overall.CONSTANT_DB_HR.Where("`state` = 1 AND `type_id` = ?", requestData.Id).Order("`sort` ASC").Order("`id` ASC").Find(&ruleList)
for _, vr := range ruleList {
var teamRule TimeRuleSend
teamRule.Id = strconv.FormatInt(vr.Id, 10) //
teamRule.Sort = vr.Sort //排序
teamRule.Teamid = strconv.FormatInt(vr.Teamid, 10) //班组名称
teamRule.TeamName = vr.TeamName //班组名称
sendData.Rule = append(sendData.Rule, teamRule)
}
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2022-12-17 10:51:12
@ 功能: 写入轮询源点
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiModer) SetOirginCont(c *gin.Context) {
var requestData SetOrigin
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.Id == "" {
overallhandle.Result(101, err, c)
return
}
if requestData.Rule == "" {
overallhandle.Result(101, err, c)
return
}
if requestData.ShiftTime == "" {
overallhandle.Result(101, err, c)
return
}
if requestData.StartTime == "" {
overallhandle.Result(101, err, c)
return
}
timeInt, timeErr := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.StartTime))
if !timeErr {
overallhandle.Result(1, err, c, "你提交的日期不符合规范!请改正后提交!")
return
}
var genesisCont workgroup.Genesis
err = genesisCont.GetCont(map[string]interface{}{"`type_id`": requestData.Id})
if err != nil {
genesisCont.TypeId, _ = strconv.ParseInt(requestData.Id, 10, 64) //type:int64 comment:类型
genesisCont.PeriodId, _ = strconv.ParseInt(requestData.ShiftTime, 10, 64) //type:int64 comment:锚定工作段
genesisCont.Rules, _ = strconv.ParseInt(requestData.Rule, 10, 64) //type:int64 comment:锚定轮询规则起点
genesisCont.StartTime = timeInt //type:int64 comment:锚定历史原点
genesisCont.Time = time.Now().Unix() //type:int64
err = overall.CONSTANT_DB_HR.Create(&genesisCont).Error
} else {
editCont := overallhandle.MapOut()
editCont["type_id"] = requestData.Id
editCont["period_id"] = requestData.ShiftTime
editCont["rules"] = requestData.Rule
editCont["start_time"] = timeInt
err = genesisCont.EiteCont(map[string]interface{}{"`id`": genesisCont.Id}, editCont)
}
if err != nil {
overallhandle.Result(1, err, c, "设置失败!")
return
}
overallhandle.Result(0, err, c)
}