示例#1
0
        /// <summary>
        /// 根据主键  预算数据数据
        /// </summary>
        /// <returns>返回Json串</returns>
        public string GetBudgetMstInfo()
        {
            long   id      = Convert.ToInt64(System.Web.HttpContext.Current.Request.Params["id"]); //主表主键
            string tabtype = System.Web.HttpContext.Current.Request.Params["tabtype"];             //Tab类型

            switch (tabtype)
            {
            case "budgetmst":
                var findedresultmst = BudgetMstService.Find(id);

                FindedResult <PerformanceMstModel> resultmst = new FindedResult <PerformanceMstModel>();
                PerformanceMstModel modelmst = new PerformanceMstModel();
                if (findedresultmst.Data != null)
                {
                    modelmst.YSMstPhId               = findedresultmst.Data.PhId;
                    modelmst.FProjCode               = findedresultmst.Data.FProjCode;
                    modelmst.FProjName               = findedresultmst.Data.FProjName;
                    modelmst.FDeclarationUnit        = findedresultmst.Data.FDeclarationUnit;
                    modelmst.FDeclarationUnit_EXName = findedresultmst.Data.FDeclarationUnit_EXName;
                    modelmst.FDeclarationDept        = findedresultmst.Data.FDeclarationDept;
                    modelmst.FBudgetDept             = findedresultmst.Data.FBudgetDept;
                    modelmst.FBudgetDept_EXName      = findedresultmst.Data.FBudgetDept_EXName;
                    modelmst.FProjAttr               = findedresultmst.Data.FProjAttr;
                    modelmst.FDuration               = findedresultmst.Data.FDuration;
                    modelmst.FStartDate              = findedresultmst.Data.FStartDate;
                    modelmst.FEndDate                = findedresultmst.Data.FEndDate;
                    modelmst.FProjAmount             = findedresultmst.Data.FBudgetAmount;
                    modelmst.FIfPerformanceAppraisal = (int)findedresultmst.Data.FIfPerformanceAppraisal;
                    modelmst.FIfKeyEvaluation        = (int)findedresultmst.Data.FIfKeyEvaluation;
                    modelmst.FMeetingTime            = findedresultmst.Data.FMeetingTime;
                    modelmst.FMeetiingSummaryNo      = findedresultmst.Data.FMeetiingSummaryNo;
                    modelmst.FExpenseCategory        = findedresultmst.Data.FExpenseCategory;
                    modelmst.FPerformType            = findedresultmst.Data.FPerformType;
                }
                ;
                if (string.IsNullOrEmpty(findedresultmst.Data.FAccount))
                {
                    modelmst.FActualAmount = decimal.Round(0, 2);;
                }
                else
                {
                    modelmst.FActualAmount = decimal.Round(decimal.Parse(BudgetMstService.GetSJFSSbyXMCode(findedresultmst.Data.FAccount, modelmst.FProjCode)), 2);
                }
                //modelmst.FActualAmount = decimal.Round(decimal.Parse(BudgetMstService.GetSJFSSbyXMCode(findedresultmst.Data.FAccount, modelmst.FProjCode)),2);
                modelmst.FBalanceAmount = decimal.Round(modelmst.FProjAmount - modelmst.FActualAmount, 2);
                modelmst.FImplRate      = decimal.Round(modelmst.FActualAmount * 100 / modelmst.FProjAmount, 2);

                resultmst.Data   = modelmst;
                resultmst.Status = findedresultmst.Status;
                resultmst.Msg    = findedresultmst.Msg;


                return(DataConverterHelper.ResponseResultToJson(resultmst));

            case "budgetdtlbudgetdtl":
                var mst = BudgetMstService.Find(id);
                var findedresultbudgetdtlbudgetdtl = BudgetMstService.FindBudgetDtlBudgetDtlByForeignKey(id);
                var listDtl = findedresultbudgetdtlbudgetdtl.Data;

                //组装model
                List <PerformanceDtlBuDtlModel> dtlList = new List <PerformanceDtlBuDtlModel>();

                if (findedresultbudgetdtlbudgetdtl.Data.Count > 0)
                {
                    foreach (var item in listDtl)
                    {
                        var index = dtlList.FindIndex(t => t.FDtlCode == item.FDtlCode);

                        if (index != -1)
                        {
                            dtlList[index].FBudgetAmount += item.FAmount;
                        }
                        else
                        {
                            decimal FActualAmount = 0;
                            if (string.IsNullOrEmpty(mst.Data.FAccount))
                            {
                                FActualAmount = decimal.Round(0, 2);;
                            }
                            else
                            {
                                FActualAmount = decimal.Round(decimal.Parse(BudgetMstService.GetSJFSSbyMXCode(mst.Data.FAccount, item.FDtlCode)), 2);
                            }
                            //var FActualAmount = decimal.Round(decimal.Parse(BudgetMstService.GetSJFSSbyMXCode(mst.Data.FAccount, item.FDtlCode)),2);
                            //((parseFloat(upDate.FActualAmount) / parseFloat(upDate.FBudgetAmount)) * 100).toFixed(2)
                            var FImplRate = decimal.Round(FActualAmount * 100 / item.FBudgetAmount, 2);
                            PerformanceDtlBuDtlModel model = new PerformanceDtlBuDtlModel()
                            {
                                DelPhid                 = item.PhId,
                                FDtlCode                = item.FDtlCode,
                                FName                   = item.FName,
                                FSourceOfFunds          = item.FSourceOfFunds,
                                FSourceOfFunds_EXName   = item.FSourceOfFunds_EXName,
                                FExpensesChannel_EXName = item.FExpensesChannel_EXName,
                                FBudgetAmount           = item.FBudgetAmount,
                                FActualAmount           = FActualAmount,
                                FBalanceAmount          = decimal.Round(item.FBudgetAmount - FActualAmount, 2),
                                FImplRate               = FImplRate
                            };

                            dtlList.Add(model);
                        }
                    }
                }

                return(DataConverterHelper.EntityListToJson((IList <PerformanceDtlBuDtlModel>)dtlList, dtlList.Count));

            case "performancedtltarimpl":
                var results = BudgetMstService.FindBudgetDtlPerformTargetByForeignKey(id);
                IList <PerformanceDtlTarImplModel> tarImplList = PerformanceMstService.ConvertData(results.Data);
                return(DataConverterHelper.EntityListToJson(tarImplList, tarImplList.Count));

            default:
                FindedResult findedresultother = new FindedResult();
                return(DataConverterHelper.ResponseResultToJson(findedresultother));
            }
        }
示例#2
0
        /// <summary>
        /// 获取预算数据
        /// </summary>
        /// <returns></returns>
        public string GetBudgetMstList()
        {
            //string clientJsonQuery = System.Web.HttpContext.Current.Request.Params["queryfilter"];//查询条件
            //Dictionary<string, object> dicWhere = DataConverterHelper.ConvertToDic(clientJsonQuery);//查询条件转Dictionary

            var workType     = System.Web.HttpContext.Current.Request.Params["workType"]; //业务种类(年初,年中,特殊)// c - 年初,z - 年中
            var userId       = System.Web.HttpContext.Current.Request.Params["userId"];
            var ShowAll      = System.Web.HttpContext.Current.Request.Params["ShowAll"];
            var FBudgetDept  = System.Web.HttpContext.Current.Request.Params["FBudgetDept"];
            var dicWhereDept = new Dictionary <string, object>();
            var dicWhere     = new Dictionary <string, object>();

            if (userId != null && !string.IsNullOrEmpty(userId))
            {
                new CreateCriteria(dicWhereDept)
                .Add(ORMRestrictions <string> .Eq("Dwdm", userId)).Add(ORMRestrictions <string> .Eq("Dylx", "97")); //闭区间
                var           deptList = CorrespondenceSettingsService.Find(dicWhereDept);
                List <string> deptL    = new List <string>();
                for (var i = 0; i < deptList.Data.Count; i++)
                {
                    deptL.Add(deptList.Data[i].Dydm);
                }
                new CreateCriteria(dicWhere).Add(ORMRestrictions <IList <String> > .In("FBudgetDept", deptL));
            }

            if (ShowAll == "1")
            {
                new CreateCriteria(dicWhere).Add(ORMRestrictions <List <string> > .In("FApproveStatus", new List <string>()
                {
                    "2", "3"
                }));
            }
            else
            {
                new CreateCriteria(dicWhere).Add(ORMRestrictions <string> .Eq("FApproveStatus", "3"));   //审核通过
            }
            if (!string.IsNullOrEmpty(FBudgetDept))
            {
                new CreateCriteria(dicWhere).Add(ORMRestrictions <string> .Eq("FBudgetDept", FBudgetDept));
            }

            new CreateCriteria(dicWhere)
            .Add(ORMRestrictions <Enum> .Eq("FIfPerformanceAppraisal", EnumYesNo.Yes))             //是否绩效评价
            .Add(ORMRestrictions <int> .Eq("FLifeCycle", 0))                                       //版本标识
            .Add(ORMRestrictions <string> .Eq("FMidYearChange", "0"));                             //单据调整判断 (0表示最新的数据)



            DataStoreParam storeparam = this.GetDataStoreParam();
            var            result     = BudgetMstService.LoadWithPage(storeparam.PageIndex, storeparam.PageSize, dicWhere, new string[] { "NgInsertDt Desc", "NgUpdateDt Desc" });

            foreach (var data in result.Results)
            {
                if (string.IsNullOrEmpty(data.FAccount))
                {
                    data.FActualAmount = decimal.Round(0, 2);;
                }
                else
                {
                    data.FActualAmount = decimal.Round(decimal.Parse(BudgetMstService.GetSJFSSbyXMCode(data.FAccount, data.FProjCode)), 2);
                }
                //data.FActualAmount = decimal.Round(decimal.Parse(BudgetMstService.GetSJFSSbyXMCode(data.FAccount, data.FProjCode)),2);
                data.FBalanceAmount = decimal.Round(data.FProjAmount - data.FActualAmount, 2);
                data.FImplRate      = decimal.Round(data.FActualAmount * 100 / data.FProjAmount, 2);
            }

            return(DataConverterHelper.EntityListToJson <BudgetMstModel>(result.Results, (Int32)result.TotalItems));
        }