From 3bb8f953c9ad92b03f92e606bcb132c4e24fac3a Mon Sep 17 00:00:00 2001 From: herenshan112 Date: Thu, 22 Sep 2022 10:47:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/version1/personnelapi/staff.go | 97 ++++++++++++++++++++++++++++-- api/version1/personnelapi/type.go | 17 ++++-- apirouter/personnel/people.go | 6 +- 3 files changed, 107 insertions(+), 13 deletions(-) diff --git a/api/version1/personnelapi/staff.go b/api/version1/personnelapi/staff.go index 73123b5..eacccd0 100644 --- a/api/version1/personnelapi/staff.go +++ b/api/version1/personnelapi/staff.go @@ -26,36 +26,64 @@ func (s *StaffApi) StaffList(c *gin.Context) { // var personnelModels models.Personnel // gormDb := overall.CONSTANT_DB_HR.Table(fmt.Sprintf("%s p", personnelModels.TableName())).Select("p.*,pc.mobilephone,pc.gender,pc.isdoubleworker,pc.isveterans,pc.entrydate,pc.probationperiod,pc.planformaldate").Joins("left join personnel_content as pc on pc.number = p.number") + //SELECT * FROM `man_cont` WHERE `position` = 727 AND `emp_type` IN (1,2,3,4,5,6,7,8,9,10) AND `state` = 1 ORDER BY `company` ASC,`maindeparment` ASC,`admin_org` ASC,`position` ASC LIMIT 20 + + // sqlStrList := "SELECT * FROM `man_cont`" + // sqlStrCount := "SELECT count(*) FROM `man_cont`" + + sqlStr := "WHERE `state` = 1" + var personnelModels []models.ManCont gormDb := overall.CONSTANT_DB_HR.Model(&models.ManCont{}) if requestData.Number != "" { gormDb = gormDb.Where("`number` LIKE ?", "%"+requestData.Number+"%") + sqlStr = fmt.Sprintf("%v AND `number` LIKE %v", sqlStr, requestData.Number) } if requestData.Name != "" { gormDb = gormDb.Where("`name` LIKE ?", "%"+requestData.Name+"%") + sqlStr = fmt.Sprintf("%v AND `name` LIKE %v", sqlStr, requestData.Name) } if requestData.HireClass != 0 { gormDb = gormDb.Where("`hire_class` = ?", requestData.HireClass) + sqlStr = fmt.Sprintf("%v AND `hire_class` = %v", sqlStr, requestData.HireClass) } if requestData.Company != 0 { gormDb = gormDb.Where("`company` = ?", requestData.Company) + sqlStr = fmt.Sprintf("%v AND `company` = %v", sqlStr, requestData.Company) + } + if requestData.Deparment != "" { + gormDb = gormDb.Where("FIND_IN_SET(?,p.`deparment`)", requestData.Deparment) + sqlStr = fmt.Sprintf("%v AND `maindeparment` = %v", sqlStr, requestData.Deparment) } - // if requestData.Deparment != "" { - // gormDb = gormDb.Where("FIND_IN_SET(?,p.`deparment`)", requestData.Deparment) - // } if requestData.AdminOrg != 0 { gormDb = gormDb.Where("`admin_org` = ?", requestData.AdminOrg) + sqlStr = fmt.Sprintf("%v AND `admin_org` = %v", sqlStr, requestData.AdminOrg) } if requestData.Position != 0 { gormDb = gormDb.Where("`position` = ?", requestData.Position) + sqlStr = fmt.Sprintf("%v AND `position` = %v", sqlStr, requestData.Position) } if requestData.EmpType != 0 { gormDb = gormDb.Where("`emp_type` = ?", requestData.EmpType) + sqlStr = fmt.Sprintf("%v AND `emp_type` = %v", sqlStr, requestData.EmpType) } else { - gormDb = gormDb.Where("`emp_type` IN ?", overall.EmployeeStatusIng) + // gormDb = gormDb.Where("`emp_type` IN ?", overall.EmployeeStatusIng) + gormDb = gormDb.Where("`emp_type` BETWEEN ? AND ?", 1, 10) + if len(overall.EmployeeStatusIng) > 0 { + var empId []string + for i := 0; i < len(overall.EmployeeStatusIng); i++ { + overEmpId := strconv.Itoa(overall.EmployeeStatusIng[i]) + if overallhandle.IsInTrue[string](overEmpId, empId) == false { + empId = append(empId, overEmpId) + } + } + sqlStr = fmt.Sprintf("%v AND `emp_type` IN (%v)", sqlStr, strings.Join(empId, ",")) + } + } if requestData.Role != "" { gormDb = gormDb.Where("FIND_IN_SET(?,`role`)", requestData.Role) + sqlStr = fmt.Sprintf("%v AND FIND_IN_SET(%v,`role`)", sqlStr, requestData.Role) } gormDb = gormDb.Where("`state` = 1") var total int64 @@ -65,7 +93,16 @@ func (s *StaffApi) StaffList(c *gin.Context) { } var positionAry []peopleOutList errGorm := gormDb.Order("`company` ASC,`maindeparment` ASC,`admin_org` ASC,`position` ASC").Limit(requestData.PageSize).Offset(overallhandle.LimitPage(requestData.Page, requestData.PageSize)).Find(&personnelModels).Error - // fmt.Printf("%v\n", positionAry) + + //原生查询 + // selectSqlStr := fmt.Sprintf("%v %v", sqlStrList, sqlStr) + // selectSqlStrCount := fmt.Sprintf("%v %v", sqlStrCount, sqlStr) + // errGorm := overall.CONSTANT_DB_HR.Raw(selectSqlStr).Scan(&personnelModels).Error + // totalErr := overall.CONSTANT_DB_HR.Raw(selectSqlStrCount).Scan(&total).Error + // if totalErr != nil { + // total = 0 + // } + // fmt.Printf("personnelModels-------------------->%v---------------->%v---------------->%v\n", total, totalErr, personnelModels) for _, v := range personnelModels { var manInCont peopleOutList manInCont.Id = v.Id @@ -150,7 +187,7 @@ func (s *StaffApi) StaffList(c *gin.Context) { // } // } // } - + positionAry = append(positionAry, manInCont) } if errGorm != nil { overallhandle.Result(105, errGorm, c) @@ -1386,3 +1423,51 @@ func workInsideHistoryLog(manKeyNum int64, num string, workHistoryList []insideH } } } + +// 修改密码 +func (s *StaffApi) EditPassWord(c *gin.Context) { + var requestData editPws + err := c.ShouldBindJSON(&requestData) + if err != nil { + overallhandle.Result(1, err, c, "数据格式不正确!") + return + } + if requestData.Id == "" { + overallhandle.Result(1, err, c, "未知用户ID") + return + } + if requestData.Pwd == "" { + overallhandle.Result(1, err, c, "请输入密码!") + return + } + if requestData.Pwdes == "" { + overallhandle.Result(1, err, c, "请确认密码") + return + } + if requestData.Pwd != requestData.Pwdes { + overallhandle.Result(1, err, c, "您两次输入的密码不一致!") + return + } + //员工档案主 + var staffInfo models.PersonArchives + //判断工号是存在 + whereAry := overallhandle.MapOut() + whereAry["`key`"] = requestData.Id + if judgeNoErr := staffInfo.GetCont(whereAry, "`key`"); judgeNoErr == nil { + overallhandle.Result(1, requestData, c, "该工号已经被使用!请不要重复使用!") + return + } + //密码加密 + var passwordMd5 overallhandle.Md5Encryption + passwordMd5.Md5EncryptionInit(requestData.Pwdes) + passwordMd5Str := passwordMd5.Md5EncryptionAlgorithm() + saveDate := overallhandle.MapOut() + saveDate["`password`"] = passwordMd5Str + saveDate["`eite_time`"] = time.Now().Unix() + err = staffInfo.EiteCont(whereAry, saveDate) + if err != nil { + overallhandle.Result(1, err, c, "修改失败!") + return + } + overallhandle.Result(0, err, c, "修改成功!") +} diff --git a/api/version1/personnelapi/type.go b/api/version1/personnelapi/type.go index 3b6bcff..305d0d1 100644 --- a/api/version1/personnelapi/type.go +++ b/api/version1/personnelapi/type.go @@ -28,11 +28,11 @@ type peopleList struct { Name string `json:"name"` //name HireClass int `json:"hireclass"` //雇佣类型 Company int64 `json:"company"` //公司 - // Deparment string `json:"deparment"` //部门 - AdminOrg int64 `json:"adminorg"` //所属行政组织 - Position int64 `json:"position"` //职位 - EmpType int `json:"emptype"` //用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职) - Role string `json:"role"` + Deparment string `json:"deparment"` //部门 + AdminOrg int64 `json:"adminorg"` //所属行政组织 + Position int64 `json:"position"` //职位 + EmpType int `json:"emptype"` //用工关系(1:实习生;2:待分配;3:试用员工;4:正式员工;5:停薪留职;6:退休;7:辞退;8:离职) + Role string `json:"role"` } // 人员列表输出 @@ -451,3 +451,10 @@ type eidtInsideHistoryWork struct { Id string `json:"id"` insideHistoryerMy } + +// 修改密码 +type editPws struct { + Id string `json:"id"` + Pwd string `json:"pwd"` + Pwdes string `json:"pwdes"` +} diff --git a/apirouter/personnel/people.go b/apirouter/personnel/people.go index 690df43..393fbcd 100644 --- a/apirouter/personnel/people.go +++ b/apirouter/personnel/people.go @@ -6,7 +6,7 @@ import ( "github.com/gin-gonic/gin" ) -//员工档案 +// 员工档案 func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) { apiRouter := route.Group("staff") var apiHandle = version1.AppApiInlet.StaffApi @@ -19,6 +19,7 @@ func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新) apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案 apiRouter.POST("kingdeehr", apiHandle.NewKingdee) //对接金蝶HR系统 + apiRouter.POST("editpassword", apiHandle.EditPassWord) //修改密码 //双职工 apiRouter.POST("doubleworkerlist", apiHandle.DoubleWorkerList) //双职工列表 apiRouter.POST("adddoubleworker", apiHandle.AddDoubleWorkerApi) //添加双职工 @@ -54,7 +55,7 @@ func (p *PersonnelRoute) InitRouterGroup(route *gin.RouterGroup) { } } -//员工档案 +// 员工档案 func (p *PersonnelRouteKingdee) InitRouterGroup(route *gin.RouterGroup) { apiRouter := route.Group("staffkingdee") var apiHandle = version1.AppApiInlet.StaffApi @@ -67,6 +68,7 @@ func (p *PersonnelRouteKingdee) InitRouterGroup(route *gin.RouterGroup) { apiRouter.POST("archiveslist", apiHandle.ArchivesList) //人员列表(新) apiRouter.POST("archivescont", apiHandle.ArchivesCon) //个人档案 apiRouter.POST("kingdeehr", apiHandle.NewKingdee) //对接金蝶HR系统 + apiRouter.POST("editpassword", apiHandle.EditPassWord) //修改密码 //双职工 apiRouter.POST("adddoubleworker", apiHandle.AddDoubleWorkerApi) //添加双职工 apiRouter.POST("eidtdoubleworker", apiHandle.EidtDoubleWorkerApi) //编辑双职工