using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Diagnostics; using System.Net.NetworkInformation; using System.IO; using System.Linq; using System.Net; using System.Net.Sockets; using System.Reflection; using System.Text; using System.Threading; using System.Windows.Forms; using SocketTransfer.SDK; namespace SocketSend { public partial class Sender : Form { protected string _TransferType = ConfigurationManager.AppSettings["TransferType"].ToString(); protected string _OracleConnStr = ConfigurationManager.AppSettings["OracleConnStr"].ToString(); protected string _HostIP = ConfigurationManager.AppSettings["HostIP"].ToString(); protected string _HostPort = ConfigurationManager.AppSettings["HostPort"].ToString(); protected string _ToolListen = ConfigurationManager.AppSettings["ToolListen"].ToString(); protected string _StartApp = ConfigurationManager.AppSettings["StartApp"].ToString(); protected string _Connectport = ConfigurationManager.AppSettings["Connectport"].ToString(); protected string _DownloadConnString = ConfigurationManager.AppSettings["DownloadConnString"].ToString(); protected string _ScanUpdateURL = ConfigurationManager.AppSettings["ScanUpdateURL"].ToString(); bool ScanUpdateState = false; DateTime DataCollectionDate; Thread ScanUpdateThread; public Sender() { InitializeComponent(); } #region 方法 -> 功能加载 private void Sender_Load(object sender, EventArgs e) { bool StartUpdate = false; Thread _Thread; Assembly assembly = Assembly.LoadFrom("SocketTransfer.SDK.dll"); Type type = typeof(EndAccountReceive); object _object = Activator.CreateInstance(type); propertyGrid1.SelectedObject = _object; //string strIPAddress = string.Empty; //IPAddress[] arrIPAddresses = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName()); //foreach (IPAddress _IPAddress in arrIPAddresses) //{ // if (!_IPAddress.AddressFamily.Equals(AddressFamily.InterNetwork)) // continue; // strIPAddress = _IPAddress.ToString(); // break; //} //if (!string.IsNullOrEmpty(strIPAddress)) //{ // textBoxIP.Text = strIPAddress; //} //else //{ // textBoxIP.Text = "127.0.0.1"; //} //textBoxIP.Text = strIPAddress; //textBoxPort.Text = "6060"; ////StartProcess(95); //foreach (string str in _TransferType.Split(',')) //{ // switch (str) // { // //系统异常日志 // case "0": // timer5.Start(); // StartUpdate = true; // break; // //服务区传输 // case "1": // timer1.Start(); // timer30.Start(); // timer97.Start(); // timer98.Start(); // //timer94.Start(); // StartProcess(); // //_Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(97)))) { IsBackground = true }; // //_Thread.Start(); // break; // //总部传输 推送信息、单品详情 // case "2": // timer2.Start(); // break; // //总部传输 服务区、门店 // case "3": // timer1.Start(); // break; // //销售流水集合 // case "4": // timer4.Start(); // timer96.Start(); // //_Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(96)))) { IsBackground = true }; // //_Thread.Start(); // break; // case "5": // timer6.Start(); // timer95.Start(); // //_Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(80)))) { IsBackground = true }; // //_Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(95)))) { IsBackground = true }; // //_Thread.Start(); // break; // case "6": // timer3.Start(); // timer13.Start(); // break; // //程序监听 // case "100": // timer0.Start(); // break; // } //} //if (_TransferType != "100") //{ // timer99.Start(); //} ExcuteSql(); ////启动系统日志升级程序 //if (StartUpdate) //{ // OpenFileDownload(); RemoteDataThread _RemoteDataThread = new RemoteDataThread(); _RemoteDataThread.onStart(60); //} } #endregion #region 自动发送 -> AutoSend private void AutoSend(string[] Files) { try { byte[] _buffer = EventsCommodityNew.ObjectToBytes(Files); byte[] feedback; Ping pingSender = new Ping(); PingReply _PingReply; PingOptions options = new PingOptions(); options.DontFragment = true; string data = ""; byte[] buffer = Encoding.ASCII.GetBytes(data); int timeout = 1000; switch (Files[0]) { case "1": case "12": case "13": case "14": case "15": case "16": case "17": case "18": case "91": case "92": _PingReply = pingSender.Send(_HostIP.Split(',')[2], timeout, buffer, options); if (_PingReply.Status == IPStatus.Success || CommonHelper.ConnectState( "http://" + _HostIP.Split(',')[2] + ":" + _Connectport.Split(',')[2])) { feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[2]), int.Parse(_HostPort.Split(',')[2]))); } else { return; } break; case "6": case "7": case "8": case "10": case "11": _PingReply = pingSender.Send(_HostIP.Split(',')[1], timeout, buffer, options); if (_PingReply.Status == IPStatus.Success || CommonHelper.ConnectState( "http://" + _HostIP.Split(',')[1] + ":" + _Connectport.Split(',')[1])) { feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[1]), int.Parse(_HostPort.Split(',')[1]))); } else { return; } break; default: _PingReply = pingSender.Send(_HostIP.Split(',')[0], timeout, buffer, options); if (_PingReply.Status == IPStatus.Success || CommonHelper.ConnectState( "http://" + _HostIP.Split(',')[0] + ":" + _Connectport.Split(',')[0])) { feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[0]))); } else { return; } break; } #if DEBUG string dir = Application.StartupPath + "//Log"; string fil = dir + "//" + CommonHelperNew.GetSendType(int.Parse(Files[0])) + "Send" + DateTime.Now.ToString("yyyyMMdd") + ".log"; string fil2 = dir + "//" + CommonHelperNew.GetSendType(int.Parse(Files[0])) + "Receive" + DateTime.Now.ToString("yyyyMMdd") + ".log"; string[] FeedBackFiles = null; try { FeedBackFiles = (string[])EventsCommodityNew.BytesToObject(feedback); } catch { } if (Files[0] == "60" || Files[0] == "61" || Files[0] == "62" || Files[0] == "63" || Files[0] == "64" || Files[0] == "65" || Files[0] == "70" || Files[0] == "71") { #region 下载日志 if (FeedBackFiles != null && (((Files[0] == "70" || Files[0] == "71") && FeedBackFiles.Length > 3) || FeedBackFiles.Length > 8)) { if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } LogHelper.DeleteFiles("*.log", dir, -15); FileStream FileStreamSend = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter StreamWriterSend = new StreamWriter(FileStreamSend, System.Text.Encoding.UTF8); StreamWriterSend.BaseStream.Seek(0, SeekOrigin.End); StreamWriterSend.WriteLine("{0}", string.Join(",", (string[])EventsCommodityNew.BytesToObject(_buffer))); StreamWriterSend.Flush(); StreamWriterSend.Close(); FileStreamSend.Close(); FileStream FileStreamReceive = new FileStream(fil2, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter StreamWriterReceive = new StreamWriter(FileStreamReceive, System.Text.Encoding.UTF8); StreamWriterReceive.BaseStream.Seek(0, SeekOrigin.End); StreamWriterReceive.WriteLine("{0}", string.Join(",", (string[])EventsCommodityNew.BytesToObject(feedback))); StreamWriterReceive.Flush(); StreamWriterReceive.Close(); FileStreamReceive.Close(); UpdateDatas(int.Parse(Files[0]), feedback); } #endregion } else { #region 上传日志 if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } LogHelper.DeleteFiles("*.log", dir, -15); FileStream FileStreamSend = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter StreamWriterSend = new StreamWriter(FileStreamSend, System.Text.Encoding.UTF8); StreamWriterSend.BaseStream.Seek(0, SeekOrigin.End); StreamWriterSend.WriteLine("{0}", string.Join(",", (string[])EventsCommodityNew.BytesToObject(_buffer))); StreamWriterSend.Flush(); StreamWriterSend.Close(); FileStreamSend.Close(); if (FeedBackFiles != null && FeedBackFiles.Length > 0) { FileStream FileStreamReceive = new FileStream(fil2, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter StreamWriterReceive = new StreamWriter(FileStreamReceive, System.Text.Encoding.UTF8); StreamWriterReceive.BaseStream.Seek(0, SeekOrigin.End); StreamWriterReceive.WriteLine("{0}", string.Join(",", (string[])EventsCommodityNew.BytesToObject(feedback))); StreamWriterReceive.Flush(); StreamWriterReceive.Close(); FileStreamReceive.Close(); UpdateDatas(int.Parse(Files[0]), feedback); } #endregion } #endif } catch (Exception ex) { //MessageBox.Show(ex.ToString()); if (!Directory.Exists(Application.StartupPath + "\\ErrorLog")) { System.IO.Directory.CreateDirectory(Application.StartupPath + "\\ErrorLog"); } LogHelper.WriteSendLog(ex.Message, "ErrorLog\\日志_Send" + DateTime.Now.ToString("yyyyMMdd"), true); } } #endregion #region 传输内容 -> StartProcess protected void StartProcess(object _object = null, int _index = 0) { try { string SQLString = null; OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3], _OracleConnStr.Split(',').Length > 4 ? _OracleConnStr.Split(',')[4] : "1521"); if (_object == null) { if (_index == 1) { #region 检测工具状态(暂停使用) /* SQLString = @"SELECT * FROM T_TRANSFERTOOL@NEWEX A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE)"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SQLString, "T_SYSCODE").Tables[0].Rows.Count > 0) { SQLString = string.Format(@"UPDATE T_TRANSFERTOOL@NEWEX A SET ( SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) = ( SELECT SERVERPART_NAME,SYSDATE,'Sv{0}' FROM HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE) WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE)", Application.ProductVersion); } else { SQLString = string.Format(@"INSERT INTO T_TRANSFERTOOL@NEWEX(TRANSFERTOOL_ID,SERVERPARTCODE, SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) SELECT SEQ_TRANSFERTOOL.NEXTVAL@NEWEX,SERVERPARTCODE,SERVERPART_NAME,SYSDATE,'Sv{0}' FROM HIGHWAY_EXCHANGE.T_SYSCODE", Application.ProductVersion); } _OracleHelper.ExcuteSql(SQLString); } catch { } */ #endregion } else if (_index == 2) { #region 检测工具状态 SQLString = @"SELECT SERVERPARTCODE,SERVERPART_NAME,SERVERPART_ID,PROVINCE_CODE FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE"; try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(SQLString, "T_SYSCODE").Tables[0].Rows) { string[] files = new string[_DataRow.ItemArray.Length + 3]; files[0] = "99";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } files[files.Length - 2] = DateTime.Now.ToString(); //TRANSFERTOOL_DATE files[files.Length - 1] = ""; //TRANSFERTOOL_DESC byte[] _buffer = EventsCommodityNew.ObjectToBytes(files); byte[] feedback; feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[0]))); } } catch { } #endregion } } else { switch (_object.ToString()) { case "0": #region 结账数据 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_ENDACCOUNT SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND ENDACCOUNT_DATE IS NOT NULL AND ENDACCOUNT_STARTDATE IS NOT NULL AND ROWNUM <= 1"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.ENDACCOUNT_ID,A.ENDACCOUNT_STARTDATE,A.ENDACCOUNT_DATE, A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE,A.ENDPERSONCODE, A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT,A.TOTALOFFAMOUNT, A.CASH,A.CREDITCARD,A.TICKETBILL,A.VIPPERSON,A.COSTBILL, A.OTHERPAY,A.CASHPAY,A.FLAG,A.TRANSFER_STATE,A.TRANSFER_ID FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1", "T_ENDACCOUNT").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["ENDACCOUNT_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "0";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "1": #region 销售流水集合 foreach (DataRow _DataRowSysCode in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA SET TRANSFER_STATE = 1 WHERE TRANSFER_SELLDATA_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND SERVERPARTCODE = '" + _DataRowSysCode["SERVERPARTCODE"].ToString() + "'"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(@"SELECT TRANSFER_ID ,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS, TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS, TRANSFER_STATE,TRANSFER_SELLDATA_ID FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA WHERE TRANSFER_SELLDATA_ID > 0 AND TRANSFER_STATE < 9 AND TRUNC(SYSDATE) - 1 < SELLDATA_DATE AND SERVERPARTCODE = '" + _DataRowSysCode["SERVERPARTCODE"].ToString() + "'").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "1";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["TRANSFER_ID"].ToString(), true); } } } #endregion break; case "2": #region 收银员报表 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_PERSONSELL SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND ENDDATE IS NOT NULL AND STARTDATE IS NOT NULL AND ROWNUM <= 1"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.PERSONSELL_ID,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE,A.STARTDATE, A.ENDDATE,A.CASHWORKER_CODE,A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT, A.TOTALOFFAMOUNT,A.CASH,A.TICKETBILL,A.CREDITCARD,A.VIPPERSON,A.COSTBILL, A.OTHERPAY,A.CASHPAY,A.ENDPERSONCODE,A.RESERVE_FIRSTNUM,A.RESERVE_SECONDNUM, A.RESERVE_THIRDNUM,A.RESERVE_FIRSTCHAR,A.RESERVE_SECONDCHAR, A.RESERVE_THIRDCHAR,A.RESERVE_FIRSTDATE,A.RESERVE_SECONDDATE, A.RESERVE_THIRDDATE,A.TRANSFER_STATE, A.TRANSFER_ID FROM HIGHWAY_EXCHANGE.T_PERSONSELL A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1", "T_PERSONSELL").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["PERSONSELL_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "2";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "3": #region 单品数据集合 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFER_SALE SET TRANSFER_STATE = 1 WHERE TRANSFER_SALE_ID > 0 AND TRANSFER_FIFTEENTHDATAS IS NOT NULL AND NVL(TRANSFER_STATE,0) = 0 --AND ENDDATE > TRUNC(SYSDATE) - 1"); DataTable _DataTable = new DataTable(); try { _DataTable = _OracleHelper.ExcuteSqlGetDataSet( @"SELECT TRANSFER_ID,SERVERPARTCODE,SHOPCODE,STARTDATE,ENDDATE,TRANSFER_FIRSTDATAS, TRANSFER_SECONDDATAS,TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS, TRANSFER_SIXTHDATAS,TRANSFER_SEVENTHDATAS,TRANSFER_EIGHTHDATAS,TRANSFER_NINTHTDATAS, TRANSFER_TENTHDATAS,TRANSFER_ELEVENTHDATAS,TRANSFER_TWELFTHDATAS,TRANSFER_THIRTEENTHDATAS, TRANSFER_FOURTEENTHDATAS,TRANSFER_FIFTEENTHDATAS,TRANSFER_STATE,TRANSFER_SALE_ID,MACHINECODE FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE TRANSFER_SALE_ID > 0 AND TRANSFER_STATE = 1 AND TRANSFER_FIFTEENTHDATAS IS NOT NULL AND ROWNUM <= 1 --AND ENDDATE > TRUNC(SYSDATE) - 1", "T_TRANSFER_SALE").Tables[0]; } catch { _DataTable = _OracleHelper.ExcuteSqlGetDataSet( @"SELECT TRANSFER_ID,SERVERPARTCODE,SHOPCODE,STARTDATE,ENDDATE,TRANSFER_FIRSTDATAS, TRANSFER_SECONDDATAS,TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS, TRANSFER_SIXTHDATAS,TRANSFER_SEVENTHDATAS,TRANSFER_EIGHTHDATAS,TRANSFER_NINTHTDATAS, TRANSFER_TENTHDATAS,TRANSFER_ELEVENTHDATAS,TRANSFER_TWELFTHDATAS,TRANSFER_THIRTEENTHDATAS, TRANSFER_FOURTEENTHDATAS,TRANSFER_FIFTEENTHDATAS,TRANSFER_STATE,TRANSFER_SALE_ID FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE TRANSFER_SALE_ID > 0 AND TRANSFER_STATE = 1 AND TRANSFER_FIFTEENTHDATAS IS NOT NULL AND ROWNUM <= 1 --AND ENDDATE > TRUNC(SYSDATE) - 1", "T_TRANSFER_SALE").Tables[0]; } foreach (DataRow _DataRow in _DataTable.Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "3";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "4": #region 推送信息 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_STORAGE.T_WECHATPUSHDETAIL SET TRANSFER_STATE = 1 WHERE NVL(TRANSFER_STATE,0) = 0 AND PROVINCE_CODE IS NOT NULL AND WECHATPUSHDETAIL_ID IS NOT NULL"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT WECHATPUSHDETAIL_ID ,RTWECHATPUSH_ID,DIRECTION_IDS,GROUP_TYPE, USER_NAME ,STATISTICS_DATE,CURRENT_TOTALPRICE,CASHPAY ,DIFFERENT_PRICE_MORE, DIFFERENT_PRICE_LESS,TICKETCOUNT,TOTALOFFAMOUNT,MOBILEPAYMENT, COMMODITY_COUNT,PASS_COUNT,TOTAL_COUNT,HOLIDAY_REVENUE, HOLIDAY_TICKETCOUNT,HOLIDAY_TOTALCOUNT,HOLIDAY_DAYS,PROMOTION_REVENUES, WEEK_REVENUE,WEEK_AVERAGEPRICE,WEEK_YEARONYEAR, MONTH_REVENUE, MONTH_AVERAGEPRICE,MONTH_YEARONYEAR,YEAR_REVENUE,YEAR_AVERAGEPRICE, YEAR_YEARONYEAR,YEAR_TOTALPRICE,MARKET_REVENUE,RESTAURANT_REVENUE, SNACK_REVENUE,OTHER_REVENUE,COMPREHENSIVE_REVENUE,THEME_REVENUE, STANDARD_REVENUE,PAKINGZONE_REVENUE,SERVERPART_REVENUE,PROVINCE_CODE, TRANSFER_STATE,WECHATPUSHDETAIL_DESC FROM HIGHWAY_STORAGE.T_WECHATPUSHDETAIL WHERE TRANSFER_STATE = 1", "T_WECHATPUSHDETAIL").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["WECHATPUSHDETAIL_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "4";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send(WECHATPUSHDETAIL_ID)_" + _DataRow["WECHATPUSHDETAIL_ID"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "5": #region 单品详情 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_STORAGE.T_WECHATPUSHSALES SET TRANSFER_STATE = 1 WHERE NVL(TRANSFER_STATE,0) = 0 AND PROVINCE_CODE IS NOT NULL AND WECHATPUSHSALES_ID IS NOT NULL"); //SELLDATA_DATE > SYSDATE - 1/24 AND foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT * FROM HIGHWAY_STORAGE.T_WECHATPUSHSALES WHERE TRANSFER_STATE = 1", "T_WECHATPUSHSALES").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["WECHATPUSHSALES_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "5";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send(WECHATPUSHSALES_ID)_" + _DataRow["WECHATPUSHSALES_ID"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "6": #region 数据采集(门店版) #region 直连旧方法 //try //{ // _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], // _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); // SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION WHERE TRANSFER_ID IS NULL"; // if (_OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0].Rows.Count > 0) // { // _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION // SET TRANSFER_ID = DATACOLLECTION_ID // WHERE DATACOLLECTION_TYPE <> 3000 AND TRANSFER_ID IS NULL AND NVL(TRANSFER_STATE,0) < 9"); // } // SQLString = @"SELECT * FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION WHERE NVL(TRANSFER_STATE,0) < 9 AND // TRANSFER_ID IS NOT NULL AND DATACOLLECTION_DATE > TRUNC(SYSDATE) AND DATACOLLECTION_TYPE <> 3000"; // if (_OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0].Rows.Count > 0) // { // SQLString = @"INSERT INTO T_DATACOLLECTION@NEWEX (DATACOLLECTION_ID, // SERVERPARTCODE,SHOPCODE,MACHINECODE,MACADDRESS,MACHINENAME,DATACOLLECTION_TYPE, // DATACOLLECTION_DATE,TOTAL_COUNT,TOTALSELL_AMOUNT,TICKET_COUNT,TICKET_INFO,TRANSFER_ID) // SELECT DATACOLLECTION_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,MACADDRESS,MACHINENAME,DATACOLLECTION_TYPE, // DATACOLLECTION_DATE,TOTAL_COUNT,TOTALSELL_AMOUNT,TICKET_COUNT,TICKET_INFO,TRANSFER_ID // FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION A // WHERE NVL(TRANSFER_STATE,0) < 9 AND DATACOLLECTION_DATE > TRUNC(SYSDATE) AND DATACOLLECTION_TYPE <> 3000 AND // TRANSFER_ID IS NOT NULL AND NOT EXISTS(SELECT 1 FROM T_DATACOLLECTION@NEWEX B // WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID = B.TRANSFER_ID)"; // _OracleHelper.ExcuteSql(SQLString); // SQLString = @"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION A SET TRANSFER_STATE = 9 // WHERE NVL(TRANSFER_STATE,0) < 9 AND TRANSFER_ID IS NOT NULL AND DATACOLLECTION_TYPE <> 3000 AND // EXISTS(SELECT 1 FROM T_DATACOLLECTION@NEWEX B // WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID = B.TRANSFER_ID)"; // _OracleHelper.ExcuteSql(SQLString); // } //} //catch { } #endregion #region 新方法(未启用) //try //{ // if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND // TABLE_NAME = 'T_DATACOLLECTION'").Tables[0].Rows.Count == 0) // { // break; // } // //填充TRANSFER_ID // SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION WHERE DATACOLLECTION_TYPE <> 3000 AND TRANSFER_ID IS NULL"; // if (_OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0].Rows.Count > 0) // { // _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION // SET TRANSFER_ID = DATACOLLECTION_ID // WHERE DATACOLLECTION_TYPE <> 3000 AND TRANSFER_ID IS NULL AND NVL(TRANSFER_STATE,0) < 9"); // } // //启动上传过程 // _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION SET TRANSFER_STATE = 1 // WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND SERVERPARTCODE IS NOT NULL AND // DATACOLLECTION_TYPE <> 3000 AND DATACOLLECTION_DATE > TRUNC(SYSDATE) AND ROWNUM <= 10"); // foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( // @"SELECT A.DATACOLLECTION_ID,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE, // A.MACADDRESS,A.MACHINENAME,A.DATACOLLECTION_TYPE,A.DATACOLLECTION_DATE, // A.TOTAL_COUNT,A.TOTALSELL_AMOUNT,A.TICKET_COUNT,A.TICKET_INFO, // A.DATACOLLECTION_STATE,A.DATACOLLECTION_DESC,A.TRANSFER_ID // FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION A,HIGHWAY_EXCHANGE.T_SYSCODE B // WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND // A.DATACOLLECTION_DATE > TRUNC(SYSDATE) AND A.TRANSFER_STATE = 1 AND // DATACOLLECTION_TYPE <> 3000 AND ROWNUM <= 10", "T_DATACOLLECTION").Tables[0].Rows) // { // try // { // if (string.IsNullOrWhiteSpace(_DataRow["TRANSFER_ID"].ToString())) // { // continue; // } // string[] files = new string[_DataRow.ItemArray.Length + 1]; // files[0] = "6";// ReceiveType 类型,int(注意重要参数必填) // for (int i = 0; i < _DataRow.ItemArray.Length; i++) // { // files[i + 1] = _DataRow[i].ToString(); // } // AutoSend(files); // } // catch (Exception ex) // { // LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); // } // } //} //catch (Exception ex) //{ // LogHelper.WriteSendLog("T_DATACOLLECTION:" + ex.Message); //} #endregion #endregion break; case "7": #region 服务区 try { //DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet( // "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE").Tables[0]; SQLString = @"SELECT A.SERVERPART_ID,A.SERVERPART_TYPE, A.SERVERPART_CODE,A.SHORTNAME, A.SERVERPART_NAME,A.SERVERPART_ADDRESS, A.EXPRESSWAY_NAME,A.SERVERPART_INDEX, A.REGIONTYPE_ID,A.STATISTIC_TYPE, C.SERVERPARTCODE AS PROVINCE_CODE, A.CITY_CODE , A.COUNTY_CODE,A.SERVERPART_X, A.SERVERPART_Y,A.SELLERCOUNT , A.OWNEDCOMPANY,A.MANAGERCOMPANY, A.SERVERPART_AREA,A.SERVERPART_DESC, A.SPREGIONTYPE_ID,A.SPREGIONTYPE_NAME, A.SPREGIONTYPE_INDEX, B.OPERATELOG_ID,B.OPERATEDATE FROM HIGHWAY_STORAGE.T_SERVERPART A, HIGHWAY_STORAGE.T_OPERATELOG B, HIGHWAY_EXCHANGE.T_SYSCODE C WHERE A.SERVERPART_ID = B.TABLE_ID AND A.PROVINCE_CODE = C.PROVINCE_CODE AND B.TABLE_NAME = 'HIGHWAY_STORAGE.T_SERVERPART'"; //服务区 foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_SERVERPART").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "7";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { //if (i == 10) //{ // //省份编码 // files[i + 1] = _DataTable.Rows.Count > 0 ? _DataTable.Rows[0]["SERVERPARTCODE"].ToString() : // _DataRow["PROVINCE_CODE"].ToString(); // continue; //} files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["PROVINCE_CODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "8": #region 门店 try { //DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet( // "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE").Tables[0]; foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(@" SELECT A.SERVERPARTSHOP_ID,A.SHOPTRADE, A.SHOPNAME,A.SHOPSHORTNAME, A.ISVALID,A.SERVERPARTSHOP_INDEX, A.TOPPERSON,A.TOPPERSON_MOBILE, A.LINKMAN,A.LINKMAN_MOBILE, A.SERVERPART_ID,A.SHOPREGION, A.SHOPCODE,A.ROYALTYRATE, A.BUSINESS_UNIT,A.BUSINESS_DATE, A.BUS_STARTDATE,A.BUSINESSAREA, A.SETTLINGACCOUNTS,A.SELLER_ID, A.BUSINESS_TYPE,A.BUSINESS_STATE, A.BUSINESS_REGION,A.BUSINESS_NATURE, A.STATISTIC_TYPE,A.BUSINESS_ENDDATE, A.REGISTERCOMPACT_ID,A.STATISTICS_TYPE, A.SERVERPARTSHOP_DESC,B.OPERATELOG_ID, B.OPERATEDATE,C.SERVERPARTCODE AS PROVINCE_CODE FROM HIGHWAY_STORAGE.T_SERVERPARTSHOP A, HIGHWAY_STORAGE.T_OPERATELOG B, HIGHWAY_EXCHANGE.T_SYSCODE C, HIGHWAY_STORAGE.T_SERVERPART D WHERE A.SERVERPARTSHOP_ID = B.TABLE_ID AND A.SERVERPART_ID = D.SERVERPART_ID AND C.PROVINCE_CODE = D.PROVINCE_CODE AND B.TABLE_NAME = 'HIGHWAY_STORAGE.T_SERVERPARTSHOP'", "T_SERVERPARTSHOP").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "8";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } //省份编码 //files[files.Length - 1] = _DataTable.Rows.Count > 0 ? // _DataTable.Rows[0]["SERVERPARTCODE"].ToString() : _DataRow["PROVINCE_CODE"].ToString(); AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "9": #region 系统错误日志打印 try { _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); //是否存在表 DataRow _DataRowTable = _OracleHelper.ExcuteSqlGetDataSet(@"SELECT COUNT(*) AS ISTABLE FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_WINSYSTEMLOG'").Tables[0].Rows[0]; if (_DataRowTable["ISTABLE"].ToString() != "1") { _OracleHelper.ExcuteSqlBackData( @"CREATE TABLE HIGHWAY_EXCHANGE.T_WINSYSTEMLOG ( WINSYSTEMLOG_ID NUMBER(9,0) NOT NULL, LOG_EVENTID VARCHAR2(200), LOG_CATEGORY VARCHAR2(200), LOG_INDEX VARCHAR2(200), LOG_ENTRYTYPE VARCHAR2(200), LOG_TIMEGENERATED DATE, LOG_MESSAGE VARCHAR2(2000), SERVERPARTCODE VARCHAR2(10), SHOPCODE VARCHAR2(10), COMPUTERNAME VARCHAR2(50), ADMINNAME VARCHAR2(50), SERVERSEQUENCE VARCHAR2(50), CREATE_DATE DATE, WINSYSTEMLOG_DESC VARCHAR2(200), DATASTATE NUMBER(2,0) DEFAULT 0 )"); } //是否存在序列 DataRow _DataRowSEQ = _OracleHelper.ExcuteSqlGetDataSet(@"SELECT COUNT(*) AS ISSEQ FROM ALL_SEQUENCES WHERE SEQUENCE_OWNER = 'HIGHWAY_EXCHANGE' AND SEQUENCE_NAME = 'SEQ_WINSYSTEMLOG'").Tables[0].Rows[0]; if (_DataRowSEQ["ISSEQ"].ToString() != "1") { _OracleHelper.ExcuteSql(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_WINSYSTEMLOG"); } foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT WINSYSTEMLOG_ID,LOG_EVENTID,LOG_CATEGORY,LOG_INDEX, LOG_ENTRYTYPE,LOG_TIMEGENERATED,LOG_MESSAGE,SERVERPARTCODE, SHOPCODE,COMPUTERNAME,ADMINNAME,SERVERSEQUENCE, CREATE_DATE,WINSYSTEMLOG_DESC,DATASTATE FROM HIGHWAY_EXCHANGE.T_WINSYSTEMLOG WHERE SERVERPARTCODE IS NOT NULL AND (DATASTATE IS NULL OR DATASTATE != 99)").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 2]; files[0] = "9";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send(WINSYSTEMLOG_ID)_" + _DataRow["SERVERSEQUENCE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send(WINSYSTEMLOG_ID)", true); } #endregion break; case "10": #region 平台用户数据 try { DataTable _DataTableT_USER = _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE").Tables[0]; if (_DataTableT_USER.Rows.Count > 0) { #region 新增、更新 SQLString = @"SELECT A.USER_ID,A.USERTYPE_ID,A.USER_NAME,A.USER_PASSPORT,A.USER_PASSWORD,A.USER_TIMEOUT, A.USER_INDEX,A.USER_INDEFINIT,A.USER_EXPIRY,A.USER_STATUS,A.USER_DESC,A.USER_ENABLEDLICENSE, A.USER_LICENSE,A.USER_ENABLEDCITYAUTHORITY,A.USER_CITYAUTHORITY,A.USER_REPEATLOGON, B.OPERATELOG_ID,B.OPERATEDATE,A.USER_MOBILEPHONE,A.PROVINCE_UNIT,A.USER_PROVINCE FROM PLATFORM_FRAMEWORK.T_USER A ,HIGHWAY_STORAGE.T_OPERATELOG B WHERE A.USER_ID IS NOT NULL AND A.USER_ID = B.TABLE_ID AND B.TABLE_NAME = 'PLATFORM_FRAMEWORK.T_USER'"; //服务区 foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_USER").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 2]; files[0] = "10";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } //省份编码 if (string.IsNullOrWhiteSpace(files[_DataRow.ItemArray.Length])) { files[_DataRow.ItemArray.Length] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); } //是否为新增、更新、删除 1新增或更新 0删除 files[_DataRow.ItemArray.Length + 1] = "1"; AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_USER_" + _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(), true); } } #endregion #region 删除 SQLString = @"SELECT C.TABLE_ID,C.OPERATELOG_ID,C.OPERATEDATE,C.OPERATE_TYPE FROM HIGHWAY_STORAGE.T_OPERATELOG C WHERE CHANGE_TYPE = 1009 AND C.TABLE_NAME = 'PLATFORM_FRAMEWORK.T_USER' AND C.TABLE_ID IS NOT NULL"; //服务区 foreach (DataRow _DataRowDel in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_USER").Tables[0].Rows) { try { string[] files = new string[_DataRowDel.ItemArray.Length + 2]; files[0] = "10";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRowDel.ItemArray.Length; i++) { files[i + 1] = _DataRowDel[i].ToString(); } //省份编码 if (string.IsNullOrWhiteSpace(files[_DataRowDel.ItemArray.Length])) { files[_DataRowDel.ItemArray.Length] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); } //是否为新增、更新、删除 1新增或更新 0删除 files[_DataRowDel.ItemArray.Length + 1] = "0"; AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_USER_" + _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(), true); } } #endregion } else { LogHelper.WriteSendLog("平台用户数据获取不到省份编码"); } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "11": #region 平台用户分类数据 try { DataTable _DataTableT_USER = _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE").Tables[0]; if (_DataTableT_USER.Rows.Count > 0) { #region 新增、更新 SQLString = @"SELECT A.USERTYPE_ID,A.USERTYPE_NAME,A.USERTYPE_PID,A.USERTYPE_INDEX, A.USERTYPE_DESC,A.USERTYPE_GUID,B.OPERATELOG_ID,B.OPERATEDATE FROM PLATFORM_FRAMEWORK.T_USERTYPE A ,HIGHWAY_STORAGE.T_OPERATELOG B WHERE A.USERTYPE_ID IS NOT NULL AND A.USERTYPE_ID = B.TABLE_ID AND B.TABLE_NAME = 'PLATFORM_FRAMEWORK.T_USERTYPE'"; foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_USERTYPE").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 2]; files[0] = "11";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } //省份编码 files[_DataRow.ItemArray.Length + 1] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_USER_" + (_DataTableT_USER.Rows.Count > 0 ? _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString() : ""), true); } } #endregion } else { LogHelper.WriteSendLog("平台用户分类数据获取不到省份编码"); } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "12": #region 省份机器信息 try { DataTable _DataTableT_USER = _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE WHERE SERVERPARTCODE IS NOT NULL ORDER BY SERVERPARTCODE").Tables[0]; if (_DataTableT_USER.Rows.Count > 0) { #region 新增、更新 //T_MACHINEINFO 表 SQLString = @"SELECT A.MACHINEINFO_ID,A.SERVERPARTCODE,C.SERVERPART_NAME,A.SHOPCODE,D.SHOPNAME, A.MACHINECODE,A.MACHINENAME,A.MACHINE_MACADDRESS,A.MACHINE_SERNO,P.MACHINE_DISK,A.WARRANTY_DATE, A.EXPIRY_DATE,A.EXPIRY_DAY,A.SETUP_DATE,A.USING_TYPE,A.RENT_DATE,A.RENT_REMIND_DAY,A.RENTPAY_STATE, A.USERID,A.USERNAME,A.CREATE_DATE,1 AS MACHINEMANAGE_STATUS, A.CASHIERCONTROL_DESC,B.OPERATELOG_ID,B.OPERATEDATE FROM HIGHWAY_EXCHANGE.V_MACHINEINFO@NEWEX A LEFT JOIN HIGHWAY_EXCHANGE.T_MACHINEPOINT@NEWEX P ON P.MACHINE_MACADDRESS IS NOT NULL AND P.SERVERPARTCODE IS NOT NULL AND A.MACHINE_MACADDRESS = P.MACHINE_MACADDRESS AND A.SERVERPARTCODE = P.SERVERPARTCODE, HIGHWAY_STORAGE.T_OPERATELOG B, HIGHWAY_STORAGE.T_SERVERPART C, HIGHWAY_STORAGE.T_SERVERPARTSHOP D WHERE A.MACHINEINFO_ID IS NOT NULL AND A.SERVERPARTCODE = C.SERVERPART_CODE AND CONCAT(CONCAT(A.SERVERPARTCODE,'|'),A.MACHINE_MACADDRESS) = B.OPERATE_DESC AND A.MACHINEINFO_ID = B.TABLE_ID AND B.TABLE_NAME = 'HIGHWAY_EXCHANGE.T_MACHINEINFO' AND A.MACHINE_MACADDRESS IS NOT NULL AND A.SERVERPARTCODE IS NOT NULL AND A.SHOPCODE = D.SHOPCODE AND C.SERVERPART_ID = D.SERVERPART_ID"; foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_MACHINEINFO").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 3]; files[0] = "12";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } //省份编码 files[_DataRow.ItemArray.Length + 1] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); //是否为新增、更新、删除 1新增或更新 0删除 files[_DataRow.ItemArray.Length + 2] = "1"; AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_MACHINEINFO_" + (_DataTableT_USER.Rows.Count > 0 ? _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString() : ""), true); } } //T_CASHIERCONTROL 表 SQLString = @"SELECT A.MACHINEINFO_ID,A.SERVERPARTCODE,C.SERVERPART_NAME,A.SHOPCODE,D.SHOPNAME, A.MACHINECODE,A.MACHINENAME,A.MACHINE_MACADDRESS,A.MACHINE_SERNO,P.MACHINE_DISK,A.WARRANTY_DATE, A.EXPIRY_DATE,A.EXPIRY_DAY,A.SETUP_DATE,A.USING_TYPE,A.RENT_DATE,A.RENT_REMIND_DAY,A.RENTPAY_STATE, A.USERID,A.USERNAME,A.CREATE_DATE,1 AS MACHINEMANAGE_STATUS, A.CASHIERCONTROL_DESC,B.OPERATELOG_ID,B.OPERATEDATE FROM HIGHWAY_EXCHANGE.V_MACHINEINFO@NEWEX A LEFT JOIN HIGHWAY_EXCHANGE.T_MACHINEPOINT@NEWEX P ON P.MACHINE_MACADDRESS IS NOT NULL AND P.SERVERPARTCODE IS NOT NULL AND A.MACHINE_MACADDRESS = P.MACHINE_MACADDRESS AND A.SERVERPARTCODE = P.SERVERPARTCODE, HIGHWAY_STORAGE.T_OPERATELOG B, HIGHWAY_STORAGE.T_SERVERPART C, HIGHWAY_STORAGE.T_SERVERPARTSHOP D WHERE A.MACHINEINFO_ID IS NOT NULL AND A.CASHIERCONTROL_ID = B.TABLE_ID AND B.TABLE_NAME ='HIGHWAY_EXCHANGE.T_CASHIERCONTROL' AND A.MACHINE_MACADDRESS IS NOT NULL AND A.SERVERPARTCODE IS NOT NULL AND A.SERVERPARTCODE = C.SERVERPART_CODE AND A.SHOPCODE = D.SHOPCODE AND C.SERVERPART_ID = D.SERVERPART_ID"; foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_CASHIERCONTROL").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 3]; files[0] = "12";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } //省份编码 files[_DataRow.ItemArray.Length + 1] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); //是否为新增、更新、删除 1新增或更新 0删除 files[_DataRow.ItemArray.Length + 2] = "1"; AutoSend(files); Thread.Sleep(1000); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_MACHINEINFO_" + (_DataTableT_USER.Rows.Count > 0 ? _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString() : ""), true); } } //T_MACHINEPOINT 表 SQLString = @"SELECT A.MACHINEINFO_ID,A.SERVERPARTCODE,C.SERVERPART_NAME,A.SHOPCODE,D.SHOPNAME, A.MACHINECODE,A.MACHINENAME,A.MACHINE_MACADDRESS,A.MACHINE_SERNO,P.MACHINE_DISK,A.WARRANTY_DATE, A.EXPIRY_DATE,A.EXPIRY_DAY,A.SETUP_DATE,A.USING_TYPE,A.RENT_DATE,A.RENT_REMIND_DAY,A.RENTPAY_STATE, A.USERID,A.USERNAME,A.CREATE_DATE,1 AS MACHINEMANAGE_STATUS, A.CASHIERCONTROL_DESC,B.OPERATELOG_ID,B.OPERATEDATE FROM HIGHWAY_EXCHANGE.V_MACHINEINFO@NEWEX A LEFT JOIN HIGHWAY_EXCHANGE.T_MACHINEPOINT@NEWEX P ON P.MACHINE_MACADDRESS IS NOT NULL AND P.SERVERPARTCODE IS NOT NULL AND A.MACHINE_MACADDRESS = P.MACHINE_MACADDRESS AND A.SERVERPARTCODE = P.SERVERPARTCODE, HIGHWAY_STORAGE.T_OPERATELOG B, HIGHWAY_STORAGE.T_SERVERPART C, HIGHWAY_STORAGE.T_SERVERPARTSHOP D WHERE A.MACHINEINFO_ID IS NOT NULL AND P.MACHINEPOINT_ID = B.TABLE_ID AND B.TABLE_NAME ='HIGHWAY_EXCHANGE.T_MACHINEPOINT' AND A.MACHINE_MACADDRESS IS NOT NULL AND A.SERVERPARTCODE IS NOT NULL AND A.SERVERPARTCODE = C.SERVERPART_CODE AND A.SHOPCODE = D.SHOPCODE AND C.SERVERPART_ID = D.SERVERPART_ID"; foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_MACHINEPOINT").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 3]; files[0] = "12";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } //省份编码 files[_DataRow.ItemArray.Length + 1] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); //是否为新增、更新、删除 1新增或更新 0删除 files[_DataRow.ItemArray.Length + 2] = "1"; AutoSend(files); Thread.Sleep(1000); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_MACHINEINFO_" + (_DataTableT_USER.Rows.Count > 0 ? _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString() : ""), true); } } #endregion #region 删除 SQLString = @"SELECT SUBSTR(C.OPERATE_DESC,1,INSTR(C.OPERATE_DESC,'|',-1)-1) AS SERVERPARTCODE, SUBSTR(C.OPERATE_DESC,INSTR(C.OPERATE_DESC,'|',-1)+1) AS MACHINE_MACADDRESS, C.TABLE_ID ,C.OPERATELOG_ID,C.OPERATEDATE FROM HIGHWAY_STORAGE.T_OPERATELOG C WHERE NOT EXISTS (SELECT * FROM HIGHWAY_EXCHANGE.V_MACHINEINFO@NEWEX A,HIGHWAY_STORAGE.T_OPERATELOG B WHERE A.MACHINEINFO_ID IS NOT NULL AND A.MACHINEINFO_ID = B.TABLE_ID AND A.SERVERPARTCODE IS NOT NULL AND B.TABLE_NAME IN ('HIGHWAY_EXCHANGE.T_MACHINEINFO') AND B.OPERATELOG_ID = C.OPERATELOG_ID) AND C.TABLE_NAME IN ('HIGHWAY_EXCHANGE.T_MACHINEINFO') AND C.TABLE_ID IS NOT NULL AND C.OPERATE_DESC IS NOT NULL"; //服务区 foreach (DataRow _DataRowDel in _OracleHelper.ExcuteSqlGetDataSet( SQLString, "T_OPERATELOG").Tables[0].Rows) { try { string[] files = new string[_DataRowDel.ItemArray.Length + 3]; files[0] = "12";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRowDel.ItemArray.Length; i++) { files[i + 1] = _DataRowDel[i].ToString(); } //省份编码 files[_DataRowDel.ItemArray.Length + 1] = _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(); //是否为新增、更新、删除 1新增或更新 0删除 files[_DataRowDel.ItemArray.Length + 2] = "0"; AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_T_MACHINEINFO_" + _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(), true); } } #endregion } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "13": #region HIGHWAY_EXCHANGE.T_CUSTOMERINFO 消费客群表 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_CUSTOMERINFO'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_CUSTOMERINFO SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND SELLMASTER_CODE IS NOT NULL AND ACQUISITION_TIME IS NOT NULL AND ROWNUM <= 10"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.TRANSFER_ID,A.SELLMASTER_CODE,A.ACQUISITION_TIME, A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE,A.SELLMASTER_AMOUNT, A.CUSTOMER_AGE,A.CUSTOMER_GENDER,A.CUSTOMER_RACE,A.CUSTOMERINFO_DESC FROM HIGHWAY_EXCHANGE.T_CUSTOMERINFO A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 10", "T_CUSTOMERINFO").Tables[0].Rows) { try { if (string.IsNullOrWhiteSpace(_DataRow["TRANSFER_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "13";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog("T_CUSTOMERINFO:" + ex.Message); } #endregion break; case "14": #region HIGHWAY_EXCHANGE.T_PASSENGERFLOW 客流量统计表 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_PASSENGERFLOW'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_PASSENGERFLOW SET TRANSFER_STATE = 1 WHERE PASSENGERFLOW_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND PASSENGERFLOW_STARTTIME IS NOT NULL AND PASSENGERFLOW_ENDTIME IS NOT NULL AND ROWNUM <= 10"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.PASSENGERFLOW_ID,A.SERVERPARTCODE,A.PASSENGERFLOW_STARTTIME, A.PASSENGERFLOW_ENDTIME,A.PASSENGERFLOW_ENTRYNUM,A.PASSENGERFLOW_LIVENUM, A.PASSENGERFLOW_GENDER,A.REGIONAL_TYPE,A.PASSENGERFLOW_DESC FROM HIGHWAY_EXCHANGE.T_PASSENGERFLOW A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.PASSENGERFLOW_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 10", "T_PASSENGERFLOW").Tables[0].Rows) { try { if (string.IsNullOrWhiteSpace(_DataRow["PASSENGERFLOW_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "14";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SERVERPARTCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog("T_PASSENGERFLOW:" + ex.Message); } #endregion break; case "15": #region HIGHWAY_EXCHANGE.T_VEHICLEFLOW 车流量统计表 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_VEHICLEFLOW'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_VEHICLEFLOW SET TRANSFER_STATE = 1 WHERE VEHICLEFLOW_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND VEHICLEFLOW_STARTTIME IS NOT NULL AND VEHICLEFLOW_ENDTIME IS NOT NULL AND ROWNUM <= 10"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.VEHICLEFLOW_ID,A.SERVERPARTCODE,A.VEHICLEFLOW_STARTTIME, A.VEHICLEFLOW_ENDTIME,A.VEHICLEFLOW_ENTRYNUM,A.VEHICLEFLOW_LIVENUM, A.LANDAULET_COUNT,A.OVERSIZE_COUNT,A.REGIONAL_TYPE,A.REGIONAL_TYPE,A.VEHICLE_DESC FROM HIGHWAY_EXCHANGE.T_VEHICLEFLOW A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.VEHICLEFLOW_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 10", "T_VEHICLEFLOW").Tables[0].Rows) { try { if (string.IsNullOrWhiteSpace(_DataRow["VEHICLEFLOW_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "15";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SERVERPARTCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog("T_VEHICLEFLOW:" + ex.Message); } #endregion break; case "16": #region HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW 满意度评价统计表(暂不使用) try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_SATISFACTIONFLOW'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND SERVERPARTCODE IS NOT NULL AND SATISFACTIONFLOW_DATE IS NOT NULL AND ROWNUM <= 10"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.TRANSFER_ID,A.SERVERPARTCODE,A.SHOPCODE, A.MACHINECODE,A.MACADDRESS,A.SATISFACTIONFLOW_DATE, A.TOTALCOUNT,A.SATISFIEDCOUNT,A.UNSATISFIEDCOUNT,A.SATISFACTIONFLOW_DESC FROM HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 10", "T_SATISFACTIONFLOW").Tables[0].Rows) { try { if (string.IsNullOrWhiteSpace(_DataRow["TRANSFER_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "16";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog("T_SATISFACTIONFLOW:" + ex.Message); } #endregion break; case "17": #region HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW 满意度评价统计表(按日统计) try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_USERSATISFACTION'").Tables[0].Rows.Count == 0) { break; } foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.SERVERPARTCODE,A.SHOPCODE,TRUNC(SYSDATE) -1 AS SATISFACTIONFLOW_DATE, COUNT(A.ISSATISFIED) AS TOTALCOUNT, COUNT(CASE WHEN A.ISSATISFIED <> 1000 THEN 1 END) AS SATISFIEDCOUNT, COUNT(CASE WHEN A.ISSATISFIED = 1000 THEN 1 END) AS UNSATISFIEDCOUNT FROM HIGHWAY_EXCHANGE.T_USERSATISFACTION A WHERE A.ACQUISITION_TIME BETWEEN TRUNC(SYSDATE) -1 AND TRUNC(SYSDATE) GROUP BY A.SERVERPARTCODE,A.SHOPCODE", "T_SATISFACTIONFLOW").Tables[0].Rows) { try { if (string.IsNullOrWhiteSpace(_DataRow["SHOPCODE"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "17";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog("T_USERSATISFACTION(DAY):" + ex.Message); } #endregion break; case "18": #region HIGHWAY_EXCHANGE.T_DATACOLLECTION 数据采集(服务区版) try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_DATACOLLECTION'").Tables[0].Rows.Count == 0) { break; } SQLString = @"INSERT INTO HIGHWAY_EXCHANGE.T_DATACOLLECTION (DATACOLLECTION_ID,SERVERPARTCODE, DATACOLLECTION_TYPE,DATACOLLECTION_DATE,TOTAL_COUNT,TOTALSELL_AMOUNT,TICKET_COUNT) SELECT HIGHWAY_EXCHANGE.SEQ_DATACOLLECTION.NEXTVAL,SERVERPARTCODE,3000, DATACOLLECTION_DATE,TOTAL_COUNT,TOTALSELL_AMOUNT,TICKET_COUNT FROM (SELECT A.SERVERPARTCODE,SYSDATE AS DATACOLLECTION_DATE,NVL(SUM(A.TOTAL_COUNT),0) AS TOTAL_COUNT, NVL(SUM(A.TOTALSELL_AMOUNT),0) AS TOTALSELL_AMOUNT,NVL(SUM(A.TICKET_COUNT),0) AS TICKET_COUNT FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.DATACOLLECTION_TYPE = 1000 AND A.DATACOLLECTION_DATE BETWEEN SYSDATE - 10/1440 AND SYSDATE GROUP BY A.SERVERPARTCODE)"; //_OracleHelper.ExcuteSql(SQLString); //启动上传过程 //foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( // @"SELECT A.SERVERPARTCODE,SYSDATE AS DATACOLLECTION_DATE,NVL(SUM(A.TOTAL_COUNT),0) AS TOTAL_COUNT, // NVL(SUM(A.TOTALSELL_AMOUNT),0) AS TOTALSELL_AMOUNT,NVL(SUM(A.TICKET_COUNT),0) AS TICKET_COUNT // FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION A,HIGHWAY_EXCHANGE.T_SYSCODE B // WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.DATACOLLECTION_TYPE = 1000 AND // A.DATACOLLECTION_DATE BETWEEN SYSDATE - 10/1440 AND SYSDATE // GROUP BY A.SERVERPARTCODE", "T_DATACOLLECTION").Tables[0].Rows) SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION WHERE DATACOLLECTION_TYPE = 3000 AND TRANSFER_ID IS NULL"; if (_OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0].Rows.Count > 0) { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION SET TRANSFER_ID = DATACOLLECTION_ID WHERE DATACOLLECTION_TYPE = 3000 AND TRANSFER_ID IS NULL AND NVL(TRANSFER_STATE,0) < 9"); } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND SERVERPARTCODE IS NOT NULL AND DATACOLLECTION_TYPE = 3000 AND DATACOLLECTION_DATE > TRUNC(SYSDATE) AND ROWNUM <= 10"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.DATACOLLECTION_ID,A.SERVERPARTCODE,A.DATACOLLECTION_TYPE, A.DATACOLLECTION_DATE,A.TOTAL_COUNT,A.TOTALSELL_AMOUNT,A.TICKET_COUNT FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.DATACOLLECTION_TYPE = 3000 AND A.TRANSFER_STATE = 1 AND A.DATACOLLECTION_DATE > TRUNC(SYSDATE) AND ROWNUM <= 10").Tables[0].Rows) { try { if (string.IsNullOrWhiteSpace(_DataRow["SERVERPARTCODE"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "18";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SERVERPARTCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog("T_DATACOLLECTION:" + ex.Message); } #endregion break; case "20": #region HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW 结账数据 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_ENDACCOUNT_NEW'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND ENDDATE IS NOT NULL AND STARTDATE IS NOT NULL AND ROWNUM <= 1"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.ENDACCOUNT_ID,A.ENDACCOUNT_CODE,A.SERVERPARTCODE, A.SHOPCODE,A.MACHINECODE,A.ENDPERSON_CODE, A.STARTDATE,A.ENDDATE,A.TICKET_COUNT, A.TOTAL_COUNT,A.TOTAL_AMOUNT,A.TOTAL_OFFAMOUNT, A.CASHPAY,A.BANKPAY,A.MEMBERPAY, A.COUPONPAY,A.MOBILEPAY,A.INTERNALPAY, A.CONTRIBUTION_AMOUNT,A.PAYMENT_DETAILS,A.ENDACCOUNT_TYPE, A.ENDACCOUNT_DESC,A.TRANSFER_STATE,A.TRANSFER_ID FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1", "T_ENDACCOUNT_NEW").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["ENDACCOUNT_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "20";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "21": #region HIGHWAY_EXCHANGE.T_PERSONSELL_NEW 收银员报表 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_PERSONSELL_NEW'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_PERSONSELL_NEW SET TRANSFER_STATE = 1 WHERE TRANSFER_ID > 0 AND NVL(TRANSFER_STATE,0) = 0 AND ENDDATE IS NOT NULL AND STARTDATE IS NOT NULL AND ROWNUM <= 1"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.PERSONSELL_ID,A.ENDACCOUNT_CODE,A.SERVERPARTCODE, A.SHOPCODE,A.MACHINECODE,A.STARTDATE, A.ENDDATE,A.SELLWORKER_CODE,A.TICKET_COUNT, A.TOTAL_COUNT,A.TOTAL_AMOUNT,A.TOTAL_OFFAMOUNT, A.CASHPAY,A.BANKPAY,A.MEMBERPAY, A.COUPONPAY,A.MOBILEPAY,A.INTERNALPAY, A.OTHERPAY,A.CONTRIBUTION_AMOUNT,A.PAYMENT_DETAILS, A.WOKER_NUMBER,A.PERSONSELL_DESC,A.TRANSFER_STATE,A.TRANSFER_ID FROM HIGHWAY_EXCHANGE.T_PERSONSELL_NEW A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID > 0 AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1", "T_PERSONSELL_NEW").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["PERSONSELL_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "21";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "23": #region HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW 商品回传表 try { if (!IsTableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_COMMODITYEX_NEW")) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW SET TRANSFER_STATE = 1 WHERE NVL(TRANSFER_STATE,0) = 0 AND COMMODITY_CODE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SERVERPARTSHOP_ID IS NOT NULL"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.COMMODITYEX_ID,A.SERVERPARTCODE,A.COMMODITY_TYPE,A.COMMODITY_CODE,A.COMMODITY_BARCODE, A.COMMODITY_NAME,A.COMMODITY_RULE,A.COMMODITY_UNIT,A.COMMODITY_RETAILPRICE,A.COMMODITY_MEMBERPRICE, A.CANCHANGEPRICE,A.ISVALID,A.COMMODITY_EN,A.ISBULK,A.METERINGMETHOD,A.DOWNLOADDATE,A.FLAG, A.BUSINESSTYPE,A.SERVERPARTSHOP_ID,A.PRINT_DATE,A.CONTAINER_CODE,A.COMMODITY_SYMBOL, A.COMMODITY_HOTKEY,A.USERDEFINEDTYPE_ID,A.TRANSFER_STATE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1", "T_COMMODITYEX_NEW").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["COMMODITYEX_ID"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "23";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SERVERPARTCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "24": #region HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS 传输统计表 try { string CreateSql = @"CREATE TABLE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS ( TRANSFERSTATISTICS_CODE VARCHAR2(100), PID_CODE VARCHAR2(100), PROVINCE_CODE VARCHAR2(200), SERVERPARTCODE VARCHAR2(200), SHOPCODE VARCHAR2(200), MACHINECODE VARCHAR2(200), MACHINE_MACADDRESS VARCHAR2(500), TABLENAME VARCHAR2(200), LOCAL_UPLOADNUM NUMBER(9,0), LOCAL_NOTUPLOADNUM NUMBER(9,0), LOCAL_UPDATETIME DATE, SERVICE_UPLOADNUM NUMBER(9,0), SERVICE_NOTUPLOADNUM NUMBER(9,0), SERVICE_UPDATETIME DATE, STAFF_ID NUMBER(9,0), STAFF_NAME VARCHAR2(100), OPERATE_DATE DATE, TRANSFERSTATISTICS_DESC VARCHAR2(1000), TRANSFER_STATE NUMBER(4,0), TRANSFER_ID NUMBER(9,0) ) PCTFREE 10 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING"; CommonHelper.TableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_TRANSFERSTATISTICS", CreateSql); _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET TRANSFER_STATE = 1 WHERE NVL(TRANSFER_STATE,0) = 0 AND TRANSFERSTATISTICS_CODE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND ROWNUM <= 1"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.TRANSFERSTATISTICS_CODE,A.PID_CODE,A.PROVINCE_CODE,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE, A.MACHINE_MACADDRESS,A.TABLENAME,A.LOCAL_UPLOADNUM,A.LOCAL_NOTUPLOADNUM,A.LOCAL_UPDATETIME, A.SERVICE_UPLOADNUM,A.SERVICE_NOTUPLOADNUM,A.SERVICE_UPDATETIME,A.STAFF_ID,A.STAFF_NAME, A.OPERATE_DATE,A.TRANSFERSTATISTICS_DESC,A.TRANSFER_STATE,A.TRANSFER_ID FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1 ORDER BY OPERATE_DATE ASC", "T_TRANSFERSTATISTICS").Tables[0].Rows) { try { if (string.IsNullOrEmpty(_DataRow["TRANSFERSTATISTICS_CODE"].ToString())) { continue; } string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "24";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["TRANSFERSTATISTICS_CODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "25": #region HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR 特殊单品表 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_COMMODITYSALE_EXTAR'").Tables[0].Rows.Count == 0) { break; } _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR SET TRANSFER_STATE = 1 WHERE NVL(TRANSFER_STATE,0) = 0 AND COMMODITYSALE_ID IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(@"SELECT A.COMMODITYSALE_ID, A.STARTDATE, A.ENDDATE, A.SERVERPARTCODE, A.SHOPCODE, A.MACHINECODE, A.COMMODITY_TYPE, A.COMMODITY_CODE, A.COMMODITY_NAME, A.TICKETCOUNT, A.TOTALCOUNT, A.TOTALSELLAMOUNT, A.TOTALOFFAMOUNT, A.FLAG,A.TRANSFER_STATE, A.TRANSFER_ID, A.MERGE_STATE FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITYSALE_ID IS NOT NULL AND A.STARTDATE IS NOT NULL AND A.SERVERPARTCODE IS NOT NULL AND A.SHOPCODE IS NOT NULL AND A.MACHINECODE IS NOT NULL AND A.TRANSFER_STATE = 1 AND ROWNUM <= 1 -- AND A.ENDDATE > TRUNC(SYSDATE) - 1 ", "T_COMMODITYSALE_EXTAR").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "25";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["COMMODITYSALE_ID"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "26": #region HIGHWAY_EXCHANGE.T_MOBILE_PAY MOBILEPAY_RESULT = 5 的数据上传/更新 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAY SET MOBILEPAY_STATE = 1 WHERE NVL(MOBILEPAY_STATE,0) = 0 AND MOBILE_PAY_ID IS NOT NULL AND MOBILEPAY_TYPE IS NOT NULL AND TICKET_CODE IS NOT NULL AND MOBILEPAY_DATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND NVL(MOBILEPAY_RESULT ,0) = 5"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.MOBILE_PAY_ID,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE,A.WORKERCODE, A.MOBILEPAY_DATE,A.MOBILEPAY_TYPE,A.TICKET_CODE,A.TICKET_AMOUNT,A.MOBILEPAY_RESULT, A.MOBILEPAY_FEEDBACK,A.MOBILEPAY_STATE,A.MOBILEPAY_DESC FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND NVL(A.MOBILEPAY_STATE,0) = 1 AND NVL(A.MOBILEPAY_RESULT ,0) = 5 ", "T_MOBILE_PAY").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "26";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["MOBILE_PAY_ID"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "27": #region HIGHWAY_EXCHANGE.T_MOBILE_PAY MOBILEPAY_RESULT <> 5 的数据上传/更新 try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAY SET MOBILEPAY_STATE = 9 WHERE NVL(MOBILEPAY_STATE,0) <> 9 AND MOBILEPAY_RESULT = 9 AND UPPER(MOBILEPAY_DESC) LIKE 'SUCCESS%'"); } catch { } try { _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAY SET MOBILEPAY_STATE = 1 WHERE NVL(MOBILEPAY_STATE,0) = 0 AND MOBILE_PAY_ID IS NOT NULL AND MOBILEPAY_TYPE IS NOT NULL AND TICKET_CODE IS NOT NULL AND MOBILEPAY_DATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND NVL(MOBILEPAY_RESULT ,0) <> 5"); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.MOBILE_PAY_ID,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE,A.WORKERCODE, A.MOBILEPAY_DATE,A.MOBILEPAY_TYPE,A.TICKET_CODE,A.TICKET_AMOUNT,A.MOBILEPAY_RESULT, A.MOBILEPAY_FEEDBACK,A.MOBILEPAY_STATE,A.MOBILEPAY_DESC FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND NVL(A.MOBILEPAY_STATE,0) = 1 AND NVL(A.MOBILEPAY_RESULT ,0) <> 5", "T_MOBILE_PAY").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "27";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["MOBILE_PAY_ID"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "60": #region 门店、收银员、商品、快捷键数据 try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { try { string[] files = new string[2]; //门店 files[0] = "62";// ReceiveType 类型,int(注意重要参数必填) files[1] = _DataRow["SERVERPARTCODE"].ToString(); AutoSend(files); //收银员 files[0] = "63";// ReceiveType 类型,int(注意重要参数必填) files[1] = _DataRow["SERVERPARTCODE"].ToString(); AutoSend(files); //商品 files[0] = "64";// ReceiveType 类型,int(注意重要参数必填) files[1] = _DataRow["SERVERPARTCODE"].ToString(); AutoSend(files); //快捷键 files[0] = "65";// ReceiveType 类型,int(注意重要参数必填) files[1] = _DataRow["SERVERPARTCODE"].ToString(); AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "", true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "70": #region sql语句执行 try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { try { string[] files = new string[2]; //门店 files[0] = "70";// ReceiveType 类型,int(注意重要参数必填) files[1] = _DataRow["SERVERPARTCODE"].ToString(); AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "", true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "80": #region 下载统配商品数据 try { #region 创建表 #region 门店价格表 string CreateSql = @"CREATE TABLE HIGHWAY_EXCHANGE.T_SHOPPRICE ( SHOPPRICE_ID NUMBER(9,0) NOT NULL, SERVERPART_ID VARCHAR2(4000), BUSSINESS_TYPE VARCHAR2(4000), SERVERPARTSHOP_ID VARCHAR2(4000), PRICE_TYPE VARCHAR2(4000), SELLERCOMMODITY_ID VARCHAR2(4000), ROLEPRICE_ID VARCHAR2(4000), STAFF_ID NUMBER(9,0), STAFF_NAME VARCHAR2(100), OPERATE_DATE DATE, SHOPPRICE_DESC VARCHAR2(2000), CONSTRAINT PK_T_SHOPPRICE PRIMARY KEY (SHOPPRICE_ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) LOGGING ) PCTFREE 10 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING"; CommonHelper.TableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_SHOPPRICE", CreateSql); #endregion #region 商品类型表 CreateSql = @"CREATE TABLE HIGHWAY_EXCHANGE.T_SELLERCOMMODITYTYPE ( SELLERCOMMODITYTYPE_ID NUMBER(9,0) NOT NULL, TYPE_NAME VARCHAR2(50), TYPE_STATE NUMBER(1,0), TYPE_DESC VARCHAR2(2000), ADDTIME DATE, TYPE_PID NUMBER(9,0), TYPE_INDEX NUMBER(8,0), SELLER_ID NUMBER(9,0), SERVERPART_ID NUMBER(9,0), SERVERPARTSHOP_ID NUMBER(9,0), AUTOTYPE_STAFF VARCHAR2(200), AUTOTYPE_TYPEID NUMBER(4,0), AUTOTYPE_TYPENAME VARCHAR2(200), WAREHOUSE_ID NUMBER(9,0), WAREHOUSE_NAME VARCHAR2(50), CONSTRAINT PK_T_SELLERCOMMODITYTYPE PRIMARY KEY (SELLERCOMMODITYTYPE_ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) LOGGING ) PCTFREE 10 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING"; CommonHelper.TableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_SELLERCOMMODITYTYPE", CreateSql); #endregion #region 商品信息表 CreateSql = @"CREATE TABLE HIGHWAY_EXCHANGE.T_SELLERCOMMODITY ( SELLERCOMMODITY_ID NUMBER(9,0) NOT NULL, SELLERBUSINESSTYPE NUMBER(9,0) DEFAULT 1000, COMMODITY_CODE VARCHAR2(200), COMMODITY_NAME VARCHAR2(200), COMMODITY_BARCODE VARCHAR2(50), COMMODITY_BOXCODE VARCHAR2(50), COMMODITY_ALLNAME VARCHAR2(50), COMMODITY_EN VARCHAR2(50), COMMODITY_UNIT VARCHAR2(100), COMMODITY_RULE VARCHAR2(100), COMMODITY_ORI VARCHAR2(80), COMMODITY_GRADE VARCHAR2(100), COMMODITY_BOXSELLPRICE NUMBER(16,6), SELLPRICE NUMBER(16,6), COMMODITY_SELLPRICE NUMBER(16,6), SELLDUTY_PARAGRAPH NUMBER(8,0) DEFAULT 17, PURCHASE_BOXPRICE NUMBER(16,6), COMMODITY_CURRPRICE NUMBER(16,6), COMMODITY_PURCHASEPRICE NUMBER(16,6), DUTY_PARAGRAPH NUMBER(8,0) DEFAULT 17, MOVING_AVERAGEPRICE NUMBER(16,6), MOVING_PURCHASEPRICE NUMBER(16,6), COMMODITY_STATE NUMBER(8,0), COMMODITY_DESC VARCHAR2(3000), ADDTIME DATE, ISBULK NUMBER(6,0), METERINGMETHOD NUMBER(6,0), SELLER_ID NUMBER(9,0), SELLERCOMMODITYTYPE_ID NUMBER(9,0), BOXENTRY_COUNT NUMBER(16,6), SUPPLIER_ID NUMBER(9,0), CONSTRAINT PK_T_SELLERCOMMODITY PRIMARY KEY (SELLERCOMMODITY_ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 448K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) LOGGING, CONSTRAINT UK_T_SELLERCOMMODITY UNIQUE (COMMODITY_BARCODE, SELLER_ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 768K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) LOGGING ) PCTFREE 10 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 3M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING"; CommonHelper.TableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_SELLERCOMMODITY", CreateSql); #endregion #region 商品价格表 CreateSql = @"CREATE TABLE HIGHWAY_EXCHANGE.T_ROLEPRICE ( ROLEPRICE_ID NUMBER(9,0) NOT NULL, SELLER_ID NUMBER(9,0), SUPPLIER_ID NUMBER(9,0), SELLERCOMMODITY_ID NUMBER(9,0), COMMODITY_CODE VARCHAR2(10), BARCODE VARCHAR2(100), ROLEPRICE_NAME VARCHAR2(100), COMMODITY_BOXSELLPRICE NUMBER(16,6), SELLTAXPRICE NUMBER(16,6), SELLPRICE NUMBER(16,6), SELLDUTY_PARAGRAPH NUMBER(16,6), COMMODITY_BOXCOSTPRICE NUMBER(16,6), COSTTAXPRICE NUMBER(16,6), COSTPRICE NUMBER(16,6), DUTY_PARAGRAPH NUMBER(16,6), ROLEPRICE_DESC VARCHAR2(2000), WAREHOUSE_ID NUMBER(9,0), WAREHOUSE_NAME VARCHAR2(50), BOXENTRY_COUNT NUMBER(9,0), CONSTRAINT PK_T_ROLEPRICE PRIMARY KEY (ROLEPRICE_ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 128K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) LOGGING ) PCTFREE 10 MAXTRANS 255 TABLESPACE HIGHWAY_EXCHANGE STORAGE(INITIAL 448K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING"; CommonHelper.TableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_ROLEPRICE", CreateSql); #endregion #endregion List SQLStringArray = new List(); SQLString = "DELETE FROM HIGHWAY_EXCHANGE.T_SHOPPRICE"; SQLStringArray.Add(SQLString); SQLString = "DELETE FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITYTYPE"; SQLStringArray.Add(SQLString); SQLString = "DELETE FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY"; SQLStringArray.Add(SQLString); SQLString = "DELETE FROM HIGHWAY_EXCHANGE.T_ROLEPRICE"; SQLStringArray.Add(SQLString); _OracleHelper.ExecuteSqlTran(SQLStringArray); SQLStringArray.Clear(); OracleHelper Download = new OracleHelper(_DownloadConnString.Split(',')[0], _DownloadConnString.Split(',')[1], _DownloadConnString.Split(',')[2], _DownloadConnString.Split(',')[3], _DownloadConnString.Split(',')[4]); DataSet DownloadDataSource = Download.ExcuteSqlGetDataSet("SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPPRICE"); foreach (DataRow _DataRow in DownloadDataSource.Tables[0].Rows) { #region 门店价格表 SQLString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SHOPPRICE ( SHOPPRICE_ID,SERVERPART_ID,BUSSINESS_TYPE,SERVERPARTSHOP_ID, PRICE_TYPE,SELLERCOMMODITY_ID,ROLEPRICE_ID,STAFF_ID, STAFF_NAME,OPERATE_DATE,SHOPPRICE_DESC) VALUES ({0},'{1}','{2}','{3}','{4}','{5}','{6}',{7},'{8}', TO_DATE('{9}','YYYY/MM/DD HH24:MI:SS'),'{10}')", _DataRow["SHOPPRICE_ID"].ToString(), _DataRow["SERVERPART_ID"].ToString(), _DataRow["BUSSINESS_TYPE"].ToString(), _DataRow["SERVERPARTSHOP_ID"].ToString(), _DataRow["PRICE_TYPE"].ToString(), _DataRow["SELLERCOMMODITY_ID"].ToString(), _DataRow["ROLEPRICE_ID"].ToString(), (_DataRow["STAFF_ID"].ToString() == "" ? "" : _DataRow["STAFF_ID"].ToString()), _DataRow["STAFF_NAME"].ToString(), _DataRow["OPERATE_DATE"].ToString(), _DataRow["SHOPPRICE_DESC"].ToString()); #endregion SQLStringArray.Add(SQLString); } DownloadDataSource = Download.ExcuteSqlGetDataSet("SELECT * FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITYTYPE"); foreach (DataRow _DataRow in DownloadDataSource.Tables[0].Rows) { #region 商品类型表 SQLString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLERCOMMODITYTYPE ( SELLERCOMMODITYTYPE_ID,TYPE_NAME,TYPE_STATE,TYPE_DESC,ADDTIME,TYPE_PID, TYPE_INDEX,SELLER_ID,SERVERPART_ID,SERVERPARTSHOP_ID,AUTOTYPE_STAFF, AUTOTYPE_TYPEID,AUTOTYPE_TYPENAME,WAREHOUSE_ID,WAREHOUSE_NAME) VALUES ({0},'{1}',{2},'{3}',TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS'), {5},{6},{7},{8},{9},'{10}',{11},'{12}',{13},'{14}')", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["SELLERCOMMODITYTYPE_ID"].ToString()), _DataRow["TYPE_NAME"].ToString(), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["TYPE_STATE"].ToString()), _DataRow["TYPE_DESC"].ToString(), _DataRow["ADDTIME"].ToString(), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["TYPE_PID"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["TYPE_INDEX"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SELLER_ID"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["SERVERPART_ID"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SERVERPARTSHOP_ID"].ToString()), _DataRow["AUTOTYPE_STAFF"].ToString(), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["AUTOTYPE_TYPEID"].ToString()), _DataRow["AUTOTYPE_TYPENAME"].ToString(), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["WAREHOUSE_ID"].ToString()), _DataRow["WAREHOUSE_NAME"].ToString()); #endregion SQLStringArray.Add(SQLString); } DownloadDataSource = Download.ExcuteSqlGetDataSet("SELECT * FROM HIGHWAY_EXCHANGE.T_SELLERCOMMODITY"); foreach (DataRow _DataRow in DownloadDataSource.Tables[0].Rows) { #region 商品信息表 SQLString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLERCOMMODITY ( SELLERCOMMODITY_ID,SELLERBUSINESSTYPE,COMMODITY_CODE,COMMODITY_NAME, COMMODITY_BARCODE,COMMODITY_BOXCODE,COMMODITY_ALLNAME,COMMODITY_EN,COMMODITY_UNIT, COMMODITY_RULE,COMMODITY_ORI,COMMODITY_GRADE,COMMODITY_BOXSELLPRICE, SELLPRICE,COMMODITY_SELLPRICE,SELLDUTY_PARAGRAPH,PURCHASE_BOXPRICE, COMMODITY_CURRPRICE,COMMODITY_PURCHASEPRICE,DUTY_PARAGRAPH,MOVING_AVERAGEPRICE, MOVING_PURCHASEPRICE,COMMODITY_STATE,COMMODITY_DESC,ADDTIME,ISBULK, METERINGMETHOD,SELLER_ID,SELLERCOMMODITYTYPE_ID,BOXENTRY_COUNT,SUPPLIER_ID) VALUES ({0},{1},'{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}', {12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},'{23}', TO_DATE('{24}','YYYY/MM/DD HH24:MI:SS'),{25},{26},{27},{28},{29},{30})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["SELLERCOMMODITY_ID"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SELLERBUSINESSTYPE"].ToString()), _DataRow["COMMODITY_CODE"].ToString(), _DataRow["COMMODITY_NAME"].ToString(), _DataRow["COMMODITY_BARCODE"].ToString(), _DataRow["COMMODITY_BOXCODE"].ToString(), _DataRow["COMMODITY_ALLNAME"].ToString(), _DataRow["COMMODITY_EN"].ToString(), _DataRow["COMMODITY_UNIT"].ToString(), _DataRow["COMMODITY_RULE"].ToString(), _DataRow["COMMODITY_ORI"].ToString(), _DataRow["COMMODITY_GRADE"].ToString(), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["COMMODITY_BOXSELLPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["SELLPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["COMMODITY_SELLPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SELLDUTY_PARAGRAPH"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["PURCHASE_BOXPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["COMMODITY_CURRPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["COMMODITY_PURCHASEPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["DUTY_PARAGRAPH"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["MOVING_AVERAGEPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["MOVING_PURCHASEPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["COMMODITY_STATE"].ToString()), _DataRow["COMMODITY_DESC"].ToString(), _DataRow["ADDTIME"].ToString(), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["ISBULK"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["METERINGMETHOD"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["SELLER_ID"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["SELLERCOMMODITYTYPE_ID"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["BOXENTRY_COUNT"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SUPPLIER_ID"].ToString())); #endregion SQLStringArray.Add(SQLString); } DownloadDataSource = Download.ExcuteSqlGetDataSet("SELECT * FROM HIGHWAY_EXCHANGE.T_ROLEPRICE"); foreach (DataRow _DataRow in DownloadDataSource.Tables[0].Rows) { #region 商品价格表 SQLString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_ROLEPRICE ( ROLEPRICE_ID,SELLER_ID,SUPPLIER_ID,SELLERCOMMODITY_ID,COMMODITY_CODE, BARCODE,ROLEPRICE_NAME,COMMODITY_BOXSELLPRICE,SELLTAXPRICE,SELLPRICE, SELLDUTY_PARAGRAPH,COMMODITY_BOXCOSTPRICE,COSTTAXPRICE,COSTPRICE, DUTY_PARAGRAPH,ROLEPRICE_DESC,WAREHOUSE_ID,WAREHOUSE_NAME,BOXENTRY_COUNT) VALUES ({0},{1},{2},{3},'{4}','{5}','{6}',{7},{8},{9},{10}, {11},{12},{13},{14},'{15}',{16},'{17}',{18})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["ROLEPRICE_ID"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SELLER_ID"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["SUPPLIER_ID"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Int, _DataRow["SELLERCOMMODITY_ID"].ToString()), _DataRow["COMMODITY_CODE"].ToString(), _DataRow["BARCODE"].ToString(), _DataRow["ROLEPRICE_NAME"].ToString(), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["COMMODITY_BOXSELLPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["SELLTAXPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["SELLPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["SELLDUTY_PARAGRAPH"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["COMMODITY_BOXCOSTPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["COSTTAXPRICE"].ToString()), CommonHelperNew.IsArrayType( CommonHelperNew.ValueType.Double, _DataRow["COSTPRICE"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Double, _DataRow["DUTY_PARAGRAPH"].ToString()), _DataRow["ROLEPRICE_DESC"].ToString(), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["WAREHOUSE_ID"].ToString()), _DataRow["WAREHOUSE_NAME"].ToString(), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["BOXENTRY_COUNT"].ToString())); #endregion SQLStringArray.Add(SQLString); } if (SQLStringArray.Count > 0) { _OracleHelper.ExecuteSqlTran(SQLStringArray); } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "T_SELLER"); } #endregion break; case "91": #region HIGHWAY_EXCHANGE.T_CONNECTPOINT 旧版状态反馈 try { if (_OracleHelper.ExcuteSqlGetDataSet( @"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_CONNECTPOINT'").Tables[0].Rows.Count == 0) { break; } foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.CONNECTPOINT_ID, A.MACHINECODE, A.CONNECT_DATE, A.CONNECT_IP, A.SERVERPARTCODE, A.SHOPCODE, A.MACHINENAME, A.CONTENT, A.CURRAMOUNT, A.CURRSELLCOUNT, A.CURRCOMMCOUNT, A.CURRPRESON, A.COMMODITYINFO FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.MACHINECODE IS NOT NULL AND A.SHOPCODE IS NOT NULL AND A.CONNECT_DATE > TRUNC(SYSDATE)", "T_CONNECTPOINT").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "91";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "92": #region HIGHWAY_EXCHANGE.T_STATEFEEDBACK 新版状态反馈 try { if (_OracleHelper.ExcuteSqlGetDataSet(@"SELECT 1 FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_STATEFEEDBACK'").Tables[0].Rows.Count == 0) { break; } foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( @"SELECT A.STATEFEEDBACK_ID, A.CONNECT_DATE, A.SERVERPARTCODE, A.SHOPCODE, A.MACHINECODE, A.MACHINENAME, A.MACHINE_MACADDRESS, A.CONNECT_IP, A.CURRENT_SELLAMOUNT, A.CURRENT_SELLCOUNT, A.CURRENT_TICKETCOUNT, A.CURRENT_GOODSCOUNT, A.CURRENT_PERSON,A.SELL_CONTENT,A.VERSION_NUM, A.CONFIG_CONTENT,A.STATEFEEDBACK_DESC FROM HIGHWAY_EXCHANGE.T_STATEFEEDBACK A,HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SERVERPARTCODE IS NOT NULL AND A.SHOPCODE IS NOT NULL AND A.MACHINECODE IS NOT NULL AND A.CONNECT_DATE > TRUNC(SYSDATE)", "T_STATEFEEDBACK").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 1]; files[0] = "92";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } AutoSend(files); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SHOPCODE"].ToString(), true); } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } #endregion break; case "95": #region 特殊流水、异常操作数据上传 try { string CreateSql = @"CREATE TABLE HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL ( SELLDATA_ID NUMBER(9,0) NOT NULL, SELLDATA_TYPE VARCHAR2(50), SELLDATA_DATE TIMESTAMP(7), SERVERPARTCODE VARCHAR2(10), SHOPCODE VARCHAR2(6), MACHINECODE VARCHAR2(6), TICKETCODE VARCHAR2(50), WORKERCODE VARCHAR2(6), COMMODITY_CODE VARCHAR2(4000), SELLCOUNT NUMBER(16,2), SELLPRICE NUMBER(16,2), OFFPRICE NUMBER(16,2), FACTAMOUNT NUMBER(16,2), LINENUM NUMBER(9,0) DEFAULT 1, FLAG NUMBER(1,0) DEFAULT 0, SELLDATA_EXTRA_DESC VARCHAR2(2000) )"; CommonHelper.TableExists(_OracleHelper, "HIGHWAY_EXCHANGE", "T_SELLDATA_EXTRADETAIL", CreateSql); foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { #region 插入收银机端移动支付明细 /*if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(TRANSFER_STATE,0) < 5").Tables[0].Rows.Count > 0) { _OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_SELLDATA SET TRANSFER_STATE = 5 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(TRANSFER_STATE,0) < 5"); } if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND TRANSFER_STATE = 5").Tables[0].Rows.Count > 0) { List SQLStringArray = new List(); SQLString = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL (SELLDATA_ID, SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE, COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT SELLDATA_ID,CASE WHEN TICKETBILL <> 0 OR TICKETCODE LIKE '%微%' THEN 'WECHAT_PAY' WHEN OTHERPAY <> 0 OR TICKETCODE LIKE '%(支)%' THEN 'ALI_PAY' WHEN LENGTH(ORDERCODE) > 20 THEN 'MOBILE_PAY' ELSE 'SELLDATA' END, SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE, COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,ORDERCODE FROM HIGHWAY_EXCHANGE.T_SELLDATA A WHERE TRANSFER_STATE = 5 AND (TICKETBILL <> 0 OR COSTBILL <> 0 OR OTHERPAY <> 0 OR TICKETCODE LIKE '%(%)%' OR LENGTH(ORDERCODE) > 20) AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND A.LINENUM = B.LINENUM) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"; SQLStringArray.Add(SQLString); SQLString = @"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL (SELLDATA_ID,SELLDATA_TYPE, SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE, SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT A.SELLDATA_ID,B.SELLDATA_TYPE,A.SELLDATA_DATE,A.SERVERPARTCODE,A.SHOPCODE, A.MACHINECODE,A.TICKETCODE,A.WORKERCODE,A.COMMODITY_CODE,A.SELLCOUNT, A.SELLPRICE,A.OFFPRICE,A.FACTAMOUNT,A.LINENUM,A.FLAG,A.ORDERCODE FROM HIGHWAY_EXCHANGE.T_SELLDATA A,HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.TICKETCODE = B.TICKETCODE AND A.LINENUM <> B.LINENUM AND TRANSFER_STATE = 5 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL C WHERE A.SELLDATA_DATE = C.SELLDATA_DATE AND A.SERVERPARTCODE = C.SERVERPARTCODE AND A.SHOPCODE = C.SHOPCODE AND A.TICKETCODE = C.TICKETCODE AND A.LINENUM = C.LINENUM) AND A.SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"; SQLStringArray.Add(SQLString); SQLString = "UPDATE HIGHWAY_EXCHANGE.T_SELLDATA SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND TRANSFER_STATE = 5"; SQLStringArray.Add(SQLString); SQLString = "UPDATE HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL SET FLAG = 5 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND FLAG < 5"; SQLStringArray.Add(SQLString); _OracleHelper.ExecuteSqlTran(SQLStringArray); } #endregion #region 上传收银机端移动支付明细 if (_OracleHelper.ExcuteSqlGetDataSet( "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND FLAG = 5").Tables[0].Rows.Count > 0) { List SQLStringArray = new List(); SQLString = @"INSERT INTO T_SELLDATA_EXTRADETAIL@SERVER_ORCL (SELLDATA_ID,SELLDATA_TYPE, SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE, SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,0,SELLDATA_EXTRA_DESC FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL A WHERE NOT EXISTS(SELECT 1 FROM T_SELLDATA_EXTRADETAIL@SERVER_ORCL B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND --A.SELLDATA_TYPE = B.SELLDATA_TYPE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND NVL(A.LINENUM,1) = NVL(B.LINENUM,1) AND A.SELLDATA_ID = B.SELLDATA_ID) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND FLAG = 5"; SQLStringArray.Add(SQLString); SQLString = "UPDATE HIGHWAY_EXCHANGE.T_SELLDATA_EXTRADETAIL SET FLAG = 9 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND FLAG = 5"; SQLStringArray.Add(SQLString); _OracleHelper.ExecuteSqlTran(SQLStringArray); }*/ #endregion #region 上传后台移动支付记录 if (_OracleHelper.ExcuteSqlGetDataSet( "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(FLAG,0) <> 1").Tables[0].Rows.Count > 0) { if (_OracleHelper.ExcuteSqlGetDataSet( "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(FLAG,0) IN (0,9)").Tables[0].Rows.Count > 0) { _OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA SET FLAG = 5 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(FLAG,0) IN (0,9)"); } List SQLStringArray = new List(); SQLString = @"INSERT INTO T_SELLDATA_EXTRA@SERVER_ORCL (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE, SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE,SELLCOUNT, SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,0,SELLDATA_EXTRA_DESC FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA A WHERE NOT EXISTS(SELECT 1 FROM T_SELLDATA_EXTRA@SERVER_ORCL B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND --A.SELLDATA_TYPE = B.SELLDATA_TYPE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND NVL(A.LINENUM,1) = NVL(B.LINENUM,1) AND A.SELLDATA_ID = B.SELLDATA_ID) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND FLAG = 5"; SQLStringArray.Add(SQLString); SQLString = "UPDATE HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA SET FLAG = 1 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND FLAG = 5"; SQLStringArray.Add(SQLString); _OracleHelper.ExecuteSqlTran(SQLStringArray); } #endregion #region 异常数据 if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_EXCEPTION WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(TRANSFER_STATE,0) = 0").Tables[0].Rows.Count > 0) { _OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_EXCEPTION SET TRANSFER_STATE = 5 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(TRANSFER_STATE,0) = 0"); } if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_EXCEPTION WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(TRANSFER_STATE,0) = 5").Tables[0].Rows.Count > 0) { SQLString = @"INSERT INTO T_EXCEPTION@SERVER_ORCL( EXCEPTION_ID,EXCEPTION_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, WORKERCODE,EXCEPTIONTYPE,COMMODITY_CODE,EXCEPTIONCOUNT,EXCEPTIONAMOUNT) SELECT DISTINCT EXCEPTION_ID,EXCEPTION_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, WORKERCODE,EXCEPTIONTYPE,COMMODITY_CODE,EXCEPTIONCOUNT,EXCEPTIONAMOUNT FROM HIGHWAY_EXCHANGE.T_EXCEPTION A WHERE SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND COMMODITY_CODE IS NOT NULL AND TRIM(TRANSLATE(EXCEPTIONTYPE,'0123456789',' ')) IS NULL AND EXCEPTION_DATE > TRUNC(SYSDATE) - 120 AND TRANSFER_STATE = 5 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_EXCEPTION@SERVER_ORCL B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.EXCEPTION_DATE = B.EXCEPTION_DATE AND A.MACHINECODE = B.MACHINECODE AND A.EXCEPTIONTYPE = B.EXCEPTIONTYPE AND A.COMMODITY_CODE = B.COMMODITY_CODE AND A.EXCEPTION_ID = B.EXCEPTION_ID) AND EXCEPTIONTYPE NOT IN('1010','2020') AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"; _OracleHelper.ExcuteSql(SQLString); } _OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_EXCEPTION SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "' AND NVL(TRANSFER_STATE,0) = 5"); #endregion } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "T_SELLDATA_EXTRA"); } #endregion break; case "96": #region 销售流水集合 try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA@SELLDATA ( TRANSFER_ID ,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS, TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS, TRANSFER_STATE,TRANSFER_SELLDATA_ID) SELECT TRANSFER_ID ,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS, TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS, TRANSFER_STATE,TRANSFER_SELLDATA_ID FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA A WHERE TRANSFER_SELLDATA_ID > 0 AND NVL(TRANSFER_STATE,0) < 9 AND SELLDATA_DATE >= SYSDATE - 30 AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"); _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA A SET A.TRANSFER_STATE = 9 WHERE TRANSFER_SELLDATA_ID > 0 AND NVL(TRANSFER_STATE,0) < 9 AND SELLDATA_DATE >= SYSDATE - 30 AND EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA@SELLDATA B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_SELLDATA_ID = B.TRANSFER_SELLDATA_ID) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"); } } catch { } #endregion break; case "97": #region 集合数据上传 try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { /*_OracleHelper.ExcuteSql(@"INSERT INTO T_TRANSFER_SALE@NEWEX (TRANSFER_ID,STARTDATE,ENDDATE, SERVERPARTCODE,SHOPCODE,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS,TRANSFER_THIRDDATAS, TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS,TRANSFER_SIXTHDATAS,TRANSFER_SEVENTHDATAS, TRANSFER_EIGHTHDATAS,TRANSFER_NINTHTDATAS,TRANSFER_TENTHDATAS,TRANSFER_ELEVENTHDATAS, TRANSFER_TWELFTHDATAS,TRANSFER_THIRTEENTHDATAS,TRANSFER_FOURTEENTHDATAS,TRANSFER_FIFTEENTHDATAS) SELECT TRANSFER_SALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE,SHOPCODE,TRANSFER_FIRSTDATAS, TRANSFER_SECONDDATAS,TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS, TRANSFER_SIXTHDATAS,TRANSFER_SEVENTHDATAS,TRANSFER_EIGHTHDATAS,TRANSFER_NINTHTDATAS, TRANSFER_TENTHDATAS,TRANSFER_ELEVENTHDATAS,TRANSFER_TWELFTHDATAS,TRANSFER_THIRTEENTHDATAS, TRANSFER_FOURTEENTHDATAS,TRANSFER_FIFTEENTHDATAS FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE A WHERE TRANSFER_SALE_ID IS NOT NULL AND NVL(TRANSFER_STATE,0) < 9 AND --ENDDATE <= SYSDATE - 1/24 AND NOT EXISTS(SELECT 1 FROM T_TRANSFER_SALE@NEWEX B WHERE A.TRANSFER_SALE_ID = B.TRANSFER_ID AND A.SERVERPARTCODE = B.SERVERPARTCODE) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"); _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFER_SALE A SET A.TRANSFER_STATE = 9 WHERE NVL(TRANSFER_STATE,0) < 9 AND --ENDDATE <= SYSDATE - 1/24 AND EXISTS(SELECT 1 FROM T_TRANSFER_SALE@NEWEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_SALE_ID = B.TRANSFER_ID) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"); _OracleHelper.ExcuteSql(@"INSERT INTO T_BUSINESSTIME@NEWEX (BUSINESSTIME_ID,SERVERPARTCODE, SHOPCODE,MACHINECODE,ENDACCOUNT_STARTDATE,ENDACCOUNT_DATE,BUSINESS_OPENTIME, BUSINESS_CLOSETIME,BUSINESS_STARTTIME,BUSINESS_ENDTIME,BUSINESS_STARTINFO, BUSINESS_ENDINFO,BUSINESSTIME_STATE,BUSINESSTIME_DESC) SELECT BUSINESSTIME_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,ENDACCOUNT_STARTDATE, ENDACCOUNT_DATE,BUSINESS_OPENTIME,BUSINESS_CLOSETIME,BUSINESS_STARTTIME, BUSINESS_ENDTIME,BUSINESS_STARTINFO,BUSINESS_ENDINFO,BUSINESSTIME_STATE,BUSINESSTIME_DESC FROM HIGHWAY_EXCHANGE.T_BUSINESSTIME A WHERE NOT EXISTS(SELECT 1 FROM T_BUSINESSTIME@NEWEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.ENDACCOUNT_STARTDATE = B.ENDACCOUNT_STARTDATE AND A.MACHINECODE = B.MACHINECODE AND A.ENDACCOUNT_DATE = B.ENDACCOUNT_DATE) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'");*/ //插入新数据 MOBILEPAY_RESULT 不为5的数据 /* _OracleHelper.ExcuteSql(@"INSERT INTO T_MOBILE_PAY@NEWEX (MOBILE_PAY_ID,SERVERPARTCODE, SHOPCODE,MACHINECODE,WORKERCODE,MOBILEPAY_DATE,MOBILEPAY_TYPE,TICKET_CODE, TICKET_AMOUNT,MOBILEPAY_RESULT,MOBILEPAY_FEEDBACK,MOBILEPAY_STATE,MOBILEPAY_DESC) SELECT MOBILE_PAY_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,WORKERCODE,MOBILEPAY_DATE, MOBILEPAY_TYPE,TICKET_CODE,TICKET_AMOUNT,MOBILEPAY_RESULT,MOBILEPAY_FEEDBACK, MOBILEPAY_STATE,MOBILEPAY_DESC FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY A WHERE NVL(MOBILEPAY_STATE,0) < 9 AND NVL(A.MOBILEPAY_RESULT ,0) <> 5 AND NOT EXISTS(SELECT 1 FROM T_MOBILE_PAY@NEWEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MOBILEPAY_DATE = B.MOBILEPAY_DATE AND A.MOBILEPAY_TYPE = B.MOBILEPAY_TYPE AND A.MACHINECODE = B.MACHINECODE AND A.TICKET_CODE = B.TICKET_CODE AND A.MOBILEPAY_RESULT = B.MOBILEPAY_RESULT) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"); //更新状态 MOBILEPAY_RESULT 不为5的数据 _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAY A SET A.MOBILEPAY_STATE = 9 WHERE NVL(MOBILEPAY_STATE,0) < 9 AND NVL(A.MOBILEPAY_RESULT ,0) <> 5 AND EXISTS(SELECT 1 FROM T_MOBILE_PAY@NEWEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.MACHINECODE = B.MACHINECODE AND A.SHOPCODE = B.SHOPCODE AND A.MOBILEPAY_DATE = B.MOBILEPAY_DATE AND A.MOBILEPAY_TYPE = B.MOBILEPAY_TYPE AND A.TICKET_CODE = B.TICKET_CODE AND A.MOBILEPAY_RESULT = B.MOBILEPAY_RESULT) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'");*/ /* _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR@NEWEX ( COMMODITYSALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE, SHOPCODE, MACHINECODE, COMMODITY_TYPE, COMMODITY_CODE, COMMODITY_NAME, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, FLAG,TRANSFER_STATE, TRANSFER_ID, MERGE_STATE) SELECT COMMODITYSALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE, SHOPCODE, MACHINECODE, COMMODITY_TYPE, COMMODITY_CODE, COMMODITY_NAME, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, FLAG,TRANSFER_STATE, TRANSFER_ID, MERGE_STATE FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR A WHERE COMMODITYSALE_ID IS NOT NULL AND STARTDATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND NVL(TRANSFER_STATE,0) < 9 AND ENDDATE <= TRUNC(SYSDATE) - 1 AND NOT EXISTS (SELECT 1 FROM T_COMMODITYSALE_EXTAR@NEWEX B WHERE A.COMMODITYSALE_ID = B.COMMODITYSALE_ID AND A.STARTDATE = B.STARTDATE AND A.ENDDATE = B.ENDDATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.COMMODITY_CODE = B.COMMODITY_CODE) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"); _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR A SET A.TRANSFER_STATE = 9 WHERE NVL(TRANSFER_STATE,0) < 9 AND EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR@NEWEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.STARTDATE = B.STARTDATE AND A.ENDDATE = B.ENDDATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.COMMODITY_CODE = B.COMMODITY_CODE) AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'");*/ } } catch { } #endregion break; case "98": #region 状态反馈 try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet( "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows) { #region 下发数据反馈 try { SQLString = @"DELETE FROM T_BASEINFOFEEDBACK@NEWEX A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_BASEINFOFEEDBACK B WHERE A.SERVERPART_CODE = B.SERVERPART_CODE AND A.MACHINE_MACADDRESS = B.MACHINE_MACADDRESS AND A.TABLE_NAME = B.TABLE_NAME) AND SERVERPART_CODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"; _OracleHelper.ExcuteSql(SQLString); SQLString = @"INSERT INTO T_BASEINFOFEEDBACK@NEWEX ( BASEINFOFEEDBACK_ID,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME, SERVERPART_CODE,SERVERPART_ID,MACHINECODE,MACHINENAME, MACHINE_MACADDRESS,MACHINE_IP,MACHINE_STARTDATE, MACHINE_ENDDATE,SENDDATE,STAFF_ID,STAFF_NAME, TABLE_NAME,RESERVE_FIRSTCHAR,RESERVE_SECONDCHAR, RESERVE_THIRDCHAR,BASEINFOFEEDBACK_DESC) SELECT BASEINFOFEEDBACK_ID,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME, SERVERPART_CODE,SERVERPART_ID,MACHINECODE,MACHINENAME, MACHINE_MACADDRESS,MACHINE_IP,MACHINE_STARTDATE, MACHINE_ENDDATE,SENDDATE,STAFF_ID,STAFF_NAME, TABLE_NAME,RESERVE_FIRSTCHAR,RESERVE_SECONDCHAR, RESERVE_THIRDCHAR,BASEINFOFEEDBACK_DESC FROM HIGHWAY_EXCHANGE.T_BASEINFOFEEDBACK A WHERE SERVERPART_CODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'"; _OracleHelper.ExcuteSql(SQLString); } catch { } #endregion #region 状态反馈,暂停使用 // _OracleHelper.ExcuteSql(@"DELETE FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT A WHERE EXISTS (SELECT 1 // FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT B WHERE A.MACHINECODE = B.MACHINECODE AND // A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE //GROUP BY MACHINECODE,SERVERPARTCODE,SHOPCODE HAVING COUNT(*) > 1) AND //ROWID NOT IN (SELECT MAX(ROWID) FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT //GROUP BY MACHINECODE,SERVERPARTCODE,SHOPCODE HAVING COUNT(*)>1)"); // _OracleHelper.ExcuteSql("DELETE FROM T_CONNECTPOINT@NEWEX WHERE SERVERPARTCODE = '" + // _DataRow["SERVERPARTCODE"].ToString() + "'"); // SQLString = @"INSERT INTO T_CONNECTPOINT@NEWEX(CONNECTPOINT_ID,MACHINECODE, // CONNECT_DATE,CONNECT_IP,SERVERPARTCODE,SHOPCODE,MACHINENAME,CONTENT, // CURRAMOUNT,CURRSELLCOUNT,CURRCOMMCOUNT,CURRPRESON,COMMODITYINFO) // SELECT CONNECTPOINT_ID,MACHINECODE,CONNECT_DATE,CONNECT_IP,SERVERPARTCODE,SHOPCODE, // MACHINENAME,CONTENT,CURRAMOUNT,CURRSELLCOUNT,CURRCOMMCOUNT,CURRPRESON,COMMODITYINFO // FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT WHERE SHOPCODE IS NOT NULL AND SERVERPARTCODE = '" + // _DataRow["SERVERPARTCODE"].ToString() + "' AND MACHINECODE IS NOT NULL"; // _OracleHelper.ExcuteSql(SQLString); // _OracleHelper.ExcuteSql("DELETE FROM T_STATEFEEDBACK@NEWEX WHERE SERVERPARTCODE = '" + // _DataRow["SERVERPARTCODE"].ToString() + "'"); // SQLString = @"INSERT INTO T_STATEFEEDBACK@NEWEX(STATEFEEDBACK_ID,CONNECT_DATE, // SERVERPARTCODE,SHOPCODE,MACHINECODE,MACHINENAME,MACHINE_MACADDRESS, // CONNECT_IP,CURRENT_SELLAMOUNT,CURRENT_SELLCOUNT,CURRENT_TICKETCOUNT, // CURRENT_GOODSCOUNT,CURRENT_PERSON,SELL_CONTENT,VERSION_NUM, // CONFIG_CONTENT,STATEFEEDBACK_DESC) // SELECT STATEFEEDBACK_ID,CONNECT_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, // MACHINENAME,MACHINE_MACADDRESS,CONNECT_IP,CURRENT_SELLAMOUNT, // CURRENT_SELLCOUNT,CURRENT_TICKETCOUNT,CURRENT_GOODSCOUNT,CURRENT_PERSON, // SELL_CONTENT,VERSION_NUM,CONFIG_CONTENT,STATEFEEDBACK_DESC // FROM HIGHWAY_EXCHANGE.T_STATEFEEDBACK WHERE SHOPCODE IS NOT NULL AND SERVERPARTCODE = '" + // _DataRow["SERVERPARTCODE"].ToString() + "' AND MACHINECODE IS NOT NULL"; // _OracleHelper.ExcuteSql(SQLString); #endregion } } catch { } #endregion break; case "99": switch (DateTime.Now.Hour) { case 6: case 14: case 22: if (!ScanUpdateState) { ScanUpdateState = true; if (ScanUpdateThread == null || !ScanUpdateThread.IsAlive) { ScanUpdateThread = new Thread(() => ScanUpdateHelper.UpLoad(1001, _OracleHelper, _ScanUpdateURL)) { IsBackground = true }; ScanUpdateThread.Start(); } } break; default: ScanUpdateState = false; break; } break; case "100": #region 程序监听 try { FileInfo _FileInfo = new FileInfo(_ToolListen); if (_FileInfo.Exists) { string WriteTxt = File.ReadAllText(_ToolListen, Encoding.Default); WriteTxt = WriteTxt.Replace("\r", ""); if (DateTime.Parse(WriteTxt).AddMinutes(10) < DateTime.Now) { CommonHelper.StartProc(_StartApp.Split('|')); } } string[] files = new string[5]; files[0] = "100";// ReceiveType 类型,int(注意重要参数必填) files[1] = "Send"; byte[] _buffer = EventsCommodityNew.ObjectToBytes(files); byte[] feedback; feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[0]))); //获取并展示返回的数据 files = (string[])EventsCommodityNew.BytesToObject(feedback); propertyGrid2.SelectedObject = files; if (files[0] == "100" && files[1] == "Recieve") { FileStream _FileStream = new FileStream(_ToolListen, FileMode.Create, FileAccess.Write); try { DateTime.Parse(files[2]); byte[] _data = new UTF8Encoding().GetBytes(files[2]); _FileStream.Write(_data, 0, _data.Length); _FileStream.Flush(); _FileStream.Close(); } catch { _FileStream.Flush(); _FileStream.Close(); } } } catch (Exception ex) { //MessageBox.Show(ex.ToString()); if (!Directory.Exists(Application.StartupPath + "\\ErrorLog")) { System.IO.Directory.CreateDirectory(Application.StartupPath + "\\ErrorLog"); } LogHelper.WriteSendLog(ex.Message, "ErrorLog\\日志_Receive" + DateTime.Now.ToString("yyyyMMdd"), true); } #endregion break; default: #region 检测工具状态 if (_index == 1) { /* SQLString = @"SELECT * FROM T_TRANSFERTOOL@NEWEX A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE)"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SQLString, "T_SYSCODE").Tables[0].Rows.Count > 0) { SQLString = $@"UPDATE T_TRANSFERTOOL@NEWEX A SET ( SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) = ( SELECT SERVERPART_NAME,SYSDATE,'Sv{Application.ProductVersion}' FROM HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE) WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SYSCODE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE)"; } else { SQLString = string.Format(@"INSERT INTO T_TRANSFERTOOL@NEWEX(TRANSFERTOOL_ID,SERVERPARTCODE, SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) SELECT SEQ_TRANSFERTOOL.NEXTVAL@NEWEX,SERVERPARTCODE,SERVERPART_NAME,SYSDATE,'Sv{0}' FROM HIGHWAY_EXCHANGE.T_SYSCODE", Application.ProductVersion); } _OracleHelper.ExcuteSql(SQLString); } catch { }*/ } if (_index == 2) { SQLString = @"SELECT SERVERPARTCODE,SERVERPART_NAME,SERVERPART_ID,PROVINCE_CODE FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE"; try { foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(SQLString, "T_SYSCODE").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 3]; files[0] = "99";// ReceiveType 类型,int(注意重要参数必填) for (int i = 0; i < _DataRow.ItemArray.Length; i++) { files[i + 1] = _DataRow[i].ToString(); } files[files.Length - 2] = DateTime.Now.ToString(); //TRANSFERTOOL_DATE files[files.Length - 1] = ""; //TRANSFERTOOL_DESC byte[] _buffer = EventsCommodityNew.ObjectToBytes(files); byte[] feedback; feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[0]))); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message, "日志_Send_" + _DataRow["SERVERPARTCODE"].ToString(), true); } } } catch { } } #endregion break; } } } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } } #endregion #region 更新 -> UpdateDatas private void UpdateDatas(int ReceiveType, byte[] feedback)//EndAccountSend _EndAccountSend) { string SqlString = ""; try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3], _OracleConnStr.Split(',').Length > 4 ? _OracleConnStr.Split(',')[4] : "1521"); //获取并展示返回的数据 string[] files = (string[])EventsCommodityNew.BytesToObject(feedback); propertyGrid2.SelectedObject = files; try { if (files == null || ReceiveType != int.Parse(files[0])) { return; } } catch { return; } switch (ReceiveType) { #region 营收数据上传 case 0: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_ENDACCOUNT").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_ENDACCOUNT SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_ENDACCOUNT:(SERVERPARTCODE:" + files[2] + ",TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 1: if (files == null || (files != null && files.Length != 4)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_SELLDATA_ID = " + files[3]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_TRANSFER_SELLDATA").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_SELLDATA_ID = " + files[3]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_TRANSFER_SELLDATA:(SERVERPARTCODE:" + files[2] + ",TRANSFER_SELLDATA_ID:" + files[3] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 2: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_PERSONSELL WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_PERSONSELL").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_PERSONSELL SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_PERSONSELL:(SERVERPARTCODE:" + files[2] + ",TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 3: if (files == null || (files != null && files.Length != 4)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_SALE_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_TRANSFER_SALE").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_TRANSFER_SALE SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_SALE_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_PERSONSELL:(SERVERPARTCODE:" + files[2] + ",TRANSFER_SALE_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; #endregion case 4: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_STORAGE.T_WECHATPUSHDETAIL WHERE PROVINCE_CODE = '" + files[2] + "' AND WECHATPUSHDETAIL_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_WECHATPUSHDETAIL").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_STORAGE.T_WECHATPUSHDETAIL SET TRANSFER_STATE = 9 WHERE PROVINCE_CODE = '" + files[2] + "' AND WECHATPUSHDETAIL_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_WECHATPUSHDETAIL:(PROVINCE_CODE:" + files[2] + ",WECHATPUSHDETAIL_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(WECHATPUSHDETAIL_ID)"); } break; case 5: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_STORAGE.T_WECHATPUSHSALES WHERE PROVINCE_CODE = '" + files[2] + "' AND WECHATPUSHSALES_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_WECHATPUSHSALES").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_STORAGE.T_WECHATPUSHSALES SET TRANSFER_STATE = 9 WHERE PROVINCE_CODE = '" + files[2] + "' AND WECHATPUSHSALES_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_WECHATPUSHSALES:(PROVINCE_CODE:" + files[2] + ",WECHATPUSHSALES_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(WECHATPUSHSALES_ID)"); } break; case 6: if (files == null || (files != null && files.Length != 4)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION " + "WHERE TRANSFER_ID = " + files[1] + " AND SERVERPARTCODE = '" + files[2] + "' AND MACADDRESS = '" + files[3] + "'"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_DATACOLLECTION").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION SET TRANSFER_STATE = 9 " + "WHERE TRANSFER_ID = " + files[1] + " AND SERVERPARTCODE = '" + files[2] + "' AND MACADDRESS = '" + files[3] + "'"; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_DATACOLLECTION:(TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 7: case 8: case 10: case 11: case 12: if (files == null || (files != null && files.Length != 3 && files.Length != 4)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_STORAGE.T_OPERATELOG WHERE OPERATELOG_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_OPERATELOG").Tables[0].Rows.Count > 0) { SqlString = "DELETE FROM HIGHWAY_STORAGE.T_OPERATELOG WHERE OPERATELOG_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_OPERATELOG:(OPERATELOG_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(OPERATELOG_ID)"); } break; case 9: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_WINSYSTEMLOG WHERE SERVERPARTCODE = '" + files[2] + "' AND WINSYSTEMLOG_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_WINSYSTEMLOG").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_WINSYSTEMLOG SET DATASTATE = 99 WHERE SERVERPARTCODE = '" + files[2] + "' AND WINSYSTEMLOG_ID =" + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_WINSYSTEMLOG:(PROVINCE_CODE:" + files[2] + ",WINSYSTEMLOG_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(WINSYSTEMLOG_ID)"); } break; case 13: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_CUSTOMERINFO WHERE SELLMASTER_CODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_CUSTOMERINFO").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_CUSTOMERINFO SET TRANSFER_STATE = 9 " + "WHERE SELLMASTER_CODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_CUSTOMERINFO:(SELLMASTER_CODE:" + files[2] + ",TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 14: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_PASSENGERFLOW WHERE SERVERPARTCODE = '" + files[2] + "' AND PASSENGERFLOW_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_PASSENGERFLOW").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_PASSENGERFLOW SET TRANSFER_STATE = 9 " + "WHERE SERVERPARTCODE = '" + files[2] + "' AND PASSENGERFLOW_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_PASSENGERFLOW:(SERVERPARTCODE:" + files[2] + ",PASSENGERFLOW_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 15: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_VEHICLEFLOW WHERE SERVERPARTCODE = '" + files[2] + "' AND VEHICLEFLOW_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_VEHICLEFLOW").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_VEHICLEFLOW SET TRANSFER_STATE = 9 " + "WHERE SERVERPARTCODE = '" + files[2] + "' AND VEHICLEFLOW_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_VEHICLEFLOW:(SERVERPARTCODE:" + files[2] + ",VEHICLEFLOW_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 16: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_SATISFACTIONFLOW").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW SET TRANSFER_STATE = 9 " + "WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_SATISFACTIONFLOW:(SERVERPARTCODE:" + files[2] + ",TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 18: if (files == null || (files != null && files.Length != 5)) { break; } SqlString = String.Format(@"SELECT 1 FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION WHERE DATACOLLECTION_ID = {0} AND SERVERPARTCODE = '{1}' AND DATACOLLECTION_TYPE = {2} AND DATACOLLECTION_DATE = TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') ", files[1], files[2], files[3], files[4]); try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_SATISFACTIONFLOW").Tables[0].Rows.Count > 0) { SqlString = String.Format(@"UPDATE HIGHWAY_EXCHANGE.T_DATACOLLECTION SET TRANSFER_STATE = 9 WHERE DATACOLLECTION_ID = {0} AND SERVERPARTCODE = '{1}' AND DATACOLLECTION_TYPE = {2} AND DATACOLLECTION_DATE = TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') ", files[1], files[2], files[3], files[4]); _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_DATACOLLECTION:(SERVERPARTCODE:" + files[2] + ",DATACOLLECTION_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 20: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_ENDACCOUNT_NEW").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_ENDACCOUNT_NEW:(SERVERPARTCODE:" + files[2] + ",TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 21: if (files == null || (files != null && files.Length != 3)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_PERSONSELL_NEW WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_PERSONSELL_NEW").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_PERSONSELL_NEW SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_PERSONSELL_NEW:(SERVERPARTCODE:" + files[2] + ",TRANSFER_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFER_ID)"); } break; case 23: if (files == null || (files != null && files.Length != 4)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW WHERE COMMODITY_CODE = '" + files[1] + "' AND SERVERPARTCODE = '" + files[2] + "' AND SERVERPARTSHOP_ID = '" + files[3] + "'"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_COMMODITYEX_NEW").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW SET TRANSFER_STATE = 9 WHERE COMMODITY_CODE = '" + files[1] + "' AND SERVERPARTCODE = '" + files[2] + "' AND SERVERPARTSHOP_ID = '" + files[3] + "'"; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_COMMODITYEX_NEW:(COMMODITY_CODE:" + files[1] + ",SERVERPARTCODE:" + files[2] + ",SERVERPARTSHOP_ID:" + files[3] + "," + ex.Message + ")", "日志_Receive(COMMODITY_CODE)"); } break; case 24: if (files == null || (files != null && files.Length != 2)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE TRANSFERSTATISTICS_CODE = '" + files[1] + "'"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_TRANSFERSTATISTICS").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET TRANSFER_STATE = 9 WHERE TRANSFERSTATISTICS_CODE = '" + files[1] + "'"; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_TRANSFERSTATISTICS:(TRANSFERSTATISTICS_CODE:" + files[1] + "," + ex.Message + ")", "日志_Receive(TRANSFERSTATISTICS_CODE)"); } break; case 25: if (files == null || (files != null && files.Length != 8)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR WHERE COMMODITYSALE_ID = " + files[1] + " AND STARTDATE = TO_DATE('" + files[2] + "','YYYY/MM/DD HH24:MI:SS')" + " AND ENDDATE = TO_DATE('" + files[3] + "','YYYY/MM/DD HH24:MI:SS')" + " AND SERVERPARTCODE = '" + files[4] + "'" + " AND SHOPCODE = '" + files[5] + "'" + " AND MACHINECODE = '" + files[6] + "' AND COMMODITY_CODE = '" + files[7] + "'"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_COMMODITYSALE_EXTAR").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR SET TRANSFER_STATE = 9 WHERE COMMODITYSALE_ID = " + files[1] + " AND STARTDATE = TO_DATE('" + files[2] + "','YYYY/MM/DD HH24:MI:SS')" + " AND ENDDATE = TO_DATE('" + files[3] + "','YYYY/MM/DD HH24:MI:SS')" + " AND SERVERPARTCODE = '" + files[4] + "'" + " AND SHOPCODE = '" + files[5] + "'" + " AND MACHINECODE = '" + files[6] + "' AND COMMODITY_CODE = '" + files[7] + "'"; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_COMMODITYSALE_EXTAR:(COMMODITYSALE_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(COMMODITYSALE_ID)"); } break; case 26: case 27: if (files == null || (files != null && files.Length != 8)) { break; } SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY WHERE MOBILE_PAY_ID = " + files[1] + " AND MOBILEPAY_TYPE = '" + files[2] + "'" + " AND TICKET_CODE = '" + files[3] + "'" + " AND SERVERPARTCODE = '" + files[4] + "'" + " AND SHOPCODE = '" + files[5] + "'" + " AND MACHINECODE = '" + files[6] + "'" + " AND MOBILEPAY_DATE = TO_DATE('" + files[7] + "','YYYY/MM/DD HH24:MI:SS')"; try { if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_MOBILE_PAY").Tables[0].Rows.Count > 0) { SqlString = "UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAY SET MOBILEPAY_STATE = 9 WHERE MOBILE_PAY_ID = " + files[1] + " AND MOBILEPAY_TYPE = '" + files[2] + "'" + " AND TICKET_CODE = '" + files[3] + "'" + " AND SERVERPARTCODE = '" + files[4] + "'" + " AND SHOPCODE = '" + files[5] + "'" + " AND MACHINECODE = '" + files[6] + "'" + " AND MOBILEPAY_DATE = TO_DATE('" + files[7] + "','YYYY/MM/DD HH24:MI:SS')"; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_MOBILE_PAY:(MOBILE_PAY_ID:" + files[1] + "," + ex.Message + ")", "日志_Receive(MOBILE_PAY_ID)"); } break; case 62: #region 门店 try { int MaxLength = int.Parse(files[1]); //传输数据条数 int FieldLength = int.Parse(files[2]); //查询出的字段长度 if (MaxLength > 0 && files.Length > 9) { string[] backFiles = new string[MaxLength * 2 + 3]; backFiles[0] = "61"; //删除 backFiles[1] = "62"; //门店 backFiles[2] = files[1];//传输数据条数 for (int i = 0; i < MaxLength; i++) { int j = i * FieldLength + 3; if (string.IsNullOrEmpty(files[j + 1])) { continue; } try { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = '" + files[j + 2] + "' AND SERVERPARTSHOP_ID = " + files[j + 1]; DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_SHOPMESSAGE").Tables[0]; if (_DataTable.Rows.Count > 0) { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = '" + files[j + 2] + "' AND SERVERPARTSHOP_ID = " + files[j + 1] + " AND DOWNLOADDATE >= TO_DATE('" + files[j + 6] + "','YYYY/MM/DD HH24:MI:SS')"; if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_SHOPMESSAGE").Tables[0].Rows.Count == 0) { List SQLStringArray = new List(); SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = '" + files[j + 2] + "' AND SERVERPARTSHOP_ID = " + files[j + 1]; SQLStringArray.Add(SqlString); SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SHOPMESSAGE (SHOPMESSAGE_ID, SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE,SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 7]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 8])); SQLStringArray.Add(SqlString); _OracleHelper.ExecuteSqlTran(SQLStringArray); } } else { SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SHOPMESSAGE (SHOPMESSAGE_ID, SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE,SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 7]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 8])); _OracleHelper.ExcuteSql(SqlString); } //数据删除数据 backFiles[i * 2 + 3] = files[j + 0];//SHOPMESSAGE_ID backFiles[i * 2 + 4] = files[j + 2];//SERVERPARTCODE } catch (Exception ex) { LogHelper.WriteReceiveLog("T_SHOPMESSAGE:(SERVERPARTCODE:" + files[j + 2] + ",SHOPMESSAGE_ID:" + files[j + 0] + "," + ex.Message + ")", "日志_Receive(SHOPMESSAGE_ID)"); } } #region 数据删除 byte[] _buffer = EventsCommodityNew.ObjectToBytes(backFiles); socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[1]))); #endregion } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_SHOPMESSAGE:(ReceiveType:" + files[0] + "," + ex.Message + ")", "日志_Receive(ReceiveType)"); } #endregion break; case 63: #region 收银员 try { int MaxLength = int.Parse(files[1]); //传输数据条数 int FieldLength = int.Parse(files[2]); //查询出的字段长度 if (MaxLength > 0 && files.Length > 11) { string[] backFiles = new string[MaxLength * 2 + 3]; backFiles[0] = "61"; //删除 backFiles[1] = "63"; //收银员 backFiles[2] = files[1];//传输数据条数 for (int i = 0; i < MaxLength; i++) { int j = i * FieldLength + 3; if (string.IsNullOrEmpty(files[j + 2])) { continue; } try { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND SELLWORKERCODE = '" + files[j + 2] + "'"; DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_SELLWORKER").Tables[0]; if (_DataTable.Rows.Count > 0) { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND SELLWORKERCODE = '" + files[j + 2] + "' AND DOWNLOADDATE >= TO_DATE('" + files[j + 6] + "','YYYY/MM/DD HH24:MI:SS')"; if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_SELLWORKER").Tables[0].Rows.Count == 0) { List SQLStringArray = new List(); SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND SELLWORKERCODE = '" + files[j + 2] + "'"; SQLStringArray.Add(SqlString); SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLWORKER (SELLWORKER_ID, SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE,DOWNLOADDATE, FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 7]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 8]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 9]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 10])); SQLStringArray.Add(SqlString); _OracleHelper.ExecuteSqlTran(SQLStringArray); } } else { SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLWORKER (SELLWORKER_ID, SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE,DOWNLOADDATE, FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 7]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 8]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 9]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 10])); _OracleHelper.ExcuteSql(SqlString); } backFiles[i * 2 + 3] = files[j + 0];//SELLWORKER_ID backFiles[i * 2 + 4] = files[j + 1];//SERVERPARTCODE } catch (Exception ex) { LogHelper.WriteReceiveLog("T_SELLWORKER:(SERVERPARTCODE:" + files[j + 1] + ",SELLWORKER_ID:" + files[j + 0] + "," + ex.Message + ")", "日志_Receive(SELLWORKER_ID)"); } } #region 数据删除 byte[] _buffer = EventsCommodityNew.ObjectToBytes(backFiles); socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[1]))); #endregion } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_SELLWORKER:(ReceiveType:" + files[0] + "," + ex.Message + ")", "日志_Receive(ReceiveType)"); } #endregion break; case 64: #region 商品 try { int MaxLength = int.Parse(files[1]); //传输数据条数 int FieldLength = int.Parse(files[2]); //查询出的字段长度 if (MaxLength > 0 && files.Length > 22) { string[] backFiles = new string[MaxLength * 2 + 3]; backFiles[0] = "61"; //删除 backFiles[1] = "64"; //商品 backFiles[2] = files[1];//传输数据条数 for (int i = 0; i < MaxLength; i++) { int j = i * FieldLength + 3; if (string.IsNullOrEmpty(files[j + 18]) || string.IsNullOrEmpty(files[j + 3])) { continue; } try { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND COMMODITY_CODE = '" + files[j + 3] + "' AND SERVERPARTSHOP_ID = " + files[j + 18]; DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_COMMODITYEX").Tables[0]; if (_DataTable.Rows.Count > 0) { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND COMMODITY_CODE = '" + files[j + 3] + "' AND SERVERPARTSHOP_ID = " + files[j + 18] + " AND DOWNLOADDATE >= TO_DATE('" + files[j + 15] + "','YYYY/MM/DD HH24:MI:SS')"; if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_COMMODITYEX").Tables[0].Rows.Count == 0) { List SQLStringArray = new List(); SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND COMMODITY_CODE = '" + files[j + 3] + "' AND SERVERPARTSHOP_ID = " + files[j + 18]; SQLStringArray.Add(SqlString); SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYEX (COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_BARCODE, COMMODITY_NAME,COMMODITY_RULE,COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE, CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE, SERVERPARTSHOP_ID,PRINT_DATE,CONTAINER_CODE,COMMODITY_SYMBOL) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}, {14},{15},{16},{17},{18},{19},{20},{21})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 7]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 8]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 9]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 10]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 11]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 12]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 13]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 14]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 15]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 16]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 17]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 18]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 19]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 20]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 21])); SQLStringArray.Add(SqlString); _OracleHelper.ExecuteSqlTran(SQLStringArray); } } else { SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYEX (COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_BARCODE, COMMODITY_NAME,COMMODITY_RULE,COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE, CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE, SERVERPARTSHOP_ID,PRINT_DATE,CONTAINER_CODE,COMMODITY_SYMBOL) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}, {14},{15},{16},{17},{18},{19},{20},{21})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 7]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 8]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 9]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 10]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 11]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 12]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 13]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 14]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 15]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 16]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 17]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 18]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 19]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 20]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 21])); _OracleHelper.ExcuteSql(SqlString); } backFiles[i * 2 + 3] = files[j + 0];//COMMODITYEX_ID backFiles[i * 2 + 4] = files[j + 1];//SERVERPARTCODE } catch (Exception ex) { LogHelper.WriteReceiveLog("T_COMMODITYEX:(SERVERPARTCODE:" + files[j + 1] + ",COMMODITYEX_ID:" + files[j + 0] + "," + ex.Message + ")", "日志_Receive(COMMODITYEX_ID)"); } } #region 数据删除 byte[] _buffer = EventsCommodityNew.ObjectToBytes(backFiles); socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[1]))); #endregion } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_COMMODITYEX:(ReceiveType:" + files[0] + "," + ex.Message + ")", "日志_Receive(ReceiveType)"); } #endregion break; case 65: #region 快捷键 try { int MaxLength = int.Parse(files[1]); //传输数据条数 int FieldLength = int.Parse(files[2]); //查询出的字段长度 if (MaxLength > 0 && files.Length > 8) { string[] backFiles = new string[MaxLength * 2 + 3]; backFiles[0] = "61"; //删除 backFiles[1] = "65"; //快捷键 backFiles[2] = files[1];//传输数据条数 for (int i = 0; i < MaxLength; i++) { int j = i * FieldLength + 3; if (string.IsNullOrEmpty(files[j + 1]) || string.IsNullOrEmpty(files[j + 2])) { continue; } try { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_HOTKEYSET WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND COMMODITY_BARCODE = '" + files[j + 2] + "'"; DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_HOTKEYSET").Tables[0]; if (_DataTable.Rows.Count > 0) { SqlString = "SELECT 1 FROM HIGHWAY_EXCHANGE.T_HOTKEYSET WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND COMMODITY_BARCODE = '" + files[j + 2] + "' AND DOWNLOADDATE >= TO_DATE('" + files[j + 5] + "','YYYY/MM/DD HH24:MI:SS')"; if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_HOTKEYSET").Tables[0].Rows.Count == 0) { List SQLStringArray = new List(); SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET WHERE SERVERPARTCODE = '" + files[j + 1] + "' AND COMMODITY_BARCODE = '" + files[j + 2] + "'"; SQLStringArray.Add(SqlString); SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_HOTKEYSET (HOTKEYSET_ID, SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID) VALUES ({0},{1},{2},{3},{4},{5},{6},{7})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 7])); SQLStringArray.Add(SqlString); _OracleHelper.ExecuteSqlTran(SQLStringArray); } } else { SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_HOTKEYSET (HOTKEYSET_ID, SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID) VALUES ({0},{1},{2},{3},{4},{5},{6},{7})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 0]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 1]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 2]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, files[j + 3]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 4]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.DateTime, files[j + 5]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 6]), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, files[j + 7])); _OracleHelper.ExcuteSql(SqlString); } backFiles[i * 2 + 3] = files[j + 0];//HOTKEYSET_ID backFiles[i * 2 + 4] = files[j + 1];//SERVERPARTCODE } catch (Exception ex) { LogHelper.WriteReceiveLog("T_HOTKEYSET:(SERVERPARTCODE:" + files[j + 1] + ",HOTKEYSET_ID:" + files[j + 0] + "," + ex.Message + ")", "日志_Receive(HOTKEYSET_ID)"); } } #region 数据删除 byte[] _buffer = EventsCommodityNew.ObjectToBytes(backFiles); socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[1]))); #endregion } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_HOTKEYSET:(ReceiveType:" + files[0] + "," + ex.Message + ")", "日志_Receive(ReceiveType)"); } #endregion break; case 70: #region SQL语句执行 try { if (files != null && files.Length > 3 && !string.IsNullOrEmpty(files[3])) { _OracleHelper.ExcuteSql(files[3]); string[] backFiles = new string[5]; backFiles[0] = "71"; //更新状态 backFiles[1] = files[1]; //EXECUTEFEEDBAK_ID backFiles[2] = files[2]; //SERVERPARTCODE backFiles[3] = "SUCCESS"; //EXECUTEFEEDBAK_CONTENT backFiles[4] = DateTime.Now.ToString(); byte[] _buffer = EventsCommodityNew.ObjectToBytes(backFiles); socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[1]))); } } catch (Exception ex) { LogHelper.WriteReceiveLog(ex.Message, "日志_Receive(EXECUTESQL_ID)_" + files[1]); string[] backFiles = new string[5]; backFiles[0] = "71"; //更新状态 backFiles[1] = files[1]; //EXECUTEFEEDBAK_ID backFiles[2] = files[2]; //SERVERPARTCODE backFiles[3] = ex.Message; //EXECUTEFEEDBAK_CONTENT backFiles[4] = DateTime.Now.ToString(); byte[] _buffer = EventsCommodityNew.ObjectToBytes(backFiles); socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[1]))); } #endregion break; } } catch (Exception ex) { LogHelper.WriteReceiveLog(ex.Message + ",ReceiveType:" + ReceiveType); } } #endregion #region 线程1 -> timer1_Tick 结账数据、单品数据传输/服务区、门店数据传输 private void timer1_Tick(object sender, EventArgs e) { if (("," + _TransferType + ",").Contains(",1,")) { //结账数据、收银员报表、单品集合传输 //StartProcess(0); //StartProcess(2); //StartProcess(3); //StartProcess(20); //StartProcess(21); } else if (("," + _TransferType + ",").Contains(",3,")) { //服务区、门店数据传输 StartProcess(7); StartProcess(8); StartProcess(10); StartProcess(11); StartProcess(12); //省份机器信息 } } #endregion #region 线程2 -> timer2_Tick 推送信息、单品详情传输 private void timer2_Tick(object sender, EventArgs e) { StartProcess(4); //推送信息 StartProcess(5); //单品详情 } #endregion #region 线程3 -> timer3_Tick 数据采集批量上传 private void timer3_Tick(object sender, EventArgs e) { if (DataCollectionDate < DateTime.Now) { //服务区版(判断执行时间执行后加10分钟) DataCollectionDate = DateTime.Now.AddMinutes(10); StartProcess(18); //门店版 StartProcess(6); } //Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(3)))) { IsBackground=true}; //_Thread.Start(); } #endregion #region 线程4 -> timer4_Tick、timer96_Tick 销售流水(集合)上传 private void timer4_Tick(object sender, EventArgs e) { //3点 if (DateTime.Now.Hour == 1) { StartProcess(1); } } private void timer96_Tick(object sender, EventArgs e) { StartProcess(96); } #endregion #region 线程6 -> timer6_Tick 门店、收银员、商品、快捷键下载 private void timer6_Tick(object sender, EventArgs e) { //StartProcess(60); StartProcess(80); } #endregion #region 线程13 -> timer13_Tick 大数据平台基础数据上传 private void timer13_Tick(object sender, EventArgs e) { //十分钟数据采集 //StartProcess(6); //消费客群信息采集数据 StartProcess(13); //双目客流监控统计数据 StartProcess(14); //卡口监控车流统计数据 StartProcess(15); //满意度日统计 if (DateTime.Now.Minute == 0) { StartProcess(17); } } #endregion #region 线程30 -> 上传数据统计 private void timer30_Tick(object sender, EventArgs e) { //StartProcess(23); //StartProcess(25); //StartProcess(26); //StartProcess(27); } #endregion #region 线程94 -> sql语句执行 private void timer94_Tick(object sender, EventArgs e) { StartProcess(70); } #endregion #region 线程95 -> timer95_Tick 特殊流水、异常操作数据上传 private void timer95_Tick(object sender, EventArgs e) { //自动扫码上传 StartProcess(99); StartProcess(95); } #endregion #region 线程97 -> 上传历史数据 private void timer97_Tick(object sender, EventArgs e) { StartProcess(97); } #endregion #region 线程98 -> 状态反馈 private void timer98_Tick(object sender, EventArgs e) { StartProcess(91); StartProcess(92); StartProcess(98); //Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(98)))) { IsBackground=true}; //_Thread.Start(); } #endregion #region 线程99 -> 心跳检测 private void timer99_Tick(object sender, EventArgs e) { string _strServerPart = "1"; try { _strServerPart = ConfigurationManager.AppSettings["IsServerPart"].ToString(); } catch { _strServerPart = "1"; } if (_strServerPart == "1") { StartProcess(null, 1); } else { Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(null, 2)))) { IsBackground = true }; _Thread.Start(); } //foreach (string str in _TransferType.Split(',')) //{ // if (str == "1") // { // StartProcess(null, 1); // break; // } // else // { // Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(null, 2)))); // _Thread.Start(); // break; // } //} } #endregion #region 线程0 -> 程序监听 private void timer0_Tick(object sender, EventArgs e) { Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(100)))) { IsBackground = true }; _Thread.Start(); } #endregion #region 线程5 -> 系统日志 private void timer5_Tick(object sender, EventArgs e) { StartProcess(9); } #endregion #region 方法 -> 执行存储过程更新 protected void ExcuteSql() { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); //DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet( // "SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERTOOL WHERE TRANSFERTOOL_DESC = '201706122152'", "T_TRANSFERTOOL").Tables[0]; //if (_DataTable.Rows.Count == 0) //{ FileInfo _FileInfo = new FileInfo("SQLString.txt"); if (_FileInfo.Exists) { string WriteTxt = File.ReadAllText("SQLString.txt", Encoding.Default); WriteTxt = WriteTxt.Replace("\r", ""); try { _OracleHelper.ExecuteSqlTran(WriteTxt.Split("----------")); //_OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_TRANSFERTOOL SET TRANSFERTOOL_DESC = '201706122152'"); _FileInfo.Delete(); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } } //} } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); } } #endregion #region 方法 -> 启动系统日志升级程序 private void OpenFileDownload() { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); //是否存在表 DataRow _DataRowTable = _OracleHelper.ExcuteSqlGetDataSet( @"SELECT COUNT(*) AS ISTABLE FROM DBA_TABLES WHERE OWNER = 'HIGHWAY_EXCHANGE' AND TABLE_NAME = 'T_WINSYSTEMLOG'").Tables[0].Rows[0]; if (_DataRowTable["ISTABLE"].ToString() != "1") { _OracleHelper.ExcuteSqlBackData( @"CREATE TABLE HIGHWAY_EXCHANGE.T_WINSYSTEMLOG ( WINSYSTEMLOG_ID NUMBER(9,0) NOT NULL, LOG_EVENTID VARCHAR2(200), LOG_CATEGORY VARCHAR2(200), LOG_INDEX VARCHAR2(200), LOG_ENTRYTYPE VARCHAR2(200), LOG_TIMEGENERATED DATE, LOG_MESSAGE VARCHAR2(2000), SERVERPARTCODE VARCHAR2(10), SHOPCODE VARCHAR2(10), COMPUTERNAME VARCHAR2(500), ADMINNAME VARCHAR2(500), SERVERSEQUENCE VARCHAR2(500), CREATE_DATE DATE, WINSYSTEMLOG_DESC VARCHAR2(2000), DATASTATE NUMBER(2,0) DEFAULT 0 )"); } //是否存在序列 DataRow _DataRowSEQ = _OracleHelper.ExcuteSqlGetDataSet(@"SELECT COUNT(*) AS ISSEQ FROM ALL_SEQUENCES WHERE SEQUENCE_OWNER = 'HIGHWAY_EXCHANGE' AND SEQUENCE_NAME = 'SEQ_WINSYSTEMLOG'").Tables[0].Rows[0]; if (_DataRowSEQ["ISSEQ"].ToString() != "1") { _OracleHelper.ExcuteSql(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_WINSYSTEMLOG INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER"); } Process[] _ProcessRecord = Process.GetProcessesByName("FileDownload"); //系统日志程序 if (_ProcessRecord != null) { foreach (Process _Process in _ProcessRecord) { _Process.CloseMainWindow(); _Process.Kill(); _Process.Close(); } } try { Process exep = new Process(); exep.StartInfo.FileName = new DirectoryInfo(Application.StartupPath).FullName + @"\FileDownload.exe"; exep.StartInfo.Arguments = "FileDownload"; exep.StartInfo.CreateNoWindow = true; exep.StartInfo.UseShellExecute = false; exep.Start(); exep.WaitForExit(1000);//等待外部程序退出后才能往下低调执行 } catch (Exception ex) { LogHelper.WriteReceiveLog(ex.Message, "系统日志升级程序启动报错:" + ex.Message); } } #endregion #region 方法 -> 检测表是否存在 public static bool IsTableExists(OracleHelper _OracleHelper, string UserName, string TableName) { //是否存在表 DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM DBA_TABLES WHERE OWNER = '" + UserName + "' AND TABLE_NAME = '" + TableName + "'").Tables[0]; if (_DataTable != null && _DataTable.Rows.Count > 0) { return true; } return false; } #endregion } }