public void InitBaseInfo(ProcessRecord recordInfo)
        {
            var temp            = EngineContext.Current.Resolve <ICR_TRAFFIC_PERMIT_INFO>();
            var tempInOutRecord = EngineContext.Current.Resolve <ICR_INOUT_RECODE>();
            var inRecord        = tempInOutRecord.GetInSideCarNo(recordInfo.INOUT_RECODE);

            if (null != inRecord)
            {
                recordInfo.INOUT_RECODE.VEHICLE_NO = inRecord.VEHICLE_NO;
            }

            var issueInfos = temp.GetIssueInfo(recordInfo.INOUT_RECODE.VEHICLE_NO);

            if (issueInfos.Count > 0)
            {
                var first = issueInfos.FirstOrDefault();
                recordInfo.CARD_TYPE  = first.CARDTYPE;
                recordInfo.CarType    = first.CAR_TYPE;
                recordInfo.OWNER_CODE = first.OWNER_CODE;
                if (null != first.ACCESS_CHANNEL_CODE)
                {
                    recordInfo.ACCESS_CHANNEL_CODE = first.ACCESS_CHANNEL_CODE;
                }
                CommHelper.getSoundByCardType(recordInfo);
                ////////////////////////如¨?果?是o?月?卡?§//////////////////////////////
                if (recordInfo.CARD_TYPE == enumCardType.CAR_TYPE_MONTH)
                {
                    if (null != inRecord && recordInfo.CHANNEL_TYPE == enumChannelType.chn_out)
                    {
                        recordInfo.CARD_TYPE = (enumCardType)Enum.Parse(typeof(enumCardType), inRecord.CREDENTIALS_TYPE.ToString());
                    }
                    Core.Model.IssueInfo issueInfo = null;
                    var record = tempInOutRecord.GetModelByVehicleNo(recordInfo.INOUT_RECODE.VEHICLE_NO);
                    if (null != record)
                    {
                        issueInfo = issueInfos.Where(x => x.INOUT_RECORD_ID == record.ID).FirstOrDefault();
                    }
                    if (null == issueInfo)
                    {
                        issueInfo = issueInfos.Where(x => x.CARDTYPE == enumCardType.CAR_TYPE_MONTH && x.SPACE_STATUS == 0 && x.BEGAIN_TIME <= System.DateTime.Now && x.END_TIME >= System.DateTime.Now).FirstOrDefault();
                    }
                    if (null == issueInfo || issueInfo.END_TIME < DateTime.Now)
                    {
                        if (GlobalEnvironment.MonthToTemp)
                        {
                            recordInfo.CARD_TYPE     = enumCardType.CAR_TYPE_TEMP;
                            recordInfo.IsMonthToTemp = true;
                            var Occupy = issueInfos.Where(x => x.BEGAIN_TIME <= System.DateTime.Now && x.END_TIME >= System.DateTime.Now);
                            recordInfo.SpeechType = Occupy.Count() > 0 ? enumSpeechType.ParkingOccupyTempIn : enumSpeechType.MonthCardOverdueIn;
                            //string InOutRecords = string.Empty;
                            //var ls = issueInfos.Where(x => x.CARDTYPE == enumCardType.CAR_TYPE_MONTH && x.BEGAIN_TIME <= DateTime.Now && x.END_TIME >= DateTime.Now && x.SPACE_STATUS == 1 && x.TRAFFIC_PERMIT_STATUS == 1).GroupBy(x => new { x.INOUT_RECORD_ID }).Select(g => new { INOUT_RECORD_ID = g.Key.INOUT_RECORD_ID });
                            //foreach (var t in ls)
                            //    InOutRecords += t.INOUT_RECORD_ID + ",";
                            //if (!string.IsNullOrEmpty(InOutRecords))
                            //    recordInfo.INOUT_RECODE.OccupyIds = InOutRecords.TrimEnd(',');
                        }
                    }
                    else
                    {
                        if (GlobalEnvironment.MVMP)
                        {
                            recordInfo.SPACE_CODE = issueInfo.SPACE_CODE;
                        }
                        TimeSpan sp = issueInfo.END_TIME.Subtract(DateTime.Now.AddDays(-1));
                        recordInfo.Validity = sp.Days;
                        //recordInfo.INOUT_RECODE.OccupyIds = string.Empty;
                    }
                }
                //////////////////////////储??é值|ì卡?§信?息?é///////////////////////////
                if (recordInfo.CARD_TYPE == enumCardType.CAR_TYPE_STORED)
                {
                    var ownerInfoBll = EngineContext.Current.Resolve <IPBA_OWNER_INFO>();
                    var ownerInfo    = ownerInfoBll.GetModel(recordInfo.OWNER_CODE);
                    if (null != ownerInfo)
                    {
                        recordInfo.OwnerInfo = ownerInfo;
                    }
                }
            }
            else
            {
                recordInfo.CARD_TYPE = enumCardType.CAR_TYPE_TEMP;
                CommHelper.getSoundByCardType(recordInfo);
            }
            /////////////////////////////凭?证?è类¤¨¤型¨a//////////////////////////////
            recordInfo.INOUT_RECODE.CREDENTIALS_TYPE = (int)recordInfo.CARD_TYPE;
            /////////////////////////////卡?§类¤¨¤型¨a//////////////////////////////
            var tempBlackManager = EngineContext.Current.Resolve <IPL_BLACK_WHITE_MANAGER>();
            int role             = tempBlackManager.GetVEHICLE_NOType(recordInfo.INOUT_RECODE.VEHICLE_NO.ToString());

            recordInfo.authenticationType = (enumAuthenticationType)role;
            /////////////////////////////车|ì牌?识o?别àe出?错?¨a的ì?情¨|况?/////////////////////////////////
            var tempOrg = GlobalEnvironment.ListlicenseCorrect.Where(x => x.BeforeChange_VehNo.Equals(recordInfo.INOUT_RECODE.VEHICLE_NO)).OrderBy(x => x.Count).LastOrDefault();

            if (null != tempOrg)
            {
                recordInfo.INOUT_RECODE.VEHICLE_NO = tempOrg.AfterChange_VehNo;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 得ì?到ì?一°?个?对?象¨?实o|ì体??
        /// </summary>
        public List <Parking.Core.Model.IssueInfo> DataRowToModel(DataSet ds)
        {
            List <Parking.Core.Model.IssueInfo> modelList = new List <Core.Model.IssueInfo>();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                Parking.Core.Model.IssueInfo model = new Core.Model.IssueInfo();
                if (row != null)
                {
                    if (row["ID"] != null)
                    {
                        model.ID = row["ID"].ToString();
                    }
                    if (row["PRINTING_NO"] != null)
                    {
                        model.PRINTING_NO = row["PRINTING_NO"].ToString();
                    }
                    if (row["TISSUE_TIME"] != null && row["TISSUE_TIME"].ToString() != "")
                    {
                        model.TISSUE_TIME = DateTime.Parse(row["TISSUE_TIME"].ToString());
                    }
                    if (row["VEHICLE_NUMBER"] != null)
                    {
                        model.VEHICLE_NUMBER = row["VEHICLE_NUMBER"].ToString();
                    }
                    if (row["TRAFFIC_TYPE"] != null)
                    {
                        model.CARDTYPE = (enumCardType)(Enum.Parse(typeof(enumCardType), row["TRAFFIC_TYPE"].ToString()));
                    }
                    if (row["TRAFFIC_PERMIT_STATUS"] != null && row["TRAFFIC_PERMIT_STATUS"].ToString() != "")
                    {
                        model.TRAFFIC_PERMIT_STATUS = int.Parse(row["TRAFFIC_PERMIT_STATUS"].ToString());
                    }
                    if (row["VEHICLE_TYPE"] != null)
                    {
                        model.CAR_TYPE = (enumCarType)(Enum.Parse(typeof(enumCarType), row["VEHICLE_TYPE"].ToString()));
                    }
                    if (row["OWNER_CODE"] != null)
                    {
                        model.OWNER_CODE = row["OWNER_CODE"].ToString();
                    }
                    if (row["OWNER_NAME"] != null)
                    {
                        model.PRINTING_NO = row["OWNER_NAME"].ToString();
                    }
                    if (row["ACCESS_CHANNEL_CODE"] != null)
                    {
                        model.ACCESS_CHANNEL_CODE = row["ACCESS_CHANNEL_CODE"].ToString();
                    }
                    if (row["INOUT_RECORD_ID"] != null)
                    {
                        model.INOUT_RECORD_ID = row["INOUT_RECORD_ID"].ToString();
                    }
                    if (row["SPACE_CODE"] != null)
                    {
                        model.SPACE_CODE = row["SPACE_CODE"].ToString();
                    }
                    if (row["SPACE_STATUS"] != null && row["SPACE_STATUS"].ToString() != "")
                    {
                        model.SPACE_STATUS = int.Parse(row["SPACE_STATUS"].ToString());
                    }
                    if (row["PARTITION_CODE"] != null)
                    {
                        model.PARTITION_CODE = row["PARTITION_CODE"].ToString();
                    }
                    if (row["BEGIN_TIME"] != null && row["BEGIN_TIME"].ToString() != "")
                    {
                        model.BEGAIN_TIME = DateTime.Parse(row["BEGIN_TIME"].ToString());
                    }
                    if (row["END_TIME"] != null && row["END_TIME"].ToString() != "")
                    {
                        model.END_TIME = DateTime.Parse(row["END_TIME"].ToString());
                    }
                }
                modelList.Add(model);
            }
            return(modelList);
        }