using GetHttpData.SDK; using GetHttpData.SDK.ThreadPool; using Microsoft.Win32; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Net.NetworkInformation; using System.Text; using System.Windows.Forms; using Lib = ESSupport.Lib; namespace GetMembership { public partial class LodData : Form { ClientThread _ClientThread = new ClientThread(); QualityHelper _QualityHelper = new QualityHelper(); ConfigThread _ConfigThread = null; //配置类 List _NotStartTable = null; //不启动的表 List _TopStartTable = null; //启动的上传表 List _DownStartTable = null;//启动的下发表 Timer _Timer = new Timer(); Timer _TimingStart = new Timer(); bool isDeBug = false; public LodData() { try { _ClientThread.UploadStringEvent += new ClientThread.OutputResultsUploadArg(UploadStringEvent);//监听上传事件 _ClientThread.DownloadStringEvent += new ClientThread.OutputResultsDownArg(DownloadStringEvent);//监听下发事件 //数据传输定时器 _Timer.Interval = 60 * 1000; _Timer.Tick += new System.EventHandler(this.timer1_Tick); _Timer.Start(); //指定任务定时器 _TimingStart.Interval = 60 * 1000; _TimingStart.Tick += new System.EventHandler(this.timer2_Tick); _TimingStart.Start(); //TableDataService、DataServices StringBuilder _ConfigSql = new StringBuilder(); _ConfigSql.Append("http://" + _QualityHelper.dbip + ":" + _QualityHelper.DataServicePort + "/DataServices/Service.asmx").Append(" "); _ConfigSql.Append(_QualityHelper.authorization).Append(" "); _ConfigSql.Append(_QualityHelper.serverpartcode).Append(" "); _ConfigSql.Append(_QualityHelper.serverpartshop_id).Append(" "); _ConfigSql.Append(_QualityHelper.shopcode).Append(" "); _ConfigSql.Append(_QualityHelper.macaddress).Append(" "); _ConfigSql.Append(_QualityHelper.machinecode); LogHelper.WriteServiceLog(_ConfigSql.ToString()); } catch (Exception ex) { try { if (isDeBug) { LogHelper.WriteServiceLog(ex.Message.ToString()); } } catch { } } InitializeComponent(); } private void LodData_Load(object sender, EventArgs e) { this.Visible = false; } private void button1_Click(object sender, EventArgs e) { bool falg = _ClientThread.onState(); } #region 方法 -> 上传、下发回调结果 /// /// 上传回调结果 /// /// /// private void UploadStringEvent(UploadResultInfo uploadResultInfo, string resultString) { //switch (uploadResultInfo.TableName) //{ // case "HIGHWAY_EXCHANGE.T_SELLMASTER": // if (uploadResultInfo.StartToEnd) // { // //开始 // } // else // { // //结束 // } // break; // case "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW": // break; // case "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW": // break; //} //System.Diagnostics.Debug.WriteLine(resultString, "OpenTopThreads_" + uploadResultInfo.TableName); try { //启动后 if (uploadResultInfo.StartToEnd && uploadResultInfo.TableName.Equals("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS")) { //启动统计线程 StartThread(); } //结束前 if (!uploadResultInfo.StartToEnd && (uploadResultInfo.InterfaceError != null || uploadResultInfo.Error != null)) { string serverpartcode = _QualityHelper.serverpartcode; string shopcode = _QualityHelper.shopcode; string machinecode = _QualityHelper.machinecode; string macaddress = _QualityHelper.macaddress; #region 日志表添加数据 Lib.SyBaseHelper.ExecuteSqlTran(new List { string.Format( @"INSERT INTO T_TRANSMISSIONERROR ( TRANSMISSIONERROR_ID, TRANSMISSIONERROR_CODE,PROVINCE_CODE, SERVERPARTCODE,SHOPCODE, MACHINECODE,MACHINE_MACADDRESS, TABLENAME,ELAPSED, TOTALNUMBER,UPNUMBER, ADDNUMBER,IDENTICALNUMBER, FILTERNUMBER,FILTERFIELDNUMBER, INTERFACEERROR,ERROR, TRANSMISSION_TYPE,RECORD_DATE, STAFF_ID,STAFF_NAME, OPERATE_DATE,TRANSMISSIONERROR_DESC, TRANSFER_STATE,TRANSFER_ID ) VALUES (1,{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}, {13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23})", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, GetCheckNumber(serverpartcode,shopcode,machinecode)),"null", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,serverpartcode) , DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,shopcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,machinecode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,macaddress), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,uploadResultInfo.TableName), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,uploadResultInfo.Elapsed.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,uploadResultInfo.TotalNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,uploadResultInfo.SuccessNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,uploadResultInfo.FilterNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,uploadResultInfo.InterfaceError), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,uploadResultInfo.Error), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,"1"), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr,uploadResultInfo.RecordDate.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr,uploadResultInfo.CreateDate.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,"0".ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,"0".ToString()))}); #endregion } } catch (Exception ex) { if (isDeBug) { LogHelper.WriteServiceLog(ex.Message.ToString()); } } try { if (isDeBug) { LogHelper.WriteServiceLog(resultString); } } catch { } } /// /// 下发回调结果 /// /// /// private void DownloadStringEvent(DownResultInfo downResultInfo, string resultString) { //switch (downResultInfo.TableName) //{ // case "HIGHWAY_EXCHANGE.T_USERDEFINEDTYPE": // if (downResultInfo.StartToEnd) // { // //开始 // } // else // { // //结束 // } // break; // case "HIGHWAY_EXCHANGE.T_COMMODITYEX": // break; //} //System.Diagnostics.Debug.WriteLine(resultString, "OpenDownThreads_" + downResultInfo.TableName); try { if (!downResultInfo.StartToEnd && (downResultInfo.InterfaceError != null || downResultInfo.Error != null)) { string serverpartcode = _QualityHelper.serverpartcode; string shopcode = _QualityHelper.shopcode; string machinecode = _QualityHelper.machinecode; string macaddress = _QualityHelper.macaddress; #region 日志表添加数据 Lib.SyBaseHelper.ExecuteSqlTran(new List { string.Format( @"INSERT INTO T_TRANSMISSIONERROR ( TRANSMISSIONERROR_ID, TRANSMISSIONERROR_CODE,PROVINCE_CODE, SERVERPARTCODE,SHOPCODE, MACHINECODE,MACHINE_MACADDRESS, TABLENAME,ELAPSED, TOTALNUMBER,UPNUMBER, ADDNUMBER,IDENTICALNUMBER, FILTERNUMBER,FILTERFIELDNUMBER, INTERFACEERROR,ERROR, TRANSMISSION_TYPE,RECORD_DATE, STAFF_ID,STAFF_NAME, OPERATE_DATE,TRANSMISSIONERROR_DESC, TRANSFER_STATE,TRANSFER_ID ) VALUES (1,{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}, {13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23})", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, GetCheckNumber(serverpartcode,shopcode,machinecode)),"null", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,serverpartcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,shopcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,machinecode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,macaddress), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,downResultInfo.TableName), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,downResultInfo.Elapsed.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,downResultInfo.TotalNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,downResultInfo.UpNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,downResultInfo.AddNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,downResultInfo.IdenticalNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,downResultInfo.FilterNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,downResultInfo.FilterFieldNumber.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,downResultInfo.InterfaceError), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,downResultInfo.Error), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,"2"), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr,downResultInfo.RecordDate.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr,downResultInfo.CreateDate.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,"0".ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int,"0".ToString()))}); #endregion } } catch (Exception ex) { if (isDeBug) { LogHelper.WriteServiceLog(ex.Message.ToString()); } } try { if (isDeBug) { LogHelper.WriteServiceLog(resultString); } } catch { } } #endregion #region 方法 -> 自定义线程配置 private void ThreadConfigure() { try { if (_ConfigThread == null) { _ConfigThread = new ConfigThread(_QualityHelper.serverpartcode); } if (_NotStartTable == null) { _NotStartTable = new List(); } else { _NotStartTable.Clear(); } if (_TopStartTable == null) { _TopStartTable = new List(); } else { _TopStartTable.Clear(); } if (_DownStartTable == null) { _DownStartTable = new List(); } else { _DownStartTable.Clear(); } //_ClientThread.setConfiguration("http://192.168.10.123:7000/TableDataService/Service.asmx", //_QualityHelper.authorization, _QualityHelper.serverpartcode, _QualityHelper.serverpartshop_id, //_QualityHelper.shopcode, _QualityHelper.macaddress, _QualityHelper.machinecode, 100, 6); _ClientThread.setConfiguration("http://" + _QualityHelper.dbip + ":" + _QualityHelper.DataServicePort + "/DataServices/Service.asmx", _QualityHelper.authorization, _QualityHelper.serverpartcode, _QualityHelper.serverpartshop_id, _QualityHelper.shopcode, _QualityHelper.macaddress, _QualityHelper.machinecode, int.Parse(_QualityHelper.maxdataquantity), 3); #region 读取配置表,获取部分表启动、时间频率配置 try { Hashtable _Hashtable = new Hashtable(); //启动时间比例集合 string threadconfigure = _QualityHelper.threadconfigure; if (!string.IsNullOrWhiteSpace(threadconfigure)) { foreach (string configure in threadconfigure.Split(',')) { foreach (DictionaryEntry item in _ConfigThread.onTimeList()) { string[] temps = configure.Split('|'); if (item.Key.ToString().Split('.')[1] == temps[0].ToUpper()) { if (_Hashtable.ContainsKey(item.Key.ToString())) { _Hashtable[item.Key.ToString()] = temps[2]; } else { _Hashtable.Add(item.Key.ToString(), temps[2]); } //temps[1] 1为启动、0为不启动 if (int.Parse(temps[1]) == 0) { _NotStartTable.Add(item.Key.ToString()); } } if (!_Hashtable.ContainsKey(item.Key.ToString())) { _Hashtable.Add(item.Key.ToString(), item.Value.ToString()); } } } } if (_Hashtable != null && _Hashtable.Count > 0) { //更新参数 _ConfigThread.setTimeList(_Hashtable); } else { _ConfigThread.setTimeList(null); } } catch { } #endregion #region 根据配置表信息,动态配置上传、下发表 string _strAuthMAC = ""; try { _strAuthMAC = _QualityHelper.authorization.ToDecrypt().Split('|')[3]; } catch { _strAuthMAC = ""; } if (_strAuthMAC == GetMacAddressByNetworkInformation()) { if (_NotStartTable.Count > 0) { Hashtable _TableNameList = new Hashtable(_ConfigThread.onTableNameList()); foreach (DictionaryEntry item in _TableNameList) { string keyString = item.Key.ToString().Split('.')[1]; if (item.Value.Equals("TOP") && !_NotStartTable.Contains(item.Key.ToString())) { _TopStartTable.Add(keyString); } if (item.Value.Equals("DOWN") && !_NotStartTable.Contains(item.Key.ToString())) { _DownStartTable.Add(keyString); } } //指定上传某些表 if (!IsListCompare(_ClientThread.getStartUpTypes(), _TopStartTable, true)) { _ClientThread.IsUpload(true, _TopStartTable); } //指定下发某些表 if (!IsListCompare(_ClientThread.getStartDownTypes(), _DownStartTable, true)) { _ClientThread.IsDownload(true, _DownStartTable); } } else { _ClientThread.IsUpload(true); _ClientThread.IsDownload(true); } } else { _ClientThread.IsUpload(false); _ClientThread.IsDownload(true, new List { "T_CONFIGURATION" }); } #endregion //_ClientThread.IsUpload(true, new List() { "T_BUSINESSTIME", "T_DATACOLLECTION", "T_EXCEPTION", "T_MOBILE_PAY", "T_MOBILE_PAYCHECK", "T_COMMODITYEX_NEW" }); //_ClientThread.IsDownload(true, new List() { "T_CONFIGURATION", "T_ICCARDINFO", "T_MEMBERSHIP", "T_SALESPROMOTE", "T_SHOPMESSAGE", "T_SELLWORKER" }); //_ClientThread.IsUpload(true, new List() { "T_MOBILE_PAYCHECK" }); //_ClientThread.IsUpload(false); // _ClientThread.IsDownload(true); _ClientThread.setVipStartUp(new List { "HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS" }); _ClientThread.setConfigThread(_ConfigThread); } catch (Exception ex) { ex.ToString(); } } #endregion #region 方法 -> 定时启动主线程 private void timer1_Tick(object sender, EventArgs e) { try { ThreadConfigure();//线程配置 if(! _ClientThread.onState()) { LogHelper.WriteServiceLog("传输预启动失败"); } } catch (Exception ex) { try { LogHelper.WriteServiceLog("传输启动异常:"+ex.Message); } catch { } } } #endregion #region 方法 -> 定时清理 private void timer2_Tick(object sender, EventArgs e) { try { //重启程序 onRestartFrom(); //获取时间 DateTime _DateTime = DateTime.Now; int intHour = _DateTime.Hour; int intMinute = _DateTime.Minute; //int intSecond = _DateTime.Second; if (intMinute == 0) { //switch (intHour) //{ // case 4: // break; // case 5: // break; // case 6: // break; // case 7: // break; // default: // return; //} } else { return; } //启动清除表数据线程 StartClearThread(); } catch { } } #endregion #region 方法 -> 启动清除表数据线程 private void StartClearThread() { //线程启动 System.Threading.Thread threadClear = new System.Threading.Thread(new System.Threading.ThreadStart(delegate () { try { Lib.SyBaseHelper.ExecuteSqlTran(new List { "DELETE FROM T_TRANSMISSIONERROR WHERE (RECORD_DATE < GETDATE() - 7)" }); } catch (Exception ex) { try { if (isDeBug) { LogHelper.WriteServiceLog(ex.Message.ToString()); } } catch { } } })); threadClear.IsBackground = true; threadClear.Start(); } #endregion #region 方法 -> 统计逻辑 private void StartThread() { for (int t = 0; t < 3; t++) { try { string serverpartcode = _QualityHelper.serverpartcode; string shopcode = _QualityHelper.shopcode; string machinecode = _QualityHelper.machinecode; string macaddress = _QualityHelper.macaddress; string sqlString = string.Empty; string oldDate = DateTime.Now.AddDays(-t).Date.ToString(); string newDate = DateTime.Now.AddDays(-t + 1).Date.ToString(); StringBuilder _StatisticssStr = new StringBuilder(); if (_ClientThread != null) { Hashtable _TableNameList = new Hashtable(_ClientThread.getTableNameList()); Hashtable _CreateDateName = getEndDate(); Hashtable _AllDataSql = new Hashtable(_ClientThread.getAllDataSql()); Hashtable _TopCount; //上传统计参数 string _TRANSFERSTATISTICS_CODE = string.Empty;//父级唯一主键 if (_TableNameList != null && _CreateDateName != null && _AllDataSql != null) { string _DataSql = "SELECT TRANSFERSTATISTICS_CODE FROM T_TRANSFERSTATISTICS WHERE PID_CODE = '-1' AND OPERATE_DATE >= '" + oldDate + "' AND OPERATE_DATE < '" + newDate + "'"; DataTable _DataTable = Lib.SyBaseHelper.QueryOdbc(_DataSql).Tables[0]; if (_DataTable != null && _DataTable.Rows.Count > 0) { Lib.SyBaseHelper.ExecuteSqlTran(new List { string.Format( @"UPDATE T_TRANSFERSTATISTICS SET LOCAL_UPDATETIME = {0},TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {1}", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr,DateTime.Now.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String,_DataTable.Rows[0]["TRANSFERSTATISTICS_CODE"].ToString()))}); _TRANSFERSTATISTICS_CODE = _DataTable.Rows[0]["TRANSFERSTATISTICS_CODE"].ToString(); } else { _TRANSFERSTATISTICS_CODE = GetCheckNumber(serverpartcode, shopcode, machinecode); _DataSql = string.Format( @"INSERT INTO T_TRANSFERSTATISTICS ( TRANSFERSTATISTICS_CODE, PID_CODE, PROVINCE_CODE, SERVERPARTCODE, SHOPCODE, MACHINECODE, MACHINE_MACADDRESS, TABLENAME, LOCAL_UPLOADNUM, LOCAL_NOTUPLOADNUM, LOCAL_UPDATETIME, LOCAL_ENDTIME, SERVICE_UPLOADNUM, SERVICE_NOTUPLOADNUM, SERVICE_UPDATETIME, STAFF_ID, STAFF_NAME, OPERATE_DATE, TRANSFERSTATISTICS_DESC, TRANSFER_STATE, TRANSFER_ID ) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20})", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, _TRANSFERSTATISTICS_CODE), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, "-1"), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, serverpartcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, shopcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, machinecode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, macaddress), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, DateTime.Now.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, oldDate), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, "0".ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, "0".ToString())); Lib.SyBaseHelper.ExecuteSqlTran(new List { _DataSql }); } List _DateSqlLists = new List(); foreach (DictionaryEntry item in _AllDataSql) { if (item.Key != null && item.Value != null && _TableNameList[item.Key.ToString()].ToString() == "TOP") { try { _TopCount = getTopCount(serverpartcode, _CreateDateName[item.Key.ToString()].ToString(), oldDate, newDate, _CreateDateName[item.Key.ToString()].ToString()); if (!_TopCount.ContainsKey(item.Key.ToString())) { continue; } sqlString = item.Value.ToString(); DataTable _DataTop = Lib.SyBaseHelper.QueryOdbc(_TopCount[item.Key.ToString()].ToString()).Tables[0]; DataTable _Data = Lib.SyBaseHelper.QueryOdbc(sqlString).Tables[0]; if (_Data != null) { DataRow[] _DataRow = _Data.Select(string.Format("{0} >= '{1}' AND {0} < '{2}'", _CreateDateName[item.Key.ToString()].ToString(), oldDate, newDate)); //查询该表是否存在子级 _DataSql = "SELECT TRANSFERSTATISTICS_CODE FROM T_TRANSFERSTATISTICS WHERE PID_CODE = '" + _TRANSFERSTATISTICS_CODE + "' AND TABLENAME = '" + item.Key.ToString() + "'"; DataTable _DataTableSon = Lib.SyBaseHelper.QueryOdbc(_DataSql).Tables[0]; if (_DataTableSon != null && _DataTableSon.Rows.Count > 0) { _DataSql = string.Format( @"UPDATE T_TRANSFERSTATISTICS SET LOCAL_UPLOADNUM = {0},LOCAL_ENDTIME = {1},LOCAL_NOTUPLOADNUM = {2}, LOCAL_UPDATETIME = {3},TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {4} AND TABLENAME = {5}", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, _DataTop.Rows.Count.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, (_DataTop.Rows.Count > 0 && !string.IsNullOrWhiteSpace(_DataTop.Rows[0][_CreateDateName[item.Key.ToString()].ToString()].ToString())) ? _DataTop.Rows[0][_CreateDateName[item.Key.ToString()].ToString()].ToString() : null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, _DataRow.Length.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, DateTime.Now.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, _DataTableSon.Rows[0]["TRANSFERSTATISTICS_CODE"].ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, item.Key.ToString())); _DateSqlLists.Add(_DataSql); } else { _DataSql = string.Format( @"INSERT INTO T_TRANSFERSTATISTICS ( TRANSFERSTATISTICS_CODE, PID_CODE, PROVINCE_CODE, SERVERPARTCODE, SHOPCODE, MACHINECODE, MACHINE_MACADDRESS, TABLENAME, LOCAL_UPLOADNUM, LOCAL_NOTUPLOADNUM, LOCAL_UPDATETIME, LOCAL_ENDTIME, SERVICE_UPLOADNUM, SERVICE_NOTUPLOADNUM, SERVICE_UPDATETIME, STAFF_ID, STAFF_NAME, OPERATE_DATE, TRANSFERSTATISTICS_DESC, TRANSFER_STATE, TRANSFER_ID ) VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20})", DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, GetCheckNumber(serverpartcode, shopcode, machinecode)), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, _TRANSFERSTATISTICS_CODE), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, serverpartcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, shopcode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, machinecode), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, macaddress), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, item.Key.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, _DataTop.Rows.Count.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, _DataRow.Length.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, DateTime.Now.ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, (_DataTop.Rows.Count > 0 && !string.IsNullOrWhiteSpace(_DataTop.Rows[0][_CreateDateName[item.Key.ToString()].ToString()].ToString())) ? _DataTop.Rows[0][_CreateDateName[item.Key.ToString()].ToString()].ToString() : null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime_SqlSvr, oldDate), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, null), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, "0".ToString()), DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, "0".ToString())); _DateSqlLists.Add(_DataSql); } } } catch (Exception ex) { ex.ToString(); } } } if (_DateSqlLists != null && _DateSqlLists.Count > 0) { Lib.SyBaseHelper.ExecuteSqlTran(_DateSqlLists); } } } } catch (Exception ex) { ex.ToString(); } } } #endregion #region 方法 -> 获取已上传数据语句 private Hashtable getTopCount(string serverpartcode, string dateName, string oldDate, string newDate, string endDateName) { Hashtable _AllDataSql = new Hashtable(); //上传 _AllDataSql.Add("HIGHWAY_EXCHANGE.T_SELLMASTER", @"SELECT SELLMASTER_ID, SELLMASTER_CODE, SERVERPARTCODE, SERVERPART_NAME, SHOPCODE, SHOPNAME, MACHINECODE, SELLWORKER_CODE, SELLWORKER_NAME, SELLMASTER_DATE, TICKET_CODE, SELLMASTER_COUNT, SELLMASTER_OFFPRICE, SELLMASTER_AMOUNT, CASHPAY, BANKPAY, MEMBERPAY, COUPONPAY, MOBILEPAY, INTERNALPAY, OTHERPAY, PAYMENT_TYPE, MOBILEPAY_CODE, MERCHANT_ORDER, SELLMASTER_DESC, TRANSFER_STATE FROM T_SELLMASTER WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND SELLMASTER_CODE IS NOT NULL AND SELLMASTER_DATE IS NOT NULL " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_SELLDETAILS", @"SELECT SELLDETAILS_ID, SELLMASTER_CODE, COMMODITY_CODE, COMMODITY_BARCODE, COMMODITY_NAME, SELLDETAILS_COUNT, SELLDETAILS_PRICE, SELLDETAILS_OFFPRICE,SELLDETAILS_AMOUNT, LINENUM, PAYMENT_TYPE, CREATE_DATE, SELLDETAILS_DESC, TRANSFER_STATE FROM T_SELLDETAILS WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND SELLMASTER_CODE IS NOT NULL" + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW", @"SELECT COMMODITYSALE_ID, ENDACCOUNT_CODE, COMMODITY_TYPE, COMMODITY_CODE,COMMODITY_BARCODE, COMMODITY_NAME, TICKTE_COUNT, TOTAL_COUNT,TOTAL_AMOUNT, TOTAL_OFFAMOUNT, WOKER_NUMBER, ISNULL(CREATE_DATE,NOW()) AS CREATE_DATE, COMMODITYSALE_DESC, TRANSFER_STATE FROM T_COMMODITYSALE_NEW WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND ENDACCOUNT_CODE IS NOT NULL AND COMMODITYSALE_ID IS NOT NULL " + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_PERSONSELL_NEW", @"SELECT PERSONSELL_ID, ENDACCOUNT_CODE, SERVERPARTCODE, SHOPCODE, MACHINECODE, STARTDATE, ENDDATE, SELLWORKER_CODE, TICKET_COUNT, TOTAL_COUNT, TOTAL_AMOUNT,TOTAL_OFFAMOUNT, CASHPAY, BANKPAY, MEMBERPAY,COUPONPAY,MOBILEPAY,INTERNALPAY,OTHERPAY,CONTRIBUTION_AMOUNT, PAYMENT_DETAILS, WOKER_NUMBER, PERSONSELL_DESC, TRANSFER_STATE FROM T_PERSONSELL_NEW WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND ENDACCOUNT_CODE IS NOT NULL AND ENDDATE IS NOT NULL " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW", @"SELECT ENDACCOUNT_ID, ENDACCOUNT_CODE, SERVERPARTCODE, SHOPCODE, MACHINECODE, ENDPERSON_CODE, STARTDATE, ENDDATE,TICKET_COUNT,TOTAL_COUNT,TOTAL_AMOUNT,TOTAL_OFFAMOUNT, CASHPAY,BANKPAY, MEMBERPAY, COUPONPAY, MOBILEPAY,INTERNALPAY, CONTRIBUTION_AMOUNT, PAYMENT_DETAILS,ENDACCOUNT_TYPE, ENDACCOUNT_DESC, TRANSFER_STATE FROM T_ENDACCOUNT_NEW WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND ENDACCOUNT_CODE IS NOT NULL AND ENDDATE IS NOT NULL " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSFER_SALE", @"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 FROM T_TRANSFER_SALE WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND TRANSFER_FIRSTDATAS IS NOT NULL AND TRANSFER_ID IS NOT NULL AND ENDDATE IS NOT NULL" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_BUSINESSTIME", @"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, BUSINESS_TIME FROM T_BUSINESSTIME WHERE ISNULL(BUSINESSTIME_STATE,0) <> 0 AND ISNULL(BUSINESSTIME_STATE,0) <> 2 AND BUSINESSTIME_ID IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND ENDACCOUNT_STARTDATE IS NOT NULL AND ENDACCOUNT_DATE IS NOT NULL" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_DATACOLLECTION", @"SELECT DATACOLLECTION_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, MACADDRESS, MACHINENAME,DATACOLLECTION_TYPE, DATACOLLECTION_DATE, TOTAL_COUNT,TOTALSELL_AMOUNT, TICKET_COUNT, TICKET_INFO, DATACOLLECTION_STATE, DATACOLLECTION_DESC, RESERVE_FIRSTNUM, RESERVE_SECONDNUM,RESERVE_THIRDNUM, RESERVE_FIRSTCHAR, RESERVE_SECONDCHAR, RESERVE_THIRDCHAR, RESERVE_FIRSTDATE, RESERVE_SECONDDATE, RESERVE_THIRDDATE FROM T_DATACOLLECTION WHERE ISNULL(DATACOLLECTION_STATE,0) <> 0 AND DATACOLLECTION_ID IS NOT NULL AND MACADDRESS IS NOT NULL AND DATACOLLECTION_DATE IS NOT NULL AND DATACOLLECTION_TYPE IS NOT NULL" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_EXCEPTION", @"SELECT EXCEPTION_ID, EXCEPTION_DATE, SERVERPARTCODE, SHOPCODE, MACHINECODE, WORKERCODE, EXCEPTIONTYPE, COMMODITY_CODE, EXCEPTIONCOUNT,EXCEPTIONAMOUNT,FLAG, REMARK, RESERVE_FIRSTNUM,RESERVE_SECONDNUM,RESERVE_THIRDNUM, RESERVE_FIRSTCHAR, RESERVE_SECONDCHAR, RESERVE_THIRDCHAR, RESERVE_FIRSTDATE, RESERVE_SECONDDATE, RESERVE_THIRDDATE,EXCEPTION_STATE FROM T_EXCEPTION WHERE ISNULL(EXCEPTION_STATE,0) <> 0 AND EXCEPTION_ID IS NOT NULL AND EXCEPTION_DATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND WORKERCODE IS NOT NULL AND EXCEPTIONTYPE IS NOT NULL" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAY", @"SELECT MOBILE_PAY_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, WORKERCODE, MOBILEPAY_DATE, MOBILEPAY_TYPE, TICKET_CODE, TICKET_AMOUNT,MOBILEPAY_RESULT, MOBILEPAY_FEEDBACK, MOBILEPAY_STATE FROM T_MOBILE_PAY WHERE ISNULL(MOBILEPAY_STATE,0) <> 0 AND MOBILE_PAY_ID IS NOT NULL AND MOBILEPAY_TYPE IS NOT NULL AND ISNULL(MOBILEPAY_RESULT,0) <> 9 AND TICKET_CODE IS NOT NULL AND MOBILEPAY_DATE IS NOT NULL" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); //_AllDataSql.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK", // @"SELECT // MOBILE_PAYCHECK_ID, MOBILEPAY_DATE, MOBILEPAY_TYPE, TICKET_CODE,TICKET_PRICE, TRADE_NO, // TRADE_NUM, RESULT_CODE, RESULT_DESC, JSON_STRING, TRADE_FSPARE, TRADE_SSPARE, TRADE_TSPARE, MOBILE_PAYCHECK_STATE // FROM T_MOBILE_PAYCHECK WHERE ISNULL(MOBILE_PAYCHECK_STATE,0) <> 0 AND MOBILE_PAYCHECK_ID IS NOT NULL AND // MOBILEPAY_TYPE IS NOT NULL AND TICKET_CODE IS NOT NULL " + // (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + // (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW", @"SELECT COMMODITYEX_ID, SERVERPARTCODE, COMMODITY_TYPE, COMMODITY_CODE, COMMODITY_BARCODE, COMMODITY_NAME, COMMODITY_RULE, COMMODITY_UNIT, COMMODITY_RETAILPRICE, COMMODITY_MEMBERPRICE, CANCHANGEPRICE, ISVALID, GUARANTEE_DAY, REMINDER_DAY, COMMODITY_EN,ISBULK, METERINGMETHOD, DOWNLOADDATE,FLAG,BUSINESSTYPE, SERVERPARTSHOP_ID, COMMODITY_SYMBOL, COMMODITY_HOTKEY,USERDEFINEDTYPE_ID, TRANSFER_STATE FROM T_COMMODITYEX WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND COMMODITYEX_ID IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SERVERPARTSHOP_ID IS NOT NULL AND COMMODITY_CODE <> '' " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT", @"SELECT ENDACCOUNT_ID, ENDACCOUNT_STARTDATE, ENDACCOUNT_DATE, SERVERPARTCODE, SHOPCODE, MACHINECODE, ENDPERSONCODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, CASH, CREDITCARD, TICKETBILL, VIPPERSON, COSTBILL, OTHERPAY, CASHPAY, FLAG, WORKNUMBER,ENDACCOUNT_STATE FROM T_ENDACCOUNT WHERE ISNULL(ENDACCOUNT_STATE,0) <> 0 AND ENDACCOUNT_ID IS NOT NULL AND ENDACCOUNT_DATE IS NOT NULL AND ENDACCOUNT_STARTDATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND FLAG IS NOT NULL AND ENDACCOUNT_STARTDATE > DATETIME('2018/01/01') " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); //_AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE", // @"SELECT // COMMODITYSALE_ID, STARTDATE, ENDDATE, SERVERPARTCODE, SHOPCODE, COMMODITY_TYPE, // COMMODITY_CODE, COMMODITY_NAME, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, // FLAG, COMMODITYSALE_STATE // FROM T_COMMODITYSALE WHERE ISNULL(COMMODITYSALE_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 COMMODITY_CODE IS NOT NULL AND ENDDATE > DATETIME('2018/01/01') " + // (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + // (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + // (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_PERSONSELL", @"SELECT PERSONSELL_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, STARTDATE, ENDDATE, CASHWORKER_CODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, CASH, TICKETBILL, CREDITCARD, VIPPERSON, COSTBILL, OTHERPAY, CASHPAY, ENDPERSONCODE, WORKNUMBER, CASHAMOUNT,PERSONSELL_STATE FROM T_PERSONSELL WHERE ISNULL(PERSONSELL_STATE,0) <> 0 AND ENDDATE IS NOT NULL AND PERSONSELL_ID IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND STARTDATE IS NOT NULL AND STARTDATE > DATETIME('2018/01/01') " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR", @"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 T_COMMODITYSALE_EXTAR WHERE ISNULL(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" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_SELLDATA", @"SELECT SELLDATA_ID, SELLDATA_DATE, SERVERPARTCODE, SHOPCODE, MACHINECODE, TICKETCODE, WORKERCODE, COMMODITY_CODE, SELLCOUNT, SELLPRICE, OFFPRICE, FACTAMOUNT, LINENUM, FLAG, CASH, CREDITCARD, TICKETBILL, VIPPERSON, COSTBILL, OTHERPAY, ORDERCODE,SELLDATA_STATE FROM T_SELLDATA WHERE ISNULL(SELLDATA_STATE,0) <> 0 AND SELLDATA_ID IS NOT NULL AND SELLDATA_DATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND TICKETCODE IS NOT NULL AND TICKETCODE <> '' AND WORKERCODE IS NOT NULL AND COMMODITY_CODE IS NOT NULL AND SELLDATA_DATE > DATETIME('2018/01/01')" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSMISSIONERROR", @"SELECT TRANSMISSIONERROR_ID,TRANSMISSIONERROR_CODE,PROVINCE_CODE,SERVERPARTCODE,SHOPCODE,MACHINECODE,MACHINE_MACADDRESS, TABLENAME,ELAPSED,TOTALNUMBER,UPNUMBER,ADDNUMBER,IDENTICALNUMBER,FILTERNUMBER,FILTERFIELDNUMBER,INTERFACEERROR,ERROR, TRANSMISSION_TYPE,RECORD_DATE,STAFF_ID,STAFF_NAME,OPERATE_DATE,TRANSMISSIONERROR_DESC,TRANSFER_STATE,TRANSFER_ID FROM T_TRANSMISSIONERROR WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND RECORD_DATE IS NOT NULL AND TRANSMISSIONERROR_CODE IS NOT NULL" + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); //_AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS", // @"SELECT TRANSFERSTATISTICS_CODE,PID_CODE,PROVINCE_CODE,SERVERPARTCODE,SHOPCODE,MACHINECODE,MACHINE_MACADDRESS, // TABLENAME,LOCAL_UPLOADNUM,LOCAL_NOTUPLOADNUM,LOCAL_UPDATETIME,LOCAL_ENDTIME,SERVICE_UPLOADNUM,SERVICE_NOTUPLOADNUM, // SERVICE_UPDATETIME,STAFF_ID,STAFF_NAME,OPERATE_DATE,TRANSFERSTATISTICS_DESC,TRANSFER_STATE,TRANSFER_ID // FROM T_TRANSFERSTATISTICS WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND OPERATE_DATE IS NOT NULL AND TRANSFERSTATISTICS_CODE IS NOT NULL" + // (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + // (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + // (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); _AllDataSql.Add("HIGHWAY_EXCHANGE.T_CUSTOMERINFO", @"SELECT CUSTOMERINFO_ID,SELLMASTER_CODE,ACQUISITION_TIME,SERVERPARTCODE, SHOPCODE,MACHINECODE,SELLMASTER_AMOUNT,CUSTOMER_AGE,CUSTOMER_GENDER , CUSTOMER_RACE,CUSTOMERINFO_DESC,TRANSFER_STATE,CUSTOMER_FACE FROM T_CUSTOMERINFO WHERE ISNULL(TRANSFER_STATE,0) <> 0 AND SELLMASTER_CODE IS NOT NULL AND ACQUISITION_TIME IS NOT NULL AND SERVERPARTCODE IS NOT NULL " + (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) + (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= '{1}' AND {0} < '{2}'", dateName, oldDate, newDate))) + (string.IsNullOrWhiteSpace(endDateName) ? "" : (" ORDER BY " + endDateName + " DESC"))); return _AllDataSql; } #endregion #region 方法 -> 获取已上传各表的结束时间 private Hashtable getEndDate() { Hashtable _EndDate = new Hashtable(); _EndDate.Add("HIGHWAY_EXCHANGE.T_SELLMASTER", "SELLMASTER_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_SELLDETAILS", "CREATE_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW", "CREATE_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_PERSONSELL_NEW", "ENDDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW", "ENDDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_TRANSFER_SALE", "ENDDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_BUSINESSTIME", "ENDACCOUNT_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_DATACOLLECTION", "DATACOLLECTION_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_EXCEPTION", "EXCEPTION_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAY", "MOBILEPAY_DATE"); //_EndDate.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK", "MOBILEPAY_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW", "DOWNLOADDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT", "ENDACCOUNT_DATE"); //_EndDate.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE", "ENDDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_PERSONSELL", "ENDDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR", "ENDDATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_SELLDATA", "SELLDATA_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_TRANSMISSIONERROR", "RECORD_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS", "OPERATE_DATE"); _EndDate.Add("HIGHWAY_EXCHANGE.T_CUSTOMERINFO", "ACQUISITION_TIME"); return _EndDate; } #endregion #region 方法 -> 重启程序 private void onRestartFrom() { try { Process CurrentProcess = Process.GetCurrentProcess(); //CurrentProcess.Id.ToString();//PID //string _Working = (CurrentProcess.WorkingSet64 / 1024 / 1024).ToString() + //"M (" + (CurrentProcess.WorkingSet64 / 1024).ToString() + "KB)";//占用内存 //((Double)(CurrentProcess.TotalProcessorTime.TotalMilliseconds - CurrentProcess.UserProcessorTime.TotalMilliseconds)).ToString();//CPU //CurrentProcess.Threads.Count.ToString();//线程 Double _Working = CurrentProcess.WorkingSet64 / 1024 / 1024; if (isDeBug) { LogHelper.WriteServiceLog("内存占用:" + _Working.ToString()); } //大于500M内存占用重启当前传输工具 if (_Working > 500) { if (isDeBug) { LogHelper.WriteServiceLog("---------------程序重启----------------"); } System.Windows.Forms.Application.Restart(); //重启当前程序 return; } } catch { } } #endregion #region 方法 -> 获取唯一标识 /// /// luhn计算校验位 /// /// 时间 /// public string GetCheckNumber(string serverpartcode, string shopcode, string machinecode) { try { Random _random = new Random(); string code = serverpartcode + shopcode + machinecode + DateTime.Now.ToString("yyyyMMddHHmmssfff") + RandomNum.getRandomNum(1, 0, 100)[0].ToString().PadLeft(2, '0'); int i, checkSum = 0; for (i = code.Length - 1; i >= 0; i--) { if (i % 2 == 0) { int val = ((code[i] - '0') * 2); while (val > 0) { checkSum += (val % 10); val /= 10; } } else { checkSum += (code[i] - '0'); } } checkSum = checkSum % 10; return code + (10 - checkSum).ToString(); } catch { return ""; } } #endregion #region 方法 -> 比较两集合值是否需要更新 /// /// 方法 -> 比较两集合值 /// /// 集合 /// 集合 /// 是否区分大小写 private bool IsListCompare(List listOne, List listTwo, bool isCase = false) { if (listOne == null && listTwo == null) { return true; } if (listOne != null && listTwo != null) { if (listOne.Count == listTwo.Count) { foreach (string tempOne in listOne) { foreach (string tempTwo in listTwo) { if (isCase) { if (!tempOne.Equals(tempTwo)) { return false; } } else { if (!tempOne.ToUpper().Equals(tempTwo.ToUpper())) { return false; } } } } return true; } } return false; } #endregion /// /// 获取物理网卡mac地址 /// /// public string GetMacAddressByNetworkInformation() { string key = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\"; string macAddress = string.Empty; try { NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in nics) { if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet && adapter.GetPhysicalAddress().ToString().Length != 0) { string fRegistryKey = key + adapter.Id + "\\Connection"; RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false); if (rk != null) { string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString(); int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0)); if (fPnpInstanceID.Length > 3 && fPnpInstanceID.Substring(0, 3) == "PCI") { macAddress = adapter.GetPhysicalAddress().ToString(); for (int i = 1; i < 6; i++) { macAddress = macAddress.Insert(3 * i - 1, ":"); } break; } } } } } catch (Exception ex) { macAddress = string.Empty; } return macAddress; } } }