private void SendCurWorkStationImages(object status) { try { while (true) { DataSet ds = null; if (imageData.Count > 0) { lock (imageData) ds = imageData.Dequeue(); if (null != ds && ds.Tables[0].Rows.Count > 0) { var tempImg = EngineContext.Current.Resolve <ICR_INOUT_RECODE_IMG>(); var recordTemp = EngineContext.Current.Resolve <ICR_INOUT_RECODE>(); foreach (DataRow row in ds.Tables[0].Rows) { //bool isSendImg = CommHelper.SendImg(row["IMG_URL"].ToString(), row["CHANNEL_TYPE"].ToString(), row["VEHICLE_NO"].ToString()); bool isSendImg = true;//CommHelper.SendImg(row["IMG_URL"].ToString(), row["CHANNEL_TYPE"].ToString()); if (isSendImg) { Parking.Core.Model.CR_INOUT_RECODE_IMG model = new CR_INOUT_RECODE_IMG(); model.ID = row["ID"].ToString(); model.DEV_ID = row["DEV_ID"].ToString(); model.CHANNEL_TYPE = row["CHANNEL_TYPE"].ToString(); model.CHANNEL_CODE = row["CHANNEL_CODE"].ToString(); model.CREATE_TIME = DateTime.Parse(row["CREATE_TIME"].ToString()); model.IMG_TYPE = int.Parse(row["IMG_TYPE"].ToString()); model.IMG_URL = row["IMG_URL"].ToString(); model.ISSEND = 1; model.RECODE_ID = row["RECODE_ID"].ToString(); tempImg.Update(model); } } } } Thread.Sleep(1000); } } catch (Exception ex) { LogHelper.Log.Error(ex.ToString()); } }
public override void Process(ProcessRecord recordInfo) { recordInfo.CheckPointResult = true; try { var chargesLogBll = EngineContext.Current.Resolve <ICR_CHARGES_LOG>(); var temp = EngineContext.Current.Resolve <ICR_INOUT_RECODE>(); var tempImg = EngineContext.Current.Resolve <ICR_INOUT_RECODE_IMG>(); string Enter = base.getCurrChannel(recordInfo).Enter; if (string.IsNullOrEmpty(Enter)) { if (recordInfo.authenticationType == enumAuthenticationType.SPECIAL_TYPE_VIP) { //贵¨?宾à?卡?§,ê?直?à接¨?写??一°?条??完a¨o整?记?录? recordInfo.INOUT_RECODE.ID = Guid.NewGuid().ToString("N"); recordInfo.INOUT_RECODE.RECODE_STATUS = 1; recordInfo.INOUT_RECODE.IN_TIME = recordInfo.REPORTIMG_TIME; recordInfo.INOUT_RECODE.IN_FIELD_CODE = recordInfo.FIELD_CODE; recordInfo.INOUT_RECODE.IN_PARTITION_CODE = recordInfo.PARTITION_CODE; recordInfo.INOUT_RECODE.IN_CHANNEL_CODE = recordInfo.CHN_CODE; recordInfo.INOUT_RECODE.IN_DEV_ID = recordInfo.DEV_CODE; recordInfo.INOUT_RECODE.IN_OPERATOR_ID = recordInfo.OPERATOR_ID; recordInfo.INOUT_RECODE.IN_PARK_TYPE = recordInfo.PARK_TYPE; recordInfo.INOUT_RECODE.OUT_TIME = recordInfo.REPORTIMG_TIME; recordInfo.INOUT_RECODE.OUT_FIELD_CODE = recordInfo.FIELD_CODE; recordInfo.INOUT_RECODE.OUT_PARTITION_CODE = recordInfo.PARTITION_CODE; recordInfo.INOUT_RECODE.OUT_CHANNEL_CODE = recordInfo.CHN_CODE; recordInfo.INOUT_RECODE.OUT_DEV_ID = recordInfo.DEV_CODE; recordInfo.INOUT_RECODE.OUT_OPERATOR_ID = recordInfo.OPERATOR_ID; recordInfo.INOUT_RECODE.OUT_PARK_TYPE = recordInfo.PARK_TYPE; } else { //////////////////保à?ê存??订?单죤信?息?é////////////////// { decimal dueMoney = 0; decimal chargeMoney = 0; decimal preMoney = 0; foreach (var order in recordInfo.ListOrder) { dueMoney += order.DUE_MONEY; chargeMoney += order.CHARGE_MONEY; preMoney += order.PER_MONEY; recordInfo.INOUT_RECODE.PAY_PLATFORM = order.PAY_PLATFORM; } recordInfo.INOUT_RECODE.DUE_MONEY = dueMoney; recordInfo.INOUT_RECODE.CHARGE_MONEY = chargeMoney; recordInfo.INOUT_RECODE.PRE_MONEY = preMoney; temp.Update(recordInfo.INOUT_RECODE); } if (recordInfo.INOUT_RECODE.DUE_MONEY > 0) { var charges = chargesLogBll.GetListByInTime(recordInfo.INOUT_RECODE.VEHICLE_NO, recordInfo.INOUT_RECODE.IN_TIME); decimal totalDueMoney = recordInfo.INOUT_RECODE.DUE_MONEY; decimal totalChargeMoney = charges.Select(x => x.CHARGE_MONEY).Sum(); decimal totalPreMoney = charges.Select(x => x.PRE_MONEY).Sum(); decimal totalAlreayPay = totalChargeMoney + totalPreMoney; if (totalDueMoney > totalAlreayPay) { //////////////////////保à?ê存??收o?费¤?流¢??水?/////////////////// CR_CHARGES_LOG chargesLog = new CR_CHARGES_LOG(); chargesLog.ID = recordInfo.chargeFlowing; chargesLog.BEGIN_TIME = recordInfo.INOUT_RECODE.IN_TIME; chargesLog.CHARGE_USERID = recordInfo.INOUT_RECODE.OUT_OPERATOR_ID; chargesLog.CHARGES_EQ_ID = recordInfo.INOUT_RECODE.IN_EQ_ID; chargesLog.END_TIME = recordInfo.INOUT_RECODE.OUT_TIME; chargesLog.IN_CHANNEL_CODE = recordInfo.INOUT_RECODE.IN_CHANNEL_CODE; chargesLog.IN_FIELD_CODE = recordInfo.INOUT_RECODE.IN_FIELD_CODE; chargesLog.IN_PARTITION_CODE = recordInfo.INOUT_RECODE.IN_PARTITION_CODE; chargesLog.OUT_CHANNEL_CODE = recordInfo.INOUT_RECODE.OUT_CHANNEL_CODE; chargesLog.OUT_FIELD_CODE = recordInfo.INOUT_RECODE.OUT_FIELD_CODE; chargesLog.OUT_PARTITION_CODE = recordInfo.INOUT_RECODE.OUT_PARTITION_CODE; chargesLog.CHARGE_TIME = System.DateTime.Now; chargesLog.PAY_TYPE = totalAlreayPay > 0 ? 1 : 2; chargesLog.PAY_PLATFORM = 1; chargesLog.OWNER_CODE = recordInfo.OWNER_CODE; chargesLog.SPACE_CODE = recordInfo.SPACE_CODE; chargesLog.REMARK = "车位被占,当临时车处理"; TimeSpan tsTotal = recordInfo.INOUT_RECODE.OUT_TIME.Subtract(recordInfo.INOUT_RECODE.IN_TIME); chargesLog.STOP_TIME = (int)Math.Round(tsTotal.TotalMinutes, 0); chargesLog.UNIQUE_IDENTIFIER = recordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER; chargesLog.TRAFFIC_PERMIT_TYPE_IDENTITY = recordInfo.CARD_TYPE == enumCardType.CAR_TYPE_TEMP ? "0" : recordInfo.CARD_TYPE == enumCardType.CAR_TYPE_MONTH ? "1" : "2"; chargesLog.VEHICLE_NO = recordInfo.INOUT_RECODE.VEHICLE_NO; chargesLog.PRE_MONEY = recordInfo.INOUT_RECODE.PRE_MONEY; chargesLog.CHARGE_MONEY = recordInfo.CurrNeedPay; chargesLog.DUE_MONEY = recordInfo.INOUT_RECODE.PRE_MONEY + recordInfo.CurrNeedPay; chargesLog.CHARGE_METHOD = (int)recordInfo.PayMethod; chargesLogBll.Add(chargesLog); } foreach (var charge in charges) { charge.OUT_CHANNEL_CODE = recordInfo.INOUT_RECODE.OUT_CHANNEL_CODE; charge.OUT_FIELD_CODE = recordInfo.INOUT_RECODE.OUT_FIELD_CODE; charge.OUT_PARTITION_CODE = recordInfo.INOUT_RECODE.OUT_PARTITION_CODE; charge.OWNER_CODE = string.IsNullOrEmpty(charge.OWNER_CODE) ? null : charge.OWNER_CODE; chargesLogBll.Update(charge); } } } /////////////////转áa移°?出?场?数oy据Y///////////////// if (AddRecodeArchive(recordInfo)) { temp.Delete(recordInfo.INOUT_RECODE.ID); } ///////////////触?£¤发¤?é出?场?事o?件t////////////////// recordInfo.OPERATER_TYPE = enumOperaterType.OutSuccessed; ThreadMessageTransact.Instance.triggerEvent(recordInfo, false); } //保à?ê存??出?场?图a?片? CR_INOUT_RECODE_IMG modelOutImg = new CR_INOUT_RECODE_IMG(); modelOutImg.ID = Guid.NewGuid().ToString("N"); modelOutImg.IMG_TYPE = 0; modelOutImg.CHANNEL_CODE = recordInfo.CHN_CODE; modelOutImg.IMG_URL = recordInfo.PicFullName; modelOutImg.RECODE_ID = recordInfo.INOUT_RECODE.ID; modelOutImg.DEV_ID = recordInfo.DEV_CODE; modelOutImg.CHANNEL_TYPE = recordInfo.CHANNEL_TYPE == enumChannelType.chn_in ? "I" : "E"; modelOutImg.CREATE_TIME = DateTime.Now; modelOutImg.ISSEND = 0; tempImg.Add(modelOutImg); /////////////////////////////////显?示o?屏¨¢信?息?é/////////////////////////////// if (recordInfo.CHANNEL_TYPE != enumChannelType.chn_in) { base.ShowLED(recordInfo); } } catch (Exception ex) { LogHelper.Log.Error(ex.Message); recordInfo.CheckPointResult = false; } }
public override void Process(ProcessRecord recordInfo) { recordInfo.CheckPointResult = true; try { //保存入场记录 var temp = EngineContext.Current.Resolve <ICR_INOUT_RECODE>(); var orderBll = EngineContext.Current.Resolve <ICR_ORDER_RECORD_INFO>(); var orderDetailsBll = EngineContext.Current.Resolve <ICR_ORDER_RECORD_DETAILS>(); string Enter = base.getCurrChannel(recordInfo).Enter; string Leave = base.getCurrChannel(recordInfo).Leave; if (string.IsNullOrEmpty(Leave)) { recordInfo.INOUT_RECODE.CURR_PARTITION_CODE = Enter; //贵宾卡,直接写一条完整记录 if (recordInfo.authenticationType == enumAuthenticationType.SPECIAL_TYPE_VIP) { //贵宾卡 recordInfo.INOUT_RECODE.ID = Guid.NewGuid().ToString("N"); recordInfo.INOUT_RECODE.RECODE_STATUS = 1; recordInfo.INOUT_RECODE.IN_TIME = recordInfo.REPORTIMG_TIME; recordInfo.INOUT_RECODE.IN_FIELD_CODE = recordInfo.FIELD_CODE; recordInfo.INOUT_RECODE.IN_PARTITION_CODE = recordInfo.PARTITION_CODE; recordInfo.INOUT_RECODE.IN_CHANNEL_CODE = recordInfo.CHN_CODE; recordInfo.INOUT_RECODE.IN_DEV_ID = recordInfo.DEV_CODE; recordInfo.INOUT_RECODE.IN_OPERATOR_ID = recordInfo.OPERATOR_ID; recordInfo.INOUT_RECODE.IN_PARK_TYPE = recordInfo.PARK_TYPE; recordInfo.INOUT_RECODE.OUT_TIME = recordInfo.REPORTIMG_TIME; recordInfo.INOUT_RECODE.OUT_FIELD_CODE = recordInfo.FIELD_CODE; recordInfo.INOUT_RECODE.OUT_PARTITION_CODE = recordInfo.PARTITION_CODE; recordInfo.INOUT_RECODE.OUT_CHANNEL_CODE = recordInfo.CHN_CODE; recordInfo.INOUT_RECODE.OUT_DEV_ID = recordInfo.DEV_CODE; recordInfo.INOUT_RECODE.OUT_OPERATOR_ID = recordInfo.OPERATOR_ID; recordInfo.INOUT_RECODE.OUT_PARK_TYPE = recordInfo.PARK_TYPE; /////////////////转移出场数据///////////////// AddRecodeArchive(recordInfo); } else { ///////////////保存入场记录////////////////// recordInfo.CheckPointResult = temp.Add(recordInfo.INOUT_RECODE); } } //保存入场图片 CR_INOUT_RECODE_IMG modelImg = new CR_INOUT_RECODE_IMG(); var tempImg = EngineContext.Current.Resolve <ICR_INOUT_RECODE_IMG>(); modelImg.ID = Guid.NewGuid().ToString("N"); modelImg.IMG_TYPE = 0; modelImg.CHANNEL_CODE = recordInfo.CHN_CODE; modelImg.IMG_URL = recordInfo.PicFullName; modelImg.RECODE_ID = recordInfo.INOUT_RECODE.ID; modelImg.DEV_ID = recordInfo.DEV_CODE; modelImg.VEHICLE_NO = recordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER; modelImg.CREATE_TIME = DateTime.Now; modelImg.CHANNEL_TYPE = recordInfo.CHANNEL_TYPE == enumChannelType.chn_in ? "I" : "E"; modelImg.ISSEND = 0; tempImg.Add(modelImg); } catch (Exception ex) { LogHelper.Log.Error(ex.Message); recordInfo.CheckPointResult = false; } }