|
|
@ -1,10 +1,13 @@ |
|
|
package workrostering |
|
|
package workrostering |
|
|
|
|
|
|
|
|
import ( |
|
|
import ( |
|
|
|
|
|
"fmt" |
|
|
|
|
|
"hr_server/models" |
|
|
"hr_server/models/workgroup" |
|
|
"hr_server/models/workgroup" |
|
|
"hr_server/overall" |
|
|
"hr_server/overall" |
|
|
"hr_server/overall/overallhandle" |
|
|
"hr_server/overall/overallhandle" |
|
|
"strconv" |
|
|
"strconv" |
|
|
|
|
|
"strings" |
|
|
"time" |
|
|
"time" |
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin" |
|
|
"github.com/gin-gonic/gin" |
|
|
@ -54,15 +57,27 @@ func (a *ApiModer) TeamTimeList(c *gin.Context) { |
|
|
} else { |
|
|
} else { |
|
|
sendCont.States = false |
|
|
sendCont.States = false |
|
|
} |
|
|
} |
|
|
|
|
|
sendCont.RuleName = v.Rule |
|
|
var workTimeCont workgroup.WorkingTimePeriod |
|
|
var workTimeCont workgroup.WorkingTimePeriod |
|
|
timeContList, _ := workTimeCont.ContMap(map[string]interface{}{`type_id`: v.Id}, "`name`", "`start_time`", "`end_time`") |
|
|
timeContList, _ := workTimeCont.ContMap(map[string]interface{}{`type_id`: v.Id}, "`id`", "`name`", "`start_time`", "`end_time`") |
|
|
for _, wv := range timeContList { |
|
|
for _, wv := range timeContList { |
|
|
var teamContTime TemaTime |
|
|
var teamContTime TemaTimes |
|
|
|
|
|
teamContTime.Id = strconv.FormatInt(wv.Id, 10) |
|
|
teamContTime.Title = wv.Name |
|
|
teamContTime.Title = wv.Name |
|
|
teamContTime.StartTime = wv.StartTime |
|
|
teamContTime.StartTime = wv.StartTime |
|
|
teamContTime.EndTime = wv.EndTime |
|
|
teamContTime.EndTime = wv.EndTime |
|
|
sendCont.List = append(sendCont.List, teamContTime) |
|
|
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) |
|
|
sendList = append(sendList, sendCont) |
|
|
} |
|
|
} |
|
|
overallhandle.Result(0, sendList, c) |
|
|
overallhandle.Result(0, sendList, c) |
|
|
@ -96,6 +111,10 @@ func (a *ApiModer) AddTeamTime(c *gin.Context) { |
|
|
overallhandle.Result(101, requestData, c) |
|
|
overallhandle.Result(101, requestData, c) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
if len(requestData.Rule) < 1 { |
|
|
|
|
|
overallhandle.Result(101, requestData, c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
if len(requestData.List) < 1 { |
|
|
if len(requestData.List) < 1 { |
|
|
overallhandle.Result(1, requestData, c, "没有划分工作时间段!") |
|
|
overallhandle.Result(1, requestData, c, "没有划分工作时间段!") |
|
|
return |
|
|
return |
|
|
@ -124,6 +143,7 @@ func (a *ApiModer) AddTeamTime(c *gin.Context) { |
|
|
workTimeType.Name = requestData.Name //type:string comment:类型名称 version:2022-11-13 16:57
|
|
|
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.State = 1 //类型:(1:启用;2:禁用;3:删除) version:2022-11-13 16:57
|
|
|
workTimeType.Time = time.Now().Unix() |
|
|
workTimeType.Time = time.Now().Unix() |
|
|
|
|
|
// workTimeType.Rule = requestData.Rule
|
|
|
//工作时段
|
|
|
//工作时段
|
|
|
var workTimeList []workgroup.WorkingTimePeriod |
|
|
var workTimeList []workgroup.WorkingTimePeriod |
|
|
for _, lv := range requestData.List { |
|
|
for _, lv := range requestData.List { |
|
|
@ -133,14 +153,33 @@ func (a *ApiModer) AddTeamTime(c *gin.Context) { |
|
|
workTimeCont.TypeId = key //type:int64 comment:类型 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.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.EndTime = lv.EndTime //type:string comment:结束时间 version:2022-11-13 16:59
|
|
|
|
|
|
workTimeCont.State = 1 |
|
|
workTimeList = append(workTimeList, workTimeCont) |
|
|
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 |
|
|
err = overall.CONSTANT_DB_HR.Create(&workTimeType).Error |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
overallhandle.Result(104, requestData, c) |
|
|
overallhandle.Result(104, requestData, c) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
WriteWorkTime(key, workTimeList) |
|
|
WriteWorkTime(key, workTimeList) |
|
|
|
|
|
WriteWorkTimeRule(key, ruleList) |
|
|
overallhandle.Result(0, requestData, c) |
|
|
overallhandle.Result(0, requestData, c) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -169,6 +208,31 @@ func WriteWorkTime(key int64, workTimeList []workgroup.WorkingTimePeriod) (err e |
|
|
return |
|
|
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 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
* |
|
|
* |
|
|
@ 作者: 秦东 |
|
|
@ 作者: 秦东 |
|
|
@ -263,6 +327,75 @@ func (a *ApiModer) EditWorkTimeState(c *gin.Context) { |
|
|
# |
|
|
# |
|
|
*/ |
|
|
*/ |
|
|
func (a *ApiModer) EditWorkTimeCont(c *gin.Context) { |
|
|
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 |
|
|
var requestData EditWorkTimeCont |
|
|
err := c.ShouldBindJSON(&requestData) |
|
|
err := c.ShouldBindJSON(&requestData) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
@ -277,6 +410,10 @@ func (a *ApiModer) EditWorkTimeCont(c *gin.Context) { |
|
|
overallhandle.Result(101, requestData, c) |
|
|
overallhandle.Result(101, requestData, c) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
if len(requestData.Rule) < 1 { |
|
|
|
|
|
overallhandle.Result(101, requestData, c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
if len(requestData.List) < 1 { |
|
|
if len(requestData.List) < 1 { |
|
|
overallhandle.Result(1, requestData, c, "没有划分工作时间段!") |
|
|
overallhandle.Result(1, requestData, c, "没有划分工作时间段!") |
|
|
return |
|
|
return |
|
|
@ -302,12 +439,33 @@ func (a *ApiModer) EditWorkTimeCont(c *gin.Context) { |
|
|
} |
|
|
} |
|
|
editCont := overallhandle.MapOut() |
|
|
editCont := overallhandle.MapOut() |
|
|
editCont["name"] = requestData.Name |
|
|
editCont["name"] = requestData.Name |
|
|
|
|
|
// editCont["rule"] = requestData.Rule
|
|
|
editCont["time"] = time.Now().Unix() |
|
|
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) |
|
|
err = oldCont.EiteCont(wher, editCont) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
overallhandle.Result(106, err, c) |
|
|
overallhandle.Result(106, err, c) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
WriteWorkTimeRule(oldCont.Id, ruleList) |
|
|
//工作时段
|
|
|
//工作时段
|
|
|
var workTimeList []workgroup.WorkingTimePeriod |
|
|
var workTimeList []workgroup.WorkingTimePeriod |
|
|
for _, lv := range requestData.List { |
|
|
for _, lv := range requestData.List { |
|
|
@ -320,5 +478,300 @@ func (a *ApiModer) EditWorkTimeCont(c *gin.Context) { |
|
|
workTimeList = append(workTimeList, workTimeCont) |
|
|
workTimeList = append(workTimeList, workTimeCont) |
|
|
} |
|
|
} |
|
|
WriteWorkTime(oldCont.Id, workTimeList) |
|
|
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) |
|
|
overallhandle.Result(0, err, c) |
|
|
} |
|
|
} |
|
|
|