package assessment import ( "strconv" "time" "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) AddDetailedTarget(c *gin.Context) { var requestData addDetailedTargetType err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(101, requestData, "数据获取失败!", c) return } if requestData.Title == "" { response.Result(102, err, "请输入考核细则!", c) return } if requestData.ParentId == "" { response.Result(102, err, "请选择考核细则归属", c) return } var parentIdSun int64 = 0 juadgeMap := commonus.MapOut() juadgeGormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Select("dt_title").Where("`dt_title` = ? AND `dt_parentid` = ?", requestData.Title, requestData.ParentId) if requestData.ParentIdSun != "" { parentIdSuns, parentIdSunErr := strconv.ParseInt(requestData.ParentIdSun, 10, 64) if parentIdSunErr != nil { response.Result(102, err, "请选择考核细则归属", c) return } parentIdSun = parentIdSuns juadgeGormDb = juadgeGormDb.Where("`dt_parentid_sun` = ?", requestData.ParentIdSun) } juadgeTitleErr := juadgeGormDb.First(&juadgeMap).Error if juadgeTitleErr == nil { response.Result(102, err, "此定考核细则已经存在!请不要重复录入!", c) return } var saveData assessmentmodel.DetailedTarget saveData.Title = requestData.Title saveData.Content = requestData.Content parentId, parentIdErr := strconv.ParseInt(requestData.ParentId, 10, 64) if parentIdErr != nil { response.Result(102, err, "请选择考核细则归属", c) return } saveData.ParentId = parentId saveData.ParentIdSun = parentIdSun saveData.State = 1 saveData.AddTime = time.Now().Unix() dutyInfoErr := global.GVA_DB_Performanceappraisal.Create(&saveData).Error if dutyInfoErr != nil { response.Result(106, saveData, "数据写入失败!", c) } else { response.Result(0, saveData, "数据写入成功!", c) } } // 获取考核细则详细内容 func (d *DutyHandle) GetDetailedTarget(c *gin.Context) { var requestData commonus.SetIds 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 systemEvalCont outDetailedTargetType contErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Select("dt_id", "dt_title", "dt_content", "dt_parentid", "dt_parentid_sun", "dt_state", "dt_time").Where("`dt_id` = ?", requestData.Id).First(&systemEvalCont).Error if contErr != nil { response.Result(103, err, "数据获取失败!", c) return } systemEvalCont.OutId = strconv.FormatInt(systemEvalCont.Id, 10) systemEvalCont.ParentIdStr = strconv.FormatInt(systemEvalCont.ParentId, 10) parentCont, parentIsTrue := commonus.GetTargetInfo(systemEvalCont.ParentId) if parentIsTrue == true { systemEvalCont.ParentTitle = parentCont.Title } systemEvalCont.ParentIdSunStr = strconv.FormatInt(systemEvalCont.ParentIdSun, 10) parentSunCont, parentSunIsTrue := commonus.GetQualitativeTargetInfo(systemEvalCont.ParentIdSun) if parentSunIsTrue == true { systemEvalCont.ParentSunTitle = parentSunCont.Title } response.Result(0, systemEvalCont, "数据获取成功!", c) } // 获取考核细则详细内容 func (d *DutyHandle) GetDetailedTargetList(c *gin.Context) { var requestData detailedTargetTypeList 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.DetailedTarget{}).Select("dt_id", "dt_title", "dt_content", "dt_parentid", "dt_parentid_sun", "dt_state", "dt_time") if requestData.ParentId != "" { gormDb = gormDb.Where("`dt_parentid` = ?", requestData.ParentId) } if requestData.ParentIdSun != "" { gormDb = gormDb.Where("`dt_parentid_sun` = ?", requestData.ParentIdSun) } if requestData.State != 0 { gormDb = gormDb.Where("`dt_state` = ?", requestData.State) } else { gormDb = gormDb.Where("`dt_state` IN (1,2)") } if requestData.Title != "" { gormDb = gormDb.Where("(`dt_title` LIKE ?)", "%"+requestData.Title+"%") } var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } // response.Result(0, requestData, "查询成功!", c) // var dataList []assessmentmodel.QualitativeTarget var dataList []outDetailedTargetType dataListerr := gormDb.Limit(requestData.PageSize).Offset(offSetPage).Find(&dataList).Error if dataListerr != nil { response.Result(103, dataList, "数据获取失败!", c) return } for i, v := range dataList { dataList[i].OutId = strconv.FormatInt(v.Id, 10) dataList[i].ParentIdStr = strconv.FormatInt(v.ParentId, 10) parentCont, parentIsTrue := commonus.GetTargetInfo(v.ParentId) if parentIsTrue == true { dataList[i].ParentTitle = parentCont.Title } dataList[i].ParentIdSunStr = strconv.FormatInt(v.ParentIdSun, 10) parentSunCont, parentSunIsTrue := commonus.GetQualitativeTargetInfo(v.ParentIdSun) if parentSunIsTrue == true { dataList[i].ParentSunTitle = parentSunCont.Title } } countSum := len(dataList) printData := commonus.OutPutList(total, int64(countSum), requestData.Page, requestData.PageSize, dataList) response.Result(0, printData, "查询成功!", c) } // 编辑考核细则数据处理 func eiteDetailedTargetInfo(saveId int64, saveData map[string]interface{}) (isTrue bool, infoErr error) { isTrue = false infoErr = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Where("`dt_id` = ?", saveId).Updates(saveData).Error if infoErr != nil { return } isTrue = true return } // 编辑考核细则内容 func (d *DutyHandle) EiteDetailedTargetCont(c *gin.Context) { var requestData eitedetailedTargetCon 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 oldTargetCont assessmentmodel.DetailedTarget targetInfoErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", requestData.Id).First(&oldTargetCont).Error if targetInfoErr != nil { response.Result(102, err, "该考核细则不存在!请检查您的参数!", c) return } saveData := commonus.MapOut() if requestData.Title == "" { response.Result(102, err, "请输入指标名称!", c) return } else { if requestData.Title != oldTargetCont.Title { if requestData.ParentId != "" && requestData.ParentIdSun != "" { judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ? AND `dt_parentid_sun` = ?", requestData.Title, requestData.ParentId, requestData.ParentIdSun).First(&oldTargetCont).Error if judgeTargetErr == nil { response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c) return } } else if requestData.ParentId != "" && requestData.ParentIdSun == "" { judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ?", requestData.Title, requestData.ParentId).First(&oldTargetCont).Error if judgeTargetErr == nil { response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c) return } } else { judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ? AND `dt_parentid_sun` = ?", requestData.Title, oldTargetCont.ParentId, oldTargetCont.ParentIdSun).First(&oldTargetCont).Error if judgeTargetErr == nil { response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c) return } else { judgeTargetErr := global.GVA_DB_Performanceappraisal.Where("`dt_title` = ? AND `dt_parentid` = ?", requestData.Title, oldTargetCont.ParentId).First(&oldTargetCont).Error if judgeTargetErr == nil { response.Result(102, err, "该考核细则已经存在!请不要重复输入!", c) return } } } saveData["dt_title"] = requestData.Title } } if requestData.Content != "" { saveData["dt_content"] = requestData.Content } if requestData.ParentId != "" { saveData["dt_parentid"] = requestData.ParentId } if requestData.ParentIdSun != "" { saveData["dt_parentid_sun"] = requestData.ParentIdSun } saveData["dt_time"] = time.Now().Unix() roleIsTrue, roleErr := eiteDetailedTargetInfo(requestData.Id, saveData) if roleIsTrue != true { response.Result(106, roleErr, "编辑失败!", c) } else { response.Result(0, saveData, "编辑成功!", c) } } // 删除考核细则 func (d *DutyHandle) DelDetailedTargetCont(c *gin.Context) { var requestData dutyClassState err := c.ShouldBindJSON(&requestData) if err != nil { response.Result(101, requestData, "数据获取失败!", 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["dt_state"] = requestData.State saveData["dt_time"] = time.Now().Unix() if requestData.IsDel != 1 { roleIsTrue, roleErr := eiteDetailedTargetInfo(requestData.Id, saveData) if roleIsTrue != true { response.Result(103, roleErr, "修改失败!", c) return } response.Result(0, requestData, "修改成功!", c) } else { if requestData.State == 3 { roleErr := global.GVA_DB_Performanceappraisal.Where("dt_id = ?", requestData.Id).Delete(&assessmentmodel.DetailedTarget{}).Error if roleErr != nil { response.Result(104, saveData, "删除失败!", c) return } response.Result(0, saveData, "删除成功!", c) } else { roleIsTrue, roleErr := eiteDetailedTargetInfo(requestData.Id, saveData) if roleIsTrue != true { response.Result(103, roleErr, "修改失败!", c) return } response.Result(0, requestData, "修改成功!", c) } } }