using System; using System.Collections.Generic; using System.Linq; using Edu.Cache.User; using Edu.Common.API; using Edu.Common.Enum.Course; using Edu.Common.Enum.OKR; using Edu.Common.Plugin; using Edu.Model.ViewModel.OKR; using Edu.Module.OKR; using Edu.WebApi.Filter; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; namespace Edu.WebApi.Controllers.OKR { [Route("api/[controller]/[action]")] [ApiExceptionFilter] [ApiController] [EnableCors("AllowCors")] public class OKRPeriodController : BaseController { /// <summary> /// OKR周期处理类对象 /// </summary> private readonly OKRPeriodModule okrPeriodModule = new OKRPeriodModule(); #region 基础配置 /// <summary> /// 获取OKR周期配置信息 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRPeriodConfigInfo() { var userInfo = base.UserInfo; var model = okrPeriodModule.GetOKRPeriodConfigInfo(userInfo.Group_Id); return ApiResult.Success("", new { model.Id, model.PeriodMonth, StartDate = model.StartDate.HasValue ? model.StartDate.Value.ToString("yyyy年MM月") : "", EndDate = model.EndDate.HasValue ? model.EndDate.Value.ToString("yyyy年MM月") : "", model.BeforeNum, model.BeforeType, model.YearOKR, model.DirectorAudit }); } /// <summary> /// 保存OKR周期配置 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetOKRPeriodConfigInfo() { var userInfo = base.UserInfo; RB_OKR_PeriodConfig_ViewModel dmodel = JsonHelper.DeserializeObject<RB_OKR_PeriodConfig_ViewModel>(RequestParm.Msg.ToString()); if (dmodel.PeriodMonth <= 0) { return ApiResult.ParamIsNull("请选择周期长度"); } if (!dmodel.StartDate.HasValue) { return ApiResult.ParamIsNull("请选择新周期生效时间"); } if (!dmodel.EndDate.HasValue) { return ApiResult.ParamIsNull("请选择新周期生效时间"); } if (dmodel.BeforeNum <= 0) { return ApiResult.ParamIsNull("请选择新周期出现时间"); } if (dmodel.BeforeType <= 0) { return ApiResult.ParamIsNull("请选择类型"); } if (dmodel.YearOKR <= 0) { return ApiResult.ParamIsNull("请选择年度是否开启"); } if (dmodel.DirectorAudit <= 0) { return ApiResult.ParamIsNull("请选择主管审核是否开启"); } if (dmodel.StartDate.Value.AddMonths((int)dmodel.PeriodMonth - 1).ToString("yyyy-MM") != dmodel.EndDate.Value.ToString("yyyy-MM")) { return ApiResult.ParamIsNull("时间不正确"); } dmodel.StartDate = Convert.ToDateTime(dmodel.StartDate.Value.ToString("yyyy-MM") + "-01"); dmodel.EndDate = Convert.ToDateTime(dmodel.EndDate.Value.ToString("yyyy-MM") + "-01 23:59:59").AddMonths(1).AddDays(-1); dmodel.Group_Id = userInfo.Group_Id; dmodel.School_Id = userInfo.School_Id; dmodel.CreateBy = userInfo.Id; dmodel.CreateTime = DateTime.Now; dmodel.UpdateBy = userInfo.Id; dmodel.UpdateTime = DateTime.Now; string msg = okrPeriodModule.SetOKRPeriodConfigInfo(dmodel, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 获取OKR提醒列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRRemindList() { var userInfo = base.UserInfo; var list = okrPeriodModule.GetOKRRemindList(userInfo.Group_Id); return ApiResult.Success("", list.Select(x => new { x.Id, x.Days, x.Time, x.Enable, x.Type })); } /// <summary> /// 设置OKR提醒 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetOKRRemindInfo() { var userInfo = base.UserInfo; RB_OKR_Remind_ViewModel dmodel = JsonHelper.DeserializeObject<RB_OKR_Remind_ViewModel>(RequestParm.Msg.ToString()); if (string.IsNullOrEmpty(dmodel.Days)) { return ApiResult.ParamIsNull("请选择工作日"); } if (string.IsNullOrEmpty(dmodel.Time)) { return ApiResult.ParamIsNull("请选择时间"); } if (dmodel.Type <= 0) { return ApiResult.ParamIsNull("请传递类型"); } dmodel.Group_Id = userInfo.Group_Id; dmodel.School_Id = userInfo.School_Id; dmodel.CreateBy = userInfo.Id; dmodel.CreateTime = DateTime.Now; dmodel.UpdateBy = userInfo.Id; dmodel.UpdateTime = DateTime.Now; dmodel.Enable = 1; string msg = okrPeriodModule.SetOKRRemindInfo(dmodel, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 谁知OKR提醒启用 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetOKRRemindEnable() { var userInfo = base.UserInfo; JObject prams = JObject.Parse(RequestParm.Msg.ToString()); int Type = prams.GetInt("Type", 0); if (Type <= 0) { return ApiResult.ParamIsNull(); } bool flag = okrPeriodModule.SetOKRRemindEnable(Type, userInfo); if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); } } /// <summary> /// 获取分数配置分页列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRScoreConfigPageList() { var userInfo = base.UserInfo; var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_OKR_Score_ViewModel>(RequestParm.Msg.ToString()); dmodel.Group_Id = userInfo.Group_Id; var list = okrPeriodModule.GetOKRScoreConfigPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel); pageModel.Count = Convert.ToInt32(count); pageModel.PageData = list.Select(x => new { x.Id, x.Name, x.IsDefault, DetailList = x.DetailList.OrderBy(x => x.ScoreMin).Select(z => new { z.Name, z.ScoreMin, z.ScoreMax, z.Color }) }); return ApiResult.Success("", pageModel); } /// <summary> /// 设置分数规则 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetOKRScoreConfigInfo() { var userInfo = base.UserInfo; RB_OKR_Score_ViewModel dmodel = JsonHelper.DeserializeObject<RB_OKR_Score_ViewModel>(RequestParm.Msg.ToString()); if (string.IsNullOrEmpty(dmodel.Name)) { return ApiResult.ParamIsNull("请传递规则名称"); } if (dmodel.DetailList == null || !dmodel.DetailList.Any()) { return ApiResult.ParamIsNull("请传递分数明细"); } decimal min = 0; foreach (var item in dmodel.DetailList) { if (string.IsNullOrEmpty(item.Name)) { return ApiResult.ParamIsNull("请传递颜色名称"); } if (item.ScoreMin < 0 || item.ScoreMin >= 1) { return ApiResult.ParamIsNull("分数有误"); } if (item.ScoreMax <= 0 || item.ScoreMax > 1) { return ApiResult.ParamIsNull("分数有误"); } if (item.ScoreMax < item.ScoreMin) { return ApiResult.ParamIsNull("分数有误"); } if (min == 0) { if (item.ScoreMin < min) { return ApiResult.ParamIsNull("分数有交集"); } } else { if (item.ScoreMin <= min) { return ApiResult.ParamIsNull("分数有交集"); } } min = item.ScoreMax; } dmodel.IsDefault = 2; dmodel.Status = 0; dmodel.Group_Id = userInfo.Group_Id; dmodel.School_Id = userInfo.School_Id; dmodel.CreateBy = userInfo.Id; dmodel.CreateTime = DateTime.Now; dmodel.UpdateBy = userInfo.Id; dmodel.UpdateTime = DateTime.Now; string msg = okrPeriodModule.SetOKRScoreConfigInfo(dmodel, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(); } } /// <summary> /// 设置分数状态 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetOKRScoreConfigState() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int ScoreId = parms.GetInt("ScoreId", 0); int Type = parms.GetInt("Type", 1);// 类型 1设置默认 2删除 if (ScoreId <= 0) { return ApiResult.ParamIsNull("请传递id"); } string msg = okrPeriodModule.SetOKRScoreConfigState(ScoreId, Type, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(); } } /// <summary> /// 获取枚举列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetPeriodMonthEnumList() { var list = EnumHelper.EnumToList(typeof(PeriodMonthEnum)); return ApiResult.Success("", list.Select(x => new { x.Name, x.Id })); } /// <summary> /// 获取枚举列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetPermissionTypeEnumList() { var list = EnumHelper.EnumToList(typeof(PermissionTypeEnum)); return ApiResult.Success("", list.Select(x => new { x.Name, x.Id })); } /// <summary> /// 获取枚举列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetProgressStateEnumList() { var list = EnumHelper.EnumToList(typeof(ProgressStateEnum)); return ApiResult.Success("", list.Select(x => new { x.Name, x.Id })); } #endregion #region 目标管理 /// <summary> /// 获取周期列表 /// </summary> /// <returns></returns> public ApiResult GetOKRPeriodList() { var userInfo = base.UserInfo; var list = okrPeriodModule.GetOKRPeriodList(userInfo.Group_Id); return ApiResult.Success("", list.Select(x => new { x.Id, x.Name, StartDate = x.StartDate.ToString("yyyy-MM-dd HH:mm:ss"), EndDate = x.EndDate.ToString("yyyy-MM-dd HH:mm:ss"), x.IsCurrent, x.IsYear })); } /// <summary> /// 获取我的目标列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRMyObjectiveList() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int PeriodId = parms.GetInt("PeriodId", 0); if (PeriodId <= 0) { return ApiResult.ParamIsNull("请传递周期id"); } var list = okrPeriodModule.GetOKRMyObjectiveList(PeriodId, userInfo); return ApiResult.Success("", list); } /// <summary> /// 获取单个我的目标 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRMyObjectiveInfo() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int ObjectiveId = parms.GetInt("ObjectiveId", 0); if (ObjectiveId <= 0) { return ApiResult.ParamIsNull("请传递目标id"); } var obj = okrPeriodModule.GetOKRMyObjectiveInfo(ObjectiveId, userInfo); return ApiResult.Success("", obj); } /// <summary> /// 新增修改目标 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyObjectiveInfo() { var userInfo = base.UserInfo; RB_OKR_Objective_ViewModel dmodel = JsonHelper.DeserializeObject<RB_OKR_Objective_ViewModel>(RequestParm.Msg.ToString()); if (string.IsNullOrEmpty(dmodel.Title)) { return ApiResult.ParamIsNull("请输入Objective"); } if (dmodel.PeriodId <= 0) { return ApiResult.ParamIsNull("请传递周期id"); } string msg = okrPeriodModule.SetOKRMyObjectiveInfo(dmodel, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 新增修改关键结果 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultInfo() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResultId = parms.GetInt("KeyResultId", 0); int ObjectiveId = parms.GetInt("ObjectiveId", 0); string Name = parms.GetStringValue("Name"); if (string.IsNullOrEmpty(Name)) { return ApiResult.ParamIsNull("请传递结果值"); } if (KeyResultId <= 0 && ObjectiveId <= 0) { return ApiResult.ParamIsNull("结果id不正确"); } string msg = okrPeriodModule.SetOKRMyKeyResultInfo(KeyResultId, ObjectiveId, Name, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 设置目标排序 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyObjectiveSort() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int ObjectiveId1 = parms.GetInt("ObjectiveId1", 0); int ObjectiveId2 = parms.GetInt("ObjectiveId2", 0);//目标的后面 if (ObjectiveId1 <= 0) { return ApiResult.ParamIsNull(); } if (ObjectiveId2 < 0) { return ApiResult.ParamIsNull(); } if (ObjectiveId1 == ObjectiveId2) { return ApiResult.Success(); } string msg = okrPeriodModule.SetOKRMyObjectiveSort(ObjectiveId1, ObjectiveId2, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 设置目标关键结果排序 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultSort() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResult1 = parms.GetInt("KeyResult1", 0); int KeyResult2 = parms.GetInt("KeyResult2", 0);//结果的后面 if (KeyResult1 <= 0) { return ApiResult.ParamIsNull(); } if (KeyResult2 < 0) { return ApiResult.ParamIsNull(); } if (KeyResult1 == KeyResult2) { return ApiResult.Success(); } string msg = okrPeriodModule.SetgetOKRMyKeyResultSort(KeyResult1, KeyResult2, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 设置目标状态 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyObjectiveState() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int ObjectiveId = parms.GetInt("ObjectiveId", 0); int Type = parms.GetInt("Type", 1);// 类型 1设置默认状态 2设置自定义状态 3删除 int ProgressState = parms.GetInt("ProgressState", 0); if (ObjectiveId <= 0) { return ApiResult.ParamIsNull("请传递目标id"); } if (Type == 2 && ProgressState <= 0) { return ApiResult.ParamIsNull("请传递自定义状态"); } string msg = okrPeriodModule.SetOKRMyObjectiveState(ObjectiveId, Type, ProgressState, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 修改关键结果状态 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultState() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResultId = parms.GetInt("KeyResultId", 0); int Type = parms.GetInt("Type", 0);// 类型 1自定义状态 2删除(作废) 3切换为简单模式 4切换为高级模式 string ProgressState = parms.GetStringValue("ProgressState"); if (KeyResultId <= 0) { return ApiResult.ParamIsNull(); } string msg = okrPeriodModule.SgetOKRMyKeyResultState(KeyResultId, Type, ProgressState, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 修改目标关键结果进度 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultProgress() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResultId = parms.GetInt("KeyResultId", 0); int Type = parms.GetInt("Type", 0);// 类型 1简单模式 2高级模式 int Progress = parms.GetInt("Progress", 0); decimal StartValue = parms.GetDecimal("StartValue"); decimal EndValue = parms.GetDecimal("EndValue"); decimal CurrentValue = parms.GetDecimal("CurrentValue"); if (KeyResultId <= 0) { return ApiResult.ParamIsNull(); } if (Progress < 0 || StartValue < 0 || EndValue < 0 || CurrentValue < 0) { return ApiResult.ParamIsNull("不能小于0"); } return okrPeriodModule.SgetOKRMyKeyResultProgress(KeyResultId, Type, Progress, StartValue, EndValue, CurrentValue, userInfo); } /// <summary> /// 修改目标关键结果权重 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultWeight() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResultId = parms.GetInt("KeyResultId", 0); decimal Weight = parms.GetDecimal("Weight"); if (KeyResultId <= 0) { return ApiResult.ParamIsNull("请传递结果Id"); } if (Weight < 0 || Weight > 100) { return ApiResult.ParamIsNull("权重值有误"); } return okrPeriodModule.SgetOKRMyKeyResultWeight(KeyResultId, Weight, userInfo); } /// <summary> /// 修改目标关键结果分数 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultScore() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResultId = parms.GetInt("KeyResultId", 0); decimal Score = parms.GetDecimal("Score"); if (KeyResultId <= 0) { return ApiResult.ParamIsNull("请传递结果Id"); } if (Score < 0 || Score > 1) { return ApiResult.ParamIsNull("分值有误"); } return okrPeriodModule.SgetOKRMyKeyResultScore(KeyResultId, Score, userInfo); } /// <summary> /// 删除关键结果状态 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyKeyResultDel() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int KeyResultId = parms.GetInt("KeyResultId", 0); if (KeyResultId <= 0) { return ApiResult.ParamIsNull(); } return okrPeriodModule.SgetOKRMyKeyResultDel(KeyResultId, userInfo); } //权限 添加对齐 审核 评论 左边人员列表 对齐视图 数据看板 (管理员版 对齐视图 数据看板) #region 添加对齐 /// <summary> /// 添加对齐 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyObjectiveParent() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int ObjectiveId = parms.GetInt("ObjectiveId", 0); int ParentId = parms.GetInt("ParentId", 0); if (ParentId <= 0) { return ApiResult.ParamIsNull("请传递对齐目标id"); } if (ObjectiveId <= 0) { return ApiResult.ParamIsNull("请传递当前目标id"); } if (ObjectiveId == ParentId) { return ApiResult.ParamIsNull(); } string msg = okrPeriodModule.SetOKRMyObjectiveParent(ObjectiveId, ParentId, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 取消对齐 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRMyObjectiveParentCancel() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int ObjectiveId = parms.GetInt("ObjectiveId", 0); int ParentId = parms.GetInt("ParentId", 0); if (ParentId <= 0) { return ApiResult.ParamIsNull("请传递对齐目标id"); } if (ObjectiveId <= 0) { return ApiResult.ParamIsNull("请传递当前目标id"); } string msg = okrPeriodModule.SgetOKRMyObjectiveParentCancel(ObjectiveId, ParentId, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } /// <summary> /// 获取他人的目标列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKROthersObjectiveDropList() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int PeriodId = parms.GetInt("PeriodId", 0);//周期id int UserId = parms.GetInt("UserId", 0);//他人id int ObjectiveId = parms.GetInt("ObjectiveId", 0);//当前目标 if (PeriodId <= 0) { return ApiResult.ParamIsNull("请传递周期id"); } if (UserId <= 0) { return ApiResult.ParamIsNull("请传递用户id"); } if (ObjectiveId <= 0) { return ApiResult.ParamIsNull("请传递当前目标id"); } if (UserId == userInfo.Id) { return ApiResult.Failed("只能对齐他人目标"); } var list = okrPeriodModule.GetOKROthersObjectiveDropList(PeriodId, ObjectiveId, UserId, userInfo); return ApiResult.Success("", list); } #endregion #region 权限控制 /// <summary> /// 获取权限控制列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRPermissionList() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int TargetId = parms.GetInt("TargetId", 0); int Type = parms.GetInt("Type", 0);// 1周期 2目标 3关键结果 if (TargetId <= 0) { return ApiResult.ParamIsNull("请传递当前目标id"); } var list = okrPeriodModule.GetOKRPermissionList(TargetId, Type, userInfo); return ApiResult.Success("", list.Select(x => new { x.Id, x.PermissionType, x.TargetId, x.Type, TypeName = x.Type.ToName(), x.SourceId, x.SourceName, x.State })); } /// <summary> /// 设置权限 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SgetOKRPermissionInfo() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int PermissionType = parms.GetInt("PermissionType", 0); int TargetId = parms.GetInt("TargetId", 0); string List = parms.GetStringValue("List"); if (PermissionType <= 0) { return ApiResult.ParamIsNull("请传递权限类型"); } if (TargetId <= 0) { return ApiResult.ParamIsNull("请传递目标值"); } if (string.IsNullOrEmpty(List)) { return ApiResult.ParamIsNull("请传递列表数据"); } List<RB_OKR_Permission_ViewModel> dmodel = JsonHelper.DeserializeObject<List<RB_OKR_Permission_ViewModel>>(List); foreach (var item in dmodel) { item.PermissionType = PermissionType; item.TargetId = TargetId; if (item.Type <= 0) { return ApiResult.ParamIsNull("请传递类型"); } if (item.SourceId <= 0) { return ApiResult.ParamIsNull("请传递来源id"); } if (item.State <= 0) { return ApiResult.ParamIsNull("请传递查看状态"); } item.Group_Id = userInfo.Group_Id; item.School_Id = userInfo.School_Id; item.CreateBy = userInfo.Id; item.CreateTime = DateTime.Now; item.UpdateBy = userInfo.Id; item.UpdateTime = DateTime.Now; } string msg = okrPeriodModule.SgetOKRPermissionInfo(PermissionType, TargetId, dmodel, userInfo); if (msg == "") { return ApiResult.Success(); } else { return ApiResult.Failed(msg); } } #endregion #region 左边人员列表 /// <summary> /// 获取我的人员列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRMyEmployeeList() { var userInfo = base.UserInfo; var obj = okrPeriodModule.GetOKRMyEmployeeList(userInfo); return ApiResult.Success("", obj); } /// <summary> /// 获取我的对齐人员列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRMyEmployeeAlignList() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int PeriodId = parms.GetInt("PeriodId", 0); if (PeriodId <= 0) { return ApiResult.ParamIsNull(); } var obj = okrPeriodModule.GetOKRMyEmployeeAlignList(PeriodId, userInfo); return ApiResult.Success("", obj); } /// <summary> /// 获取我的审核人员列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKRMyEmployeeAuditList() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int PeriodId = parms.GetInt("PeriodId", 0); if (PeriodId <= 0) { return ApiResult.ParamIsNull(); } var obj = okrPeriodModule.GetOKRMyEmployeeAuditList(PeriodId, userInfo); return ApiResult.Success("", obj); } #endregion #region 他人目标 /// <summary> /// 获取他人的目标列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetOKROthersObjectiveList() { var userInfo = base.UserInfo; JObject parms = JObject.Parse(RequestParm.Msg.ToString()); int PeriodId = parms.GetInt("PeriodId", 0); int UserId = parms.GetInt("UserId", 0); if (PeriodId <= 0) { return ApiResult.ParamIsNull("请传递周期id"); } if (UserId <= 0) { return ApiResult.ParamIsNull("请传递用户id"); } if (UserId == userInfo.Id) { return ApiResult.Failed("只能查看他人目标"); } var list = okrPeriodModule.GetOKROthersObjectiveList(PeriodId, UserId, userInfo); return ApiResult.Success("", list); } #endregion #region 评论+关注 #endregion #endregion #region okr评论管理 /// <summary> /// 获取评论分页列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetCommentPageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); var query = new RB_OKR_Comment_ViewModel() { School_Id = base.ParmJObj.GetInt("School_Id"), State = base.ParmJObj.GetInt("State", 0), PeriodId = base.ParmJObj.GetInt("PeriodId", 0) }; query.Group_Id = base.UserInfo.Group_Id; var list = okrPeriodModule.GetCommentPageList(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; item.CreateByIco = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.UserIcon ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } item.CreateTimeStr = StringHelper.DateFormatToString(item.CreateTime); } pageModel.Count = rowsCount; pageModel.PageData = list.Select(x => new { x.CreateByName,x.Id, x.CreateByIco, x.UpdateByName, x.Content, x.CreateTimeStr }); return ApiResult.Success(data: pageModel); } /// <summary> /// 新增评论状态 /// </summary> /// <returns></returns> public ApiResult SetComment() { var extModel = new RB_OKR_Comment_ViewModel() { School_Id = base.ParmJObj.GetInt("School_Id"), PeriodId = base.ParmJObj.GetInt("PeriodId"), Content = base.ParmJObj.GetStringValue("Content"), }; extModel.CreateBy = base.UserInfo.Id; extModel.State = 1; extModel.CreateTime = System.DateTime.Now; extModel.UpdateTime = System.DateTime.Now; extModel.UpdateBy = base.UserInfo.Id; extModel.Group_Id = base.UserInfo.Group_Id; bool flag = okrPeriodModule.SetOKRComment(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// <summary> /// 修改评论状态 /// </summary> /// <returns></returns> public ApiResult SetCommentStatus() { var extModel = new RB_OKR_Comment_ViewModel() { Id = base.ParmJObj.GetInt("Id"), State = base.ParmJObj.GetInt("State"), }; if (extModel.Id <= 0) { return ApiResult.ParamIsNull(message: "未获取到评论编号,请刷新页面重试!"); } if (extModel.State <= 0) { return ApiResult.ParamIsNull(message: "请传递评论状态!"); } extModel.UpdateBy = base.UserInfo.Id; bool flag = okrPeriodModule.SetOKRComment(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion } }