Example #1
0
        public IHttpActionResult GetResMonthData(long NSMonFeeID, int currentPage, int pageSize)
        {
            BaseRequest <MonthFeeFilter> request = new BaseRequest <MonthFeeFilter>()
            {
                CurrentPage = currentPage, PageSize = pageSize, Data = { NSMonFeeID = NSMonFeeID }
            };
            var response = service.GetResMonthData(request);

            return(Ok(response));
        }
Example #2
0
        public async Task <IHttpActionResult> Get(int CurrentPage, int PageSize, DateTime?startDate = null, DateTime?endDate = null, string mark = "", string nsno = "")
        {
            switch (mark)
            {
            case "careType":
                var FeeByCareTypeReportResponse = new BaseResponse <FeeReportComData>();
                FeeByCareTypeReportResponse.Data = service.GetFeeByCareTypeReport(startDate, endDate);
                if (FeeByCareTypeReportResponse.Data == null)
                {
                    FeeByCareTypeReportResponse.Data = new FeeReportComData();
                }
                FeeByCareTypeReportResponse.Data.reportType = "careType";
                FeeByCareTypeReportResponse.RecordsCount    = FeeByCareTypeReportResponse.Data.DataDetail.Count;
                if (PageSize > 0)
                {
                    var count = FeeByCareTypeReportResponse.RecordsCount / PageSize;
                    if (FeeByCareTypeReportResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeByCareTypeReportResponse.PagesCount      = count;
                    FeeByCareTypeReportResponse.Data.DataDetail = FeeByCareTypeReportResponse.Data.DataDetail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeByCareTypeReportResponse.PagesCount = 1;
                }
                return(Ok(FeeByCareTypeReportResponse));

            case "disease":
                var FeeByDiseaseReportResponse = new BaseResponse <FeeByDiseaseReportData>();

                FeeByDiseaseReportResponse.Data = service.GetFeeByDiseaseReport(startDate, endDate);
                if (FeeByDiseaseReportResponse.Data == null)
                {
                    FeeByDiseaseReportResponse.Data = new FeeByDiseaseReportData();
                }
                FeeByDiseaseReportResponse.Data.reportType      = "disease";
                FeeByDiseaseReportResponse.Data.SumCountyResNum = FeeByDiseaseReportResponse.Data.DataDetail.Sum(m => m.ResNum);
                FeeByDiseaseReportResponse.Data.SumCountyFee    = FeeByDiseaseReportResponse.Data.DataDetail.Sum(m => m.Fee);
                FeeByDiseaseReportResponse.Data.SumCountyNciPay = FeeByDiseaseReportResponse.Data.DataDetail.Sum(m => m.NciPay);
                FeeByDiseaseReportResponse.Data.SumTotalResNum  = FeeByDiseaseReportResponse.Data.DataDetail.Sum(m => m.ResNum);
                FeeByDiseaseReportResponse.Data.SumTotalFee     = FeeByDiseaseReportResponse.Data.DataDetail.Sum(m => m.Fee);
                FeeByDiseaseReportResponse.Data.SumTotalNciPay  = FeeByDiseaseReportResponse.Data.DataDetail.Sum(m => m.NciPay);
                FeeByDiseaseReportResponse.RecordsCount         = FeeByDiseaseReportResponse.Data.DataDetail.Count;
                if (PageSize > 0)
                {
                    var count = FeeByDiseaseReportResponse.RecordsCount / PageSize;
                    if (FeeByDiseaseReportResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeByDiseaseReportResponse.PagesCount      = count;
                    FeeByDiseaseReportResponse.Data.DataDetail = FeeByDiseaseReportResponse.Data.DataDetail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeByDiseaseReportResponse.PagesCount = 1;
                }
                return(Ok(FeeByDiseaseReportResponse));

            case "ns":
                var FeeByOrgReportResponse = new BaseResponse <FeeReportComData>();

                FeeByOrgReportResponse.Data = service.GetFeeByOrgReport(startDate, endDate);
                if (FeeByOrgReportResponse.Data == null)
                {
                    FeeByOrgReportResponse.Data = new FeeReportComData();
                }
                FeeByOrgReportResponse.Data.reportType = "ns";
                FeeByOrgReportResponse.RecordsCount    = FeeByOrgReportResponse.Data.DataDetail.Count;
                if (PageSize > 0)
                {
                    var count = FeeByOrgReportResponse.RecordsCount / PageSize;
                    if (FeeByOrgReportResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeByOrgReportResponse.PagesCount      = count;
                    FeeByOrgReportResponse.Data.DataDetail = FeeByOrgReportResponse.Data.DataDetail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeByOrgReportResponse.PagesCount = 1;
                }
                return(Ok(FeeByOrgReportResponse));

            case "govArea":
                var FeeByRegionReportResponse = new BaseResponse <FeeReportComData>();
                FeeByRegionReportResponse.Data = service.GetFeeByRegionReport(startDate, endDate);
                if (FeeByRegionReportResponse.Data == null)
                {
                    FeeByRegionReportResponse.Data = new FeeReportComData();
                }
                FeeByRegionReportResponse.Data.reportType = "govArea";
                FeeByRegionReportResponse.RecordsCount    = FeeByRegionReportResponse.Data.DataDetail.Count;
                if (PageSize > 0)
                {
                    var count = FeeByRegionReportResponse.RecordsCount / PageSize;
                    if (FeeByRegionReportResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeByRegionReportResponse.PagesCount      = count;
                    FeeByRegionReportResponse.Data.DataDetail = FeeByRegionReportResponse.Data.DataDetail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeByRegionReportResponse.PagesCount = 1;
                }
                return(Ok(FeeByRegionReportResponse));

            case "lvl":
                var FeeByLevelReportResponse = new BaseResponse <FeeReportComData>();
                FeeByLevelReportResponse.Data = service.GetFeeByLevelReport(startDate, endDate);
                if (FeeByLevelReportResponse.Data == null)
                {
                    FeeByLevelReportResponse.Data = new FeeReportComData();
                }
                FeeByLevelReportResponse.Data.reportType = "lvl";
                FeeByLevelReportResponse.RecordsCount    = FeeByLevelReportResponse.Data.DataDetail.Count;
                if (PageSize > 0)
                {
                    var count = FeeByLevelReportResponse.RecordsCount / PageSize;
                    if (FeeByLevelReportResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeByLevelReportResponse.PagesCount      = count;
                    FeeByLevelReportResponse.Data.DataDetail = FeeByLevelReportResponse.Data.DataDetail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeByLevelReportResponse.PagesCount = 1;
                }
                return(Ok(FeeByLevelReportResponse));

            case "feeDtl":
                var FeeDetailDataResponse = new BaseResponse <FeeDetailData>();
                FeeDetailDataResponse.ResultMessage = "feeDtl";
                FeeDetailDataResponse.Data          = service.GetFeeDetailReport(startDate, endDate);
                FeeDetailDataResponse.RecordsCount  = FeeDetailDataResponse.Data.DataDetail.Count;
                if (PageSize > 0)
                {
                    var count = FeeDetailDataResponse.RecordsCount / PageSize;
                    if (FeeDetailDataResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeDetailDataResponse.PagesCount      = count;
                    FeeDetailDataResponse.Data.DataDetail = FeeDetailDataResponse.Data.DataDetail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeDetailDataResponse.PagesCount = 1;
                }
                return(Ok(FeeDetailDataResponse));

            case "feeTreat":
                var FeeTreatMentResponse = new BaseResponse <FeeByCareTypeMain>();
                FeeTreatMentResponse.Data = service.GetFeeByCareTypeMainReport(startDate, endDate);
                if (FeeTreatMentResponse.Data == null)
                {
                    FeeTreatMentResponse.Data = new FeeByCareTypeMain();
                }
                FeeTreatMentResponse.Data.reportType = "feeTreat";
                FeeTreatMentResponse.RecordsCount    = FeeTreatMentResponse.Data.Detail.Count;
                if (PageSize > 0)
                {
                    var count = FeeTreatMentResponse.RecordsCount / PageSize;
                    if (FeeTreatMentResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeTreatMentResponse.PagesCount  = count;
                    FeeTreatMentResponse.Data.Detail = FeeTreatMentResponse.Data.Detail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeTreatMentResponse.PagesCount = 1;
                }
                return(Ok(FeeTreatMentResponse));

            case "feeApproval":
                var FeeApprovalResponse = new BaseResponse <FeeByCareTypeMain>();
                FeeApprovalResponse.Data            = service.GetFeeByCareTypeMainReport(startDate, endDate);
                FeeApprovalResponse.Data.reportType = "feeApproval";
                FeeApprovalResponse.RecordsCount    = FeeApprovalResponse.Data.Detail.Count;
                if (PageSize > 0)
                {
                    var count = FeeApprovalResponse.RecordsCount / PageSize;
                    if (FeeApprovalResponse.RecordsCount % PageSize > 0)
                    {
                        count += 1;
                    }
                    FeeApprovalResponse.PagesCount  = count;
                    FeeApprovalResponse.Data.Detail = FeeApprovalResponse.Data.Detail.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                }
                else
                {
                    FeeApprovalResponse.PagesCount = 1;
                }
                return(Ok(FeeApprovalResponse));

            case "MonthFee":
                BaseResponse <object> response = new BaseResponse <object>();
                var         sDate   = startDate.Value.ToString("yyyy-MM");
                var         eDate   = endDate.Value.ToString("yyyy-MM");
                BaseRequest request = new BaseRequest()
                {
                    CurrentPage = CurrentPage, PageSize = PageSize
                };
                var resTa = ltcService.GetResMonthData(request, sDate, eDate, nsno) as BaseResponse <IList <TreatmentAccount> >;
                response.PagesCount   = resTa.PagesCount;
                response.RecordsCount = resTa.RecordsCount;
                List <PrintMonthFee> list = new List <PrintMonthFee>();
                var result = await HttpClientHelper.NciHttpClient.GetAsync("/api/Ipd?nsno=" + nsno);

                var resIpd = result.Content.ReadAsAsync <List <Ipdregout> >().Result;
                try
                {
                    list = service.GetPrintData(resTa, resIpd);
                }
                catch
                {
                    return(Ok(response));
                }
                object obj = new
                {
                    dataList     = list,
                    tHospDay     = list.Sum(s => s.HospDay),
                    tTotalAmount = list.Sum(s => s.TotalAmount),
                    tNCIPay      = list.Sum(s => s.NCIPay)
                };
                response.Data = obj;
                return(Ok(response));

            default:
                var ResultResponse = new BaseResponse();
                ResultResponse.ResultCode    = -1;
                ResultResponse.ResultMessage = "请先选择报表名称!";
                return(Ok(ResultResponse));
            }
        }
Example #3
0
        protected async override System.Threading.Tasks.Task CreatFormatter()
        {
            Dictionary <string, string> dic = new Dictionary <string, string>()
            {
                { "1", "巨鹿县医院" }, { "3", "巨鹿祈康医院" },
                { "2", "巨鹿健民医院" }
            };
            IReportService service    = IOCContainer.Instance.Resolve <IReportService>();
            ILtcService    ltcService = IOCContainer.Instance.Resolve <ILtcService>();
            var            sDate      = StartTime.ToString("yyyy-MM");
            var            eDate      = EndTime.ToString("yyyy-MM");
            BaseResponse <IList <TreatmentAccount> > res = new BaseResponse <IList <TreatmentAccount> >();
            BaseRequest request = new BaseRequest()
            {
                CurrentPage = 1, PageSize = 1000
            };

            res = ltcService.GetResMonthData(request, sDate, eDate, NsId) as BaseResponse <IList <TreatmentAccount> >;
            List <PrintMonthFee> list   = new List <PrintMonthFee>();
            List <Ipdregout>     resIpd = new List <Ipdregout>();

            try
            {
                var result = await HttpClientHelper.NciHttpClient.GetAsync("/api/Ipd?nsno=" + NsId);

                resIpd = result.Content.ReadAsAsync <List <Ipdregout> >().Result;
            }
            catch
            {
                throw new NOContactException();
            }
            try
            {
                list = service.GetPrintData(res, resIpd);
            }
            catch
            {
                throw new NoDataException();
            }

            var parameterContainer = new WorkbookParameterContainer();

            parameterContainer.Load(TemplateFormatterPath);
            SheetParameterContainer sheetContainer = parameterContainer["Sheet1"];
            var dataFormatter = new List <ElementFormatter>();

            dataFormatter.Add(new CellFormatter(sheetContainer["Org"], "单位:" + dic[SecurityHelper.CurrentPrincipal.OrgId] + "  " + GetOrgName(SecurityHelper.CurrentPrincipal.OrgId)));
            dataFormatter.Add(new CellFormatter(sheetContainer["Date"], "核算时间:"
                                                + DictHelper.GetFeeIntervalByYearMonth(StartTime.ToString("yyyy-MM")).StartDate + "-" + DictHelper.GetFeeIntervalByYearMonth(EndTime.ToString("yyyy-MM")).EndDate));
            dataFormatter.Add(new CellFormatter(sheetContainer["THospDay"], list.Sum(s => s.HospDay)));
            dataFormatter.Add(new CellFormatter(sheetContainer["TTotalAmount"], list.Sum(s => s.TotalAmount)));
            dataFormatter.Add(new CellFormatter(sheetContainer["TNCIPay"], list.Sum(s => s.NCIPay)));
            var indexNum       = 1;
            var tableFormatter = new TableFormatter <PrintMonthFee>(sheetContainer["Index"], list,
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["Index"], t => indexNum++),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["Name"], t => t.Name),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["Sex"], t => t.Sex),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["ResidentSSId"], t => t.ResidentSSId),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["BrithPlace"], t => t.BrithPlace),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["RsStatus"], t => t.RsStatus),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["DiseaseDiag"], t => t.DiseaseDiag),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["CareType"], t => t.CareTypeId),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["CertStartTime"], t => t.EvaluationTime.Value.ToString("yyyy-MM-dd")),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["InDate"], t => t.InDate.Value.ToString("yyyy-MM-dd")),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["OutDate"], t => t.OutDate.Value.ToString("yyyy-MM-dd")),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["HospDay"], t => t.HospDay),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["TotalAmount"], t => t.TotalAmount),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["NCIPayLevel"], t => t.NCIPayLevel),
                                                                    new CellFormatter <PrintMonthFee>(sheetContainer["NCIPay"], t => t.NCIPay));

            dataFormatter.Add(tableFormatter);
            Formatter = new SheetFormatter("Sheet1", dataFormatter.ToArray());
        }