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.

790 lines
21 KiB

package personnelapi
import (
"fmt"
"hr_server/grocerystore"
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
"path"
"strconv"
"strings"
"time"
"encoding/json"
"github.com/360EntSecGroup-Skylar/excelize"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2024-02-03 15:38:58
@ 功能: 解析上传列表
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) UploadUserFilesRedis(c *gin.Context) {
8 months ago
orgId := c.Request.FormValue("orgId")
fileInfo, fileHeader, fileErr := c.Request.FormFile("file")
if fileErr != nil {
overallhandle.Result(1, fileErr, c)
return
}
tageExt := path.Ext(fileHeader.Filename)
8 months ago
// fmt.Printf("tageExt:%v\n", tageExt)
fileType := overallhandle.JudgeUpFileType(tageExt)
if fileType != 5 {
overallhandle.Result(1, fileType, c, "您上传的不是电子表格!请上传正确的文件!")
return
}
xlsx, err := excelize.OpenReader(fileInfo)
if err != nil {
overallhandle.Result(2, err, c)
return
}
redisListKey := fmt.Sprintf("ExcelImport:PeopleList:%v_%v", overall.CONSTANT_CONFIG.RedisPrefixStr.Alias, overallhandle.OnlyOneNumber(1))
var userInfoData GroupParsingData
8 months ago
totalNum, meritsYearIng, rewPunYearsIng := userInfoData.AnalysAssessYears(xlsx, redisListKey, orgId)
sendData := overallhandle.MapOut()
sendData["redisListKey"] = redisListKey
sendData["totalNum"] = totalNum
sendData["meritsYearIng"] = meritsYearIng
sendData["rewPunYearsIng"] = rewPunYearsIng
8 months ago
sendData["orgId"] = orgId
// sendData["orgHeader"] = orgHeader
// sendData["orgErr"] = orgErr
overallhandle.Result(0, sendData, c)
}
8 months ago
// ReadExcel .读取excel 转成切片 orgId : 当前行政组织
func (g *GroupParsingData) ReadExcelRedis(xlsx *excelize.File, redisKey, orgId string) (totalNum int64, meritsYearIng, rewPunYearsIng map[int]int) {
rows := xlsx.GetRows(xlsx.GetSheetName(xlsx.GetActiveSheetIndex()))
isDateYear := time.Now().Year()
8 months ago
//获取绩效年度
meritsYear := make(map[int]int)
8 months ago
if rows[1][288] != "" {
yearAry := strings.Split(rows[1][288], "年")
if len(yearAry) > 0 {
yearVal, _ := strconv.Atoi(yearAry[0])
meritsYear[0] = yearVal
}
} else {
meritsYear[0] = isDateYear - 3
}
8 months ago
if rows[1][289] != "" {
yearAry := strings.Split(rows[1][289], "年")
if len(yearAry) > 0 {
yearVal, _ := strconv.Atoi(yearAry[0])
meritsYear[1] = yearVal
}
} else {
meritsYear[1] = isDateYear - 2
}
8 months ago
if rows[1][290] != "" {
yearAry := strings.Split(rows[1][290], "年")
if len(yearAry) > 0 {
yearVal, _ := strconv.Atoi(yearAry[0])
meritsYear[2] = yearVal
}
} else {
meritsYear[2] = isDateYear - 1
}
meritsYearIng = meritsYear
//获取奖惩年度
rewPunYears := make(map[int]int)
8 months ago
if rows[2][298] != "" {
jcYearAry := strings.Split(rows[2][298], "奖惩")
if len(jcYearAry) > 0 {
jcYearVal, _ := strconv.Atoi(jcYearAry[0])
rewPunYears[0] = jcYearVal
}
} else {
rewPunYears[0] = isDateYear - 3
}
8 months ago
if rows[2][303] != "" {
jcYearAry := strings.Split(rows[2][303], "奖惩")
if len(jcYearAry) > 0 {
jcYearVal, _ := strconv.Atoi(jcYearAry[0])
rewPunYears[1] = jcYearVal
}
} else {
rewPunYears[1] = isDateYear - 2
}
8 months ago
if rows[2][308] != "" {
jcYearAry := strings.Split(rows[2][308], "奖惩")
if len(jcYearAry) > 0 {
jcYearVal, _ := strconv.Atoi(jcYearAry[0])
rewPunYears[2] = jcYearVal
}
} else {
rewPunYears[2] = isDateYear - 1
}
rewPunYearsIng = rewPunYears
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisClient.SetRedisTime(86400)
totalNum = 0
for i, row := range rows {
if i < 4 {
continue
}
if row[1] != "" {
jsonStr, _ := json.Marshal(row)
// fmt.Printf("%v出生日期:%v\n", row[1], string(jsonStr))
redisClient.Lpush(redisKey, jsonStr)
totalNum++
}
}
// redisVal, err := redisClient.Lindex(redisKey, 9)
// fmt.Printf("row:%v,%v\n", redisVal, err)
return
}
/*
*
@ 作者: 秦东
@ 时间: 2024-02-03 16:22:38
@ 功能: 解析Redis列表中的数据
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) AnalysisRedisExelect(c *gin.Context) {
var requestData AnaRedisKB
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisListLenght, err := redisClient.Llen(requestData.RedisListKey)
if err != nil {
8 months ago
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
redisVal, err := redisClient.Lindex(requestData.RedisListKey, int64(requestData.Number))
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据!")
return
}
var jieguo []string
err = json.Unmarshal([]byte(redisVal), &jieguo)
if err != nil {
overallhandle.Result(1, err, c, "数据格式不正取!")
}
manCont := make(map[int]string)
for i, v := range jieguo {
manCont[i] = v
}
meritsYear := make(map[int]int)
for i, v := range requestData.MeritsYearIng {
iInt, _ := strconv.Atoi(i)
meritsYear[iInt] = v
}
rewPunYears := make(map[int]int)
for i, v := range requestData.RewPunYearsIng {
iInt, _ := strconv.Atoi(i)
rewPunYears[iInt] = v
}
var groupManCont GroupParsingData
groupManCont.GroupParsingDataInfoRedis(manCont, meritsYear, rewPunYears)
8 months ago
// groupManCont.ParsingUserInfoOfExcel(manCont, meritsYear, rewPunYears,requestData.)
// // fmt.Printf("执行完222毕删除列表键%v-%v-%v\n", redisListLenght, requestData.Number, redisListLenght-1 == int64(requestData.Number))
if redisListLenght-1 == int64(requestData.Number) {
8 months ago
// 执行完毕删除列表键
redisClient.Ltrim(requestData.RedisListKey, 1, 0)
redisClient.DelKey(requestData.RedisListKey)
8 months ago
// fmt.Printf("执行完毕删除列表键RedisListKey:%v------>lAry:%v------>lerr:%v------>dErr:%v\n", requestData.RedisListKey, lAry, lerr, dErr)
// fmt.Printf("redisListLenght:%v------>Number:%v\n", redisListLenght-1, requestData.Number)
}
8 months ago
sendData := make(map[string]interface{})
sendData["redisListLenght"] = redisListLenght
sendData["Number"] = requestData.Number
sendData["RedisListKey"] = requestData.RedisListKey
sendData["meritsYear"] = meritsYear
sendData["rewPunYears"] = rewPunYears
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-01-30 08:10:16
@ 功能: 分组数据解析
@ 参数
#info //人员信息
#meritsYear 绩效年度
#rewPunYearsmap 奖惩年度
@ 返回值
#
@ 方法原型
#
*/
func (g *GroupParsingData) GroupParsingDataInfoRedis(list map[int]string, meritsYear, rewPunYearsmap map[int]int) {
g.IsOk = false
g.UserNum = list[1]
8 months ago
// listJson, err := json.Marshal(list)
// fmt.Printf("list: %v\n%v\n", err, string(listJson))
if list[1] != "" {
var myCont models.PersonArchives
8 months ago
err := myCont.RedisCont(list[2], 1)
if err != nil {
g.IsOk = true
} else {
g.UserKey = myCont.Key
}
8 months ago
g.ProcessMainTable(list, meritsYear, rewPunYearsmap, "309")
} else {
g.Msg = append(g.Msg, fmt.Sprintf("序号:%v--->%v:没有工号--->%v", list[0], list[2], time.Now().Unix()))
}
}
8 months ago
/*
*
@ 作者: 秦东
@ 时间: 2024-08-26 13:52:56
@ 功能: 按行政组织解析人员信息
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) AnalysisRedisOrgExelect(c *gin.Context) {
var requestData AnaRedisKBOrg
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisListLenght, err := redisClient.Llen(requestData.RedisListKey)
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
redisVal, err := redisClient.Lindex(requestData.RedisListKey, int64(requestData.Number))
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据!")
return
}
var jieguo []string
err = json.Unmarshal([]byte(redisVal), &jieguo)
if err != nil {
overallhandle.Result(1, err, c, "数据格式不正取!")
}
manCont := make(map[int]string)
for i, v := range jieguo {
manCont[i] = v
}
meritsYear := make(map[int]int)
for i, v := range requestData.MeritsYearIng {
iInt, _ := strconv.Atoi(i)
meritsYear[iInt] = v
}
rewPunYears := make(map[int]int)
for i, v := range requestData.RewPunYearsIng {
iInt, _ := strconv.Atoi(i)
rewPunYears[iInt] = v
}
var groupManCont GroupParsingData
// groupManCont.GroupParsingDataInfoRedis(manCont, meritsYear, rewPunYears)
groupManCont.ParsingUserInfoOfExcel(manCont, meritsYear, rewPunYears, requestData.OrgId)
// // fmt.Printf("执行完222毕删除列表键%v-%v-%v\n", redisListLenght, requestData.Number, redisListLenght-1 == int64(requestData.Number))
if redisListLenght-1 == int64(requestData.Number) {
// 执行完毕删除列表键
redisClient.Ltrim(requestData.RedisListKey, 1, 0)
redisClient.DelKey(requestData.RedisListKey)
// fmt.Printf("执行完毕删除列表键RedisListKey:%v------>lAry:%v------>lerr:%v------>dErr:%v\n", requestData.RedisListKey, lAry, lerr, dErr)
// fmt.Printf("redisListLenght:%v------>Number:%v\n", redisListLenght-1, requestData.Number)
}
sendData := make(map[string]interface{})
sendData["redisListLenght"] = redisListLenght
sendData["Number"] = requestData.Number
sendData["RedisListKey"] = requestData.RedisListKey
sendData["meritsYear"] = meritsYear
sendData["rewPunYears"] = rewPunYears
sendData["msg"] = groupManCont.Msg
sendData["msgStr"] = groupManCont.MsgStr
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-01-08 08:18:47
@ 功能: 解析考评人员成绩统计表
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *StaffApi) UpLoadPeopelMerits(c *gin.Context) {
orgId := c.Request.FormValue("orgId")
fileInfo, fileHeader, fileErr := c.Request.FormFile("file")
if fileErr != nil {
overallhandle.Result(1, fileErr, c)
return
}
tageExt := path.Ext(fileHeader.Filename)
// fmt.Printf("tageExt:%v\n", tageExt)
fileType := overallhandle.JudgeUpFileType(tageExt)
if fileType != 5 {
overallhandle.Result(1, fileType, c, "您上传的不是电子表格!请上传正确的文件!")
return
}
xlsx, err := excelize.OpenReader(fileInfo)
if err != nil {
overallhandle.Result(2, err, c)
return
}
redisListKey := fmt.Sprintf("ExcelImport:StaffEvaluation:%v_%v", overall.CONSTANT_CONFIG.RedisPrefixStr.Alias, overallhandle.OnlyOneNumber(2))
rows := xlsx.GetRows(xlsx.GetSheetName(xlsx.GetActiveSheetIndex()))
var listCont StaffAppraisal
switch orgId {
case "309": //高科
listCont.AnalysisExcel(rows, redisListKey)
default:
}
sendData := overallhandle.MapOut()
sendData["orgId"] = orgId
sendData["redisListKey"] = redisListKey
sendData["total"] = listCont.Total
sendData["years"] = listCont.Years
sendData["levels"] = listCont.Levels
sendData["errMsg"] = listCont.errMsg
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-01-08 13:03:16
@ 功能: 考评人员成绩统计表 数据写入Redis
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffAppraisal) AnalysisExcel(list [][]string, redisKey string) {
// fmt.Printf("list[0][2]---->%v\n\nlist[1][2]---->%v\n", list[2][0], list[2][1])
s.Years, _ = strconv.ParseInt(list[2][0], 10, 64)
s.Levels = overallhandle.OutPutAnalysisExcelType(list[2][1])
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisClient.SetRedisTime(86400)
// fmt.Printf("list=====>%v\n", len(list))
var listAllNumber int64
for i, v := range list {
if i > 3 {
jsonStr, _ := json.Marshal(v)
fmt.Printf("jsonStr=====>%vr=====>%v\n", v[0], string(jsonStr))
if v[0] != "" {
redisClient.Lpush(redisKey, string(jsonStr))
listAllNumber++
} else {
errMsg := fmt.Sprintf("%v没有工号!无法识别!不可录入数据为:", v[1], string(jsonStr))
s.errMsg = append(s.errMsg, errMsg)
}
}
}
s.Total = listAllNumber
}
/*
*
@ 作者: 秦东
@ 时间: 2025-01-08 15:55:27
@ 功能: 解析人员绩效成绩
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) AnalysisRedisOrgStaffExelect(c *gin.Context) {
var requestData StaffAppLevel
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.RedisListKey == "" {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisListLenght, err := redisClient.Llen(requestData.RedisListKey)
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
redisVal, err := redisClient.Lindex(requestData.RedisListKey, int64(requestData.Number))
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据!")
return
}
var jieguo []string
err = json.Unmarshal([]byte(redisVal), &jieguo)
if err != nil {
overallhandle.Result(1, err, c, "数据格式不正取!")
}
var errMsg []string
var msgStr string
// manCont := make(map[int]string)
var fenzhi []string
var pingyu string
var myCode string
var myName string
for i, v := range jieguo {
// manCont[i] = v
fmt.Printf("jieguo====>%v---------------->%T-------->%v\n", i, v, v)
if i >= 2 && i <= 11 {
fenzhi = append(fenzhi, v)
}
if i == 0 {
myCode = v
}
if i == 1 {
myName = v
}
if i == 12 {
// pingyu = strings.Split(v, "#A#")
pingyu = v
}
}
if redisListLenght-1 == int64(requestData.Number) {
// 执行完毕删除列表键
redisClient.Ltrim(requestData.RedisListKey, 1, 0)
redisClient.DelKey(requestData.RedisListKey)
}
if myCode != "" {
var myInfo models.PersonArchives
err = myInfo.GetCont(map[string]interface{}{"`number`": myCode})
fmt.Printf("%v\n%v\n", myInfo.Name, myInfo.Key)
if err != nil {
msgStr = fmt.Sprintf("序号:%v--->%v:没有此人信息--->%v", requestData.Number, myName, time.Now().Unix())
errMsg = append(errMsg, msgStr)
} else {
var staffKaoPing models.PerstatiSticsevaluators
err = staffKaoPing.GetCont(map[string]interface{}{"`userKey`": myInfo.Key, "`timeYear`": requestData.Years})
fenzhiAry := strings.Join(fenzhi, ",")
if err != nil {
staffKaoPing.Userkey = myInfo.Key
staffKaoPing.TimeYear = requestData.Years
staffKaoPing.Levels = int64(requestData.Levels)
staffKaoPing.EvaluationItems = fenzhiAry
staffKaoPing.Comment = pingyu
staffKaoPing.Time = time.Now().Unix()
err = overall.CONSTANT_DB_HR.Create(&staffKaoPing).Error
if err != nil {
msgStr = fmt.Sprintf("%v[%v]数据处理失败!--->%v", myName, myCode, time.Now().Unix())
} else {
msgStr = fmt.Sprintf("%v[%v]数据处理完成!--->%v", myName, myCode, time.Now().Unix())
}
errMsg = append(errMsg, msgStr)
} else {
editCont := overallhandle.MapOut()
if int64(requestData.Levels) != staffKaoPing.Levels {
editCont["`levels`"] = requestData.Levels
}
if fenzhiAry != staffKaoPing.EvaluationItems {
editCont["`evaluationItems`"] = fenzhiAry
}
if pingyu != staffKaoPing.Comment {
editCont["`comment`"] = pingyu
}
if len(editCont) > 0 {
editCont["`time`"] = time.Now().Unix()
err = staffKaoPing.EiteCont(map[string]interface{}{"`id`": staffKaoPing.Id}, editCont)
if err != nil {
msgStr = fmt.Sprintf("%v[%v]数据处理失败!--->%v", myName, myCode, time.Now().Unix())
} else {
msgStr = fmt.Sprintf("%v[%v]数据处理完成!--->%v", myName, myCode, time.Now().Unix())
}
errMsg = append(errMsg, msgStr)
} else {
msgStr = fmt.Sprintf("%v[%v]数据处理完成!--->%v", myName, myCode, time.Now().Unix())
errMsg = append(errMsg, msgStr)
}
}
}
} else {
msgStr = fmt.Sprintf("序号:%v--->%v:没有工号--->%v", requestData.Number, myName, time.Now().Unix())
errMsg = append(errMsg, msgStr)
}
sendData := make(map[string]interface{})
sendData["redisListLenght"] = redisListLenght
sendData["Number"] = requestData.Number
sendData["RedisListKey"] = requestData.RedisListKey
sendData["fenzhi"] = fenzhi
sendData["pingyu"] = pingyu
sendData["msg"] = errMsg
sendData["msgStr"] = msgStr
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-01-09 08:48:09
@ 功能: 获取个人年份评估成绩详情
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) GainMyChengjiYears(c *gin.Context) {
var requestData JiXiaoChengji
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.UserKey == "" {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
if requestData.Years == "" {
requestData.Years = overallhandle.UnixTimeToDay(time.Now().Unix(), 16)
}
var staffKaoPing models.PerstatiSticsevaluators
err = staffKaoPing.GetCont(map[string]interface{}{"`userKey`": requestData.UserKey, "`timeYear`": requestData.Years})
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
var sendData SendStaffInfo
sendData.Comment = strings.Split(staffKaoPing.Comment, "#A#")
scoreAry := strings.Split(staffKaoPing.EvaluationItems, ",")
var sunScore float64 = 0
scoreMap := make(map[int]float64)
for i, v := range scoreAry {
vInt, _ := strconv.ParseFloat(v, 64)
scoreMap[i], _ = strconv.ParseFloat(strconv.FormatFloat(vInt, 'f', 1, 64), 64)
sunScore = sunScore + vInt
// vFloat, _ := strconv.ParseFloat(strconv.FormatFloat(vInt, 'f', 1, 64), 64)
// scoreMap[i] = vFloat
// sunScore = sunScore + vFloat
}
sendData.EvaluationItems = scoreMap
sumNum := len(scoreAry)
if sumNum == 0 {
sumNum = 1
}
sendData.Levels = overallhandle.OutPutAnalysisExcelTypeStr(staffKaoPing.Levels)
// sendData.Average = float64(sunScore) / float64(sumNum)
sendData.Average, _ = strconv.ParseFloat(strconv.FormatFloat(float64(sunScore), 'f', 1, 64), 64)
// sendData.Average, _ = strconv.ParseFloat(strconv.FormatFloat(float64(sunScore)/float64(sumNum), 'f', 1, 64), 64)
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-01-14 09:02:57
@ 功能: 上传班组设定人员
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) UploadTiemsManFiles(c *gin.Context) {
timeId := c.Request.FormValue("timeId")
fileInfo, fileHeader, fileErr := c.Request.FormFile("file")
if fileErr != nil {
overallhandle.Result(1, fileErr, c)
return
}
tageExt := path.Ext(fileHeader.Filename)
fileType := overallhandle.JudgeUpFileType(tageExt)
if fileType != 5 {
overallhandle.Result(1, fileType, c, "您上传的不是电子表格!请上传正确的文件!")
return
}
xlsx, err := excelize.OpenReader(fileInfo)
if err != nil {
overallhandle.Result(2, err, c)
return
}
redisListKey := fmt.Sprintf("ExcelImport:TimesList:%v_%v", overall.CONSTANT_CONFIG.RedisPrefixStr.Alias, overallhandle.OnlyOneNumber(1))
rows := xlsx.GetRows(xlsx.GetSheetName(xlsx.GetActiveSheetIndex()))
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisClient.SetRedisTime(86400)
totalNum := 0
for i, row := range rows {
if i > 0 {
jsonStr, _ := json.Marshal(row)
redisClient.Lpush(redisListKey, jsonStr)
totalNum++
}
}
sendData := overallhandle.MapOut()
sendData["redisListKey"] = redisListKey
sendData["totalNum"] = totalNum
sendData["timeId"] = timeId
overallhandle.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2025-01-14 09:39:24
@ 功能: 解析人员信息并写入数据库
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (s *StaffApi) AnalysisRedisTimesExelect(c *gin.Context) {
var requestData TimeSetupPeople
err := c.ShouldBindJSON(&requestData)
if err != nil {
overallhandle.Result(100, err, c)
return
}
if requestData.RedisListKey == "" {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4)
redisListLenght, err := redisClient.Llen(requestData.RedisListKey)
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据! ")
return
}
redisVal, err := redisClient.Lindex(requestData.RedisListKey, requestData.Number)
if err != nil {
overallhandle.Result(1, err, c, "数据获取识别!没有找到数据!")
return
}
var jieguo []string
err = json.Unmarshal([]byte(redisVal), &jieguo)
if err != nil {
overallhandle.Result(1, err, c, "数据格式不正取!")
}
curryTime := time.Now().Unix()
msgStr := ""
if jieguo[0] != "" {
var myInfo models.PersonArchives
err = myInfo.GetCont(map[string]interface{}{"`number`": jieguo[0]}, "`key`")
if err != nil {
msgStr = fmt.Sprintf("%v[%v]处理失败!--- %v 原因:%v", jieguo[0], jieguo[1], overallhandle.UnixTimeToDay(curryTime, 11), err)
} else {
err = myInfo.EiteCont(map[string]interface{}{"`key`": myInfo.Key}, map[string]interface{}{"`teamid`": requestData.TimeId, "`eite_time`": curryTime})
if err != nil {
msgStr = fmt.Sprintf("%v[%v]处理失败!--- %v 原因:%v", jieguo[0], jieguo[1], overallhandle.UnixTimeToDay(curryTime, 11), err)
} else {
msgStr = fmt.Sprintf("%v[%v]处理完成!--- %v", jieguo[0], jieguo[1], overallhandle.UnixTimeToDay(curryTime, 11))
}
}
} else {
msgStr = fmt.Sprintf("序号:%v--->%v:没有工号,无法确定启组织关系!不可写入数据--->%v", requestData.Number, jieguo[2], time.Now().Unix())
}
if redisListLenght-1 == int64(requestData.Number) {
// 执行完毕删除列表键
redisClient.Ltrim(requestData.RedisListKey, 1, 0)
redisClient.DelKey(requestData.RedisListKey)
}
sendData := make(map[string]interface{})
sendData["msgStr"] = msgStr
overallhandle.Result(0, sendData, c)
}