package personnelapi import ( "encoding/json" "fmt" "hr_server/models" "hr_server/overall" "hr_server/overall/overallhandle" "strconv" "strings" "time" "github.com/gin-gonic/gin" ) /* * @ 作者: 秦东 @ 时间: 2022-11-30 14:05:01 @ 功能:编辑人员行政组织关系 @ 参数 # @ 返回值 # @ 方法原型 # */ func (s *StaffApi) EditManOrgCont(c *gin.Context) { var requestData EditOrgPeople err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(1, err, c, "数据格式错误!") return } if requestData.Id == "" { overallhandle.Result(1, requestData, c, "参数错误!请检查后重新提交!") return } if requestData.OrgId <= 0 { overallhandle.Result(1, requestData, c, "请选择归属行政组织!") return } if requestData.Position == 0 { overallhandle.Result(1, requestData, c, "请选择归属岗位!") return } if requestData.JobId == 0 { overallhandle.Result(1, requestData, c, "请选择职务!") return } if requestData.TeamId == 0 { overallhandle.Result(1, requestData, c, "请选择班组!") return } if requestData.Ruleid == "" { overallhandle.Result(1, requestData, c, "请选择排班规则!!") return } if requestData.JobLeve == 0 { requestData.JobLeve = 3 } if requestData.PersonInCharge != 1 { requestData.PersonInCharge = 2 } // fmt.Printf("%v\n", requestData) // return wher := map[string]interface{}{"`id`": requestData.Id} var myCont models.PersonArchives err = myCont.GetCont(wher, "`id`", "`admin_org`", "`position`", "`job_id`", "`job_leve`", "`teamid`") if err != nil { overallhandle.Result(1, err, c, "没有该人员信息!") return } saveData := overallhandle.MapOut() if requestData.OrgId != myCont.AdminOrg { _, companyId, departmentId, sunDepartId, _ := overallhandle.GetOrgStructure(requestData.OrgId) if companyId != 0 { saveData["company"] = companyId } if departmentId != 0 { saveData["maindeparment"] = departmentId } if sunDepartId != 0 { saveData["sun_main_deparment"] = sunDepartId } saveData["admin_org"] = requestData.OrgId } if requestData.Position != myCont.Position { saveData["position"] = requestData.Position } if requestData.JobId != myCont.JobId { var jobCont models.DutiesClassLeve jobCont.GetCont(map[string]interface{}{"`d_id`": requestData.JobId}, "`c_id`") saveData["job_class"] = jobCont.ClassId saveData["job_id"] = requestData.JobId } if requestData.JobLeve != myCont.JobLeve { saveData["job_leve"] = requestData.JobLeve } if requestData.TeamId != myCont.TeamId { saveData["teamid"] = requestData.TeamId } ruleidStr := strconv.FormatInt(myCont.Ruleid, 10) if requestData.Ruleid != ruleidStr { saveData["ruleid"] = requestData.Ruleid } if requestData.PersonInCharge != myCont.PersonInCharge { saveData["person_in_charge"] = requestData.PersonInCharge } if requestData.PersonInCharge == 1 { if len(requestData.OrgresList) > 0 { jsonCont, jsonErr := json.Marshal(requestData.OrgresList) if jsonErr == nil { saveData["responsible_department_json"] = string(jsonCont) } } } else { saveData["responsible_department_json"] = "" } if requestData.PersonInCharge == 1 { // if len(requestData.Resallorg) > 0 { // var orgResList []string // for i := 0; i < len(requestData.Resallorg); i++ { // resAllOrgIdStr := strconv.Itoa(requestData.Resallorg[i]) // if overallhandle.IsInTrue[string](resAllOrgIdStr, orgResList) == false { // orgResList = append(orgResList, resAllOrgIdStr) // } // } // orgResListStr := strings.Join(orgResList, ",") // saveData["responsible_department"] = orgResListStr // } var orgAry []string if len(requestData.OrgresList) > 0 { for _, v := range requestData.OrgresList { for _, ov := range v { resOrgIdVStr := strconv.Itoa(ov) if overallhandle.IsInTrue[string](resOrgIdVStr, orgAry) == false { orgAry = append(orgAry, resOrgIdVStr) } } } orgResListStr := strings.Join(orgAry, ",") saveData["responsible_department"] = orgResListStr } } else { saveData["responsible_department"] = "" } // fmt.Printf("%v\n", saveData) // return if len(saveData) < 1 { overallhandle.Result(0, saveData, c) return } saveData["eite_time"] = time.Now().Unix() err = myCont.EiteCont(wher, saveData) if err != nil { overallhandle.Result(106, err, c) return } overallhandle.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2022-12-01 11:14:18 @ 功能: 编辑人员主题信息 @ 参数 # @ 返回值 # @ 方法原型 # */ func (s *StaffApi) EditManMainCont(c *gin.Context) { var requestData EditContData c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(1, requestData, c, "参数错误!请检查后重新提交!") return } if requestData.Mobilephone == "" { overallhandle.Result(1, requestData, c, "请输入电话号码!") return } if requestData.Idcardno == "" { overallhandle.Result(1, requestData, c, "请输入身份证号!") return } var entryDateInt64 int64 if requestData.Entrydatetime == "" { overallhandle.Result(1, requestData, c, "请输入入职日期!") entryDateInt64 = 0 return } else { entryDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Entrydatetime)) } fmt.Printf("requestData.Entrydatetime:%v<------------>entryDateInt64:%v\n", requestData.Entrydatetime, entryDateInt64) if requestData.Probationperiod == 0 { overallhandle.Result(1, requestData, c, "请输入试用期!") return } if requestData.Gender == 0 { requestData.Gender = 1 } var birthdayInt64 int64 //生日 if requestData.Birthdaytime != "" { birthdayInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Birthdaytime)) } else { birthdayInt64 = 0 } var planFormalDateInt64 int64 //转正日期 if requestData.Confirmationdate != "" { planFormalDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Confirmationdate)) } else { planFormalDateInt64 = 0 } var idCardStartDateInt64 int64 //身份证有效期开始 if requestData.Idcardstarttimedata != "" { idCardStartDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Idcardstarttimedata)) } else { idCardStartDateInt64 = 0 } var idCardEndDateInt64 int64 //身份证有效期结束 if requestData.Idcardendtimedata != "" { idCardEndDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Idcardendtimedata)) } else { idCardEndDateInt64 = 0 } var jobStartDateInt64 int64 //参加工作日期 if requestData.Idcardendtimedata != "" { jobStartDateInt64, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 12:00:00", requestData.Idcardendtimedata)) } else { jobStartDateInt64 = 0 } if requestData.Health == 0 { requestData.Health = 1 } if requestData.Maritalstatus == 0 { requestData.Maritalstatus = 1 } if requestData.Isveterans == 0 { requestData.Isveterans = 2 } /* 查询主信息 */ wheAry := overallhandle.MapOut() wheAry["`id`"] = requestData.Id var myCont models.PersonArchives err := myCont.GetCont(wheAry, "`key`", "`number`", "`wechat`", "`work_wechat`", "`hire_class`", "`emp_type`") if err != nil { overallhandle.Result(1, err, c, "该人员不存在!请核对后再提交!") return } editTime := time.Now().Unix() saveMainDate := overallhandle.MapOut() if requestData.Name != "" && requestData.Name != myCont.Name { saveMainDate["`name`"] = requestData.Name } //绑定微信 if requestData.Wechat != "" && requestData.Wechat != myCont.Wechat { saveMainDate["`wechat`"] = requestData.Wechat } //绑定微信 if requestData.Workwechat != "" && requestData.Workwechat != myCont.WorkWechat { saveMainDate["`work_wechat`"] = requestData.Workwechat } //绑定企业微信 if requestData.Hireclass != 0 && requestData.Hireclass != myCont.HireClass { saveMainDate["`hire_class`"] = requestData.Hireclass } //雇佣类型 if requestData.Emptype != 0 && requestData.Emptype != myCont.EmpType { saveMainDate["`emp_type`"] = requestData.Emptype } //用工关系 if len(saveMainDate) > 0 { saveMainDate["`eite_time`"] = editTime myCont.EiteCont(wheAry, saveMainDate) } wheAryEs := overallhandle.MapOut() wheAryEs["`key`"] = myCont.Key var myInfo models.PersonnelContent err = myInfo.GetCont(wheAryEs) if err != nil { myInfo.Number = myCont.Number //员工工号;index"` myInfo.Idcardno = requestData.Idcardno //身份证号"` myInfo.Passportno = requestData.Passportno //护照号码"` myInfo.Globalroaming = requestData.Globalroaming //国际区号"` myInfo.Mobilephone = requestData.Mobilephone //手机号码"` myInfo.Email = requestData.Email //电子邮件"` myInfo.Gender = requestData.Gender //性别(1:男性;2:女性;3:中性)"` myInfo.Birthday = birthdayInt64 //"` myInfo.Myfolk = requestData.Myfolk //民族"` myInfo.Nativeplace = requestData.Nativeplace //籍贯"` myInfo.Idcardstartdate = idCardStartDateInt64 //身份证有效期开始"` myInfo.Idcardenddate = idCardEndDateInt64 //身份证有效期结束"` myInfo.Idcardaddress = requestData.Idcardaddress //身份证地址"` myInfo.IdcardIssued = requestData.IdcardIssued //身份证签发机关"` myInfo.Health = requestData.Health //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)"` myInfo.Maritalstatus = requestData.Maritalstatus //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)"` myInfo.Internaltelephone = requestData.Internaltelephone //内线电话"` myInfo.Currentresidence = requestData.Currentresidence //现居住地址"` myInfo.Time = editTime //创建时间"` myInfo.Constellation = requestData.Constellationing //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)"` myInfo.Isveterans = requestData.Isveterans //是否为退役军人(1:是;2:否)"` myInfo.Veteransnumber = requestData.Veteransnumber //退役证编号"` myInfo.Jobstartdate = jobStartDateInt64 //参加工作日期"` myInfo.Entrydate = entryDateInt64 //入职日期"` myInfo.Probationperiod = requestData.Probationperiod //试用期"` myInfo.Planformaldate = planFormalDateInt64 //预计转正日期"` myInfo.PoliticalOutlook = requestData.Politicaloutlook //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)"` myInfo.Key = myCont.Key //"` myInfo.NameUsedBefore = requestData.Nameusedbefore //曾用名"` err = overall.CONSTANT_DB_HR.Create(&myInfo).Error if err != nil { overallhandle.Result(106, err, c) return } } else { saveData := overallhandle.MapOut() if requestData.Mobilephone != "" && requestData.Mobilephone != myInfo.Mobilephone { saveData["`mobilephone`"] = requestData.Mobilephone } //手机号码 if requestData.Idcardno != "" && requestData.Idcardno != myInfo.Idcardno { saveData["`idcardno`"] = requestData.Mobilephone } //身份证号 if entryDateInt64 != myInfo.Entrydate { saveData["`entrydate`"] = entryDateInt64 } //入职日期 if requestData.Probationperiod != 0 && requestData.Probationperiod != myInfo.Probationperiod { saveData["`probationperiod`"] = requestData.Probationperiod } //试用期 if planFormalDateInt64 != myInfo.Planformaldate { saveData["`planformaldate`"] = planFormalDateInt64 } // 预计转正日期 if jobStartDateInt64 != myInfo.Jobstartdate { saveData["`jobstartdate`"] = jobStartDateInt64 } //参加工作日期 if requestData.Nameusedbefore != "" && requestData.Nameusedbefore != myInfo.NameUsedBefore { saveData["`name_used_before`"] = requestData.Nameusedbefore } //曾用名 if requestData.Gender != 0 && requestData.Gender != myInfo.Gender { saveData["`gender`"] = requestData.Gender } //性别 if requestData.Myfolk != "" && requestData.Myfolk != myInfo.Myfolk { saveData["`myfolk`"] = requestData.Myfolk } //民族 if requestData.Politicaloutlook != 0 && requestData.Politicaloutlook != myInfo.PoliticalOutlook { saveData["`political_outlook`"] = requestData.Politicaloutlook } //政治面貌 if requestData.Health != 0 && requestData.Health != myInfo.Health { saveData["`health`"] = requestData.Health } //健康状况 if birthdayInt64 != myInfo.Birthday { saveData["`birthday`"] = birthdayInt64 } //生日 if idCardStartDateInt64 != myInfo.Idcardstartdate { saveData["`idcardstartdate`"] = idCardStartDateInt64 } //身份证有效期开始 if idCardEndDateInt64 != myInfo.Idcardenddate { saveData["`idcardenddate`"] = idCardEndDateInt64 } //身份证有效期结束 if requestData.Idcardaddress != "" && requestData.Idcardaddress != myInfo.Idcardaddress { saveData["`idcardaddress`"] = requestData.Idcardaddress } //身份证地址 if requestData.IdcardIssued != "" && requestData.IdcardIssued != myInfo.IdcardIssued { saveData["`idcardIssued`"] = requestData.IdcardIssued } //身份证签发机关 if requestData.Currentresidence != "" && requestData.Currentresidence != myInfo.Currentresidence { saveData["`currentresidence`"] = requestData.Currentresidence } //现居住地址 if requestData.Nativeplace != "" && requestData.Nativeplace != myInfo.Nativeplace { saveData["`nativeplace`"] = requestData.Nativeplace } //籍贯 if requestData.Email != "" && requestData.Email != myInfo.Email { saveData["`email`"] = requestData.Email } //电子邮件 if requestData.Internaltelephone != "" && requestData.Internaltelephone != myInfo.Internaltelephone { saveData["`internaltelephone`"] = requestData.Internaltelephone } //内线电话 if requestData.Isveterans != 0 && requestData.Isveterans != myInfo.Isveterans { saveData["`isveterans`"] = requestData.Isveterans } //是否为退役军人 if requestData.Veteransnumber != "" && requestData.Veteransnumber != myInfo.Veteransnumber { saveData["`veteransnumber`"] = requestData.Veteransnumber } //退役证编号 if requestData.Passportno != "" && requestData.Passportno != myInfo.Passportno { saveData["`passportno`"] = requestData.Passportno } //护照号码 if requestData.Globalroaming != "" && requestData.Globalroaming != myInfo.Globalroaming { saveData["`globalroaming`"] = requestData.Globalroaming } //国际区号 if requestData.Constellationing != 0 && requestData.Constellationing != myInfo.Constellation { saveData["`constellationing`"] = requestData.Constellationing } //星座 if len(saveData) > 0 { saveData["`time`"] = editTime err = myInfo.EiteCont(wheAryEs, saveData) if err != nil { overallhandle.Result(106, err, c) return } } } overallhandle.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2024-03-28 09:03:52 @ 功能: 人员定位信息(简略) @ 参数 # @ 返回值 # @ 方法原型 # */ func (s *StaffApi) PersonnelPositioning(c *gin.Context) { var requestData overallhandle.ConstId c.ShouldBindJSON(&requestData) peopleUrl := "http://172.20.2.156:8084/HXGK/open/information/getRealGps.do" postString := overallhandle.CurlPostJosn(peopleUrl, []byte("")) var postCallBack DingWeiData json.Unmarshal(postString, &postCallBack) postCallBack.Total = len(postCallBack.Data) noSend := []string{"300010", "300043", "202471", "302535", "200001", "200005", "200009", "200003", "200010", "201542", "200008", "200019", "200012"} var sendPeopleList []DingWeiInfo if len(postCallBack.Data) > 0 { for i, v := range postCallBack.Data { if !overallhandle.IsInTrue[string](v.EmpNo, noSend) { postCallBack.Data[i].UserName = v.EmpName if v.EmpNo != "" && v.EmpNo != "null" { var manErr error var manInfo models.ManCont switch requestData.Id { case "224": manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo, "`company`": requestData.Id}, "`name`", "`key`", "`mobilephone`", "`company`") var orgInfo models.AdministrativeOrganization orgInfo.GetCont(map[string]interface{}{"`id`": manInfo.Company}, "`name`") postCallBack.Data[i].UserOrgName = orgInfo.Name if manErr == nil { var sendPeople DingWeiInfo sendPeople.Company = manInfo.Company sendPeople.DateTime = v.DateTime //dateTime"` sendPeople.Area = v.Area //area"` sendPeople.FactoryId = v.FactoryId //factoryId"` sendPeople.Latitude = v.Latitude //latitude"` sendPeople.FactoryName = v.FactoryName //factoryName"` sendPeople.DeviceNo = v.DeviceNo //deviceNo"` sendPeople.EmpNo = v.EmpNo //empNo"` sendPeople.IsOffLine = v.IsOffLine //isOffLine"` sendPeople.Layer = v.Layer //layer"` sendPeople.CrossX = v.CrossX //crossX"` sendPeople.CrossY = v.CrossY //crossY"` sendPeople.Specifictype = v.Specifictype //specifictype"` sendPeople.EmpName = v.EmpName //empName"` sendPeople.Longitude = v.Longitude //longitude"` sendPeople.UserCode = strconv.FormatInt(manInfo.Key, 10) sendPeople.UserName = manInfo.Name if manInfo.Mobilephone != "" { sendPeople.UserPhone = overallhandle.MaskPhone(manInfo.Mobilephone) } switch v.Specifictype { //人员类型 case "1": sendPeople.UserType = "临时访客" case "2": sendPeople.UserType = "承包商员工" case "3": sendPeople.UserType = "临时访客" case "4": sendPeople.UserType = "临时访客" case "5": sendPeople.UserType = "临时访客" default: sendPeople.UserType = "在职职工" } sendPeople.UserOrgCode = "91370921MA94AF5H3N" //userOrgCode"` //所属单位唯一标志 sendPeople.UserOrgName = orgInfo.Name //"恒信中碳氢能源科技(山东)有限公司" //userOrgName"` //所属单位名称 sendPeople.Cardld = v.DeviceNo //cardld"` //绑定设备唯一编码 sendPeopleList = append(sendPeopleList, sendPeople) } case "309": manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo, "`company`": requestData.Id}, "`name`", "`key`", "`mobilephone`", "`company`") var orgInfo models.AdministrativeOrganization orgInfo.GetCont(map[string]interface{}{"`id`": manInfo.Company}, "`name`") postCallBack.Data[i].UserOrgName = orgInfo.Name if manErr == nil { var sendPeople DingWeiInfo sendPeople.Company = manInfo.Company sendPeople.DateTime = v.DateTime //dateTime"` sendPeople.Area = v.Area //area"` sendPeople.FactoryId = v.FactoryId //factoryId"` sendPeople.Latitude = v.Latitude //latitude"` sendPeople.FactoryName = v.FactoryName //factoryName"` sendPeople.DeviceNo = v.DeviceNo //deviceNo"` sendPeople.EmpNo = v.EmpNo //empNo"` sendPeople.IsOffLine = v.IsOffLine //isOffLine"` sendPeople.Layer = v.Layer //layer"` sendPeople.CrossX = v.CrossX //crossX"` sendPeople.CrossY = v.CrossY //crossY"` sendPeople.Specifictype = v.Specifictype //specifictype"` sendPeople.EmpName = v.EmpName //empName"` sendPeople.Longitude = v.Longitude //longitude"` sendPeople.UserCode = strconv.FormatInt(manInfo.Key, 10) sendPeople.UserName = manInfo.Name if manInfo.Mobilephone != "" { sendPeople.UserPhone = overallhandle.MaskPhone(manInfo.Mobilephone) } switch v.Specifictype { //人员类型 case "1": sendPeople.UserType = "临时访客" case "2": sendPeople.UserType = "承包商员工" case "3": sendPeople.UserType = "临时访客" case "4": sendPeople.UserType = "临时访客" case "5": sendPeople.UserType = "临时访客" default: sendPeople.UserType = "在职职工" } sendPeople.UserOrgCode = "91370921MA94AF5H3N" //userOrgCode"` //所属单位唯一标志 sendPeople.UserOrgName = orgInfo.Name //"恒信中碳氢能源科技(山东)有限公司" //userOrgName"` //所属单位名称 sendPeople.Cardld = v.DeviceNo //cardld"` //绑定设备唯一编码 sendPeopleList = append(sendPeopleList, sendPeople) } default: manErr = manInfo.GetCont(map[string]interface{}{"`number`": v.EmpNo}, "`name`", "`key`", "`mobilephone`", "`company`") var orgInfo models.AdministrativeOrganization orgInfo.GetCont(map[string]interface{}{"`id`": manInfo.Company}, "`name`") postCallBack.Data[i].UserOrgName = orgInfo.Name if manErr == nil { var sendPeople DingWeiInfo sendPeople.Company = manInfo.Company sendPeople.DateTime = v.DateTime //dateTime"` sendPeople.Area = v.Area //area"` sendPeople.FactoryId = v.FactoryId //factoryId"` sendPeople.Latitude = v.Latitude //latitude"` sendPeople.FactoryName = v.FactoryName //factoryName"` sendPeople.DeviceNo = v.DeviceNo //deviceNo"` sendPeople.EmpNo = v.EmpNo //empNo"` sendPeople.IsOffLine = v.IsOffLine //isOffLine"` sendPeople.Layer = v.Layer //layer"` sendPeople.CrossX = v.CrossX //crossX"` sendPeople.CrossY = v.CrossY //crossY"` sendPeople.Specifictype = v.Specifictype //specifictype"` sendPeople.EmpName = v.EmpName //empName"` sendPeople.Longitude = v.Longitude //longitude"` sendPeople.UserCode = strconv.FormatInt(manInfo.Key, 10) sendPeople.UserName = manInfo.Name if manInfo.Mobilephone != "" { sendPeople.UserPhone = overallhandle.MaskPhone(manInfo.Mobilephone) } switch v.Specifictype { //人员类型 case "1": sendPeople.UserType = "临时访客" case "2": sendPeople.UserType = "承包商员工" case "3": sendPeople.UserType = "临时访客" case "4": sendPeople.UserType = "临时访客" case "5": sendPeople.UserType = "临时访客" default: sendPeople.UserType = "在职职工" } sendPeople.UserOrgCode = "91370921328482832M" //userOrgCode"` //所属单位唯一标志 sendPeople.UserOrgName = orgInfo.Name //"山东恒信高科能源有限公司" //userOrgName"` //所属单位名称 sendPeople.Cardld = v.DeviceNo //cardld"` //绑定设备唯一编码 sendPeopleList = append(sendPeopleList, sendPeople) } } } else { postCallBack.Data[i].UserCode = v.DeviceNo } switch v.Specifictype { case "1": postCallBack.Data[i].UserType = "临时访客" case "2": postCallBack.Data[i].UserType = "承包商员工" case "3": postCallBack.Data[i].UserType = "临时访客" case "4": postCallBack.Data[i].UserType = "临时访客" case "5": postCallBack.Data[i].UserType = "临时访客" default: postCallBack.Data[i].UserType = "在职职工" } postCallBack.Data[i].UserOrgCode = "91370921328482832M" postCallBack.Data[i].Cardld = v.DeviceNo } } } overallhandle.Result(0, sendPeopleList, c) // overallhandle.Result(0, postCallBack.Data, c) }