Example #1
0
 public void Initialize(StoreStatistics lastStats, ulong lastCommitId, Action statsUpdateAction)
 {
     if (lastStats == null)
     {
         _jobCounter          = 0;
         _lastStatsUpdateTime = DateTime.UtcNow;
     }
     else
     {
         _jobCounter          = (int)(lastCommitId - lastStats.CommitNumber);
         _lastStatsUpdateTime = lastStats.CommitTime;
     }
     _statsUpdateAction = statsUpdateAction;
 }
Example #2
0
        private void btnStoreReportStatistics_Click(object sender, EventArgs e)
        {
            DateTime startTime = dtpStartTime.Value.Date;
            DateTime endTime   = dtpEndTime.Value.Date.AddDays(1);

            Dictionary <string, List <DoctorStatistics> > dictionary = _importFileService.GetStoreDoctorDetialDic(startTime, endTime);

            List <StoreStatistics> storeStatisticsList = new List <StoreStatistics>();

            dgvStatistics.Rows.Clear();

            foreach (var item in dictionary)
            {
                string storeName = item.Key;

                List <DoctorStatistics> doctorStatisticsList = dictionary[item.Key];
                foreach (var doctorStatistics in doctorStatisticsList)
                {
                    StoreStatistics storeStatistics = new StoreStatistics();

                    storeStatistics.StoreName  = storeName;
                    storeStatistics.DoctorName = doctorStatistics.DoctorName;

                    storeStatistics.CTAuditCount     = doctorStatistics.CTAuditCount;
                    storeStatistics.CTDiagnosisCount = doctorStatistics.CTDiagnosisCount;
                    storeStatistics.CTCount          = doctorStatistics.CTCount;

                    storeStatistics.DRAuditCount     = doctorStatistics.DRAuditCount;
                    storeStatistics.DRDiagnosisCount = doctorStatistics.DRDiagnosisCount;
                    storeStatistics.DRCount          = doctorStatistics.DRCount;

                    storeStatistics.MRAuditCount     = doctorStatistics.MRAuditCount;
                    storeStatistics.MRDiagnosisCount = doctorStatistics.MRDiagnosisCount;
                    storeStatistics.MRCount          = doctorStatistics.MRCount;

                    storeStatisticsList.Add(storeStatistics);

                    dgvStatistics.Rows.Add(storeStatistics.StoreName, storeStatistics.DoctorName,
                                           storeStatistics.CTDiagnosisCount, storeStatistics.CTAuditCount, storeStatistics.CTCount,
                                           storeStatistics.MRDiagnosisCount, storeStatistics.MRAuditCount, storeStatistics.MRCount,
                                           storeStatistics.DRDiagnosisCount, storeStatistics.DRAuditCount, storeStatistics.DRCount);
                }
            }

            MessageBox.Show("按照门店生成报表成功!");
        }
Example #3
0
        private void btnRadiationDoctorReport_Click(object sender, EventArgs e)
        {
            DateTime startTime = dtpRadiationDoctorStartTime.Value.Date;
            DateTime endTime   = dtpRadiationDoctorEndTime.Value.Date.AddDays(1);

            Dictionary <string, List <DoctorStatistics> > dictionary = _importFileService.GetStoreDoctorDetialDic(startTime, endTime);

            List <DoctorStatistics> doctorStatisticsList = new List <DoctorStatistics>();

            dgvRadiationStoreDoctorPrice.Rows.Clear();
            dgvRadiationDoctorPrice.Rows.Clear();

            foreach (var item in dictionary)
            {
                string storeName = item.Key;

                List <DoctorStatistics> storeDoctorStatisticsList = dictionary[item.Key];
                foreach (var doctorStatistics in storeDoctorStatisticsList)
                {
                    StoreStatistics storeStatistics = new StoreStatistics();

                    storeStatistics.StoreName  = storeName;
                    storeStatistics.DoctorName = doctorStatistics.DoctorName;

                    storeStatistics.CTAuditCount     = doctorStatistics.CTAuditCount;
                    storeStatistics.CTDiagnosisCount = doctorStatistics.CTDiagnosisCount;
                    storeStatistics.CTCount          = doctorStatistics.CTCount;

                    storeStatistics.DRAuditCount     = doctorStatistics.DRAuditCount;
                    storeStatistics.DRDiagnosisCount = doctorStatistics.DRDiagnosisCount;
                    storeStatistics.DRCount          = doctorStatistics.DRCount;

                    storeStatistics.MRAuditCount     = doctorStatistics.MRAuditCount;
                    storeStatistics.MRDiagnosisCount = doctorStatistics.MRDiagnosisCount;
                    storeStatistics.MRCount          = doctorStatistics.MRCount;

                    string priceStr = "没有找到此医生对应的放射价格.";

                    DoctorPriceDetial doctorPriceDetial = _importFileService.GetDoctorPriceDetial(storeStatistics.DoctorName);
                    if (doctorPriceDetial != null)
                    {
                        string CTDiagnosisPriceStr = doctorPriceDetial.CTDiagnosisPrice;
                        if (string.IsNullOrEmpty(CTDiagnosisPriceStr))
                        {
                            CTDiagnosisPriceStr = "0";
                        }

                        string CTAuditPriceStr = doctorPriceDetial.CTAuditPrice;
                        if (string.IsNullOrEmpty(CTAuditPriceStr))
                        {
                            CTAuditPriceStr = "0";
                        }

                        string MRDiagnosisPriceStr = doctorPriceDetial.MRDiagnosisPrice;
                        if (string.IsNullOrEmpty(MRDiagnosisPriceStr))
                        {
                            MRDiagnosisPriceStr = "0";
                        }

                        string MRAuditPriceStr = doctorPriceDetial.MRAuditPrice;
                        if (string.IsNullOrEmpty(MRAuditPriceStr))
                        {
                            MRAuditPriceStr = "0";
                        }

                        string DRDiagnosisPriceStr = doctorPriceDetial.DRDiagnosisPrice;
                        if (string.IsNullOrEmpty(DRDiagnosisPriceStr))
                        {
                            DRDiagnosisPriceStr = "0";
                        }


                        decimal CTDiagnosisPrice = storeStatistics.CTDiagnosisCount * Convert.ToDecimal(CTDiagnosisPriceStr);
                        decimal CTAuditPrice     = storeStatistics.CTAuditCount * Convert.ToDecimal(CTAuditPriceStr);

                        decimal MRDiagnosisPrice = storeStatistics.MRDiagnosisCount * Convert.ToDecimal(MRDiagnosisPriceStr);
                        decimal MRAuditPrice     = storeStatistics.MRAuditCount * Convert.ToDecimal(MRAuditPriceStr);

                        decimal DRDiagnosisPrice = storeStatistics.DRDiagnosisCount * Convert.ToDecimal(DRDiagnosisPriceStr);
                        //decimal DRAuditPrice = storeStatistics.DRAuditCount * Convert.ToDecimal(doctorPriceDetial.DR); //TODO::这个暂时没有

                        doctorStatistics.Price = CTDiagnosisPrice + CTAuditPrice + MRDiagnosisPrice + MRAuditPrice + DRDiagnosisPrice;
                        storeStatistics.Price  = doctorStatistics.Price;

                        doctorStatistics.IsContainPrice = true;
                        storeStatistics.IsContainPrice  = true;

                        priceStr = storeStatistics.Price.ToString();
                    }

                    var findDoctorStatistics = doctorStatisticsList.Find(d => d.DoctorName.Equals(doctorStatistics.DoctorName));
                    if (findDoctorStatistics != null) //找到了此医生
                    {
                        findDoctorStatistics.CTDiagnosisCount += doctorStatistics.CTDiagnosisCount;
                        findDoctorStatistics.CTAuditCount     += doctorStatistics.CTAuditCount;
                        findDoctorStatistics.DRDiagnosisCount += doctorStatistics.DRDiagnosisCount;
                        findDoctorStatistics.DRAuditCount     += doctorStatistics.DRAuditCount;
                        findDoctorStatistics.MRDiagnosisCount += doctorStatistics.MRDiagnosisCount;
                        findDoctorStatistics.MRAuditCount     += doctorStatistics.MRAuditCount;

                        findDoctorStatistics.IsContainPrice = doctorStatistics.IsContainPrice;
                        findDoctorStatistics.Price         += doctorStatistics.Price;
                    }
                    else //没有找到此医生
                    {
                        DoctorStatistics currentDoctorStatistics = new DoctorStatistics();

                        currentDoctorStatistics.DoctorName       = doctorStatistics.DoctorName;
                        currentDoctorStatistics.CTDiagnosisCount = doctorStatistics.CTDiagnosisCount;
                        currentDoctorStatistics.CTAuditCount     = doctorStatistics.CTAuditCount;
                        currentDoctorStatistics.DRDiagnosisCount = doctorStatistics.DRDiagnosisCount;
                        currentDoctorStatistics.DRAuditCount     = doctorStatistics.DRAuditCount;
                        currentDoctorStatistics.MRDiagnosisCount = doctorStatistics.MRDiagnosisCount;
                        currentDoctorStatistics.MRAuditCount     = doctorStatistics.MRAuditCount;

                        currentDoctorStatistics.IsContainPrice = doctorStatistics.IsContainPrice;
                        currentDoctorStatistics.Price          = doctorStatistics.Price;

                        doctorStatisticsList.Add(currentDoctorStatistics);
                    }

                    dgvRadiationStoreDoctorPrice.Rows.Add(storeStatistics.StoreName, storeStatistics.DoctorName,
                                                          storeStatistics.CTDiagnosisCount, storeStatistics.CTAuditCount,
                                                          storeStatistics.MRDiagnosisCount, storeStatistics.MRAuditCount,
                                                          storeStatistics.DRDiagnosisCount, priceStr, string.Empty);
                }
            }

            foreach (var item in doctorStatisticsList)
            {
                dgvRadiationDoctorPrice.Rows.Add(item.DoctorName, item.CTDiagnosisCount, item.MRDiagnosisCount, item.CTAuditCount, item.MRAuditCount, item.IsContainPrice ? item.Price.ToString() : "没有找到此医生对应的放射价格.");
            }

            MessageBox.Show("生成报表成功!");
        }
 public Functions(Partition partition, StoreStatistics stats)
 {
     this.partition = partition;
     this.stats     = stats;
 }
 public Serializer(StoreStatistics storeStats)
 {
     this.storeStats = storeStats;
 }