Beispiel #1
0
        private void UploadCardPayment()
        {
            CommandResult result = null;
            CardPaymentRecordSearchCondition paymentcon = new CardPaymentRecordSearchCondition();

            paymentcon.UpdateFlag = false;
            List <CardPaymentInfo> sRecords = _StandbyPaymentBll.GetItems(paymentcon).QueryObjects;

            if (sRecords != null && sRecords.Count > 0)
            {
                foreach (CardPaymentInfo sRecord in sRecords)
                {
                    if (_SyncDataPause)
                    {
                        break;
                    }
                    CardPaymentInfo cpInfo = sRecord.Clone();
                    cpInfo.UpdateFlag = true;
                    result            = _MasterPaymentBll.InsertRecordWithCheck(cpInfo);
                    if (result.Result == ResultCode.Successful)
                    {
                        sRecord.UpdateFlag = true;
                        _StandbyPaymentBll.Update(sRecord);
                    }
                }
            }
        }
Beispiel #2
0
        private void SyncTime_Thread()
        {
            try
            {
                while (true)
                {
                    try
                    {
                        _SyncDateBaseEvent.WaitOne(SyncInterval * 60 * 1000);

                        if (DataBaseConnectionsManager.Current.MasterConnected &&
                            DataBaseConnectionsManager.Current.StandbyConnected)
                        {
                            CommandResult result = null;
                            if (!_SyncDataPause)
                            {
                                CardSearchCondition cardcon = new CardSearchCondition();
                                cardcon.UpdateFlag = false;
                                List <CardInfo> sCards = _StandbyCardBll.GetCards(cardcon).QueryObjects;
                                if (sCards != null && sCards.Count > 0)
                                {
                                    foreach (CardInfo sCard in sCards)
                                    {
                                        if (_SyncDataPause)
                                        {
                                            break;
                                        }
                                        CardInfo mCard = _MasterCardBll.GetCardByID(sCard.CardID).QueryObject;
                                        if (mCard != null)
                                        {
                                            sCard.UpdateFlag = true;
                                            result           = _MasterCardBll.UpdateCardPaymentInfo(sCard);
                                            if (result.Result == ResultCode.Successful)
                                            {
                                                _StandbyCardBll.UpdateCard(sCard);
                                            }
                                        }
                                    }
                                }
                            }

                            if (!_SyncDataPause)
                            {
                                CardPaymentRecordSearchCondition paymentcon = new CardPaymentRecordSearchCondition();
                                paymentcon.UpdateFlag = false;
                                List <CardPaymentInfo> sRecords = _StandbyPaymentBll.GetItems(paymentcon).QueryObjects;
                                if (sRecords != null && sRecords.Count > 0)
                                {
                                    foreach (CardPaymentInfo sRecord in sRecords)
                                    {
                                        if (_SyncDataPause)
                                        {
                                            break;
                                        }
                                        CardPaymentInfo cpInfo = sRecord.Clone();
                                        cpInfo.UpdateFlag = true;
                                        result            = _MasterPaymentBll.InsertRecordWithCheck(cpInfo);
                                        if (result.Result == ResultCode.Successful)
                                        {
                                            sRecord.UpdateFlag = true;
                                            _StandbyPaymentBll.Update(sRecord);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
                    }
                }
            }
            catch (ThreadAbortException ex)
            {
                Ralid.GeneralLibrary.LOG.FileLog.Log("系统", "备用数据库同步到主数据库服务停止");
            }
        }
Beispiel #3
0
        /// <summary>
        /// 生成操作员结算汇总,如果不指定工作站,则表示汇总结果中包括操作员在所有工作站上的收费情况
        /// </summary>
        /// <param name="opt"></param>
        /// <param name="station"></param>
        /// <returns></returns>
        public OperatorSettleLog CreateOperatorLog(OperatorInfo opt, WorkStationInfo station)
        {
            if (opt != null)
            {
                OperatorSettleLog log = new OperatorSettleLog();
                log.OperatorID     = opt.OperatorName;
                log.SettleDateTime = DateTime.Now;
                if (station != null)
                {
                    log.StationID = station.StationName;
                }
                //查询条件
                RecordSearchCondition recordCon = new RecordSearchCondition();
                recordCon.RecordDateTimeRange = new DateTimeRange(log.SettleFrom == null ? new DateTime(1753, 1, 1, 12, 0, 0) : log.SettleFrom.Value, log.SettleDateTime);
                recordCon.Operator            = opt;
                recordCon.IsUnSettled         = true;
                if (station != null)
                {
                    recordCon.StationID = station.StationName;
                }
                //查询收费记录
                CardPaymentRecordBll   paymentBll     = new CardPaymentRecordBll(_RepoUri);
                List <CardPaymentInfo> paymentRecords = paymentBll.GetItems(recordCon).QueryObjects;
                log.PaymentRecords      = paymentRecords;
                log.CashParkFact        = CashParkFactSum(paymentRecords);
                log.CashOperatorCard    = CashOperatorCardSum(paymentRecords);
                log.CashParkDiscount    = CashParkDiscountSum(paymentRecords);
                log.NonCashParkFact     = NoCashParkFactSum(paymentRecords);
                log.NonCashParkDiscount = NoCashParkDiscountSum(paymentRecords);
                //查询卡片发行记录
                CardBll cbll = new CardBll(_RepoUri);
                List <CardReleaseRecord> cardReleaseRecords = cbll.GetCardReleaseRecords(recordCon).QueryObjects;
                log.ReleaseRecords    = cardReleaseRecords;
                log.CashOfCard       += CashCardReleaseSum(cardReleaseRecords);
                log.CashOfDeposit    += CashDepositSum(cardReleaseRecords);
                log.NonCashOfDeposit += NonCashDepositSum(cardReleaseRecords);
                log.NonCashOfCard    += NonCashCardReleaseSum(cardReleaseRecords);
                //查询卡片延期记录
                List <CardDeferRecord> cardDeferRecords = cbll.GetCardDeferRecords(recordCon).QueryObjects;
                log.DeferRecords   = cardDeferRecords;
                log.CashOfCard    += CashCardDeferSum(cardDeferRecords);
                log.NonCashOfCard += NonCashCardDeferSum(cardDeferRecords);
                //查询卡片充值记录
                List <CardChargeRecord> cardChargeRecords = cbll.GetCardChargeRecords(recordCon).QueryObjects;
                log.ChargeRecords  = cardChargeRecords;
                log.CashOfCard    += CashCardChargeSum(cardChargeRecords);
                log.NonCashOfCard += NonCashCardChargeSum(cardChargeRecords);
                //卡片挂失记录
                List <CardLostRestoreRecord> cardLostRecords = cbll.GetCardLostRestoreRecords(recordCon).QueryObjects;
                log.CardLostRecords   = cardLostRecords;
                log.CashOfCardLost    = CashCardLostSum(cardLostRecords);
                log.NonCashOfCardLost = NonCashCardLostSum(cardLostRecords);
                //查询卡片回收记录
                List <CardRecycleRecord> cardRecycleRecords = cbll.GetCardRecycleRecords(recordCon).QueryObjects;
                log.RecycleRecords     = cardRecycleRecords;
                log.CashOfCardRecycle += CashCardRecycleSum(cardRecycleRecords);
                //查询报警记录
                AlarmSearchCondition alarmCon = new AlarmSearchCondition();
                alarmCon.RecordDateTimeRange = new DateTimeRange(log.SettleFrom == null ? new DateTime(1753, 1, 1, 12, 0, 0) : log.SettleFrom.Value, log.SettleDateTime);
                alarmCon.Operator            = opt;
                alarmCon.IsUnSettled         = true;
                alarmCon.AlarmType           = AlarmType.Opendoor;
                if (station != null)
                {
                    alarmCon.StationID = station.StationName;
                }

                List <AlarmInfo> alarmReocrds = (new AlarmBll(_RepoUri)).GetAlarms(alarmCon).QueryObjects;
                log.OpenDoorCount = alarmReocrds.Count;
                log.AlarmRecords  = alarmReocrds;
                //查询事件
                CardEventSearchCondition eventCon = new CardEventSearchCondition();
                eventCon.RecordDateTimeRange = new DateTimeRange(log.SettleFrom == null ? new DateTime(1753, 1, 1, 12, 0, 0) : log.SettleFrom.Value, log.SettleDateTime);
                eventCon.Operator            = opt;
                eventCon.IsUnSettled         = true;
                eventCon.OnlyExitEvent       = true;
                eventCon.CardType            = CardType.TempCard; //只获取临时卡事件
                if (station != null)
                {
                    eventCon.StationID = station.StationName;
                }

                List <CardEventRecord> handledEvents = (new CardEventBll(_RepoUri)).GetCardEvents(eventCon).QueryObjects;
                log.EventRecords    = handledEvents;
                log.TempCardRecycle = TempCardRecycleSum(handledEvents);
                return(log);
            }
            else
            {
                throw new InvalidOperationException(Resource1.OperatorSettleBLL_noOperator);
            }
        }