diff --git a/gin_server_admin/api/admin/dutyassess/assess.go b/gin_server_admin/api/admin/dutyassess/assess.go new file mode 100644 index 0000000..0d3f040 --- /dev/null +++ b/gin_server_admin/api/admin/dutyassess/assess.go @@ -0,0 +1,394 @@ +package dutyassess + +import ( + "strconv" + + "github.com/flipped-aurora/gin-vue-admin/server/api/v1/archiveapi" + "github.com/flipped-aurora/gin-vue-admin/server/api/v1/assessment" + "github.com/flipped-aurora/gin-vue-admin/server/api/v1/examtestpage" + "github.com/flipped-aurora/gin-vue-admin/server/commonus" + "github.com/flipped-aurora/gin-vue-admin/server/global" + "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel" + "github.com/flipped-aurora/gin-vue-admin/server/model/common/response" + "github.com/gin-gonic/gin" +) + +//入口 +func (d *DutyAssessApi) Index(c *gin.Context) { + outPut := commonus.MapOut() + response.Result(0, outPut, "管理端获取成功", c) +} + +//获取部门被考核时间表 +func (d *DutyAssessApi) GetDepartEvaluate(c *gin.Context) { + isTrue, userCont := commonus.AdminClientIdentity() + if isTrue != true { + response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) + return + } + var requestData getDepartAssObtain + err := c.ShouldBindJSON(&requestData) + if err != nil { + // response.Result(101, err, "参数错误!请重新提交!", c) + // return + } + if requestData.PageSize == 0 { + requestData.PageSize = 20 + } + if requestData.Page <= 0 { + requestData.Page = 1 + } + var timeUnix int64 + if requestData.Time != "" { + timeStr := requestData.Time + "-01 12:00:00" + assessmentTime, assessmentTimeErr := commonus.DateToTimeStampEs(timeStr) + if assessmentTimeErr == true { + timeUnix = assessmentTime + } + } else { + timeUnix = 0 + } + + offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize) + //获取管理信息 + attriButeId, attriButeErr := strconv.ParseInt(userCont.AttriBute, 10, 64) //转换管理员属性部门 + + var departScorsList []assessmentmodel.Departscores + + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_file_time", "s_depart_id").Where("`s_state` = 1") + if requestData.DepartID != "" { + if timeUnix != 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ? AND `s_depart_id` = ?", timeUnix, requestData.DepartID) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_depart_id` = ?", requestData.DepartID) + } + } else { + if attriButeErr == nil { + if attriButeId != 0 { + if timeUnix != 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ? AND `s_depart_id` = ?", timeUnix, attriButeId) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_depart_id` = ?", attriButeId) + } + } else { + groupId, groupIdErr := strconv.ParseInt(userCont.Group, 10, 64) + if groupIdErr == nil { + if groupId != 1 { + deparIsTrue, departMap := getGroupDepartIdMap(groupId) + if deparIsTrue == true { + if len(departMap.Id) > 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ? AND `s_depart_id` IN ?", timeUnix, departMap.Id) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_depart_id` = ?", attriButeId) + } + } else { + if timeUnix != 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id") + } + } + } else { + if timeUnix != 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id") + } + } + + } else { + if timeUnix != 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id") + } + } + } + } else { + if timeUnix != 0 { + gormDb = gormDb.Group("s_file_time,s_depart_id").Having("`s_file_time` = ?", timeUnix) + } else { + gormDb = gormDb.Group("s_file_time,s_depart_id") + } + } + } + + /* + 获取总共有多少记录 + */ + var total int64 + totalErr := gormDb.Count(&total).Error + if totalErr != nil { + total = 0 + } + //获取记录数据 + evaErr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&departScorsList).Error + + if evaErr != nil { + response.Result(104, evaErr, "数据获取失败!", c) + return + } + var departMonthAry []departMonthMap + for _, val := range departScorsList { + var departMonthCont departMonthMap + departMonthCont.DepartId = val.DepartId + + // departMonthCont.DepartId = val.DepartId + bfIsTrue, bfInfo := assessment.GetBranchFactory(val.DepartId) + if bfIsTrue == true { + departMonthCont.DepartTitle = bfInfo.Name + } + departMonthCont.TimeStr = strconv.FormatInt(val.FileTime, 10) + departMonthCont.DateStr = commonus.TimeStampToDate(val.FileTime, 10) + departMonthAry = append(departMonthAry, departMonthCont) + } + countSum := len(departMonthAry) + printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, departMonthAry) + response.Result(0, printData, "查询成功!", c) +} + +//获取部门考核列表 +func (d *DutyAssessApi) GetDepartmentAssessList(c *gin.Context) { + var requestData getDepartAssObtains + err := c.ShouldBindJSON(&requestData) + if err != nil { + // response.Result(101, err, "参数错误!请重新提交!", c) + // return + } + // if requestData.PageSize == 0 { + // requestData.PageSize = 20 + // } + // if requestData.Page <= 0 { + // requestData.Page = 1 + // } + if requestData.Time == "" { + response.Result(103, err, "未知时间!", c) + return + } + if requestData.DepartID == "" { + response.Result(103, err, "未知部门!", c) + return + } + timeStr := requestData.Time + "-01 12:00:00" + assessmentTime, assessmentTimeErr := commonus.DateToTimeStampEs(timeStr) + if assessmentTimeErr != true { + response.Result(104, timeStr, "你提交的考核日期错误!", c) + return + } + + isTrue, _ := commonus.AdminClientIdentity() + // isTrue, userCont := commonus.AdminClientIdentity() + if isTrue != true { + response.Result(101, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) + return + } + + // var departScorsList []assessmentmodel.Departscores + + // gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_class").Where("`s_file_time` = ? AND `s_state` = 1", assessmentTime) + + // attriButeId, attriButeErr := strconv.ParseInt(userCont.AttriBute, 10, 64) //转换管理员属性部门 + // if attriButeErr == nil { + // if attriButeId != 0 { + // gormDb = gormDb.Where("`s_depart_id` = ?", attriButeId) + // } else { + // groupId, groupIdErr := strconv.ParseInt(userCont.Group, 10, 64) + // if groupIdErr == nil { + // if groupId != 1 { + // deparIsTrue, departMap := getGroupDepartIdMap(groupId) + // if deparIsTrue == true { + // if len(departMap.Id) > 0 { + // gormDb = gormDb.Where("`s_depart_id` IN ?", departMap.Id) + // } + // } + // } + + // } + + // } + // } + // scorErr := gormDb.Group("s_class").Find(&departScorsList).Error + + // if scorErr != nil { + // response.Result(104, scorErr, "未能获取到数据!", c) + // return + // } + + // var departMonthList []departMonth + // for _, val := range departScorsList { + // var departMonthInfo departMonth + // departMonthInfo.Id = val.ClassId + // classErr, classInfo := assessment.GetDutyClassCont(val.ClassId) + // if classErr == true { + // departMonthInfo.Title = classInfo.Title + // } + // assErr, assList := GetAssList(val.ClassId, val.DepartId, assessmentTime) + // if assErr == true { + // departMonthInfo.Clide = assList + // } + // fmt.Printf("-------->%v----->%v\n", assErr, assList) + // departMonthList = append(departMonthList, departMonthInfo) + // } + // outPrint := commonus.MapOut() + // outPrint["list"] = departMonthList + // response.Result(0, outPrint, "获取成功!", c) + var departScorsList []assessmentmodel.Departscores + scorErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_class").Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_state` = 1", requestData.DepartID, assessmentTime).Group("s_class").Find(&departScorsList).Error + if scorErr != nil { + response.Result(104, scorErr, "未能获取到数据!", c) + return + } + departIdInt, _ := strconv.ParseInt(requestData.DepartID, 10, 64) //部门ID转换成int64 + var departMonthList []departMonth + for _, val := range departScorsList { + var departMonthInfo departMonth + departMonthInfo.Id = val.ClassId + classErr, classInfo := assessment.GetDutyClassCont(val.ClassId) + if classErr == true { + departMonthInfo.Title = classInfo.Title + } + assErr, assList := GetAssList(val.ClassId, departIdInt, assessmentTime) + if assErr == true { + departMonthInfo.Clide = assList + } + departMonthList = append(departMonthList, departMonthInfo) + } + outPrint := commonus.MapOut() + outPrint["list"] = departMonthList + response.Result(0, outPrint, "获取成功!", c) + +} + +//获取集团下属分厂 +func getGroupDepartIdMap(groupId int64) (isTrue bool, departId getGroupDepart) { + isTrue = false + err, departCont := examtestpage.GetBranchFactoryMap(groupId) + if err != true { + return + } + var idAry []int64 + for _, val := range departCont { + idAry = append(idAry, val.Id) + } + departId.Id = idAry + return +} + +//获取考核项目列表 +func GetAssList(classId, depart, timeVal int64) (isTrue bool, departMonthAss []departMonthSun) { + isTrue = false + var departScorsList []assessmentmodel.Departscores + scorErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_assess").Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_class` = ? AND `s_state` = 1", depart, timeVal, classId).Group("s_assess").Find(&departScorsList).Error + if scorErr != nil { + return + } + for _, val := range departScorsList { + var departMonthSunsInfo departMonthSun + departMonthSunsInfo.Id = val.AssessId + + classErr, classInfo := assessment.GetAssessClass(val.AssessId) + if classErr == true { + departMonthSunsInfo.Title = classInfo.Title + } + isErr, userDuty := GetDetailedDuty(classId, val.AssessId, depart, timeVal) + if isErr == true { + departMonthSunsInfo.Clide = userDuty + } + departMonthAss = append(departMonthAss, departMonthSunsInfo) + } + isTrue = true + return +} + +//获取具体考核项目 +func GetDetailedDuty(classId, assId, depart, timeVal int64) (isTrue bool, departMonthUser []departMonthSun) { + isTrue = false + var departScorsList []commentUser + scorErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_comment_user").Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_class` = ? AND `s_assess` = ? AND `s_state` = 1", depart, timeVal, classId, assId).Group("s_comment_user").Find(&departScorsList).Error + // fmt.Printf("----------->%v\n", departScorsList) + if scorErr != nil { + return + } + // var departMonthUser []departMonthSun + for _, val := range departScorsList { + var departMonthUserInfo departMonthSun + departMonthUserInfo.Id = val.UserKey + usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name", "worker_man.wm_bf_id", "worker_man.wm_ws_id", "worker_man.wm_pt_id", "worker_man.wm_group"}, map[string]interface{}{"wm_key": val.UserKey}) + if usErr == true { + departMonthUserInfo.Title = usCont.Name + + isTrueBranFact, branFactCont := assessment.GetBranchFactory(usCont.DepartmentId) + if isTrueBranFact == true { + departMonthUserInfo.DepartTitle = branFactCont.Name + } + + } + + dutyErr, dutyMap := GetDutyContAry(classId, assId, depart, val.UserKey, timeVal) + if dutyErr == true { + departMonthUserInfo.List = dutyMap + } + + departMonthUser = append(departMonthUser, departMonthUserInfo) + } + isTrue = true + return +} + +//获取考核具体职责项目 +func GetDutyContAry(classId, assId, depart, userKey, timeVal int64) (isTrue bool, dutyList []departDutyList) { + // fmt.Printf("--->%v--->%v\n", classId, assId) + isTrue = false + var dutyListMAp []departDutyList + scorErr := global.GVA_DB_Performanceappraisal.Where("`s_depart_id` = ? AND `s_file_time` = ? AND `s_class` = ? AND `s_assess` = ? AND `s_comment_user` = ? AND `s_state` = 1", depart, timeVal, classId, assId, userKey).Find(&dutyListMAp).Error + if scorErr != nil { + return + } + // fmt.Printf("1--->%v--->%v\n", classId, assId) + for _, val := range dutyListMAp { + // fmt.Printf("2--->%v--->%v\n", classId, assId) + var dutyCont departDutyList + + dutyCont.Id = val.Id + dutyCont.ClassId = val.ClassId + dutyCont.AssessId = val.AssessId + dutyCont.DutyId = val.DutyId + dutyCont.DeductPoints = val.DeductPoints + dutyCont.ExtraPoints = val.ExtraPoints + dutyCont.Score = val.Score + dutyCont.FileTime = val.FileTime + dutyCont.DepartId = val.DepartId + dutyCont.CommentUser = val.CommentUser + dutyCont.AddTime = val.AddTime + dutyCont.EiteTime = val.EiteTime + dutyCont.State = val.State + dtyContErr, dtyCont := GetDutyInfoCont(val.DutyId) + + if dtyContErr == true { + dutyCont.DutyTitle = dtyCont.DutyTitle + } + dutyList = append(dutyList, dutyCont) + } + isTrue = true + return +} + +//获取职责类别内容 +func GetDutyInfoCont(id int64) (isTrue bool, outAssDutyInfo outAessDuty) { + isTrue = false + var ContInfo dutyAssClass + err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Select("dc_title", "dc_parent", "ai_title", "ai_parent").Joins("left join assessmentitems on assessmentitems.ai_id = dutycontent.dc_parent").Where("dc_id = ?", id).First(&ContInfo).Error + if err != nil { + return + } + outAssDutyInfo.AssessId = ContInfo.PartId + outAssDutyInfo.AssessTitle = ContInfo.AssTitle + outAssDutyInfo.DutyTitle = ContInfo.Title + outAssDutyInfo.ClassId = ContInfo.AssPartId + classErr, classInfo := assessment.GetDutyClassCont(ContInfo.AssPartId) + if classErr == true { + outAssDutyInfo.ClassTitle = classInfo.Title + } + isTrue = true + return +} diff --git a/gin_server_admin/api/admin/dutyassess/assesstype.go b/gin_server_admin/api/admin/dutyassess/assesstype.go new file mode 100644 index 0000000..5a67f95 --- /dev/null +++ b/gin_server_admin/api/admin/dutyassess/assesstype.go @@ -0,0 +1,75 @@ +package dutyassess + +import ( + "github.com/flipped-aurora/gin-vue-admin/server/commonus" + "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel" +) + +type DutyAssessApi struct{} + +//获取部门考核列表 +type getDepartAssObtain struct { + commonus.PageSetLimt + DepartID string `json:"depart"` //部门Id + Time string `json:"time"` //查询日期 +} +type getDepartAssObtains struct { + // commonus.PageSetLimt + DepartID string `json:"depart"` //部门Id + Time string `json:"time"` //查询日期 +} + +//获取集团分厂 +type getGroupDepart struct { + Id []int64 +} + +//部门月份具体考核详情 +type departMonth struct { + Id int64 `json:"id"` + Title string `json:"title"` + Clide []departMonthSun `json:"Clide"` +} + +type departMonthSun struct { + Id int64 `json:"id"` + Title string `json:"title"` + DepartTitle string `json:"departTitle"` + Clide []departMonthSun `json:"Clide"` + List []departDutyList `json:"list"` +} +type departDutyList struct { + assessmentmodel.Departscores + DutyTitle string `json:"dutyTitle"` +} + +//归档审批人 +type commentUser struct { + UserKey int64 `json:"userkey" gorm:"column:s_comment_user;type:bigint(20) unsigned;default:0;not null;comment:评论人"` +} + +//输出考核关系架构 +type outAessDuty struct { + ClassId int64 `json:"classId"` + ClassTitle string `json:"classTitle"` + AssessId int64 `json:"assessId"` + AssessTitle string `json:"assessTitle"` + DutyTitle string `json:"dutyTitle"` +} + +//具体职责项与考核项目,类别 +type dutyAssClass struct { + Title string `json:"title" gorm:"column:dc_title;type:text;comment:具体职责"` + PartId int64 `json:"partId" gorm:"column:dc_parent;type:bigint(20) unsigned;default:0;not null;comment:父级"` + AssTitle string `json:"Asstitle" gorm:"column:ai_title;type:varchar(255);comment:考核类别"` + AssPartId int64 `json:"AsspartId" gorm:"column:ai_parent;type:bigint(20) unsigned;default:0;not null;comment:父级"` + ClassTitle string `json:"Classtitle" gorm:"column:title;type:varchar(255);comment:职责类别名称"` +} + +//部门月份考核列表 +type departMonthMap struct { + DepartId int64 `json:"departId"` //部门ID + DepartTitle string `json:"departTitle"` //部门名称 + TimeStr string `json:"timestr"` //时间字符串 + DateStr string `json:"datestr"` //日期字符串 +} diff --git a/gin_server_admin/api/admin/dutyassess/enter.go b/gin_server_admin/api/admin/dutyassess/enter.go new file mode 100644 index 0000000..5137962 --- /dev/null +++ b/gin_server_admin/api/admin/dutyassess/enter.go @@ -0,0 +1,5 @@ +package dutyassess + +type ApiGroup struct { + DutyAssEss DutyAssessApi +} diff --git a/gin_server_admin/api/admin/enter.go b/gin_server_admin/api/admin/enter.go new file mode 100644 index 0000000..783fbf6 --- /dev/null +++ b/gin_server_admin/api/admin/enter.go @@ -0,0 +1,9 @@ +package admin + +import "github.com/flipped-aurora/gin-vue-admin/server/api/admin/dutyassess" + +type ApiGroup struct { + DutyAssess dutyassess.ApiGroup +} + +var ApiGroupApp = new(ApiGroup) diff --git a/gin_server_admin/api/v1/assessment/assesshandle.go b/gin_server_admin/api/v1/assessment/assesshandle.go index c14fc68..1c83f2a 100644 --- a/gin_server_admin/api/v1/assessment/assesshandle.go +++ b/gin_server_admin/api/v1/assessment/assesshandle.go @@ -29,8 +29,12 @@ func (d *DutyHandle) AssEssList(c *gin.Context) { offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize) // var assessList assessmentmodel.AssessMentitems gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.AssessMentitems{}) - if requestData.ParentId != 0 { - gormDb = gormDb.Where("`ai_parent` = ?", requestData.ParentId) + if requestData.ParentId != "" { + parenId, parenIdErr := strconv.ParseInt(requestData.ParentId, 10, 64) + if parenIdErr == nil { + gormDb = gormDb.Where("`ai_parent` = ?", parenId) + } + } if requestData.Title != "" { gormDb = gormDb.Where("ai_title LIKE ?", "%"+requestData.Title+"%") @@ -46,6 +50,8 @@ func (d *DutyHandle) AssEssList(c *gin.Context) { if totalErr != nil { total = 0 } + + // response.Result(0, requestData, "查询成功!", c) var assessList []assessmentmodel.AssessMentitems assessListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&assessList).Error if assessListerr != nil { diff --git a/gin_server_admin/api/v1/assessment/dutylist.go b/gin_server_admin/api/v1/assessment/dutylist.go index 041fa23..3afb27d 100644 --- a/gin_server_admin/api/v1/assessment/dutylist.go +++ b/gin_server_admin/api/v1/assessment/dutylist.go @@ -4,6 +4,7 @@ import ( "strconv" "time" + "github.com/flipped-aurora/gin-vue-admin/server/api/v1/archiveapi" "github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel" @@ -27,8 +28,11 @@ func (d *DutyHandle) DutyList(c *gin.Context) { } offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize) gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}) - if requestData.ParentId != 0 { - gormDb = gormDb.Where("`dc_parent` = ?", requestData.ParentId) + if requestData.ParentId != "" { + parenId, parenIdErr := strconv.ParseInt(requestData.ParentId, 10, 64) + if parenIdErr == nil { + gormDb = gormDb.Where("`dc_parent` = ?", parenId) + } } if requestData.Title != "" { gormDb = gormDb.Where("dc_title LIKE ?", "%"+requestData.Title+"%") @@ -95,6 +99,26 @@ func (d *DutyHandle) DutyList(c *gin.Context) { if isTrue == true { outDutyInfo.ParentTitle = parentCont.Title } + outDutyInfo.DumpTitle = "" + if val.UserDump != 0 { + usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name", "worker_man.wm_bf_id", "worker_man.wm_ws_id", "worker_man.wm_pt_id", "worker_man.wm_group"}, map[string]interface{}{"wm_key": val.UserDump}) + if usErr == true { + outDutyInfo.UserName = usCont.Name + + isTrueBranFact, branFactCont := GetBranchFactory(usCont.DepartmentId) + if isTrueBranFact == true { + outDutyInfo.DumpTitle = branFactCont.Name + } + + } + } + + if val.Dump != 0 { + isTruew, bfCont := GetBranchFactory(val.Dump) + if isTruew == true { + outDutyInfo.DumpTitle = bfCont.Name + } + } outDutyMap = append(outDutyMap, outDutyInfo) } @@ -177,16 +201,39 @@ func (d *DutyHandle) GetDutyInfo(c *gin.Context) { } var dutyOutInfo dutyOutput inFoErr := global.GVA_DB_Performanceappraisal.Where("`dc_id` = ?", requestData.Id).First(&dutyOutInfo).Error + if inFoErr != nil { + response.Result(103, inFoErr, "数据查询失败!", c) + return + } + dutyOutInfo.OutId = strconv.FormatInt(dutyOutInfo.Id, 10) dutyOutInfo.ParentIdStr = strconv.FormatInt(dutyOutInfo.PartId, 10) isTrue, parentCont := GetAssEssCont(dutyOutInfo.PartId) if isTrue == true { dutyOutInfo.ParentTitle = parentCont.Title } - if inFoErr != nil { - response.Result(103, inFoErr, "数据查询失败!", c) - return + + if dutyOutInfo.Dump != 0 { + isTruew, bfCont := GetBranchFactory(dutyOutInfo.Dump) + if isTruew == true { + dutyOutInfo.DumpTitle = bfCont.Name + } } + + if dutyOutInfo.UserDump != 0 { + dutyOutInfo.UserDumpId = strconv.FormatInt(dutyOutInfo.UserDump, 10) + usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name", "worker_man.wm_bf_id", "worker_man.wm_ws_id", "worker_man.wm_pt_id", "worker_man.wm_group"}, map[string]interface{}{"wm_key": dutyOutInfo.UserDump}) + if usErr == true { + dutyOutInfo.UserName = usCont.Name + + isTrueBranFact, branFactCont := GetBranchFactory(usCont.DepartmentId) + if isTrueBranFact == true { + dutyOutInfo.DumpTitle = branFactCont.Name + } + + } + } + response.Result(0, dutyOutInfo, "数据查询成功!", c) } @@ -317,3 +364,23 @@ func GetDutyInfoCont(id int64) (isTrue bool, ContInfo assessmentmodel.DutyConten } return } + +//获取职责类别内容 +func GetDutyInfoContAll(id int64) (isTrue bool, outAssDutyInfo outAessDuty) { + isTrue = false + var ContInfo dutyAssClass + err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Select("dc_title", "dc_parent", "ai_title", "ai_parent").Joins("left join assessmentitems on assessmentitems.ai_id = dutycontent.dc_parent").Where("dc_id = ?", id).First(&ContInfo).Error + if err != nil { + return + } + outAssDutyInfo.AssessId = ContInfo.PartId + outAssDutyInfo.AssessTitle = ContInfo.AssTitle + outAssDutyInfo.DutyTitle = ContInfo.Title + outAssDutyInfo.ClassId = ContInfo.AssPartId + classErr, classInfo := GetDutyClassCont(ContInfo.AssPartId) + if classErr == true { + outAssDutyInfo.ClassTitle = classInfo.Title + } + isTrue = true + return +} diff --git a/gin_server_admin/api/v1/assessment/dutytype.go b/gin_server_admin/api/v1/assessment/dutytype.go index 892dbf0..bc9bdf7 100644 --- a/gin_server_admin/api/v1/assessment/dutytype.go +++ b/gin_server_admin/api/v1/assessment/dutytype.go @@ -48,7 +48,7 @@ type dutyClassState struct { //考核项目查询参数 type assessRequest struct { commonus.PageSetLimt - ParentId int64 `json:"parentId"` //父级 + ParentId string `json:"parentId"` //父级 Title string `json:"title"` State int `json:"state"` } @@ -79,7 +79,7 @@ type eiteAssEssCont struct { //具体职责查询 type dutyRequest struct { commonus.PageSetLimt - ParentId int64 `json:"parentId"` //父级 + ParentId string `json:"parentId"` //父级 Title string `json:"title"` State int `json:"state"` AssEssType int `json:"assesstype"` @@ -91,8 +91,11 @@ type dutyOutput struct { assessmentmodel.DutyContent OutIdStruct - ParentIdStr string `json:"parentIdStr"` //部门ID - ParentTitle string `json:"parentTitle"` + ParentIdStr string `json:"parentIdStr"` //父级ID字符型 + ParentTitle string `json:"parentTitle"` //父级名称 + UserName string `json:"username"` //执行人姓名 + DumpTitle string `json:"dumpTitle"` //执行人部门 + UserDumpId string `json:"userDumpId"` //执行人ID } //添加具体职责 @@ -147,6 +150,12 @@ type addSpecificDutyCont struct { Group int64 `json:"group"` } +type addDepartDutyCont struct { + ParentId string `json:"parentId"` //部门ID + DutyId string `json:"dutyId"` //具体职责 + Score int64 `json:"score"` //分数 +} + //编辑部门具体职责 type eiteSpecificDutyCont struct { commonus.SetId @@ -157,3 +166,28 @@ type eiteSpecificDutyCont struct { Score int64 `json:"score"` //分数 Group int64 `json:"group"` } + +type eiteDepartDutyCont struct { + commonus.SetId + ParentId string `json:"parentId"` //部门ID + DutyId string `json:"dutyId"` //具体职责 + Score int64 `json:"score"` //分数 +} + +//输出考核关系架构 +type outAessDuty struct { + ClassId int64 `json:"classId"` + ClassTitle string `json:"classTitle"` + AssessId int64 `json:"assessId"` + AssessTitle string `json:"assessTitle"` + DutyTitle string `json:"dutyTitle"` +} + +//具体职责项与考核项目,类别 +type dutyAssClass struct { + Title string `json:"title" gorm:"column:dc_title;type:text;comment:具体职责"` + PartId int64 `json:"partId" gorm:"column:dc_parent;type:bigint(20) unsigned;default:0;not null;comment:父级"` + AssTitle string `json:"Asstitle" gorm:"column:ai_title;type:varchar(255);comment:考核类别"` + AssPartId int64 `json:"AsspartId" gorm:"column:ai_parent;type:bigint(20) unsigned;default:0;not null;comment:父级"` + ClassTitle string `json:"Classtitle" gorm:"column:title;type:varchar(255);comment:职责类别名称"` +} diff --git a/gin_server_admin/api/v1/assessment/specificduty.go b/gin_server_admin/api/v1/assessment/specificduty.go index d916690..dec6295 100644 --- a/gin_server_admin/api/v1/assessment/specificduty.go +++ b/gin_server_admin/api/v1/assessment/specificduty.go @@ -29,7 +29,7 @@ func (d *DutyHandle) SpecificDutyList(c *gin.Context) { } offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize) - gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartDuty{}) + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartDuty{}).Where("`de_satte` IN ?", []int{1, 2}) if requestData.DepartmentId != "" { departId, departErr := strconv.ParseInt(requestData.DepartmentId, 10, 64) if departErr == nil { @@ -172,6 +172,150 @@ func (d *DutyHandle) AddSpecificDutyInfo(c *gin.Context) { } } +//添加部门具体职责 +func (d *DutyHandle) AddDepartDutyInfo(c *gin.Context) { + var requestData addDepartDutyCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "参数错误!请重新提交!", c) + return + } + var parentId, dutyId int64 + if requestData.ParentId == "" { + response.Result(102, err, "请指定归属于被考核部门", c) + return + } else { + parentIds, parentIdErr := strconv.ParseInt(requestData.ParentId, 10, 64) + if parentIdErr != nil { + response.Result(103, err, "请指定归属于被考核部门", c) + return + } + parentId = parentIds + } + + if requestData.DutyId == "" { + response.Result(105, err, "请指定考核具体职责", c) + return + } else { + dutyIds, dutyIdErr := strconv.ParseInt(requestData.DutyId, 10, 64) + if dutyIdErr != nil { + response.Result(103, err, "请指定考核具体职责", c) + return + } + dutyId = dutyIds + } + + assIsTrue, assInfo := GetDutyInfoContAll(dutyId) + if assIsTrue != true { + response.Result(104, dutyId, "请指定考核项目已禁止使用!", c) + return + } + + if requestData.Score < 1 { + response.Result(105, err, "请指定该具体职责参考分值", c) + return + } + var ScoreAll int64 + var specDutyInfo assessmentmodel.DepartDuty + + scoreErr := global.GVA_DB_Performanceappraisal.Model(&specDutyInfo).Where("`de_partid` = ?", parentId).Pluck("COALESCE(SUM(de_rescore), 0) as rescore", &ScoreAll).Error + if scoreErr != nil { + ScoreAll = 0 + } + if ScoreAll+requestData.Score > 100 { + response.Result(106, err, "该部门的总分值超过100。请重新写入该考核项目参考分值!", c) + return + } + //获取部门详细信息 + bfIsTrue, bfInfo := GetBranchFactory(parentId) + if bfIsTrue != true { + response.Result(107, err, "该部门不存在,请检查您的提交!", c) + return + } + + specDutyInfo.Id = commonus.GetFileNumberEs() + specDutyInfo.Title = "" + specDutyInfo.State = 1 + specDutyInfo.Time = time.Now().Unix() + specDutyInfo.PartId = parentId + specDutyInfo.ClassId = assInfo.ClassId + specDutyInfo.AssessId = assInfo.AssessId + specDutyInfo.DutyId = dutyId + specDutyInfo.Rescore = requestData.Score + specDutyInfo.Group = bfInfo.Group + dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&specDutyInfo).Error + if dutyInfoErr != nil { + response.Result(108, specDutyInfo, "数据写入失败!", c) + } else { + response.Result(0, specDutyInfo, "数据写入成功!", c) + } +} + +//编辑具体内容 +func (d *DutyHandle) EiteDepartDutyInfo(c *gin.Context) { + var requestData eiteDepartDutyCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "参数错误!请重新提交!", c) + return + } + if requestData.Id == 0 && requestData.OutId == "" { + response.Result(102, err, "参数错误!请重新提交!", c) + return + } + if requestData.OutId != "" { + idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64) + if inIntErr == nil { + requestData.Id = idInt + } + } + saveData := commonus.MapOut() + + var parentId, dutyId int64 + if requestData.ParentId != "" { + parentId, _ = strconv.ParseInt(requestData.ParentId, 10, 64) + saveData["de_partid"] = parentId + bfIsTrue, bfInfo := GetBranchFactory(parentId) + if bfIsTrue == true { + saveData["de_group"] = bfInfo.Group + } + + } + + if requestData.DutyId != "" { + dutyId, _ = strconv.ParseInt(requestData.DutyId, 10, 64) + saveData["de_duty"] = dutyId + assIsTrue, assInfo := GetAssEssCont(dutyId) + if assIsTrue == true { + saveData["de_class"] = assInfo.PartId + saveData["de_assess"] = assInfo.Id + } + } + if requestData.Score > 0 { + var ScoreAll int64 + var specDutyInfo assessmentmodel.DepartDuty + + scoreErr := global.GVA_DB_Performanceappraisal.Model(&specDutyInfo).Where("`de_partid` = ?", parentId).Pluck("COALESCE(SUM(de_rescore), 0) as rescore", &ScoreAll).Error + if scoreErr != nil { + ScoreAll = 0 + } + if ScoreAll+requestData.Score > 100 { + response.Result(107, err, "该部门的总分值超过100。请重新写入该考核项目参考分值!", c) + return + } + saveData["de_rescore"] = requestData.Score + } + + saveData["de_time"] = time.Now().Unix() + isTrue, isErr := eiteSpecificDutyInfoCont(requestData.Id, saveData) + if isTrue != true { + response.Result(104, isErr, "修改失败!", c) + return + } + response.Result(0, saveData, "修改成功!", c) + +} + //获取部门具体考核项目 func (d *DutyHandle) GetSpecDutyCont(c *gin.Context) { var requestData commonus.SetId diff --git a/gin_server_admin/api/v1/examtestpage/examtype.go b/gin_server_admin/api/v1/examtestpage/examtype.go index 32f81a1..b0a955a 100644 --- a/gin_server_admin/api/v1/examtestpage/examtype.go +++ b/gin_server_admin/api/v1/examtestpage/examtype.go @@ -4,3 +4,19 @@ package examtestpage type getGroupType struct { Parentid int64 `json:"parentid"` } + +//获取集团及分厂架构 +type getGroupDepart struct { + Id int64 `json:"id"` +} + +//组织架构员工对照表 +type groupRequest struct { + GroupId int64 `json:"groupId"` +} +type groupUser struct { + Id string `json:"id"` + Name string `json:"name"` + Number string `json:"number"` + Children []groupUser `json:"groupUser"` +} diff --git a/gin_server_admin/api/v1/examtestpage/grouphandle.go b/gin_server_admin/api/v1/examtestpage/grouphandle.go index c69496b..e731b97 100644 --- a/gin_server_admin/api/v1/examtestpage/grouphandle.go +++ b/gin_server_admin/api/v1/examtestpage/grouphandle.go @@ -857,3 +857,143 @@ func (g *GroupHandleApi) RefreshDataBaseUser(c *gin.Context) { } } + +//获取集团和分厂架构 +func (g *GroupHandleApi) GetGroupDepartMap(c *gin.Context) { + var requestData getGroupDepart + err := c.ShouldBindJSON(&requestData) + if err != nil { + } + gormDb := global.GVA_DB_WatchDate.Model(&wechat.GroupForm{}).Where("`g_parentid` = 1 AND `g_sate` = 1") + if requestData.Id != 0 { + gormDb = gormDb.Where("`g_id` = ?", requestData.Id) + } + var groupMap []GroupMap + groupErr := gormDb.Order("g_id ASC").Find(&groupMap).Error + if groupErr != nil { + response.Result(103, groupErr, "数据获取失败!", c) + return + } + + var departList []testpage.BranchFactoryHasMany + // err = global.GVA_DB_Master.Preload("WorkshopSectionStruct").Where("bf_group = ?", 3).Find(&departList) + // groupAry := map[int]interface{}{} + var groupMapStruct []TableData + for i, v := range groupMap { + // fmt.Printf("%v\n", v.Id) + err = global.GVA_DB_Master.Preload("WorkshopSectionStruct").Where("bf_group = ?", v.Id).Find(&departList).Error + if err == nil { + var groupTypeStruct TableData + groupTypeStruct.ID = v.Id + groupTypeStruct.Name = v.Name + groupTypeStruct.Address = true + groupTypeStruct.WxId = strconv.FormatInt(v.Id, 10) + groupTypeStruct.JdId = v.JinDieId + groupTypeStruct.Attributes = 1 + groupTypeStruct.Sort = i + 1 + groupTypeStruct.QueryId = 1 + groupTypeStruct.Date = commonus.TimeStampToDate(v.Time, 6) + + bfErr, bfInfo := GetBranchFactoryMap(v.Id) + if bfErr == true { + groupTypeStruct.Children = bfInfo + } + + groupTypeStruct.SingId = i + 1 + 3 + // groupAry[i] = openGroupMap(departList) + groupMapStruct = append(groupMapStruct, groupTypeStruct) + } + + } + + sendMap := commonus.MapOut() + sendMap["list"] = groupMapStruct + // fmt.Printf("%v\n", groupMap) + // response.Ok(c) + response.Result(0, sendMap, "获取成功", c) +} + +//获得分厂名称 +func GetBranchFactoryMap(id int64) (isTrue bool, ContInfo []testpage.BranchFactory) { + isTrue = false + err := global.GVA_DB_Master.Where("bf_group = ?", id).Find(&ContInfo).Error + if err == nil { + isTrue = true + } + return +} + +//获取集团架构人员信息对照表 +func (g *GroupHandleApi) GetGroupUser(c *gin.Context) { + var requestData groupRequest + err := c.ShouldBindJSON(&requestData) + if err != nil { + } + + gormDb := global.GVA_DB_WatchDate.Model(&wechat.GroupForm{}).Where("`g_parentid` = 1 AND `g_sate` = 1") + if requestData.GroupId != 0 { + gormDb = gormDb.Where("`g_id` = ?", requestData.GroupId) + } + var groupMap []wechat.GroupForm + groupErr := gormDb.Order("g_id ASC").Find(&groupMap).Error + if groupErr != nil { + response.Result(103, groupErr, "数据获取失败!", c) + return + } + var groupUserMap []groupUser + for _, val := range groupMap { + var groupUserInfo groupUser + groupUserInfo.Id = strconv.FormatInt(val.Id, 10) + groupUserInfo.Name = val.Name + isGroupTrue, DepartMap := GetDepartMap(val.Id) + if isGroupTrue == true { + groupUserInfo.Children = DepartMap + } + groupUserMap = append(groupUserMap, groupUserInfo) + } + sendMap := commonus.MapOut() + sendMap["list"] = groupUserMap + response.Result(0, sendMap, "获取成功", c) +} + +//获取分厂与对应员工 +func GetDepartMap(printId int64) (isTrue bool, departMap []groupUser) { + isTrue = false + var branchFactory []testpage.BranchFactory + err := global.GVA_DB_Master.Where("bf_group = ?", printId).Find(&branchFactory).Error + if err != nil { + isTrue = true + } + for _, val := range branchFactory { + var bfInf groupUser + bfInf.Id = strconv.FormatInt(val.Id, 10) + bfInf.Name = val.Name + isGroupTrue, DepartMap := GetBranchFactoryUser(val.Id) + if isGroupTrue == true { + bfInf.Children = DepartMap + } + departMap = append(departMap, bfInf) + } + isTrue = true + return +} + +//获取分厂人员列表 +func GetBranchFactoryUser(printId int64) (isTrue bool, departMap []groupUser) { + isTrue = false + var userInfo []testpage.PersonalDetails + userErr := global.GVA_DB_Master.Model(&testpage.WorkMan{}).Select("worker_man.*,worker_man_data.*").Joins("left join worker_man_data on worker_man_data.wmd_key = worker_man.wm_key").Where("`wm_bf_id` = ? AND `wm_set` = 1 AND `wm_hire_set` = 1", printId).Find(&userInfo).Error + if userErr != nil { + return + } + for _, val := range userInfo { + var bfInf groupUser + bfInf.Id = strconv.FormatInt(val.Key, 10) + bfInf.Name = val.Name + bfInf.Number = val.Number + departMap = append(departMap, bfInf) + } + + isTrue = true + return +} diff --git a/gin_server_admin/api/v1/examtestpage/healthreportstat.go b/gin_server_admin/api/v1/examtestpage/healthreportstat.go index 9fe580d..7de2461 100644 --- a/gin_server_admin/api/v1/examtestpage/healthreportstat.go +++ b/gin_server_admin/api/v1/examtestpage/healthreportstat.go @@ -277,7 +277,7 @@ func CalculationNotReport(time string, decisionTime int64, reportedPeople []map[ } //向相关人员发送警报 https://docu.hxgk.group/images/2021_11/205c2d8d35491880a1ac9f03d6e879d3.jpg -func sendMessAgeAlarm(calCulTime int64, alarmUser []map[string]interface{}) { +func sendMessAgeAlarm(calCulTime int64, alarmUser []map[string]interface{}) (sendBakc map[string]interface{}) { // fmt.Printf("%v\n", reflect.TypeOf(alarmUser)) var sendText string @@ -333,13 +333,22 @@ func sendMessAgeAlarm(calCulTime int64, alarmUser []map[string]interface{}) { sendImgMsg.DuplicateCheckInterval = 1800 callbakcMsg, isTrueCall, callBackCont := sendImgMsg.SendImgMessage() fmt.Printf("发送信息返回:%v-----------%v----------->%v\n", string(callbakcMsg), isTrueCall, callBackCont) + sendBakc["callbakcMsg"] = string(callbakcMsg) + sendBakc["isTrueCall"] = isTrueCall + sendBakc["callBackCont"] = callBackCont + return } else { fmt.Println("没有要通知的人") + sendBakc["errmsg"] = "没有要通知的人" + return } } else { fmt.Println("没有要通知的人") + sendBakc["errmsg"] = "没有要通知的人" + return } + return // fmt.Printf("%v---------------------->%v\n", sendText, sendText) } diff --git a/gin_server_admin/api/v1/examtestpage/healthreportstathand.go b/gin_server_admin/api/v1/examtestpage/healthreportstathand.go index ca29d39..7c20a95 100644 --- a/gin_server_admin/api/v1/examtestpage/healthreportstathand.go +++ b/gin_server_admin/api/v1/examtestpage/healthreportstathand.go @@ -239,8 +239,8 @@ func (h *HealthReportStat) SendRelevantPersonnelMsg(c *gin.Context) { readBaoJinf = append(readBaoJinf, callPolice) } //给相关人员发送信息 - sendMessAgeAlarm(calCulTime, readBaoJinf) - + sendMsg := sendMessAgeAlarm(calCulTime, readBaoJinf) + response.Result(0, sendMsg, "获取成功", c) } else { fmt.Println("没有异常人员!") } @@ -489,8 +489,8 @@ func (h *HealthReportStat) SendRelevantPersonnelTodayMsg(c *gin.Context) { readBaoJinf = append(readBaoJinf, callPolice) } //给相关人员发送信息 - sendMessAgeAlarm(calCulTime, readBaoJinf) - + sendMsg := sendMessAgeAlarm(calCulTime, readBaoJinf) + response.Result(0, sendMsg, "获取成功", c) } else { fmt.Println("没有异常人员!") } diff --git a/gin_server_admin/api/v1/staff/stafftype.go b/gin_server_admin/api/v1/staff/stafftype.go index 8ad955f..34ef688 100644 --- a/gin_server_admin/api/v1/staff/stafftype.go +++ b/gin_server_admin/api/v1/staff/stafftype.go @@ -25,3 +25,14 @@ type staffOutInfo struct { JobTitle string `json:"jobTitle"` TemaTitle string `json:"temaTitle"` } + +//组织架构员工对照表 +type groupRequest struct { + GroupId int64 `json:"groupId"` +} +type groupUser struct { + Id string `json:"id"` + Name string `json:"name"` + Number string `json:"number"` + Children []groupUser `json:"groupUser"` +} diff --git a/gin_server_admin/commonus/publichaneld.go b/gin_server_admin/commonus/publichaneld.go index 3a8efc6..01dab1c 100644 --- a/gin_server_admin/commonus/publichaneld.go +++ b/gin_server_admin/commonus/publichaneld.go @@ -10,6 +10,7 @@ import ( "github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/model/location" + "github.com/flipped-aurora/gin-vue-admin/server/model/systemuser" "github.com/flipped-aurora/gin-vue-admin/server/model/testpage" "github.com/flipped-aurora/gin-vue-admin/server/model/wechat" "github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel" @@ -609,3 +610,19 @@ func ClientIdentity() (isTrue bool, redisUserInfo testpage.RedisUserInfo) { } return } + +//自定义管理端身份解析 +func AdminClientIdentity() (isTrue bool, redisAdminInfo systemuser.RedisAdminInfo) { + keyStr := strconv.FormatInt(global.GVA_ADMIN_USERKEY, 10) + redisClient := redishandel.RunRedis() + tokenInfo, isTrue := redisClient.HashGetAll("system:SystemAdminInfo_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + keyStr) + if isTrue != true { + return + } + identityErr := mapstructure.Decode(tokenInfo, &redisAdminInfo) + if identityErr != nil { + isTrue = false + return + } + return +} diff --git a/gin_server_admin/config.yaml b/gin_server_admin/config.yaml index f17b16f..99c4840 100644 --- a/gin_server_admin/config.yaml +++ b/gin_server_admin/config.yaml @@ -44,6 +44,7 @@ casbin: system: env: 'public' # Change to "develop" to skip authentication for development mode addr: 8888 + #addr: 8889 db-type: 'mysql' oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置 use-multipoint: false diff --git a/gin_server_admin/initialize/router.go b/gin_server_admin/initialize/router.go index 1c835fe..afafb5f 100644 --- a/gin_server_admin/initialize/router.go +++ b/gin_server_admin/initialize/router.go @@ -57,6 +57,12 @@ func Routers() *gin.Engine { staffMan := router.RouterGroupApp.StaffRouter.StaffRouter //员工相关操作 + /* + 自定义管理后台 + @adminDutyAssess 职责考核 + */ + adminDutyAssess := router.RouterGroupApp.AdminRouter.AdminRouter + PublicGroup := Router.Group("") { PublicGroup.GET("/", func(c *gin.Context) { @@ -133,6 +139,8 @@ func Routers() *gin.Engine { { Questions.InitGroupRouter(MyCustomSystemGroup) //试题相关 systemRouter.InitSystemAdminRouter(MyCustomSystemGroup) //系统管理员 + + adminDutyAssess.InitStaffRouter(MyCustomSystemGroup) //职责考核 } InstallPlugin(PublicGroup, PrivateGroup) // 安装插件 diff --git a/gin_server_admin/model/systemuser/systemuser.go b/gin_server_admin/model/systemuser/systemuser.go index 8bf6c6c..267d533 100644 --- a/gin_server_admin/model/systemuser/systemuser.go +++ b/gin_server_admin/model/systemuser/systemuser.go @@ -64,3 +64,21 @@ type SystemAdminDetails struct { SystemUser SystemUserAttribute } + +//管理员Redis信息 +type RedisAdminInfo struct { + UserKey string `json:"userkey"` + UserNumber string `json:"usernumber"` + UserPwd string `json:"userpwd"` + UserToken string `json:"usertoken"` + JurisDiction string `json:"jurisdiction"` + MenuOper string `json:"menuOper"` + Wand string `json:"wand"` + Name string `json:"name"` + GroupName string `json:"groupname"` + Group string `json:"group"` + AttriBute string `json:"attribute"` + BranchFactoryName string `json:"branchfactoryname"` + Role string `json:"role"` + RoleName string `json:"roleName"` +} diff --git a/gin_server_admin/router/assessment/assessmentrouter.go b/gin_server_admin/router/assessment/assessmentrouter.go index a22cac6..a54a1e8 100644 --- a/gin_server_admin/router/assessment/assessmentrouter.go +++ b/gin_server_admin/router/assessment/assessmentrouter.go @@ -40,6 +40,9 @@ func (s *AssessmentRouter) InitAssessmentRouter(Router *gin.RouterGroup) { dutyCodeRouter.POST("eitespecdutyinfo", authorityApi.EiteSpecFicDutyInfo) // 修改具体部门考核项目详情 dutyCodeRouter.POST("eitespecdutystate", authorityApi.EiteSpecficDutyState) // 修改状态或删除具体部门考核项目 + dutyCodeRouter.POST("adddepartdutyinfo", authorityApi.AddDepartDutyInfo) // 添加具体部门考核项目(副本) + dutyCodeRouter.POST("eitedepartdutyinfo", authorityApi.EiteDepartDutyInfo) // 修改具体部门考核项目详情(副本) + } } diff --git a/gin_server_admin/router/enter.go b/gin_server_admin/router/enter.go index be5b822..6bb760b 100644 --- a/gin_server_admin/router/enter.go +++ b/gin_server_admin/router/enter.go @@ -10,6 +10,7 @@ import ( "github.com/flipped-aurora/gin-vue-admin/server/router/shiyan" "github.com/flipped-aurora/gin-vue-admin/server/router/staffrouter" "github.com/flipped-aurora/gin-vue-admin/server/router/system" + "github.com/flipped-aurora/gin-vue-admin/server/router/systemadmin" "github.com/flipped-aurora/gin-vue-admin/server/router/uploaddownload" "github.com/flipped-aurora/gin-vue-admin/server/router/wechatcallbackrouter" ) @@ -26,6 +27,7 @@ type RouterGroup struct { ExamQuest examrouter.RouterGroup DutyAssEssRout assessment.RouterGroup StaffRouter staffrouter.RouterGroup + AdminRouter systemadmin.RouterGroup } var RouterGroupApp = new(RouterGroup) diff --git a/gin_server_admin/router/examtestpage/grouphandle.go b/gin_server_admin/router/examtestpage/grouphandle.go index a4aee40..cc29ef3 100644 --- a/gin_server_admin/router/examtestpage/grouphandle.go +++ b/gin_server_admin/router/examtestpage/grouphandle.go @@ -25,5 +25,9 @@ func (g *GroupHandleRouter) InitGroupRouter(Router *gin.RouterGroup) { groupCodeRouter.POST("/refreshdatabaseuser", authorityApi.RefreshDataBaseUser) //更新企业微信人员信息库 + groupCodeRouter.POST("/getgroupdepartmap", authorityApi.GetGroupDepartMap) // 获取集团架构列表(集团分厂) + + groupCodeRouter.POST("/getgroupuser", authorityApi.GetGroupUser) //获取集团架构人员信息对照表 + } } diff --git a/gin_server_admin/router/staffrouter/people.go b/gin_server_admin/router/staffrouter/people.go index 08eba1b..8ebd2fa 100644 --- a/gin_server_admin/router/staffrouter/people.go +++ b/gin_server_admin/router/staffrouter/people.go @@ -17,5 +17,6 @@ func (s *StaffRouter) InitStaffRouter(Router *gin.RouterGroup) { staffRouter.GET("/", authorityApi.Index) //员工档案入口 staffRouter.POST("/stafflist", authorityApi.StaffList) //员工列表 + } } diff --git a/gin_server_admin/router/systemadmin/dutyassess.go b/gin_server_admin/router/systemadmin/dutyassess.go new file mode 100644 index 0000000..d7f8c86 --- /dev/null +++ b/gin_server_admin/router/systemadmin/dutyassess.go @@ -0,0 +1,23 @@ +package systemadmin + +import ( + v1 "github.com/flipped-aurora/gin-vue-admin/server/api/admin" + "github.com/gin-gonic/gin" +) + +type AdminRouter struct{} + +func (a *AdminRouter) InitStaffRouter(Router *gin.RouterGroup) { + adminRouter := Router.Group("admin") + var authorityApi = v1.ApiGroupApp.DutyAssess.DutyAssEss + { + adminRouter.POST("", authorityApi.Index) //员工档案入口 + adminRouter.POST("/", authorityApi.Index) //员工档案入口 + adminRouter.GET("", authorityApi.Index) //员工档案入口 + adminRouter.GET("/", authorityApi.Index) //员工档案入口 + + adminRouter.POST("getdepartevaluate", authorityApi.GetDepartEvaluate) //获取部门考核列表 + adminRouter.POST("getdepartmentassesslist", authorityApi.GetDepartmentAssessList) //获取考核列表 + + } +} diff --git a/gin_server_admin/router/systemadmin/enter.go b/gin_server_admin/router/systemadmin/enter.go new file mode 100644 index 0000000..fcd7d1b --- /dev/null +++ b/gin_server_admin/router/systemadmin/enter.go @@ -0,0 +1,5 @@ +package systemadmin + +type RouterGroup struct { + AdminRouter +} diff --git a/gin_server_admin/其他支持文件/config.yaml b/gin_server_admin/其他支持文件/config.yaml new file mode 100644 index 0000000..f8a1635 --- /dev/null +++ b/gin_server_admin/其他支持文件/config.yaml @@ -0,0 +1,287 @@ +aliyun-oss: + endpoint: yourEndpoint + access-key-id: yourAccessKeyId + access-key-secret: yourAccessKeySecret + bucket-name: yourBucketName + bucket-url: yourBucketUrl + base-path: yourBasePath +autocode: + transfer-restart: true + root: l:\任官钰\代码\gin-vue-admin-master\gin-vue-admin-master + server: /server + server-api: /api/v1/autocode + server-initialize: /initialize + server-model: /model/autocode + server-request: /model/autocode/request/ + server-router: /router/autocode + server-service: /service/autocode + web: /web/src + web-api: /api + web-form: /view + web-table: /view +captcha: + key-long: 6 + img-width: 240 + img-height: 80 +casbin: + model-path: ./resource/rbac_model.conf +email: + to: xxx@qq.com + port: 465 + from: xxx@163.com + host: smtp.163.com + is-ssl: true + secret: xxx + nickname: test +excel: + dir: ./resource/excel/ +jwt: + buffer-time: 86400 + expires-time: 604800 + issuer: qmPlus + signing-key: a77a9442-4c2b-466b-a650-9495e04d285c +local: + path: uploads/file +mysql: + path: 127.0.0.1:3306 + config: charset=utf8mb4&parseTime=True&loc=Local + db-name: gva + username: gva + password: "YNsk3zbP4sTASmzJ" + max-idle-conns: 0 + max-open-conns: 0 + log-mode: "" + log-zap: false +qiniu: + zone: ZoneHuaDong + bucket: "" + img-path: "" + use-https: false + access-key: "" + secret-key: "" + use-cdn-domains: false +redis: + db: 0 + addr: 127.0.0.1:6379 + password: "" +redisprefix: + prefix: "HXGK_GO_ZhixingCollege" + alias: "dev" + +system: + env: public + addr: 8888 + db-type: mysql + oss-type: local + use-multipoint: true + iplimit-count: 15000 + iplimit-time: 3600 +tencent-cos: + bucket: xxxxx-10005608 + region: ap-shanghai + secret-id: xxxxxxxx + secret-key: xxxxxxxx + base-url: https://gin.vue.admin + path-prefix: github.com/flipped-aurora/gin-vue-admin/server +timer: + start: true + spec: '@daily' + detail: + - tableName: sys_operation_records + compareField: created_at + interval: 2160h + - tableName: jwt_blacklists + compareField: created_at + interval: 168h +zap: + level: info + format: console + prefix: '[github.com/flipped-aurora/gin-vue-admin/server]' + director: log + showLine: true + encode-level: LowercaseColorLevelEncoder + stacktrace-key: stacktrace + log-in-console: true + + +# mysql connect configuration +# 其他数据库配置 +#app主数据库 +mysqlMaster: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'hengxingaoke_tes' + username: 'hengxingaoke_tes' + password: 'JsTt6iTpkZ85wDnF' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#文档属性数据库 +mysqlBookDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'learnmessage' + username: 'learnmessage' + password: 'JyppSdcLT27f7dpB' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#微信员工信息表 +mysqlWatchDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'wechatuser' + username: 'wechatuser' + password: '8jrFG2AzpJPxs88m' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#错题库 +mysqlErrorSubjectDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'errorsubject' + username: 'errorsubject' + password: 'abRcXzraCMFYC4Me' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#自我测验 +mysqlMyTestDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'selftestdatabase' + username: 'selftestdatabase' + password: 'mXDWEBJCd5acnCjD' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#图文信息数据库 +mysqlBooImgkDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'readdocument' + username: 'readdocument' + password: 'CY2yanCmAP8p8bxj' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#计分明细数据库 +mysqlIntegralDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'leaguetabledata' + username: 'leaguetabledata' + password: 'PxeX8Dnw88G4Jpnr' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#趣味问答 +mysqlQADate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'ques_and_answers' + username: 'ques_and_answers' + password: 'CT7XGBrAwdnXkTNX' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#风云榜统计数据库 +mysqlBillboardDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'statisticsing' + username: 'statisticsing' + password: '4iMZNtMT8fk8imEb' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +#健康上报数据库 +mysqlHealthReportDate: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'location' + username: 'location' + password: 'XreBJrkYh7K3jfbm' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + + #审批流程数据库 +mysqlApprovalProcess: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'workflow' + username: 'workflow' + password: 'kSwXD3LBsnJ8dsz4' + max-idle-conns: 100 + max-open-conns: 1500 + log-mode: false + log-zap: "" + + #绩效考核数据库 +mysqlPerformanceappraisal: + path: '127.0.0.1:3306' + config: 'charset=utf8mb4&parseTime=True&loc=Local' + db-name: 'perform' + username: 'perform' + password: 'amtzSrN5WnMsS4hb' + max-idle-conns: 100 + max-open-conns: 1500 + log-mode: false + log-zap: "" + + + + +#企业微信相关设置 +workwechatid: + companyid: 'ww02f310301953277a' #企业ID + +workwechatschool: #知行学院 + agentid: 1000008 + secretstr: 'YJOHrmHtvevAdctg-06TMLnPokIaLHdfrQMyQolZQC8' + +workwechatappmaillist: #通讯录 + secretstr: 'yjcQXkh6_116QKjfZfbRSyzdrFFZ9jbVlKJtL2tn3OU' + +healthreport: #健康上报 + secretstr: 'smjpGmFo5wp18BZGiLaECFr84Blv429v_GFdKp4_0YQ' + +#测试企业 +workwechatids: + companyid: 'ww708746402de33ba7' #企业ID + +workwechatschools: #测试 + agentid: 1000021 + secretstr: 'rbqos2un6vVY5k_c2aOFK6HUuONeJsiBqwRZXTDVBKU' + +workwechatappmaillists: #通讯录 + secretstr: 'TSSsJXiqh3RKl0NYIoB-sPc43MUIRJ1ppALWtzyLY94' + +healthreports: #健康上报 + secretstr: 'smjpGmFo5wp18BZGiLaECFr84Blv429v_GFdKp4_0YQ' + +privateConfig: #私人配置 + visit: 'http://docu.hxgk.net/uploadfileing/uploadimging' + # visit: 'http://docs.hxgk.group/uploadfileing/uploadimging' + appKey: 'heng_xin_gao_ke_AppKey' \ No newline at end of file