package personnelapi import ( "fmt" "hr_server/models" "hr_server/overall" "hr_server/overall/overallhandle" "strconv" "strings" "time" "github.com/gin-gonic/gin" ) //人员列表 func (s *StaffApi) ArchivesList(c *gin.Context) { var requestData peopleList c.ShouldBindJSON(&requestData) if requestData.Page < 0 { requestData.Page = 1 } if requestData.PageSize < 0 { requestData.PageSize = 10 } var staffList []models.ManCont gormDb := overall.CONSTANT_DB_HR.Model(&models.ManCont{}).Where("state = 1") if requestData.Number != "" { gormDb = gormDb.Where("number LIKE ?", "%"+requestData.Number+"%") } if requestData.Name != "" { gormDb = gormDb.Where("name LIKE ?", "%"+requestData.Name+"%") } if requestData.HireClass != 0 { gormDb = gormDb.Where("hire_class = ?", requestData.HireClass) } if requestData.Company != 0 { gormDb = gormDb.Where("company = ?", requestData.Company) } if requestData.Deparment != "" { gormDb = gormDb.Where("FIND_IN_SET(?,`deparment`)", requestData.Deparment) } if requestData.AdminOrg != 0 { gormDb = gormDb.Where("admin_org = ?", requestData.AdminOrg) } if requestData.Position != 0 { gormDb = gormDb.Where("position = ?", requestData.Position) } if requestData.EmpType != 0 { gormDb = gormDb.Where("emp_type = ?", requestData.EmpType) } else { gormDb = gormDb.Where("emp_type IN ?", overall.EmployeeStatusIng) } if requestData.Role != "" { gormDb = gormDb.Where("FIND_IN_SET(?,`role`)", requestData.Role) } var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } errGorm := gormDb.Order("company ASC,maindeparment ASC,admin_org ASC,position ASC").Limit(requestData.PageSize).Offset(overallhandle.LimitPage(requestData.Page, requestData.PageSize)).Find(&staffList).Error var positionAry []peopleManOutList for _, v := range staffList { var staffInfo peopleManOutList staffInfo.ManCont = v var getSpur models.Position getWhe := overallhandle.MapOut() getWhe["id"] = v.Position getSpur.GetCont(getWhe, "name") staffInfo.PositionName = getSpur.Name staffInfo.KeyStr = strconv.FormatInt(v.Key, 10) //公司 var getSpurDepart models.AdministrativeOrganization getWheDepart := overallhandle.MapOut() getWheDepart["id"] = v.Company getSpurDepart.GetCont(getWheDepart, "name") staffInfo.CompanyName = getSpurDepart.Name //主部门 var getSpurDepartMain models.AdministrativeOrganization getWheDepartMain := overallhandle.MapOut() getWheDepartMain["id"] = v.MainDeparment getSpurDepartMain.GetCont(getWheDepartMain, "name") staffInfo.MainDeparmentName = getSpurDepartMain.Name //获取部门 departmentAry := strings.Split(v.Deparment, ",") if len(departmentAry) > 0 { var departCont []getDepartmentInfo departErr := overall.CONSTANT_DB_HR.Model(&models.AdministrativeOrganization{}).Select("id,number,name").Where("`id` IN ?", departmentAry).Order("`organization_type` ASC").Find(&departCont).Error if departErr == nil { var departNameAry []string for _, d_v := range departCont { departNameAry = append(departNameAry, d_v.Name) } if len(departNameAry) > 0 { staffInfo.DeparmentName = strings.Join(departNameAry, " ") } } } positionAry = append(positionAry, staffInfo) } if errGorm != nil { overallhandle.Result(105, errGorm, c) } else { overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(positionAry)), positionAry, c) } } //获取单个人员档案 //人员列表 func (s *StaffApi) ArchivesCon(c *gin.Context) { var requestData overallhandle.GetId c.ShouldBindJSON(&requestData) if requestData.IdStr == "" && requestData.Id == 0 { overallhandle.Result(101, requestData, c) return } if requestData.IdStr != "" { idInt, idErr := strconv.ParseInt(requestData.IdStr, 10, 64) if idErr == nil { requestData.Id = idInt } } var satffCont models.ManCont staffErr := satffCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if staffErr != nil { overallhandle.Result(105, staffErr, c) return } var staffCenter staffArchivesCont staffCenter.ManCont = satffCont staffCenter.IdStr = strconv.FormatInt(satffCont.Id, 10) staffCenter.BirthdayTime = overallhandle.UnixTimeToDay(satffCont.Birthday, 14) //生日 staffCenter.IdCardStartTimeData = overallhandle.UnixTimeToDay(satffCont.Idcardstartdate, 14) //身份证有效期开始时间 staffCenter.IdCardEndTimeData = overallhandle.UnixTimeToDay(satffCont.Idcardenddate, 14) //身份证有效期结束时间 staffCenter.EntrydateTime = overallhandle.UnixTimeToDay(satffCont.Entrydate, 14) //入职日期 staffCenter.PlanformaldateTime = overallhandle.UnixTimeToDay(satffCont.Planformaldate, 14) //预计转正日期 //获取双职工信息 synPro.Add(1) go func() { staffCenter.DoubleWorkerList = getDoubleWorkerCont(satffCont.Key) //双职工 }() //紧急联系人 synPro.Add(1) go func() { staffCenter.EmergencyContact = getEmercyCallMan(satffCont.Key) //紧急联系人 }() //家庭成员 synPro.Add(1) go func() { staffCenter.MemberOfFamily = getMemberOfFamily(satffCont.Key) //家庭成员 }() //教育经历 synPro.Add(1) go func() { staffCenter.EducationalExperience = getEducationalExperience(satffCont.Key) //教育经历 }() //工作履历 synPro.Add(1) go func() { staffCenter.WorkHistoryList = getWorkHistoryList(satffCont.Key) //工作履历 }() synPro.Wait() overallhandle.Result(0, staffCenter, c) return } //获取双职工信息 func getDoubleWorkerCont(key int64) (doubleworkerlist []DoubleWorkerCont) { defer synPro.Done() var dowWorkMan []models.DoubleWorker err := overall.CONSTANT_DB_HR.Select("`id`", "`number`", "`name`", "`company`", "`department`", "`position`", "`tel`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error if err == nil { for _, v := range dowWorkMan { var dwManCont DoubleWorkerCont dwManCont.Id = strconv.FormatInt(v.Id, 10) dwManCont.Number = v.Number //工号 dwManCont.Name = v.Name //姓名 dwManCont.Company = v.Company //公司 dwManCont.Department = v.Department //分厂(部室) dwManCont.Position = v.Position //职位(岗位) dwManCont.Mobilephone = v.Tel //联系电话 doubleworkerlist = append(doubleworkerlist, dwManCont) } } return } //紧急联系人 func getEmercyCallMan(key int64) (callMan []emergencyContact) { defer synPro.Done() var dowWorkMan []models.EmergencyContact err := overall.CONSTANT_DB_HR.Select("`id`", "`name`", "`relationship`", "`tel`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error if err == nil { for _, v := range dowWorkMan { var dwManCont emergencyContact // dwManCont.Id = strconv.FormatInt(v.Id, 10) dwManCont.Name = v.Name //姓名 dwManCont.Relationship = v.Relationship //与紧急联系人 dwManCont.Mobilephone = v.Tel //联系电话 callMan = append(callMan, dwManCont) } } return } //获取家庭成员 func getMemberOfFamily(key int64) (callMan []memberOfFamily) { defer synPro.Done() var dowWorkMan []models.FamilyMembers err := overall.CONSTANT_DB_HR.Select("`id`", "`name`", "`relation`", "`company`", "`deparment`", "`postnme`", "`tel`,`political_outlook`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error if err == nil { for _, v := range dowWorkMan { var dwManCont memberOfFamily //工号 dwManCont.Name = v.Name //姓名 dwManCont.Relationship = v.Relationship //与紧急联系人 dwManCont.Mobilephone = v.Tel //联系电话 dwManCont.Company = v.Company //公司 dwManCont.Department = v.Deparment //分厂(部室) dwManCont.Position = v.Postnme //职位(岗位) dwManCont.PoliticalOutlook = v.PoliticalOutlook //政治面貌 dwManCont.IdStr = strconv.FormatInt(v.Id, 10) callMan = append(callMan, dwManCont) } } return } //获取教育经历 func getEducationalExperience(key int64) (callMan []educatExp) { defer synPro.Done() var dowWorkMan []models.PersonnelEducation err := overall.CONSTANT_DB_HR.Select("`id`", "`education`", "`graduation_school`", "`subject`", "`admission_time`", "`graduation_time`", "`level`,`academic_degree`").Where("`state` = 1 AND `key` = ?", key).Find(&dowWorkMan).Error if err == nil { for _, v := range dowWorkMan { var dwManCont educatExp // dwManCont.GraduationSchool = v.GraduationSchool //毕业学校 dwManCont.Subject = v.Subject //专业 dwManCont.Education = v.Education //学历 dwManCont.AdmissionTime = overallhandle.UnixTimeToDay(v.AdmissionTime, 14) //入学时间 dwManCont.GraduationTime = overallhandle.UnixTimeToDay(v.GraduationTime, 14) //毕业时间 dwManCont.AcademicDegree = getXueWei(v.AcademicDegree) //学位 dwManCont.AcademicDegreeId = v.AcademicDegree dwManCont.Level = getXueWeiClass(v.Level) dwManCont.LevelId = v.Level //学历类型 dwManCont.Id = strconv.FormatInt(v.Id, 10) callMan = append(callMan, dwManCont) } } return } //学位 func getXueWei(id int) string { switch id { case 1: return "无" case 2: return "学士" case 3: return "硕士" case 4: return "博士" default: return "无" } return "无" } //学历类型 func getXueWeiClass(id int) string { switch id { case 2: return "第一学历" case 3: return "最高学历" default: return "普通" } return "普通" } //工作履历 func getWorkHistoryList(key int64) (workHisList []workHistoryAry) { defer synPro.Done() var workHisContList []models.WorkHistory workHisContListErr := overall.CONSTANT_DB_HR.Where("`state` = 1 AND `key` = ?", key).Find(&workHisContList).Error if workHisContListErr == nil { for _, v := range workHisContList { var workCont workHistoryAry workCont.Company = v.Company //公司 workCont.Department = v.Deparment //部门 workCont.Position = v.Job //职务 workCont.EntryTime = overallhandle.UnixTimeToDay(v.EntryTime, 14) //入职时间 workCont.LeaveDate = overallhandle.UnixTimeToDay(v.Leavedate, 14) //离职日期 workCont.Witness = v.Witness //证明人 workCont.WitnessTel = v.WitnessTel //证明人电话 workCont.Remarks = v.Remarks //备注 workHisList = append(workHisList, workCont) } } return } //添加双职工 func (s *StaffApi) AddDoubleWorkerApi(c *gin.Context) { var requestData DoubleWorkerCont c.ShouldBindJSON(&requestData) // if err != nil { // overallhandle.Result(100, err, c) // return // } if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c, "参数错误") return } if requestData.Name == "" { overallhandle.Result(101, requestData.Name, c, "请输入姓名") return } if requestData.Mobilephone == "" { overallhandle.Result(101, requestData.Mobilephone, c, "请输入联系方式") return } var manCont models.PersonArchives manCont.GetCont(map[string]interface{}{"`key`": requestData.Id}, "`number`") var doubleWorkInfo models.DoubleWorker doubleWorkInfo.Number = manCont.Number doubleWorkInfo.Name = requestData.Name doubleWorkInfo.Company = requestData.Company doubleWorkInfo.Department = requestData.Department doubleWorkInfo.Position = requestData.Position doubleWorkInfo.Tel = requestData.Mobilephone doubleWorkInfo.Time = time.Now().Unix() doubleWorkInfo.State = 1 keyInt, _ := strconv.ParseInt(requestData.Id, 10, 64) doubleWorkInfo.Key = keyInt addErr := overall.CONSTANT_DB_HR.Create(&doubleWorkInfo).Error if addErr != nil { overallhandle.Result(104, addErr, c) return } overallhandle.Result(0, addErr, c) } //编辑双职工 func (s *StaffApi) EidtDoubleWorkerApi(c *gin.Context) { var requestData DoubleWorkerCont c.ShouldBindJSON(&requestData) // if err != nil { // overallhandle.Result(100, err, c) // return // } if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c) return } var doubleWorkCont models.DoubleWorker wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if wErr != nil { overallhandle.Result(107, requestData.Id, c) return } saveData := overallhandle.MapOut() if requestData.Name != "" && requestData.Name != doubleWorkCont.Name { saveData["name"] = requestData.Name } if requestData.Company != "" && requestData.Company != doubleWorkCont.Company { saveData["company"] = requestData.Company } if requestData.Department != "" && requestData.Department != doubleWorkCont.Department { saveData["department"] = requestData.Department } if requestData.Position != "" && requestData.Position != doubleWorkCont.Position { saveData["position"] = requestData.Position } if requestData.Mobilephone != "" && requestData.Mobilephone != doubleWorkCont.Tel { saveData["tel"] = requestData.Mobilephone } if len(saveData) > 0 { saveData["time"] = time.Now().Unix() var eidtCont models.DoubleWorker eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } else { overallhandle.Result(0, saveData, c) } } //编辑双职工状态 func (s *StaffApi) EidtDoubleWorkerState(c *gin.Context) { var requestData eidtWorkState c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c) return } var doubleWorkCont models.DoubleWorker wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if wErr != nil { overallhandle.Result(107, requestData.Id, c) return } if requestData.State == 0 { requestData.State = 1 } if requestData.IsDel <= 1 { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.DoubleWorker eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } else { if requestData.State == 3 { delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.DoubleWorker{}).Error if delErr == nil { overallhandle.Result(0, delErr, c) } else { overallhandle.Result(108, delErr, c) } } else { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.DoubleWorker eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } } } //添加紧急联系人 func (s *StaffApi) AddEmercyCall(c *gin.Context) { var requestData addEmergencyContact c.ShouldBindJSON(&requestData) if requestData.Id == "" || len(requestData.List) <= 0 { overallhandle.Result(101, requestData, c) return } keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64) if keyErr != nil { overallhandle.Result(100, keyErr, c) return } var manCont models.PersonArchives manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`") if manErr != nil { overallhandle.Result(107, manErr, c) return } var emerContList []models.EmergencyContact isWrite := 1 for _, v := range requestData.List { if v.Name != "" && v.Mobilephone != "" { var emerContCont models.EmergencyContact emerContCont.Number = manCont.Number //员工工号;index"` emerContCont.Name = v.Name //紧急联系人姓名"` emerContCont.Relationship = v.Relationship //与紧急联系人关系"` emerContCont.Tel = v.Mobilephone //紧急联系人电话"` emerContCont.Time = time.Now().Unix() //创建时间"` emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"` emerContCont.Key = keyInt // emerContList = append(emerContList, emerContCont) } else { isWrite = 2 } } if isWrite != 1 { overallhandle.Result(100, requestData.List, c) return } if len(emerContList) <= 0 { overallhandle.Result(1, emerContList, c, "没有要添加的数据!") return } addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error if addErr != nil { overallhandle.Result(104, requestData.List, c) } else { overallhandle.Result(0, addErr, c) } } //编辑紧急联系人 func (s *StaffApi) EditEmercyCall(c *gin.Context) { var requestData emergencyContact c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData, c) return } var enerCont models.EmergencyContact err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id}, "`id`", "`name`", "`relationship`", "`tel`") if err != nil { overallhandle.Result(105, err, c) return } saveData := overallhandle.MapOut() if requestData.Name != "" && requestData.Name != enerCont.Name { saveData["name"] = requestData.Name } if requestData.Relationship != "" && requestData.Relationship != enerCont.Relationship { saveData["relationship"] = requestData.Relationship } if requestData.Mobilephone != "" && requestData.Mobilephone != enerCont.Tel { saveData["tel"] = requestData.Mobilephone } if len(saveData) > 0 { saveData["time"] = time.Now().Unix() eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr != nil { overallhandle.Result(106, eidtErr, c) } else { overallhandle.Result(0, eidtErr, c) } } else { overallhandle.Result(0, saveData, c) } } //编辑紧急联系人 func (s *StaffApi) EditEmercyCallState(c *gin.Context) { var requestData eidtWorkState c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c) return } var doubleWorkCont models.EmergencyContact wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if wErr != nil { overallhandle.Result(107, requestData.Id, c) return } if requestData.State == 0 { requestData.State = 1 } if requestData.IsDel <= 1 { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.EmergencyContact eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } else { if requestData.State == 3 { delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.EmergencyContact{}).Error if delErr == nil { overallhandle.Result(0, delErr, c) } else { overallhandle.Result(108, delErr, c) } } else { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.EmergencyContact eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } } } //添加家庭成员 func (s *StaffApi) AddFamilyMembers(c *gin.Context) { var requestData addFamilyPeople err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(101, err, c) return } if requestData.Id == "" || len(requestData.List) <= 0 { overallhandle.Result(101, requestData, c) return } keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64) if keyErr != nil { overallhandle.Result(100, keyErr, c) return } var manCont models.PersonArchives manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`") if manErr != nil { overallhandle.Result(107, manErr, c) return } var emerContList []models.FamilyMembers isWrite := 1 for _, v := range requestData.List { if v.Name != "" && v.Mobilephone != "" { var emerContCont models.FamilyMembers emerContCont.Number = manCont.Number emerContCont.Relationship = v.Relationship //与家属关系"` emerContCont.Name = v.Name //家属姓名"` emerContCont.Company = v.Company emerContCont.Deparment = v.Department emerContCont.Postnme = v.Position emerContCont.Tel = v.Mobilephone //家属电话"` poloutlook := v.PoliticalOutlook if poloutlook == 0 { poloutlook = 1 } emerContCont.PoliticalOutlook = poloutlook emerContCont.Time = time.Now().Unix() //创建时间"` emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"` emerContCont.Key = keyInt // emerContList = append(emerContList, emerContCont) } else { isWrite = 2 } } if isWrite != 1 { overallhandle.Result(100, requestData.List, c) return } if len(emerContList) <= 0 { overallhandle.Result(1, emerContList, c, "没有要添加的数据!") return } addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error if addErr != nil { overallhandle.Result(104, requestData.List, c) } else { overallhandle.Result(0, addErr, c) } } //编辑家属信息 func (s *StaffApi) EditFamilyMembers(c *gin.Context) { var requestData memberOfFamily c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData, c) return } var enerCont models.FamilyMembers err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if err != nil { overallhandle.Result(105, err, c) return } saveData := overallhandle.MapOut() if requestData.Name != "" && requestData.Name != enerCont.Name { saveData["name"] = requestData.Name } if requestData.Relationship != "" && requestData.Relationship != enerCont.Relationship { saveData["relation"] = requestData.Relationship } if requestData.Mobilephone != "" && requestData.Mobilephone != enerCont.Tel { saveData["tel"] = requestData.Mobilephone } if requestData.Company != "" && requestData.Company != enerCont.Company { saveData["company"] = requestData.Company } if requestData.Department != "" && requestData.Department != enerCont.Deparment { saveData["deparment"] = requestData.Department } if requestData.Position != "" && requestData.Position != enerCont.Postnme { saveData["postnme"] = requestData.Position } if requestData.PoliticalOutlook != 0 && requestData.PoliticalOutlook != enerCont.PoliticalOutlook { saveData["political_outlook"] = requestData.PoliticalOutlook } if len(saveData) > 0 { saveData["time"] = time.Now().Unix() eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr != nil { overallhandle.Result(106, eidtErr, c) } else { overallhandle.Result(0, eidtErr, c) } } else { overallhandle.Result(0, saveData, c) } } //编辑家属状态 func (s *StaffApi) EditFamilyMembersSatte(c *gin.Context) { var requestData eidtWorkState c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c) return } var doubleWorkCont models.FamilyMembers wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if wErr != nil { overallhandle.Result(107, requestData.Id, c) return } if requestData.State == 0 { requestData.State = 1 } if requestData.IsDel <= 1 { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.FamilyMembers eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } else { if requestData.State == 3 { delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.FamilyMembers{}).Error if delErr == nil { overallhandle.Result(0, delErr, c) } else { overallhandle.Result(108, delErr, c) } } else { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.FamilyMembers eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } } } //添加教育经历 func (s *StaffApi) AddEducationalExperience(c *gin.Context) { var requestData addExpToSchool c.ShouldBindJSON(&requestData) // err := c.ShouldBindJSON(&requestData) // if err != nil { // overallhandle.Result(101, err, c) // return // } if requestData.Id == "" || len(requestData.List) <= 0 { overallhandle.Result(101, requestData, c) return } keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64) if keyErr != nil { overallhandle.Result(100, keyErr, c) return } var manCont models.PersonArchives manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`") if manErr != nil { overallhandle.Result(107, manErr, c) return } var emerContList []models.PersonnelEducation isWrite := 1 for _, v := range requestData.List { if v.GraduationSchool != "" && v.Subject != "" { var emerContCont models.PersonnelEducation emerContCont.Number = manCont.Number eduCation := v.Education if eduCation == 0 { eduCation = 1 } emerContCont.Education = eduCation emerContCont.GraduationSchool = v.GraduationSchool emerContCont.Subject = v.Subject entranceTimeFirst := time.Now().Unix() if v.AdmissionTime != "" { entranceTimeFirst, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.AdmissionTime)) } emerContCont.AdmissionTime = entranceTimeFirst // 入学时间"` graduationTimef := time.Now().Unix() if v.GraduationTime != "" { graduationTimef, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.GraduationTime)) } emerContCont.GraduationTime = graduationTimef // 毕业时间"` emerContCont.Time = time.Now().Unix() // 写入时间"` acaLeve, _ := strconv.Atoi(v.AcademicDegree) if acaLeve == 0 { acaLeve = 1 } emerContCont.AcademicDegree = acaLeve emerContCont.Time = time.Now().Unix() //创建时间"` emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"` emerContCont.Key = keyInt // switch v.Level { case "2": var editPerCont models.PersonnelEducation editPerCont.EiteCont(map[string]interface{}{"`key`": keyInt, "`level`": 2}, map[string]interface{}{"`level`": 1}) emerContCont.Level = 2 case "3": var editPerCont models.PersonnelEducation editPerCont.EiteCont(map[string]interface{}{"`key`": keyInt, "`level`": 3}, map[string]interface{}{"`level`": 1}) emerContCont.Level = 3 default: emerContCont.Level = 1 } emerContList = append(emerContList, emerContCont) } else { isWrite = 2 } } if isWrite != 1 { overallhandle.Result(100, requestData.List, c) return } if len(emerContList) <= 0 { overallhandle.Result(1, emerContList, c, "没有要添加的数据!") return } addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error if addErr != nil { overallhandle.Result(104, requestData.List, c) } else { overallhandle.Result(0, addErr, c) } } //编辑教育经历 func (s *StaffApi) EditEducationalExperience(c *gin.Context) { var requestData editExpToSchool c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData, c) return } var enerCont models.PersonnelEducation err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if err != nil { overallhandle.Result(105, err, c) return } saveData := overallhandle.MapOut() if requestData.GraduationSchool != "" && requestData.GraduationSchool != enerCont.GraduationSchool { saveData["graduation_school"] = requestData.GraduationSchool } if requestData.Subject != "" && requestData.Subject != enerCont.Subject { saveData["subject"] = requestData.Subject } if requestData.Education != 0 && requestData.Education != enerCont.Education { saveData["education"] = requestData.Education } if requestData.AdmissionTime != "" { admissionTimeInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.AdmissionTime)) if admissionTimeInt != enerCont.AdmissionTime { saveData["admission_time"] = admissionTimeInt } } if requestData.GraduationTime != "" { graduationTimeInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.GraduationTime)) if graduationTimeInt != enerCont.GraduationTime { saveData["graduation_time"] = graduationTimeInt } } if requestData.AcademicDegree != "" { acaLeve, _ := strconv.Atoi(requestData.AcademicDegree) if acaLeve != enerCont.AcademicDegree { saveData["academic_degree"] = acaLeve } } if requestData.Level != "" { levelInt, _ := strconv.Atoi(requestData.Level) if levelInt != enerCont.Level { switch levelInt { case 2: var editPerCont models.PersonnelEducation editPerCont.EiteCont(map[string]interface{}{"`key`": enerCont.Key, "`level`": 2}, map[string]interface{}{"`level`": 1}) saveData["academic_degree"] = 2 case 3: var editPerCont models.PersonnelEducation editPerCont.EiteCont(map[string]interface{}{"`key`": enerCont.Key, "`level`": 3}, map[string]interface{}{"`level`": 1}) saveData["academic_degree"] = 3 default: saveData["academic_degree"] = 1 } } } if len(saveData) > 0 { saveData["time"] = time.Now().Unix() eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr != nil { overallhandle.Result(106, eidtErr, c) } else { overallhandle.Result(0, eidtErr, c) } } else { overallhandle.Result(0, saveData, c) } } //编辑教育经历状态 func (s *StaffApi) EditEduExpState(c *gin.Context) { var requestData eidtWorkState c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c) return } var doubleWorkCont models.PersonnelEducation wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if wErr != nil { overallhandle.Result(107, requestData.Id, c) return } if requestData.State == 0 { requestData.State = 1 } if requestData.IsDel <= 1 { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.PersonnelEducation eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } else { if requestData.State == 3 { delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.PersonnelEducation{}).Error if delErr == nil { overallhandle.Result(0, delErr, c) } else { overallhandle.Result(108, delErr, c) } } else { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.PersonnelEducation eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } } } //添加工作履历 func (s *StaffApi) AddWorkHistoryCont(c *gin.Context) { var requestData addWorkHistory c.ShouldBindJSON(&requestData) // err := c.ShouldBindJSON(&requestData) // if err != nil { // overallhandle.Result(101, err, c) // return // } if requestData.Id == "" || len(requestData.List) <= 0 { overallhandle.Result(101, requestData, c) return } keyInt, keyErr := strconv.ParseInt(requestData.Id, 10, 64) if keyErr != nil { overallhandle.Result(100, keyErr, c) return } var manCont models.PersonArchives manErr := manCont.GetCont(map[string]interface{}{"`key`": keyInt}, "`number`") if manErr != nil { overallhandle.Result(107, manErr, c) return } var emerContList []models.WorkHistory isWrite := 1 for _, v := range requestData.List { if v.Company != "" && v.Department != "" { var emerContCont models.WorkHistory emerContCont.Number = manCont.Number emerContCont.Key = keyInt emerContCont.Company = v.Company //公司"` emerContCont.Deparment = v.Department //部门"` emerContCont.Job = v.Position //职务"` joinTime := time.Now().Unix() if v.EntryTime != "" { joinTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.EntryTime)) } emerContCont.EntryTime = joinTime //入职时间"` outTime := time.Now().Unix() if v.LeaveDate != "" { outTime, _ = overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", v.LeaveDate)) } emerContCont.Leavedate = outTime //离职日期"` emerContCont.Witness = v.Witness //证明人"` emerContCont.WitnessTel = v.WitnessTel //证明人电话"` emerContCont.Remarks = v.Remarks //备注"` emerContCont.Time = time.Now().Unix() //创建时间"` emerContCont.State = 1 //状态(1:启用;2:禁用;3:删除)"` emerContList = append(emerContList, emerContCont) } else { isWrite = 2 } } if isWrite != 1 { overallhandle.Result(100, requestData.List, c) return } if len(emerContList) <= 0 { overallhandle.Result(1, emerContList, c, "没有要添加的数据!") return } addErr := overall.CONSTANT_DB_HR.Create(&emerContList).Error if addErr != nil { overallhandle.Result(104, requestData.List, c) } else { overallhandle.Result(0, addErr, c) } } //编辑工作履历 func (s *StaffApi) EditWorkHistoryCont(c *gin.Context) { var requestData editWorkHistory c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData, c) return } var enerCont models.WorkHistory err := enerCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if err != nil { overallhandle.Result(105, err, c) return } saveData := overallhandle.MapOut() if requestData.Company != "" && requestData.Company != enerCont.Company { saveData["company"] = requestData.Company } if requestData.Department != "" && requestData.Department != enerCont.Deparment { saveData["deparment"] = requestData.Department } if requestData.Position != "" && requestData.Position != enerCont.Job { saveData["job"] = requestData.Position } if requestData.EntryTime != "" { EntryTimeInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.EntryTime)) if EntryTimeInt != enerCont.EntryTime { saveData["entry_time"] = EntryTimeInt } } if requestData.LeaveDate != "" { LeaveDateInt, _ := overallhandle.DateToTimeStamp(fmt.Sprintf("%v 00:00:00", requestData.LeaveDate)) if LeaveDateInt != enerCont.Leavedate { saveData["leavedate"] = LeaveDateInt } } if requestData.Witness != "" && requestData.Witness != enerCont.Witness { saveData["witness"] = requestData.Witness } if requestData.WitnessTel != "" && requestData.WitnessTel != enerCont.WitnessTel { saveData["witness_tel"] = requestData.WitnessTel } if requestData.Remarks != "" && requestData.Remarks != enerCont.Remarks { saveData["remarks"] = requestData.Remarks } if len(saveData) > 0 { saveData["time"] = time.Now().Unix() eidtErr := enerCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr != nil { overallhandle.Result(106, eidtErr, c) } else { overallhandle.Result(0, eidtErr, c) } } else { overallhandle.Result(0, saveData, c) } } //编辑工作履历状态 func (s *StaffApi) EditWorkHistoryState(c *gin.Context) { var requestData eidtWorkState c.ShouldBindJSON(&requestData) if requestData.Id == "" { overallhandle.Result(101, requestData.Id, c) return } var doubleWorkCont models.WorkHistory wErr := doubleWorkCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if wErr != nil { overallhandle.Result(107, requestData.Id, c) return } if requestData.State == 0 { requestData.State = 1 } if requestData.IsDel <= 1 { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.WorkHistory eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } else { if requestData.State == 3 { delErr := overall.CONSTANT_DB_HR.Where(map[string]interface{}{"`id`": requestData.Id}).Delete(&models.WorkHistory{}).Error if delErr == nil { overallhandle.Result(0, delErr, c) } else { overallhandle.Result(108, delErr, c) } } else { saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State var eidtCont models.WorkHistory eidtErr := eidtCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if eidtErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(106, eidtErr, c) } } } }