You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
415 lines
13 KiB
415 lines
13 KiB
package assessment
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
|
|
"gin_server_admin/api/v1/archiveapi"
|
|
"gin_server_admin/commonus"
|
|
"gin_server_admin/global"
|
|
"gin_server_admin/model/assessmentmodel"
|
|
"gin_server_admin/model/common/response"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// 具体职责
|
|
func (d *DutyHandle) DutyList(c *gin.Context) {
|
|
var requestData dutyRequest
|
|
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
|
|
}
|
|
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
|
|
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{})
|
|
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+"%")
|
|
}
|
|
|
|
if requestData.State != 0 {
|
|
gormDb = gormDb.Where("`dc_state` = ?", requestData.State)
|
|
} else {
|
|
gormDb = gormDb.Where("`dc_state` IN ?", []int{1, 2})
|
|
}
|
|
|
|
if requestData.AssEssType != 0 {
|
|
gormDb = gormDb.Where("`dc_type` = ?", requestData.AssEssType)
|
|
|
|
}
|
|
|
|
var total int64
|
|
totalErr := gormDb.Count(&total).Error
|
|
if totalErr != nil {
|
|
total = 0
|
|
}
|
|
|
|
var dutyList []assessmentmodel.DutyContent
|
|
dutyListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&dutyList).Error
|
|
if dutyListerr != nil {
|
|
response.Result(103, dutyListerr, "数据获取失败!", c)
|
|
return
|
|
}
|
|
var outDutyMap []dutyOutput
|
|
for _, val := range dutyList {
|
|
var outDutyInfo dutyOutput
|
|
outDutyInfo.Id = val.Id
|
|
outDutyInfo.Title = val.Title
|
|
outDutyInfo.Time = val.Time
|
|
outDutyInfo.State = val.State
|
|
outDutyInfo.PartId = val.PartId
|
|
outDutyInfo.UserType = val.UserType
|
|
outDutyInfo.UserDump = val.UserDump
|
|
outDutyInfo.Dump = val.Dump
|
|
outDutyInfo.OutId = strconv.FormatInt(outDutyInfo.Id, 10)
|
|
|
|
outDutyInfo.UnitTitle = val.Uniteing
|
|
outDutyInfo.Cycle = val.Cycles
|
|
outDutyInfo.CycleAttr = val.CycleAttres
|
|
outDutyInfo.Content = val.Contentes
|
|
outDutyInfo.Type = val.Types
|
|
|
|
outDutyInfo.ParentIdStr = strconv.FormatInt(val.PartId, 10)
|
|
isTrue, parentCont := GetAssEssCont(val.PartId)
|
|
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)
|
|
}
|
|
countSum := len(outDutyMap)
|
|
printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, outDutyMap)
|
|
response.Result(0, printData, "查询成功!", c)
|
|
}
|
|
|
|
// 添加考核细则
|
|
func (d *DutyHandle) AddDutyInfo(c *gin.Context) {
|
|
var requestData addDutyContent
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
if requestData.Title == "" {
|
|
response.Result(102, err, "请输入考核细则名称", c)
|
|
return
|
|
}
|
|
if requestData.ParentId == "" {
|
|
response.Result(103, err, "请指定该具体归属于考核项目", c)
|
|
return
|
|
}
|
|
outDutyCont := commonus.MapOut()
|
|
inFoErres := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Where("`dc_parent` = ? AND `dc_title` = ?", requestData.ParentId, requestData.Title).First(&outDutyCont).Error
|
|
if inFoErres == nil {
|
|
response.Result(105, inFoErres, "该考核项目下此考核细则已经存在!请不要重复提交", c)
|
|
return
|
|
}
|
|
// if requestData.SectionId == "" {
|
|
// response.Result(103, err, "请指定该考核细则执行部门", c)
|
|
// return
|
|
// }
|
|
if requestData.Type == 0 {
|
|
requestData.Type = 1
|
|
}
|
|
|
|
var dutyInfo assessmentmodel.DutyContent
|
|
dutyInfo.Id = commonus.GetFileNumberEs()
|
|
dutyInfo.Title = requestData.Title
|
|
dutyInfo.Time = time.Now().Unix()
|
|
dutyInfo.State = 1
|
|
dutyInfo.UserType = 1
|
|
parentId, parentIdErr := strconv.ParseInt(requestData.ParentId, 10, 64)
|
|
if parentIdErr == nil {
|
|
dutyInfo.PartId = parentId
|
|
} else {
|
|
dutyInfo.PartId = 0
|
|
}
|
|
// userID, userIDErr := strconv.ParseInt(requestData.UserId, 10, 64)
|
|
// if userIDErr != nil {
|
|
// userID = 0
|
|
// }
|
|
dutyInfo.Types = requestData.Type
|
|
// dutyInfo.UserDump = userID
|
|
// DumpID, DumpIDErr := strconv.ParseInt(requestData.SectionId, 10, 64)
|
|
// if DumpIDErr != nil {
|
|
// DumpID = 0
|
|
// }
|
|
// dutyInfo.Dump = DumpID
|
|
assContErr, assCont := GetAssEssCont(parentId)
|
|
if assContErr != true {
|
|
response.Result(103, err, "该考核项目不存在!请你检查!", c)
|
|
return
|
|
}
|
|
dutyInfo.Uniteing = assCont.Unites
|
|
dutyInfo.Cycles = assCont.Cycle
|
|
dutyInfo.CycleAttres = assCont.CycleAttr
|
|
dutyInfo.Contentes = requestData.Content
|
|
|
|
// if requestData.Type == 1 {
|
|
// dutyInfo.UserDump = userID
|
|
// dutyInfo.Dump = 0
|
|
// } else {
|
|
// dutyInfo.UserDump = 0
|
|
// dutyInfo.Dump = userID
|
|
// }
|
|
dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&dutyInfo).Error
|
|
if dutyInfoErr != nil {
|
|
response.Result(104, dutyInfo, "数据写入失败!", c)
|
|
} else {
|
|
response.Result(0, dutyInfo, "数据写入成功!", c)
|
|
}
|
|
}
|
|
|
|
// 获取具体职责
|
|
func (d *DutyHandle) GetDutyInfo(c *gin.Context) {
|
|
var requestData commonus.SetId
|
|
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
|
|
}
|
|
}
|
|
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 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)
|
|
}
|
|
|
|
// 编辑具体职责
|
|
func (d *DutyHandle) EiteDutyInfor(c *gin.Context) {
|
|
var requestData eiteDutyCont
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
response.Result(101, err, "参数错误!请重新提交!", c)
|
|
return
|
|
}
|
|
saveData := commonus.MapOut()
|
|
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
|
|
}
|
|
}
|
|
if requestData.Title == "" {
|
|
response.Result(103, err, "请输入具体职责", c)
|
|
return
|
|
}
|
|
|
|
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
|
|
}
|
|
if requestData.Title != "" && requestData.Title != dutyOutInfo.Title {
|
|
outDutyCont := commonus.MapOut()
|
|
inFoErres := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DutyContent{}).Where("`dc_parent` = ? AND `dc_title` = ?", requestData.ParentId, requestData.Title).First(&outDutyCont).Error
|
|
if inFoErres == nil {
|
|
response.Result(105, inFoErr, "该考核细则已经存在!请不要重复提交", c)
|
|
return
|
|
}
|
|
}
|
|
|
|
if requestData.ParentId != "" {
|
|
parentIdInt, parentErr := strconv.ParseInt(requestData.ParentId, 10, 64)
|
|
if parentErr == nil {
|
|
saveData["dc_parent"] = parentIdInt
|
|
}
|
|
}
|
|
if requestData.Type != 0 {
|
|
saveData["dc_type"] = requestData.Type
|
|
}
|
|
if requestData.UserId != "" {
|
|
userID, userIDErr := strconv.ParseInt(requestData.UserId, 10, 64)
|
|
if userIDErr != nil {
|
|
userID = 0
|
|
}
|
|
saveData["dc_user_dump"] = userID
|
|
}
|
|
|
|
if requestData.SectionId != "" {
|
|
sectionID, sectionIDErr := strconv.ParseInt(requestData.SectionId, 10, 64)
|
|
if sectionIDErr != nil {
|
|
sectionID = 0
|
|
}
|
|
saveData["dc_dump"] = sectionID
|
|
}
|
|
|
|
var assessInfo assessmentmodel.DutyContent
|
|
saveData["dc_title"] = requestData.Title
|
|
saveData["dc_time"] = time.Now().Unix()
|
|
isTrue, isErr := eiteDutyInfoCont(requestData.Id, assessInfo, saveData)
|
|
if isTrue != true {
|
|
response.Result(104, isErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, saveData, "修改成功!", c)
|
|
}
|
|
|
|
// 编辑具体职责内容
|
|
func eiteDutyInfoCont(saveId int64, modelInfo assessmentmodel.DutyContent, saveData map[string]interface{}) (isTrue bool, dutyClassInfoErr error) {
|
|
isTrue = false
|
|
dutyClassInfoErr = global.GVA_DB_Performanceappraisal.Model(&modelInfo).Where("dc_id = ?", saveId).Updates(saveData).Error
|
|
if dutyClassInfoErr != nil {
|
|
return
|
|
}
|
|
isTrue = true
|
|
return
|
|
}
|
|
|
|
// 修改考核项目的状态
|
|
func (d *DutyHandle) EiteDutyState(c *gin.Context) {
|
|
var requestData dutyClassState
|
|
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
|
|
}
|
|
}
|
|
if requestData.State == 0 {
|
|
requestData.State = 1
|
|
}
|
|
saveData := commonus.MapOut()
|
|
saveData["dc_state"] = requestData.State
|
|
saveData["dc_time"] = time.Now().Unix()
|
|
var eiteAssEssStateInfo assessmentmodel.DutyContent
|
|
if requestData.IsDel != 1 {
|
|
isTrue, dutyErr := eiteDutyInfoCont(requestData.Id, eiteAssEssStateInfo, saveData)
|
|
if isTrue != true {
|
|
response.Result(103, dutyErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "修改成功!", c)
|
|
} else {
|
|
if requestData.State == 3 {
|
|
archiveInfoErr := global.GVA_DB_Performanceappraisal.Where("ai_id = ?", requestData.Id).Delete(&eiteAssEssStateInfo).Error
|
|
if archiveInfoErr != nil {
|
|
response.Result(104, requestData, "删除失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "删除成功!", c)
|
|
} else {
|
|
isTrue, saveErr := eiteDutyInfoCont(requestData.Id, eiteAssEssStateInfo, saveData)
|
|
if isTrue != true {
|
|
response.Result(105, saveErr, "修改失败!", c)
|
|
return
|
|
}
|
|
response.Result(0, requestData, "修改成功!", c)
|
|
}
|
|
}
|
|
}
|
|
|
|
// 获取职责类别内容
|
|
func GetDutyInfoCont(id int64) (isTrue bool, ContInfo assessmentmodel.DutyContent) {
|
|
isTrue = false
|
|
err := global.GVA_DB_Performanceappraisal.Where("dc_id = ?", id).First(&ContInfo).Error
|
|
if err == nil {
|
|
isTrue = true
|
|
}
|
|
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
|
|
}
|
|
|