public void SetData(DataRow dr) { ID = Convert.ToInt32(dr["ID"]); CallType = Convert.ToInt32(dr["CallType"]); Chan = Convert.ToInt32(dr["Chan"]); LineID = dr["LineID"].ToString(); CallerID = dr["CallerID"].ToString(); StartDate = Convert.ToDateTime(dr["StartDate"]).Date; StartTime = dr["StartTime"].ToString(); DuringTime = dr["DuringTime"].ToString(); WaveFilePath = BLLCommon.GetWavPath() + dr["WaveFilePath"].ToString(); if (dr["IsDisposed"].ToString() == "") { IsDisposed = 0; } else { IsDisposed = Convert.ToInt32(dr["IsDisposed"]); } //如果access里面数据是未接听 if (CallType == 0 && IsDisposed == 0) { IsDisposed = 1; CreteFaultList.UpdateIsCreate(ID, FaultType.Pending); } if (CallType == 2) { WaveFilePath = ""; } }
private void TryAddCallTime(DataFrame frame) { if (!CallRecord.Contains(frame.addInfo)) { CallRecord.Add(frame.addInfo); AddItemsToStatus(frame.addInfo + "来电"); CreteFaultList.ShowCreateWindow(frame.addInfo, new CallTime(DateTime.Now)); } }
public void GetMainData() { DataTable dtUser = CreteFaultList.GetUser(); foreach (DataRow item in dtUser.Rows) { UserDict.Add(new SelfKeyValue(Convert.ToInt32(item["id"]), Convert.ToInt32(item["department_id"] == DBNull.Value ? -1 : item["department_id"]), item["login"].ToString(), item["username"].ToString(), (item["department_name"] == DBNull.Value ? "暂无" : item["department_name"]).ToString())); } DataTable dtDepartment = CreteFaultList.GetDepartment(); foreach (DataRow item in dtDepartment.Rows) { DepartmentDict.Add(new SelfKeyValue(Convert.ToInt32(item["id"]), item["name"].ToString(), item["code"].ToString())); } DataTable dtAssetType = CreteFaultList.GetAssetType(); foreach (DataRow item in dtAssetType.Rows) { AssetTypeDict.Add(new SelfKeyValue(Convert.ToInt32(item["id"]), item["name"].ToString())); } DataTable dtCompany = CreteFaultList.GetCompany(); foreach (DataRow item in dtCompany.Rows) { CompanyDict.Add(new SelfKeyValue(Convert.ToInt32(item["id"]), item["name"].ToString())); } DataTable dtKnowledge = CreteFaultList.GetKnowledge(); foreach (DataRow item in dtKnowledge.Rows) { KnowLedgeDict.Add(new SelfKeyValue(Convert.ToInt32(item["id"]), item["name"].ToString(), item["note_result"].ToString())); } //插入故障类型 FaultDict.Add(new SelfKeyValue("hardware", "硬件故障")); FaultDict.Add(new SelfKeyValue("soft", "软件故障")); FaultDict.Add(new SelfKeyValue("other", "其他")); OrderDict.Add(new SelfKeyValue("A", "故障申告")); OrderDict.Add(new SelfKeyValue("B", "耗材配送")); GetAccessAction = () => { //电话挂机后为了防止录音软件没及时写入数据库,等待1秒, Thread.Sleep(TimeSpan.FromSeconds(1)); RefreshMediaInfo(); }; //增加委托绑定 ViewModel.HangupAction += GetAccessAction; }
private void ButtonCreate_Click(object sender, RoutedEventArgs e) { var btn = (SimpleButton)sender; FaultType type = CreteFaultList.GetFaultType(btn.Uid); if (vm.CreateFaultOrder(type)) { DXMessageBox.Show("操作成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information); //更新主界面此记录的状态 vm._DataModel.IsDisposed = Convert.ToInt32(CreteFaultList.GetState(type)); //IsCreateSuccess = true; this.Close(); } else { DXMessageBox.Show("操作失败", "提示", MessageBoxButton.OK, MessageBoxImage.Error); } }
public void RefreshMediaInfo() { DataTable callTable = CreteFaultList.GetMediaInfo(CallerID, _callTime.Date); if (callTable.Rows.Count > 0) { DataRow dr = callTable.Rows[0]; AccessID = Convert.ToInt32(dr["ID"]); Chan = Convert.ToInt32(dr["Chan"]); LineID = dr["LineID"].ToString(); CallerID = dr["CallerID"].ToString(); StartDate = Convert.ToDateTime(dr["StartDate"]); StartTime = dr["StartTime"].ToString(); DuringTime = dr["DuringTime"].ToString(); WaveFilePath = BLLCommon.GetWavPath() + dr["WaveFilePath"].ToString(); //设置录音信息 _DataModel.SetData(dr); } }
public bool CreateFaultOrder(FaultType _type) { var fdm = new FaultDataModel(); if (User == null) { //不能创建 Prompt = "报修人员未选择!"; return(false); } else { fdm.user_id = User.Key; } if (Department == null) { //不能创建 Prompt = "请选择部门!"; return(false); } else { fdm.department_id = Department.Key; } if (AssetType == null) { //不能创建 Prompt = "资产类型未选择!"; return(false); } else { fdm.asset_type_id = AssetType.Key; } if (Company == null) { //不能创建 Prompt = "请选择区域!"; return(false); } else { fdm.company_id = Company.Key; } if (OrderType == null) { //不能创建 Prompt = "请选择工单类型!"; return(false); } else { fdm.work_property = OrderType.Text; } //故障类型 if (BreakDownCate == null) { fdm.breakdown_categ = FaultDict[2].Text; } else { fdm.breakdown_categ = BreakDownCate.Text; } //故障主题------------(-1可能导致外键错误) if (KnowLedge == null) { fdm.knowledge_id = 0; } else { fdm.knowledge_id = KnowLedge.Key; } //去除换行符 Regex reg = new Regex(@"\b\r\n"); fdm.note = reg.Replace(Note, ";"); fdm.address = reg.Replace(Address, ";"); fdm.note_result = reg.Replace(Note_Result, ";"); //设置录音记录信息 fdm.SetData(_DataModel); //这里地址需要加上ip地址(目前不需要加IP了) //string ipStr = Provider.getIPAddress(); //if (ipStr == Properties.Settings.Default.ServerIP) //{ fdm.WaveFilePath = WaveFilePath; //} //else //{ // fdm.WaveFilePath = ipStr + "\\" + WaveFilePath; //} //插入服务器 if (CreteFaultList.CreateOrder(fdm, _type, IsInsert)) { CreteFaultList.UpdateIsCreate(AccessID, _type); return(true); } return(false); }
public void GetCall_logData() { DataTable callData = CreteFaultList.GetOrder(AccessID, CallerID); if (callData.Rows.Count > 0) { //update IsInsert = false; DataRow dr = callData.Rows[0]; if (dr["user_id"] != null) { var skvUser = UserDict.Find(skv => skv.Key == Convert.ToInt32(dr["user_id"])); if (skvUser != null) { User = skvUser; } } if (dr["department_id"] != null) { var skvDepartment = DepartmentDict.Find(skv => skv.Key == Convert.ToInt32(dr["department_id"])); if (skvDepartment != null) { Department = skvDepartment; } } if (dr["asset_type_id"] != null) { var skvAsset = AssetTypeDict.Find(skv => skv.Key == Convert.ToInt32(dr["asset_type_id"])); if (skvAsset != null) { AssetType = skvAsset; } } if (dr["breakdown_categ"] != null) { var skvFault = FaultDict.Find(skv => skv.Text == Convert.ToString(dr["breakdown_categ"])); if (skvFault != null) { BreakDownCate = skvFault; } } if (dr["company_id"] != null) { var skvCompany = CompanyDict.Find(skv => skv.Key == Convert.ToInt32(dr["company_id"])); if (skvCompany != null) { Company = skvCompany; } } if (dr["work_property"] != null) { var skvOrder = OrderDict.Find(skv => skv.Text == Convert.ToString(dr["work_property"])); if (skvOrder != null) { OrderType = skvOrder; } } if (dr["knowledge_id"] != null) { var skvKnow = KnowLedgeDict.Find(skv => skv.Key == Convert.ToInt32(dr["knowledge_id"])); if (skvKnow != null) { KnowLedge = skvKnow; } } if (dr["note_result"] != null) { Note_Result = Convert.ToString(dr["note_result"]); } if (dr["address"] != null) { Address = Convert.ToString(dr["address"]); } if (dr["note"] != null) { Note = Convert.ToString(dr["note"]); } //更新access数据库和web服务器状态一致 if (dr["state"] != null) { if (_DataModel.IsDisposed != Convert.ToInt32(dr["state"])) { _DataModel.IsDisposed = Convert.ToInt32(dr["state"]); CreteFaultList.UpdateIsCreate(AccessID, CreteFaultList.GetFaultType(_DataModel.IsDisposed.ToString())); } } } }
private void SimpleButton_Click(object sender, RoutedEventArgs e) { CreteFaultList.CloseWaitWindow(); }
public ViewModel() { if (Properties.Settings.Default.AccessPath == string.Empty) { BLLCommon.GetAccessPath(); } else { if (!AccessHelper.OpenConn()) { BLLCommon.GetAccessPath(); } } HostName = Provider.getIPAddress(); BLLCommon.GetSystemSet(); UDPAction = (evt) => { try { switch (evt.eventType) { case SocketEventType.StartEvent: AddItemsToStatus(evt.remark); break; case SocketEventType.ReceEvent: if (evt.message == null) { AddItemsToStatus(evt.remark); } else { var frame = evt.message as DataFrame; switch (frame.dataType) { case CS_R103.CallNumber: TryAddCallTime(frame); break; case CS_R103.CallerNumberCheck: TryAddCallTime(frame); break; case CS_R103.Hang_up: AddItemsToStatus("已挂机"); if (HangupAction != null) { HangupAction(); } break; case CS_R103.OffHook: CreteFaultList.CloseWaitWindow(); AddItemsToStatus("已摘机"); break; case CS_R103.RingEnd: CreteFaultList.CloseWaitWindow(); break; case CS_R103.Ringing: //将最新的来电号码发送过去 if (CallRecord.Count > 0) { CreteFaultList.ShowWaitWindow(CallRecord[CallRecord.Count - 1]); } break; case CS_R103.Unwired: AddItemsToStatus("电话未接线!"); break; default: break; } } break; case SocketEventType.SendEvent: break; case SocketEventType.StopEvent: if (_UDPServer != null) { _UDPServer.Dispose(); _UDPServer = null; } AddItemsToStatus(evt.remark); break; } } catch (Exception ex) { Log4Helper.Error(GetType(), "弹屏异常!", ex); throw ex; } }; }