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 SocketTransfer { 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(); 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(); //timer2.Start(); timer3.Start(); timer30.Start(); timer97.Start(); timer98.Start(); timer94.Start(); StartProcess(); _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(97)))); _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)))); //_Thread.Start(); break; case "5": timer6.Start(); timer95.Start(); _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(95)))); _Thread.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 发送 -> button1_Click private void button1_Click(object sender, EventArgs e) { try { SocketReceive _SocketReceive = (SocketReceive)propertyGrid1.SelectedObject; _SocketReceive.ResetSize(); byte[] _buffer = _SocketReceive.Source; //(propertyGrid1.SelectedObject as SocketCommodityReceive).Source byte[] feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(textBoxIP.Text), int.Parse(textBoxPort.Text))); #if DEBUG string dir = Application.StartupPath + "//Log"; string fil = dir + "//" + CommonHelper.GetSendType(_SocketReceive.ReceiveType) + "Send" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.UTF8); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _SocketReceive.Encoding.GetString(_buffer)); writer.Flush(); writer.Close(); filestream.Close(); string dir2 = Application.StartupPath + "//Log"; string fil2 = dir2 + "//" + CommonHelper.GetSendType(_SocketReceive.ReceiveType) + "Receive" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir2)) { System.IO.Directory.CreateDirectory(dir2); } FileStream filestream2 = new FileStream(fil2, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer2 = new StreamWriter(filestream2, System.Text.Encoding.UTF8); writer2.BaseStream.Seek(0, SeekOrigin.End); writer2.WriteLine("{0}", _SocketReceive.Encoding.GetString(feedback)); writer2.Flush(); writer2.Close(); filestream2.Close(); #endif //SocketSend s = new SocketSend(feedback); EndAccountSend _EndAccountSend = new EndAccountSend(feedback); propertyGrid2.SelectedObject = _EndAccountSend; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } #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": _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 "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]); 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 = @"UPDATE T_TRANSFERTOOL@NEWEX A SET ( SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) = ( SELECT SERVERPART_NAME,SYSDATE,'Sv3.0.4.16' 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 = @"INSERT INTO T_TRANSFERTOOL@NEWEX(TRANSFERTOOL_ID,SERVERPARTCODE, SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) SELECT SEQ_TRANSFERTOOL.NEXTVAL@NEWEX,SERVERPARTCODE,SERVERPART_NAME,SYSDATE,'Sv3.0.4.16' FROM HIGHWAY_EXCHANGE.T_SYSCODE"; } _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.SERVERPART_CODE,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.SERVERPART_CODE = 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"); foreach (DataRow _DataRow in _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].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 数据采集 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 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)"; 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 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 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 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,A.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, B.OPERATELOG_ID,B.OPERATEDATE FROM HIGHWAY_STORAGE.T_SERVERPART A ,HIGHWAY_STORAGE.T_OPERATELOG B WHERE A.SERVERPART_ID = B.TABLE_ID 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,B.OPERATELOG_ID,B.OPERATEDATE FROM HIGHWAY_STORAGE.T_SERVERPARTSHOP A ,HIGHWAY_STORAGE.T_OPERATELOG B WHERE A.SERVERPARTSHOP_ID = B.TABLE_ID AND B.TABLE_NAME = 'HIGHWAY_STORAGE.T_SERVERPARTSHOP'", "T_SERVERPARTSHOP").Tables[0].Rows) { try { string[] files = new string[_DataRow.ItemArray.Length + 2]; 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 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 + 3]; files[0] = "10";// 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_USER_" + _DataTableT_USER.Rows[0]["SERVERPARTCODE"].ToString(), true); } } #endregion #region 删除 SQLString = @"SELECT C.TABLE_ID,C.OPERATELOG_ID,C.OPERATEDATE FROM HIGHWAY_STORAGE.T_OPERATELOG C WHERE NOT EXISTS (SELECT 1 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' AND B.OPERATELOG_ID = C.OPERATELOG_ID) 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 + 3]; files[0] = "10";// 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_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 C.TABLE_ID,C.OPERATELOG_ID,C.OPERATEDATE, 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 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 "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 { _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 A.ENDDATE > TRUNC(SYSDATE) - 1 AND ROWNUM <= 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 "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 "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) { 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"); } #region 插入收银机端移动支付明细 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() + "'"); _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 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() + "'"); _OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_EXCHANGE.T_MOBILE_PAY A SET A.MOBILEPAY_STATE = 9 WHERE NVL(MOBILEPAY_STATE,0) < 9 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) { 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 { } _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); } } catch { } #endregion 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,'Sv3.0.4.16' 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 = @"INSERT INTO T_TRANSFERTOOL@NEWEX(TRANSFERTOOL_ID,SERVERPARTCODE, SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) SELECT SEQ_TRANSFERTOOL.NEXTVAL@NEWEX,SERVERPARTCODE,SERVERPART_NAME,SYSDATE,'Sv3.0.4.16' FROM HIGHWAY_EXCHANGE.T_SYSCODE"; } _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]); //获取并展示返回的数据 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 SERVERPART_CODE = '" + 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 SERVERPART_CODE = '" + files[2] + "' AND TRANSFER_ID = " + files[1]; _OracleHelper.ExcuteSql(SqlString); } } catch (Exception ex) { LogHelper.WriteReceiveLog("T_ENDACCOUNT:(SERVERPART_CODE:" + 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 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 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 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) { StartProcess(6); //Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(3)))); //_Thread.Start(); } #endregion #region 线程4 -> timer4_Tick、timer96_Tick 销售流水(集合)上传 private void timer4_Tick(object sender, EventArgs e) { } 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); } #endregion #region 线程30 -> 上传数据统计 private void timer30_Tick(object sender, EventArgs e) { StartProcess(23); StartProcess(25); } #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(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(98); //Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(98)))); //_Thread.Start(); } #endregion #region 线程99 -> 心跳检测 private void timer99_Tick(object sender, EventArgs e) { 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) { } #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 } }