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) { 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:PeopleList:%v_%v", overall.CONSTANT_CONFIG.RedisPrefixStr.Alias, overallhandle.OnlyOneNumber(1)) var userInfoData GroupParsingData totalNum, meritsYearIng, rewPunYearsIng := userInfoData.AnalysAssessYears(xlsx, redisListKey, orgId) sendData := overallhandle.MapOut() sendData["redisListKey"] = redisListKey sendData["totalNum"] = totalNum sendData["meritsYearIng"] = meritsYearIng sendData["rewPunYearsIng"] = rewPunYearsIng sendData["orgId"] = orgId // sendData["orgHeader"] = orgHeader // sendData["orgErr"] = orgErr overallhandle.Result(0, sendData, c) } // 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() //获取绩效年度 meritsYear := make(map[int]int) 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 } 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 } 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) 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 } 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 } 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 { 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.) // // 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 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] // listJson, err := json.Marshal(list) // fmt.Printf("list: %v\n%v\n", err, string(listJson)) if list[1] != "" { var myCont models.PersonArchives err := myCont.RedisCont(list[2], 1) if err != nil { g.IsOk = true } else { g.UserKey = myCont.Key } g.ProcessMainTable(list, meritsYear, rewPunYearsmap, "309") } else { g.Msg = append(g.Msg, fmt.Sprintf("序号:%v--->%v:没有工号--->%v", list[0], list[2], time.Now().Unix())) } } /* * @ 作者: 秦东 @ 时间: 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) switch requestData.Levels { case 2: staffKaoPing.EvaluationItemss = fenzhiAry default: staffKaoPing.EvaluationItems = fenzhiAry } // 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 // } switch requestData.Levels { case 2: editCont["`evaluationItemss`"] = fenzhiAry default: 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 if staffKaoPing.Comment != "" { sendData.Comment = strings.Split(staffKaoPing.Comment, "#A#") } scoreAry := strings.Split(staffKaoPing.EvaluationItems, ",") switch staffKaoPing.Levels { case 2: scoreAry = strings.Split(staffKaoPing.EvaluationItemss, ",") default: } 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) }