/// <summary> /// 通过外键值获取PerformanceDtlTarImpl明细数据 /// </summary> /// <param name="id">外键值</param> /// <returns></returns> public FindedResults <PerformanceDtlTarImplModel> FindPerformanceDtlTarImplByForeignKey <TValType>(TValType id) { FindedResults <PerformanceDtlTarImplModel> results = PerformanceDtlTarImplFacade.FindByForeignKey(id); if (results != null) { var data = results.Data; for (int i = 0; i < data.Count; i++) { PerformanceDtlTarImplModel model = data[i]; string typeCode = model.FTargetTypeCode; string classCode = model.FTargetClassCode; Dictionary <string, object> dicWhere1 = new Dictionary <string, object>(); Dictionary <string, object> dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere1).Add(ORMRestrictions <string> .Eq("FCode", typeCode)); FindedResults <PerformEvalTargetTypeModel> typeModel = PerformEvalTargetTypeFacade.Find(dicWhere1); new CreateCriteria(dicWhere2).Add(ORMRestrictions <string> .Eq("FCode", classCode)); FindedResults <PerformEvalTargetClassModel> classModel = PerformEvalTargetClassFacade.Find(dicWhere2); if (typeModel != null && typeModel.Data.Count > 0) { model.FTargetTypeCode = typeModel.Data[0].FName; } if (classModel != null && classModel.Data.Count > 0) { model.FTargetClassCode = classModel.Data[0].FName; } } } return(results); }
/// <summary> /// 考虑到存在指标类别、类型名称转代码的问题 /// 合并绩效目标实现情况数据,从预算明细表获取表格模板数据,从绩效明细表获取自评完成值和自评得分 /// </summary> /// <param name="budgetDtlPerformTarget">预算绩效目标实现集合</param> /// <param name="performanceDtlTarImpl">绩效目标实现情况集合</param> /// <returns></returns> public List <PerformanceDtlTarImplModel> ConvertSaveData(IList <BudgetDtlPerformTargetModel> budgetDtlPerformTarget, IList <PerformanceDtlTarImplModel> performanceDtlTarImpl) { List <PerformanceDtlTarImplModel> result = new List <PerformanceDtlTarImplModel>(); if (budgetDtlPerformTarget != null && budgetDtlPerformTarget.Count > 0) { if (performanceDtlTarImpl != null && performanceDtlTarImpl.Count > 0) { for (int i = 0; i < performanceDtlTarImpl.Count; i++) { PerformanceDtlTarImplModel performanceDtlTar = performanceDtlTarImpl[i]; BudgetDtlPerformTargetModel budgetDtlPerform = budgetDtlPerformTarget.First(t => t.FTargetName == performanceDtlTar.FTargetName); performanceDtlTarImpl[i].FTargetTypeCode = budgetDtlPerform.FTargetTypeCode; performanceDtlTarImpl[i].FTargetClassCode = budgetDtlPerform.FTargetClassCode; result.Add(performanceDtlTar); } } } return(result); }
/// <summary> /// BudgetDtlPerformTargetModel转换成PerformanceDtlTarImplModel /// </summary> /// <param name="list">预算绩效目标实现集合</param> /// <returns></returns> public IList <PerformanceDtlTarImplModel> ConvertData(IList <BudgetDtlPerformTargetModel> list) { IList <PerformanceDtlTarImplModel> result = new List <PerformanceDtlTarImplModel>(); if (list != null) { for (int i = 0; i < list.Count; i++) { BudgetDtlPerformTargetModel budgetModel = list[i]; PerformanceDtlTarImplModel performModel = new PerformanceDtlTarImplModel(); performModel.XmPhid = budgetModel.XmPhId; performModel.FTargetCode = budgetModel.FTargetCode; performModel.FTargetName = budgetModel.FTargetName; performModel.FTargetContent = budgetModel.FTargetContent; performModel.FTargetValue = budgetModel.FTargetValue; performModel.FTargetWeight = Convert.ToDecimal(budgetModel.FTargetWeight); performModel.FTargetDescribe = budgetModel.FTargetDescribe; //代码转名称 string typeCode = budgetModel.FTargetTypeCode; string classCode = budgetModel.FTargetClassCode; Dictionary <string, object> dicWhere1 = new Dictionary <string, object>(); Dictionary <string, object> dicWhere2 = new Dictionary <string, object>(); new CreateCriteria(dicWhere1).Add(ORMRestrictions <string> .Eq("FCode", typeCode)); FindedResults <PerformEvalTargetTypeModel> typeModel = PerformEvalTargetTypeFacade.Find(dicWhere1); new CreateCriteria(dicWhere2).Add(ORMRestrictions <string> .Eq("FCode", classCode)); FindedResults <PerformEvalTargetClassModel> classModel = PerformEvalTargetClassFacade.Find(dicWhere2); if (typeModel != null && typeModel.Data.Count > 0) { performModel.FTargetTypeCode = typeModel.Data[0].FName; } if (classModel != null && classModel.Data.Count > 0) { performModel.FTargetClassCode = classModel.Data[0].FName; } performModel.FIfCustom = budgetModel.FIfCustom; result.Add(performModel); } } return(result); }
/// <summary> /// 获取新的绩效明细 /// </summary> /// <param name="performEvalTargetTypes">该组织绩效指标类型集合</param> /// <param name="projectDtlPerformTarget">单个绩效明细</param> /// <param name="targetTypeCode">父节点</param> /// <param name="num">数量</param> /// <returns></returns> public PerformanceDtlTarImplModel GetNewProPerformTarget(IList <PerformEvalTargetTypeModel> performEvalTargetTypes, PerformanceDtlTarImplModel projectDtlPerformTarget, string targetTypeCode, int num) { if (projectDtlPerformTarget != null && performEvalTargetTypes != null && performEvalTargetTypes.Count > 0 && projectDtlPerformTarget.FTargetTypePerantCode != targetTypeCode) { if (projectDtlPerformTarget.FTargetTypeCode.Length - num * 2 >= 0) { var type = performEvalTargetTypes.ToList().Find(t => t.FCode == projectDtlPerformTarget.FTargetTypeCode.Substring(0, projectDtlPerformTarget.FTargetTypeCode.Length - num * 2)); if (type != null) { if (projectDtlPerformTarget.TypeCount == 1) { projectDtlPerformTarget.FTargetTypeCode2 = type.FCode; projectDtlPerformTarget.FTargetTypeName2 = type.FName; projectDtlPerformTarget.TypeCount++; projectDtlPerformTarget.FTargetTypePerantCode = type.FCode; num++; GetNewProPerformTarget(performEvalTargetTypes, projectDtlPerformTarget, targetTypeCode, num); } else if (projectDtlPerformTarget.TypeCount == 2) { projectDtlPerformTarget.FTargetTypeCode3 = type.FCode; projectDtlPerformTarget.FTargetTypeName3 = type.FName; projectDtlPerformTarget.TypeCount++; projectDtlPerformTarget.FTargetTypePerantCode = type.FCode; num++; GetNewProPerformTarget(performEvalTargetTypes, projectDtlPerformTarget, targetTypeCode, num); } else if (projectDtlPerformTarget.TypeCount == 3) { projectDtlPerformTarget.FTargetTypeCode4 = type.FCode; projectDtlPerformTarget.FTargetTypeName4 = type.FName; projectDtlPerformTarget.TypeCount++; projectDtlPerformTarget.FTargetTypePerantCode = type.FCode; num++; GetNewProPerformTarget(performEvalTargetTypes, projectDtlPerformTarget, targetTypeCode, num); } else if (projectDtlPerformTarget.TypeCount == 4) { projectDtlPerformTarget.FTargetTypeCode5 = type.FCode; projectDtlPerformTarget.FTargetTypeName5 = type.FName; projectDtlPerformTarget.TypeCount++; projectDtlPerformTarget.FTargetTypePerantCode = type.FCode; num++; GetNewProPerformTarget(performEvalTargetTypes, projectDtlPerformTarget, targetTypeCode, num); } else { } } } } return(projectDtlPerformTarget); }
/// <summary> /// 根据绩效主键获取单个绩效的数据 /// </summary> /// <param name="phid">绩效主键</param> /// <returns></returns> public PerformanceAllData GetPerformanceMst(long phid) { PerformanceAllData performanceAll = new PerformanceAllData(); var result = this.PerformanceMstFacade.Find(t => t.PhId == phid).Data; if (result != null && result.Count > 0) { performanceAll.PerformanceMst = result[0]; } else { throw new Exception("绩效查询失败!"); } performanceAll.PerformanceDtlBuDtls = this.PerformanceDtlBuDtlFacade.Find(t => t.MstPhid == phid).Data; if (performanceAll.PerformanceDtlBuDtls != null && performanceAll.PerformanceDtlBuDtls.Count > 0) { RichHelpDac helpdac = new RichHelpDac(); helpdac.CodeToName <PerformanceDtlBuDtlModel>(performanceAll.PerformanceDtlBuDtls, "FSourceOfFunds", "FSourceOfFunds_EXName", "GHSourceOfFunds", ""); } performanceAll.PerformanceDtlTarImpls = this.PerformanceDtlTarImplFacade.Find(t => t.MstPhid == phid).Data; if (performanceAll.PerformanceDtlTarImpls != null && performanceAll.PerformanceDtlTarImpls.Count > 0) { //根据申报组织获取绩效基础数据,为后续数据准备 var allTypes = this.PerformEvalTargetTypeFacade.Find(t => t.Orgcode == result[0].FDeclarationUnit).Data; var allClasses = this.PerformEvalTargetClassFacade.Find(t => t.Orgcode == result[0].FDeclarationUnit).Data; //绩效主表的绩效数据 performanceAll.PerformanceMst.FTargetTypeCode = performanceAll.PerformanceDtlTarImpls[0].FTargetTypeCode; if (allTypes != null && allTypes.Count > 0) { var typeModel1 = allTypes.ToList().FindAll(t => t.FCode == performanceAll.PerformanceDtlTarImpls[0].FTargetTypeCode); if (typeModel1 != null && typeModel1.Count > 0) { performanceAll.PerformanceMst.FTargetTypeCode_EXName = typeModel1[0].FName; } } //绩效单据的绩效数据 for (int i = 0; i < performanceAll.PerformanceDtlTarImpls.Count; i++) { PerformanceDtlTarImplModel model = performanceAll.PerformanceDtlTarImpls[i]; string typeCode = model.FTargetTypeCode; string classCode = model.FTargetClassCode; //Dictionary<string, object> dicWhere1 = new Dictionary<string, object>(); //Dictionary<string, object> dicWhere2 = new Dictionary<string, object>(); //new CreateCriteria(dicWhere1).Add(ORMRestrictions<string>.Eq("FCode", typeCode)); //FindedResults<PerformEvalTargetTypeModel> typeModel = PerformEvalTargetTypeFacade.Find(dicWhere1); //new CreateCriteria(dicWhere2).Add(ORMRestrictions<string>.Eq("FCode", classCode)); //FindedResults<PerformEvalTargetClassModel> classModel = PerformEvalTargetClassFacade.Find(dicWhere2); if (allTypes != null && allTypes.Count > 0) { var typeModel = allTypes.ToList().FindAll(t => t.FCode == typeCode); if (typeModel != null && typeModel.Count > 0) { model.FTargetTypeName = typeModel[0].FName; } } if (allClasses != null && allClasses.Count > 0) { var classModel = allClasses.ToList().FindAll(t => t.FCode == classCode); if (classModel != null && classModel.Count > 0) { model.FTargetClassName = classModel[0].FName; } } } } IList <OrganizeModel> organizes = this.OrganizationFacade.Find(t => t.OCode == performanceAll.PerformanceMst.FDeclarationUnit).Data; if (organizes != null && organizes.Count > 0) { OrganizeModel organize = organizes[0]; performanceAll.PerformanceDtlTarImpls = this.PerformanceMstFacade.GetNewProPerformTargets(performanceAll.PerformanceDtlTarImpls.ToList(), performanceAll.PerformanceMst.FPerformType, organize.PhId, organize.OCode); } //var contexts = this.PerformanceDtlTextContFacade.Find(t => t.MstPhid == phid).Data; //if(contexts != null && contexts.Count > 0) //{ // performanceAll.PerformanceDtlTextCont = contexts[0]; //} performanceAll.PerformanceDtlTextConts = this.PerformanceDtlTextContFacade.Find(t => t.MstPhid == phid).Data; performanceAll.ThirdAttachmentModels = this.ThirdAttachmentFacade.Find(t => t.MstPhid == phid).Data; if (performanceAll.ThirdAttachmentModels != null && performanceAll.ThirdAttachmentModels.Count > 0) { RichHelpDac helpdac = new RichHelpDac(); helpdac.CodeToName <ThirdAttachmentModel>(performanceAll.ThirdAttachmentModels, "FDeclarationUnit", "FDeclarationUnit_EXName", "sb_orglist", ""); var phids = performanceAll.ThirdAttachmentModels.Select(t => t.PhId).Distinct().ToList(); var allAttachs = this.QtAttachmentFacade.Find(t => phids.Contains(t.RelPhid) && t.BTable == "JX3_THIRDATTACHMENT").Data; if (allAttachs != null && allAttachs.Count > 0) { foreach (var third in performanceAll.ThirdAttachmentModels) { third.ThirdQtAttachments = allAttachs.ToList().FindAll(t => t.RelPhid == third.PhId); } } } performanceAll.QtAttachments = this.QtAttachmentFacade.Find(t => t.RelPhid == phid && t.BTable == "JX3_PERFORMANCEMST").Data; //performanceAll.ThirdQtAttachments = this.QtAttachmentFacade.Find(t => t.RelPhid == phid && t.BTable == "JX3_THIRDATTACHMENT").Data; return(performanceAll); }
/// <summary> /// 将预算表中的BudgetDtlPerformTargetModel集合组装成绩效的PerformanceDtlTarImplModel集合 /// </summary> /// <param name="list">预算绩效集合</param> /// <param name="performanceMst">绩效主对象</param> /// <returns></returns> public IList <PerformanceDtlTarImplModel> ConvertData2(IList <BudgetDtlPerformTargetModel> list, PerformanceMstModel performanceMst) { IList <PerformanceDtlTarImplModel> result = new List <PerformanceDtlTarImplModel>(); if (list != null && list.Count > 0) { //根据申报组织获取绩效基础数据,为后续数据准备 var allTypes = this.PerformEvalTargetTypeFacade.Find(t => t.Orgcode == performanceMst.FDeclarationUnit).Data; var allClasses = this.PerformEvalTargetClassFacade.Find(t => t.Orgcode == performanceMst.FDeclarationUnit).Data; for (int i = 0; i < list.Count; i++) { BudgetDtlPerformTargetModel budgetModel = list[i]; PerformanceDtlTarImplModel performModel = new PerformanceDtlTarImplModel(); performModel.XmPhid = budgetModel.XmPhId; performModel.FTargetCode = budgetModel.FTargetCode; performModel.FTargetName = budgetModel.FTargetName; performModel.FTargetContent = budgetModel.FTargetContent; performModel.FTargetValue = budgetModel.FTargetValue; performModel.FTargetWeight = Convert.ToDecimal(budgetModel.FTargetWeight); performModel.FTargetDescribe = budgetModel.FTargetDescribe; performModel.FTargetTypeCode = budgetModel.FTargetTypeCode; performModel.FTargetClassCode = budgetModel.FTargetClassCode; //代码转名称 string typeCode = budgetModel.FTargetTypeCode; string classCode = budgetModel.FTargetClassCode; if (allTypes != null && allTypes.Count > 0) { var typeModel = allTypes.ToList().FindAll(t => t.FCode == typeCode); if (typeModel != null && typeModel.Count > 0) { performModel.FTargetTypeName = typeModel[0].FName; } } if (allClasses != null && allClasses.Count > 0) { var classModel = allClasses.ToList().FindAll(t => t.FCode == classCode); if (classModel != null && classModel.Count > 0) { performModel.FTargetClassName = classModel[0].FName; } } //Dictionary<string, object> dicWhere1 = new Dictionary<string, object>(); //Dictionary<string, object> dicWhere2 = new Dictionary<string, object>(); //new CreateCriteria(dicWhere1).Add(ORMRestrictions<string>.Eq("FCode", typeCode)); //FindedResults<PerformEvalTargetTypeModel> typeModel = PerformEvalTargetTypeFacade.Find(dicWhere1); //new CreateCriteria(dicWhere2).Add(ORMRestrictions<string>.Eq("FCode", classCode)); //FindedResults<PerformEvalTargetClassModel> classModel = PerformEvalTargetClassFacade.Find(dicWhere2); //if (typeModel != null && typeModel.Data.Count > 0) //{ // performModel.FTargetTypeCode = typeModel.Data[0].FName; //} //if (classModel != null && classModel.Data.Count > 0) //{ // performModel.FTargetClassCode = classModel.Data[0].FName; //} performModel.FIfCustom = budgetModel.FIfCustom; result.Add(performModel); } } return(result); }