Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
 /// <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);
 }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }