2239 lines
137 KiB
C#
2239 lines
137 KiB
C#
using SocketTransfer.SDK;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace SocketSend
|
||
{
|
||
public class RemoteDataThread
|
||
{
|
||
protected string _OracleConnStrBD = ConfigurationManager.AppSettings["OracleConnStr"].ToString(); //本地连接
|
||
//protected string _OracleConnStrHQ = ConfigurationManager.AppSettings["HostIP"].ToString().Split(',')[1]; //远程连接
|
||
protected string _DownloadConnString = ConfigurationManager.AppSettings["DownloadConnString"].ToString();
|
||
protected OracleHelper _OracleBDHelper = null; //本地连接
|
||
protected OracleHelper _OracleHQHelper = null; //远程连接
|
||
private int _MaxLoadBearing = 400; //最大SQL执行量
|
||
private Dictionary<TableNameType, bool> _Data = null; //线程状态
|
||
System.Windows.Forms.Timer _Timer = new System.Windows.Forms.Timer();
|
||
|
||
#region 方法 -> 初始化参数
|
||
public RemoteDataThread()
|
||
{
|
||
try
|
||
{
|
||
//配置线程池
|
||
ThreadPool.SetMaxThreads(7, 7);
|
||
|
||
if (_OracleBDHelper == null)
|
||
{
|
||
_OracleBDHelper = new OracleHelper(_OracleConnStrBD.Split(',')[0], _OracleConnStrBD.Split(',')[1],
|
||
_OracleConnStrBD.Split(',')[2], _OracleConnStrBD.Split(',')[3]);
|
||
}
|
||
|
||
if (_OracleHQHelper == null)
|
||
{
|
||
_OracleHQHelper = new OracleHelper(_DownloadConnString.Split(',')[0], _DownloadConnString.Split(',')[1],
|
||
_DownloadConnString.Split(',')[2], _DownloadConnString.Split(',')[3], _DownloadConnString.Split(',')[4]);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("RemoteDataThread_RemoteDataThread:" + ex.Message,
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_RemoteDataThread)");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 启动
|
||
/// <summary>
|
||
/// 启动
|
||
/// </summary>
|
||
/// <param name="second">秒</param>
|
||
public void onStart(int second = 60)
|
||
{
|
||
try
|
||
{
|
||
//启动定时器
|
||
_Timer.Interval = second * 1000;
|
||
_Timer.Tick += new System.EventHandler(this.timer1_Tick);
|
||
_Timer.Start();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("RemoteDataThread_onStart:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_onStart)");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 启动所有线程
|
||
private void onStartThread()
|
||
{
|
||
try
|
||
{
|
||
int workerThreads;
|
||
int portThreads;
|
||
ThreadPool.GetAvailableThreads(out workerThreads, out portThreads);
|
||
|
||
if (_Data == null)
|
||
{
|
||
_Data = new Dictionary<TableNameType, bool>();
|
||
_Data.Add(TableNameType.T_SHOPMESSAGE, true);
|
||
_Data.Add(TableNameType.T_COMMODITYEX, true);
|
||
_Data.Add(TableNameType.T_SELLWORKER, true);
|
||
_Data.Add(TableNameType.T_HOTKEYSET, true);
|
||
//传输统计(暂停使用)
|
||
_Data.Add(TableNameType.STATISTICS, false);
|
||
//工具指令下发(暂停)
|
||
_Data.Add(TableNameType.T_SYSCODE, false);
|
||
_Data.Add(TableNameType.T_SELLMASTER_SIMPLE, true);
|
||
}
|
||
|
||
if (workerThreads > 0)
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("待命当前可用线程数:" + workerThreads +
|
||
",状态:" + _Data[TableNameType.T_SHOPMESSAGE], "onStartThread");
|
||
|
||
#region 门店
|
||
if (_Data.Keys.Contains(TableNameType.T_SHOPMESSAGE) && _Data[TableNameType.T_SHOPMESSAGE])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_T_SHOPMESSAGE");
|
||
_Data[TableNameType.T_SHOPMESSAGE] = false;//更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_T_SHOPMESSAGE, null);
|
||
}
|
||
#endregion
|
||
|
||
#region 收银员
|
||
if (_Data.Keys.Contains(TableNameType.T_SELLWORKER) && _Data[TableNameType.T_SELLWORKER])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_T_SELLWORKER");
|
||
_Data[TableNameType.T_SELLWORKER] = false;//更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_T_SELLWORKER, null);
|
||
}
|
||
#endregion
|
||
|
||
#region 商品
|
||
if (_Data.Keys.Contains(TableNameType.T_COMMODITYEX) && _Data[TableNameType.T_COMMODITYEX])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_T_COMMODITYEX");
|
||
_Data[TableNameType.T_COMMODITYEX] = false; //更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_T_COMMODITYEX, null);
|
||
}
|
||
#endregion
|
||
|
||
#region 快捷键
|
||
if (_Data.Keys.Contains(TableNameType.T_HOTKEYSET) && _Data[TableNameType.T_HOTKEYSET])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_T_HOTKEYSET");
|
||
_Data[TableNameType.T_HOTKEYSET] = false; //更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_T_HOTKEYSET, null);
|
||
}
|
||
#endregion
|
||
|
||
#region 统计
|
||
if (_Data.Keys.Contains(TableNameType.STATISTICS) && _Data[TableNameType.STATISTICS])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_Statistics");
|
||
_Data[TableNameType.STATISTICS] = false; //更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_Statistics, null);
|
||
}
|
||
#endregion
|
||
|
||
#region 服务区编码SYSCODE
|
||
if (_Data.Keys.Contains(TableNameType.T_SYSCODE) && _Data[TableNameType.T_SYSCODE])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_T_SYSCODE");
|
||
_Data[TableNameType.T_SYSCODE] = false; //更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_T_SYSCODE, null);
|
||
}
|
||
#endregion
|
||
|
||
#region 流水信息简表
|
||
if (_Data.Keys.Contains(TableNameType.T_SELLMASTER_SIMPLE) && _Data[TableNameType.T_SELLMASTER_SIMPLE])
|
||
{
|
||
System.Diagnostics.Debug.WriteLine("启动", "Run_T_SELLMASTER_SIMPLE");
|
||
_Data[TableNameType.T_SELLMASTER_SIMPLE] = false; //更新状态
|
||
ThreadPool.QueueUserWorkItem(Run_T_SELLMASTER_SIMPLE, null);
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("RemoteDataThread_onStartThread:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_onStartThread)");
|
||
}
|
||
|
||
#region 删除七天前的日志
|
||
try
|
||
{
|
||
string FilePath = System.Windows.Forms.Application.StartupPath;
|
||
DirectoryInfo _DirectoryInfo = new DirectoryInfo(FilePath);
|
||
FileInfo[] files = _DirectoryInfo.GetFiles("*.log");
|
||
foreach (FileInfo _FileInfo in files)
|
||
{
|
||
if (_FileInfo.Name.Contains("RemoteDataThread") && _FileInfo.LastWriteTime < DateTime.Now.Date.AddDays(-7))
|
||
{
|
||
_FileInfo.Delete();
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
#endregion
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 下发数据线程集合
|
||
|
||
#region 方法 -> T_SHOPMESSAGE 线程 门店
|
||
private void Run_T_SHOPMESSAGE(object obj)
|
||
{
|
||
string SqlString = null;
|
||
string DelString = null;
|
||
DataSet _DataSetBD = null;
|
||
DataSet _DataSetHQ = null;
|
||
DataSet _DataTemp = null;
|
||
List<string> SQLStringArray = null;
|
||
List<string> DelStringArray = null;
|
||
|
||
try
|
||
{
|
||
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
|
||
{
|
||
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_SHOPMESSAGE, _DataRow["SERVERPARTCODE"].ToString()));
|
||
|
||
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
|
||
{
|
||
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
|
||
}
|
||
|
||
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
if (DelStringArray == null)
|
||
{
|
||
DelStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
DelStringArray.Clear();
|
||
}
|
||
|
||
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_SHOPMESSAGE, _DataRow["SERVERPARTCODE"].ToString()));
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次插入开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
|
||
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:" + string.Join(",", _DataRowHQ.ItemArray),
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
try
|
||
{
|
||
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
"' AND SERVERPARTSHOP_ID = " + _DataRowHQ["SERVERPARTSHOP_ID"].ToString();
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = "SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SERVERPARTSHOP_ID = " +
|
||
_DataRowHQ["SERVERPARTSHOP_ID"].ToString() + " AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = '" +
|
||
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SERVERPARTSHOP_ID = " +
|
||
_DataRowHQ["SERVERPARTSHOP_ID"].ToString();
|
||
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})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SHOPMESSAGE_ID"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SHOPNAME"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["BUSINESSTYPE"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
}
|
||
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})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SHOPMESSAGE_ID"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SHOPNAME"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["BUSINESSTYPE"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
|
||
//删除语句集合
|
||
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE
|
||
WHERE SHOPMESSAGE_ID = {0} AND SERVERPARTCODE = {1}",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SHOPMESSAGE_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
|
||
DelStringArray.Add(DelString);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
",SHOPMESSAGE_ID:" + _DataRowHQ["SHOPMESSAGE_ID"].ToString() + "," + ex.Message +
|
||
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
}
|
||
}
|
||
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次插入结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次删除开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
if (DelStringArray != null && DelStringArray.Count > 0)
|
||
{
|
||
//删除总部
|
||
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
|
||
}
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次删除结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.T_SHOPMESSAGE] = true;
|
||
}
|
||
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
SqlString = null;
|
||
DelString = null;
|
||
_DataSetBD = null;
|
||
_DataSetHQ = null;
|
||
_DataTemp = null;
|
||
SQLStringArray = null;
|
||
DelStringArray = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
}
|
||
#endregion.
|
||
|
||
#region 方法 -> T_SELLWORKER 线程 收银员
|
||
private void Run_T_SELLWORKER(object obj)
|
||
{
|
||
string SqlString = null;
|
||
string DelString = null;
|
||
DataSet _DataSetBD = null;
|
||
DataSet _DataSetHQ = null;
|
||
DataSet _DataTemp = null;
|
||
List<string> SQLStringArray = null;
|
||
List<string> DelStringArray = null;
|
||
|
||
try
|
||
{
|
||
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
|
||
{
|
||
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_SELLWORKER, _DataRow["SERVERPARTCODE"].ToString()));
|
||
|
||
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
|
||
{
|
||
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
|
||
}
|
||
|
||
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
if (DelStringArray == null)
|
||
{
|
||
DelStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
DelStringArray.Clear();
|
||
}
|
||
|
||
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_SELLWORKER, _DataRow["SERVERPARTCODE"].ToString()));
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次插入开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
|
||
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:" + string.Join(",", _DataRowHQ.ItemArray),
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
try
|
||
{
|
||
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SELLWORKERCODE = '" +
|
||
_DataRowHQ["SELLWORKERCODE"].ToString() + "'";
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SELLWORKERCODE = '" +
|
||
_DataRowHQ["SELLWORKERCODE"].ToString() + "' AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE SERVERPARTCODE = '" +
|
||
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SELLWORKERCODE = '" +
|
||
_DataRowHQ["SELLWORKERCODE"].ToString() + "'";
|
||
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})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SELLWORKER_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERNAME"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["PROWERRIGHT"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERPASSWORD"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["DISCOUNT_RATE"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
}
|
||
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})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SELLWORKER_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERNAME"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["PROWERRIGHT"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERPASSWORD"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["DISCOUNT_RATE"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
|
||
//删除语句集合
|
||
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER
|
||
WHERE SELLWORKER_ID = {0} AND SERVERPARTCODE = {1}",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SELLWORKER_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
|
||
DelStringArray.Add(DelString);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
",SELLWORKER_ID:" + _DataRowHQ["SELLWORKER_ID"].ToString() + "," + ex.Message +
|
||
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
}
|
||
}
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次插入结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次删除开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
if (DelStringArray != null && DelStringArray.Count > 0)
|
||
{
|
||
//删除总部
|
||
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
|
||
}
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次删除结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLWORKER:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.T_SELLWORKER] = true;
|
||
}
|
||
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
SqlString = null;
|
||
DelString = null;
|
||
_DataSetBD = null;
|
||
_DataSetHQ = null;
|
||
_DataTemp = null;
|
||
SQLStringArray = null;
|
||
DelStringArray = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> T_COMMODITYEX 线程 商品
|
||
private void Run_T_COMMODITYEX(object obj)
|
||
{
|
||
string SqlString = null;
|
||
string DelString = null;
|
||
DataSet _DataSetBD = null;
|
||
DataSet _DataSetHQ = null;
|
||
DataSet _DataTemp = null;
|
||
List<string> SQLStringArray = null;
|
||
List<string> DelStringArray = null;
|
||
|
||
try
|
||
{
|
||
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
|
||
{
|
||
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_COMMODITYEX, _DataRow["SERVERPARTCODE"].ToString()));
|
||
|
||
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
|
||
{
|
||
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
|
||
}
|
||
|
||
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
if (DelStringArray == null)
|
||
{
|
||
DelStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
DelStringArray.Clear();
|
||
}
|
||
|
||
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(SelectServerData(
|
||
TableNameType.T_COMMODITYEX, _DataRow["SERVERPARTCODE"].ToString()));
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次插入开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
|
||
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:" + string.Join(",", _DataRowHQ.ItemArray),
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
try
|
||
{
|
||
SqlString = "SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
"' AND COMMODITY_CODE = '" + _DataRowHQ["COMMODITY_CODE"].ToString() +
|
||
"' AND SERVERPARTSHOP_ID = " + _DataRowHQ["SERVERPARTSHOP_ID"].ToString();
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = "SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
"' AND COMMODITY_CODE = '" + _DataRowHQ["COMMODITY_CODE"].ToString() +
|
||
"' AND SERVERPARTSHOP_ID = " + _DataRowHQ["SERVERPARTSHOP_ID"].ToString() +
|
||
" AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTCODE = '" +
|
||
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND COMMODITY_CODE = '" +
|
||
_DataRowHQ["COMMODITY_CODE"].ToString() + "' AND SERVERPARTSHOP_ID = " +
|
||
_DataRowHQ["SERVERPARTSHOP_ID"].ToString();
|
||
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,
|
||
GUARANTEE_DAY,REMINDER_DAY,COMMODITY_HOTKEY,USERDEFINEDTYPE_ID)
|
||
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},
|
||
{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITYEX_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_TYPE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_NAME"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_RULE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_UNIT"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_RETAILPRICE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_MEMBERPRICE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["CANCHANGEPRICE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["ISVALID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_EN"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["ISBULK"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["METERINGMETHOD"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["PRINT_DATE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["CONTAINER_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_SYMBOL"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["GUARANTEE_DAY"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["REMINDER_DAY"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_HOTKEY"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["USERDEFINEDTYPE_ID"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
}
|
||
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,GUARANTEE_DAY,
|
||
REMINDER_DAY,COMMODITY_HOTKEY,USERDEFINEDTYPE_ID)
|
||
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},
|
||
{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITYEX_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_TYPE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_NAME"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_RULE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_UNIT"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_RETAILPRICE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_MEMBERPRICE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["CANCHANGEPRICE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["ISVALID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_EN"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["ISBULK"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["METERINGMETHOD"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["PRINT_DATE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["CONTAINER_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_SYMBOL"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["GUARANTEE_DAY"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["REMINDER_DAY"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_HOTKEY"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["USERDEFINEDTYPE_ID"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
|
||
//删除语句集合
|
||
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX
|
||
WHERE COMMODITYEX_ID = {0} AND SERVERPARTCODE = {1}",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITYEX_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
|
||
DelStringArray.Add(DelString);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
",COMMODITYEX_ID:" + _DataRowHQ["COMMODITYEX_ID"].ToString() + "," + ex.Message +
|
||
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
}
|
||
}
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次插入结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次删除开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
if (DelStringArray != null && DelStringArray.Count > 0)
|
||
{
|
||
//删除总部
|
||
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
|
||
}
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次删除结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_COMMODITYEX:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.T_COMMODITYEX] = true;
|
||
}
|
||
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
SqlString = null;
|
||
DelString = null;
|
||
_DataSetBD = null;
|
||
_DataSetHQ = null;
|
||
_DataTemp = null;
|
||
SQLStringArray = null;
|
||
DelStringArray = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> T_HOTKEYSET 线程 快捷键
|
||
private void Run_T_HOTKEYSET(object obj)
|
||
{
|
||
string SqlString = null;
|
||
string DelString = null;
|
||
DataSet _DataSetBD = null;
|
||
DataSet _DataSetHQ = null;
|
||
DataSet _DataTemp = null;
|
||
List<string> SQLStringArray = null;
|
||
List<string> DelStringArray = null;
|
||
|
||
try
|
||
{
|
||
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
|
||
{
|
||
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_HOTKEYSET, _DataRow["SERVERPARTCODE"].ToString()));
|
||
|
||
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
|
||
{
|
||
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
|
||
}
|
||
|
||
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
if (DelStringArray == null)
|
||
{
|
||
DelStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
DelStringArray.Clear();
|
||
}
|
||
|
||
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_HOTKEYSET, _DataRow["SERVERPARTCODE"].ToString()));
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次插入开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
|
||
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:" + string.Join(",", _DataRowHQ.ItemArray),
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
try
|
||
{
|
||
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
"' AND COMMODITY_BARCODE = '" + _DataRowHQ["COMMODITY_BARCODE"].ToString() + "'";
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND COMMODITY_BARCODE = '" +
|
||
_DataRowHQ["COMMODITY_BARCODE"].ToString() + "' AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
|
||
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
|
||
{
|
||
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET WHERE SERVERPARTCODE = '" +
|
||
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND COMMODITY_BARCODE = '" +
|
||
_DataRowHQ["COMMODITY_BARCODE"].ToString() + "'";
|
||
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})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["HOTKEYSET_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["HOTKEY"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
}
|
||
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})",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["HOTKEYSET_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["HOTKEY"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
|
||
//删除语句集合
|
||
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET
|
||
WHERE HOTKEYSET_ID = {0} AND SERVERPARTCODE = {1}",
|
||
IsArrayType(ValueType.Int, _DataRowHQ["HOTKEYSET_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
|
||
DelStringArray.Add(DelString);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
|
||
",HOTKEYSET_ID:" + _DataRowHQ["HOTKEYSET_ID"].ToString() + "," + ex.Message + ")",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
}
|
||
}
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次插入结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次删除开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
if (DelStringArray != null && DelStringArray.Count > 0)
|
||
{
|
||
//删除总部
|
||
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
|
||
}
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次删除结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.T_HOTKEYSET] = true;
|
||
}
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
SqlString = null;
|
||
DelString = null;
|
||
_DataSetBD = null;
|
||
_DataSetHQ = null;
|
||
_DataTemp = null;
|
||
SQLStringArray = null;
|
||
DelStringArray = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> Run_T_SYSCODE 线程 服务区编码SYSCODE
|
||
private void Run_T_SYSCODE(object obj)
|
||
{
|
||
string SqlString = null;
|
||
try
|
||
{
|
||
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
LogHelper.WriteReceiveLog("T_SYSCODE:-------SQL语句执行开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SYSCODE)");
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
|
||
{
|
||
SqlString = "SELECT * FROM HIGHWAY_EXCHANGE.T_EXECUTESQL WHERE NVL(SERVERPARTCODE,'" + _DataRow["SERVERPARTCODE"].ToString() +
|
||
"') LIKE '%" + _DataRow["SERVERPARTCODE"].ToString() + "%' AND NVL(EXECUTESQL_DATE,SYSDATE) <= SYSDATE AND EXECUTESQL_STATE = 1";
|
||
|
||
foreach (DataRow _DataRowEXECUTESQL in _OracleHQHelper.ExcuteSqlGetDataSet(SqlString).Tables[0].Rows)
|
||
{
|
||
string[] BackFile = new string[3];
|
||
SqlString = "SELECT * FROM HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK WHERE SERVERPARTCODE = '" +
|
||
_DataRowEXECUTESQL["SERVERPARTCODE"].ToString() + "' AND EXECUTESQL_ID = " + _DataRowEXECUTESQL["EXECUTESQL_ID"].ToString();
|
||
DataTable _DataTable = _OracleHQHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
if (_DataTable.Rows[0]["EXECUTEFEEDBAK_STATE"].ToString() == "" ||
|
||
int.Parse(_DataTable.Rows[0]["EXECUTEFEEDBAK_STATE"].ToString()) < 2)
|
||
{
|
||
BackFile[0] = _DataTable.Rows[0]["EXECUTEFEEDBAK_ID"].ToString();
|
||
BackFile[1] = _DataTable.Rows[0]["SERVERPARTCODE"].ToString();
|
||
BackFile[2] = _DataRowEXECUTESQL["EXECUTESQL_CONTENT"].ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
string _EXECUTEFEEDBAK_ID = _OracleHQHelper.ExcuteSqlGetDataSet(
|
||
"SELECT HIGHWAY_EXCHANGE.SEQ_EXECUTEFEEDBAK.NEXTVAL FROM DUAL").Tables[0].Rows[0][0].ToString();
|
||
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK (
|
||
EXECUTEFEEDBAK_ID,EXECUTESQL_ID,SERVERPARTCODE) VALUES ({0},{1},{2})",
|
||
CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _EXECUTEFEEDBAK_ID),
|
||
CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRowEXECUTESQL["EXECUTESQL_ID"].ToString()),
|
||
CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, _DataRow["SERVERPARTCODE"].ToString()));
|
||
_OracleHQHelper.ExcuteSql(SqlString);
|
||
BackFile[0] = _EXECUTEFEEDBAK_ID;
|
||
BackFile[1] = _DataRow["SERVERPARTCODE"].ToString();
|
||
BackFile[2] = _DataRowEXECUTESQL["EXECUTESQL_CONTENT"].ToString();
|
||
}
|
||
|
||
if (BackFile != null && ObjectEmpty(BackFile) && BackFile.Length > 0)
|
||
{
|
||
string[] backFiles = null;
|
||
|
||
#region 本地操作
|
||
try
|
||
{
|
||
_OracleBDHelper.ExcuteSql(BackFile[2]);
|
||
|
||
backFiles = new string[4];
|
||
backFiles[0] = BackFile[0]; //EXECUTEFEEDBAK_ID
|
||
backFiles[1] = BackFile[1]; //SERVERPARTCODE
|
||
backFiles[2] = "SUCCESS"; //EXECUTEFEEDBAK_CONTENT
|
||
backFiles[3] = DateTime.Now.ToString();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SYSCODE:-------本地操作SQL语句执行异常------- \r\n EXECUTESQL_ID = " + BackFile[0],
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SYSCODE)");
|
||
|
||
backFiles = new string[4];
|
||
backFiles[0] = BackFile[0]; //EXECUTEFEEDBAK_ID
|
||
backFiles[1] = BackFile[1]; //SERVERPARTCODE
|
||
backFiles[2] = ex.Message; //EXECUTEFEEDBAK_CONTENT
|
||
backFiles[3] = DateTime.Now.ToString();
|
||
}
|
||
#endregion
|
||
|
||
#region 总部更新状态
|
||
if (backFiles != null && !string.IsNullOrEmpty(backFiles[0]) && !string.IsNullOrEmpty(backFiles[1]) &&
|
||
!string.IsNullOrEmpty(backFiles[2]) && !string.IsNullOrEmpty(backFiles[3]))
|
||
{
|
||
try
|
||
{
|
||
_OracleHQHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK SET EXECUTEFEEDBAK_CONTENT = '" +
|
||
backFiles[2] + "',EXECUTEFEEDBAK_STATE = 9,EXECUTEFEEDBAK_DATE = TO_DATE('" + backFiles[3] +
|
||
"','YYYY/MM/DD HH24:MI:SS') WHERE EXECUTEFEEDBAK_ID = " + backFiles[0]);
|
||
|
||
SqlString = @"SELECT * FROM HIGHWAY_EXCHANGE.T_EXECUTESQL A
|
||
WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK B
|
||
WHERE A.EXECUTESQL_ID = B.EXECUTESQL_ID AND EXECUTEFEEDBAK_ID = " + backFiles[0] + ")";
|
||
DataTable _DataTableEXECUTESQL = _OracleHQHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
|
||
|
||
SqlString = @"SELECT * FROM HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK A WHERE EXISTS(SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK B WHERE EXECUTEFEEDBAK_STATE = 9 AND
|
||
A.EXECUTESQL_ID = B.EXECUTESQL_ID AND EXECUTEFEEDBAK_ID = " + backFiles[0] + ")";
|
||
if (_OracleHQHelper.ExcuteSqlGetDataSet(SqlString).Tables[0].Rows.Count ==
|
||
_DataTableEXECUTESQL.Rows[0]["SERVERPARTCODE"].ToString().Split(',').Length)
|
||
{
|
||
_OracleHQHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_EXECUTESQL SET EXECUTESQL_STATE = 9 WHERE EXECUTESQL_ID = " +
|
||
_DataTableEXECUTESQL.Rows[0]["EXECUTESQL_ID"].ToString());
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SYSCODE:-------总部SQL语句执行错误------- \r\n " + ex.Message,
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SYSCODE)");
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
LogHelper.WriteReceiveLog("T_SYSCODE:-------SQL语句执行结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SYSCODE)");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_HOTKEYSET:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.T_SYSCODE] = true;
|
||
}
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
SqlString = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> T_SELLMASTER_SIMPLE 线程 流水信息简表
|
||
private void Run_T_SELLMASTER_SIMPLE(object obj)
|
||
{
|
||
string SqlString = null;
|
||
DataSet _DataSetBD = null;
|
||
DataSet _DataSetHQ = null;
|
||
DataSet _DataTemp = null;
|
||
List<string> SQLStringArray = null;
|
||
|
||
try
|
||
{
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
LogHelper.WriteReceiveLog("T_SELLMASTER_SIMPLE:-------总部批次更新开始-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLMASTER_SIMPLE)");
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
|
||
{
|
||
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
|
||
SelectServerData(TableNameType.T_SELLMASTER_SIMPLE, _DataRow["SERVERPARTCODE"].ToString()));
|
||
|
||
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
|
||
{
|
||
//50条主键
|
||
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], 50);
|
||
}
|
||
|
||
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
string KeyString = null;
|
||
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
|
||
{
|
||
if (_DataRowHQ["SELLMASTER_CODE"] != null && !string.IsNullOrEmpty(_DataRowHQ["SELLMASTER_CODE"].ToString()))
|
||
{
|
||
KeyString += (string.IsNullOrEmpty(KeyString) ? "" : ",") + _DataRowHQ["SELLMASTER_CODE"].ToString();
|
||
}
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(KeyString))
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLMASTER_SIMPLE:" + KeyString,
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLMASTER_SIMPLE)");
|
||
try
|
||
{
|
||
//本地待上传的流水主表数据
|
||
SqlString = string.Format(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_SELLMASTER WHERE SELLMASTER_CODE IN ({0}) AND SERVERPARTCODE = '{1}'",
|
||
KeyString, _DataRow["SERVERPARTCODE"].ToString());
|
||
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(SqlString);
|
||
|
||
if (_DataSetBD != null && _DataSetBD.Tables.Count > 0)
|
||
{
|
||
foreach (DataRow _DataSellmaster in _DataSetBD.Tables[0].Rows)
|
||
{
|
||
try
|
||
{
|
||
SqlString = string.Format(@"UPDATE HIGHWAY_EXCHANGE.T_SELLMASTER_SIMPLE SET
|
||
SHOPCODE = {0},MACHINECODE = {1},
|
||
SELLMASTER_AMOUNT = {2},SELLMASTER_DATE = {3},
|
||
TRANSFER_STATE = 9
|
||
WHERE SELLMASTER_CODE = {4} AND SERVERPARTCODE = {5}",
|
||
IsArrayType(ValueType.String, _DataSellmaster["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataSellmaster["MACHINECODE"].ToString()),
|
||
IsArrayType(ValueType.Double, _DataSellmaster["SELLMASTER_AMOUNT"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataSellmaster["SELLMASTER_DATE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataSellmaster["SELLMASTER_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataSellmaster["SERVERPARTCODE"].ToString()));
|
||
SQLStringArray.Add(SqlString);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLMASTER_SIMPLE:(SERVERPARTCODE:" + _DataSellmaster["SERVERPARTCODE"].ToString() +
|
||
",SELLMASTER_CODE:" + _DataSellmaster["SELLMASTER_CODE"].ToString() + "," + ex.Message +
|
||
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLMASTER_SIMPLE)");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLMASTER_SIMPLE:" + ex.Message,
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLMASTER_SIMPLE)");
|
||
}
|
||
}
|
||
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleHQHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
}
|
||
}
|
||
|
||
LogHelper.WriteReceiveLog("T_SELLMASTER_SIMPLE:-------总部批次更新结束-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLMASTER_SIMPLE)");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("T_SELLMASTER_SIMPLE:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLMASTER_SIMPLE)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.T_SELLMASTER_SIMPLE] = true;
|
||
}
|
||
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
SqlString = null;
|
||
_DataSetBD = null;
|
||
_DataSetHQ = null;
|
||
_DataTemp = null;
|
||
SQLStringArray = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 统计线程
|
||
private void Run_Statistics(object obj)
|
||
{
|
||
string dataSql = null;
|
||
List<string> SQLStringArray = null;
|
||
Hashtable createDateName = null;
|
||
Hashtable okSqls = null;
|
||
Hashtable noSqls = null;
|
||
|
||
try
|
||
{
|
||
|
||
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间,100毫秒不能再多
|
||
|
||
dataSql = "SELECT TABLENAME,NICKNAME FROM HIGHWAY_EXCHANGE.T_TRANSFERTABLEINDEX";
|
||
DataTable _DataTableNameHQ = _OracleHQHelper.ExcuteSqlGetDataSet(dataSql).Tables[0];
|
||
|
||
//3天数据统计
|
||
for (int t = 0; t < 7; t++)
|
||
{
|
||
string oldDate = DateTime.Now.AddDays(-t).Date.ToString();
|
||
string newDate = DateTime.Now.AddDays(-t + 1).Date.ToString();
|
||
dataSql = "SELECT TRANSFERSTATISTICS_CODE FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE PID_CODE = '-1' AND OPERATE_DATE >= TO_DATE('" +
|
||
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" + newDate + "','YYYY/MM/DD HH24:MI:SS')";
|
||
|
||
createDateName = getCreateDateName();
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:-------遍历统计各表开始(" + oldDate + ")-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
|
||
#region 遍历统计各表
|
||
try
|
||
{
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(dataSql).Tables[0].Rows)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
foreach (DataRow _DataRowSubgrade in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE PID_CODE = '" +
|
||
_DataRow["TRANSFERSTATISTICS_CODE"].ToString() + "' AND OPERATE_DATE >= TO_DATE('" +
|
||
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
|
||
newDate + "','YYYY/MM/DD HH24:MI:SS')").Tables[0].Rows)
|
||
{
|
||
_DataRowSubgrade["SERVERPARTCODE"].ToString();
|
||
_DataRowSubgrade["SHOPCODE"].ToString();
|
||
_DataRowSubgrade["MACHINECODE"].ToString();
|
||
_DataRowSubgrade["TABLENAME"].ToString();
|
||
|
||
if (!createDateName.ContainsKey(_DataRowSubgrade["TABLENAME"].ToString()))
|
||
{
|
||
continue;
|
||
}
|
||
|
||
try
|
||
{
|
||
//已上传
|
||
okSqls = getTopOrDownCount(_DataRowSubgrade["SERVERPARTCODE"].ToString(),
|
||
_DataRowSubgrade["SHOPCODE"].ToString(), _DataRowSubgrade["MACHINECODE"].ToString(),
|
||
createDateName[_DataRowSubgrade["TABLENAME"].ToString()].ToString(), oldDate, newDate, true);
|
||
//未上传
|
||
noSqls = getTopOrDownCount(_DataRowSubgrade["SERVERPARTCODE"].ToString(),
|
||
_DataRowSubgrade["SHOPCODE"].ToString(), _DataRowSubgrade["MACHINECODE"].ToString(),
|
||
createDateName[_DataRowSubgrade["TABLENAME"].ToString()].ToString(), oldDate, newDate, false);
|
||
|
||
DataTable _DataTableBD = _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE TRANSFERSTATISTICS_CODE = '" +
|
||
_DataRowSubgrade["TRANSFERSTATISTICS_CODE"].ToString() + "'").Tables[0];
|
||
if (_DataTableBD != null && _DataTableBD.Rows.Count > 0)
|
||
{
|
||
string okNumber = _OracleBDHelper.ExcuteSqlGetDataSet(okSqls[_DataRowSubgrade["TABLENAME"].ToString()].ToString()).Tables[0].Rows.Count.ToString();
|
||
string noNumber = _OracleBDHelper.ExcuteSqlGetDataSet(noSqls[_DataRowSubgrade["TABLENAME"].ToString()].ToString()).Tables[0].Rows.Count.ToString();
|
||
|
||
if (_DataTableBD.Rows[0]["SERVICE_UPLOADNUM"].ToString() != okNumber ||
|
||
_DataTableBD.Rows[0]["SERVICE_NOTUPLOADNUM"].ToString() != noNumber)
|
||
{
|
||
//更新
|
||
dataSql = string.Format(
|
||
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET SERVICE_UPLOADNUM = {0},SERVICE_NOTUPLOADNUM = {1},SERVICE_UPDATETIME = {2},
|
||
TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {3} AND TABLENAME = {4}",
|
||
IsArrayType(ValueType.Int, okNumber),
|
||
IsArrayType(ValueType.Int, noNumber),
|
||
IsArrayType(ValueType.DateTime, DateTime.Now.ToString()),
|
||
IsArrayType(ValueType.String, _DataRowSubgrade["TRANSFERSTATISTICS_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowSubgrade["TABLENAME"].ToString()));
|
||
SQLStringArray.Add(dataSql);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("RemoteDataThread_Run_Statistics:(SERVERPARTCODE:" +
|
||
_DataRowSubgrade["SERVERPARTCODE"].ToString() + ",SHOPCODE:" +
|
||
_DataRowSubgrade["SHOPCODE"].ToString() + "," + ex.Message + ")",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
}
|
||
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
|
||
#endregion
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:-------遍历统计各表结束(" + oldDate + ")-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:-------合计各表开始(" + oldDate + ")-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
|
||
#region 合计各表
|
||
|
||
string _TRANSFERSTATISTICS_DESC = string.Empty; //备注详细
|
||
|
||
try
|
||
{
|
||
dataSql = "SELECT TRANSFERSTATISTICS_CODE,TRANSFERSTATISTICS_DESC,UPLOADED_MACHINE,NOTUPLOADED_MACHINE FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS " +
|
||
" WHERE PID_CODE = '-1' AND OPERATE_DATE >= TO_DATE('" + oldDate +
|
||
"','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" + newDate + "','YYYY/MM/DD HH24:MI:SS')";
|
||
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(dataSql).Tables[0].Rows)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
#region 校验本地和服务区是否存在未上传数据
|
||
try
|
||
{
|
||
//OK MIDDLE NO
|
||
int _TABLENUMOK = 0, _TABLEMIDDLE = 0, _TABLENUMNO = 0;
|
||
List<string> _TableNameBDList = new List<string>();
|
||
List<string> _TableNameHQList = new List<string>();
|
||
|
||
foreach (DataRow _DataRowSubgrade in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE PID_CODE = '" +
|
||
_DataRow["TRANSFERSTATISTICS_CODE"].ToString() + "' AND OPERATE_DATE >= TO_DATE('" +
|
||
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
|
||
newDate + "','YYYY/MM/DD HH24:MI:SS')").Tables[0].Rows)
|
||
{
|
||
_DataRowSubgrade["SERVERPARTCODE"].ToString();
|
||
_DataRowSubgrade["SHOPCODE"].ToString();
|
||
_DataRowSubgrade["MACHINECODE"].ToString();
|
||
_DataRowSubgrade["TABLENAME"].ToString();
|
||
|
||
try
|
||
{
|
||
DataRow[] _DataRows = _DataTableNameHQ.
|
||
Select(" TABLENAME = '" + _DataRowSubgrade["TABLENAME"].ToString() + "'");
|
||
switch (_DataRowSubgrade["TABLENAME"].ToString())
|
||
{
|
||
case "HIGHWAY_EXCHANGE.T_PERSONSELL":
|
||
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT":
|
||
case "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW":
|
||
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW":
|
||
case "HIGHWAY_EXCHANGE.T_BUSINESSTIME":
|
||
if ((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
|
||
(!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString())) &&
|
||
(int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) == 1 ||
|
||
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) == 0))
|
||
{
|
||
if (!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) &&
|
||
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) == 0 &&
|
||
_DataRowSubgrade["TABLENAME"].ToString() != "HIGHWAY_EXCHANGE.T_BUSINESSTIME")
|
||
{
|
||
//需要上传总部,没问题的
|
||
_TABLEMIDDLE++;
|
||
}
|
||
else if (_DataRowSubgrade["TABLENAME"].ToString() == "HIGHWAY_EXCHANGE.T_BUSINESSTIME")
|
||
{
|
||
//不需要上传中部,没问题的
|
||
_TABLEMIDDLE++;
|
||
}
|
||
else
|
||
{
|
||
if ((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
|
||
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0)
|
||
{
|
||
//本地有未上传
|
||
if (_DataRows != null && _DataRows.Length > 0 &&
|
||
!_TableNameBDList.Contains(_DataRows[0]["NICKNAME"].ToString()))
|
||
{
|
||
_TableNameBDList.Add(_DataRows[0]["NICKNAME"].ToString());
|
||
}
|
||
_TABLENUMNO++;
|
||
}
|
||
else if ((!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString())) &&
|
||
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) > 0)
|
||
{
|
||
//服务区有未上传
|
||
if (_DataRows != null && _DataRows.Length > 0 &&
|
||
!_TableNameHQList.Contains(_DataRows[0]["NICKNAME"].ToString()))
|
||
{
|
||
_TableNameHQList.Add(_DataRows[0]["NICKNAME"].ToString());
|
||
}
|
||
_TABLENUMNO++;
|
||
}
|
||
else
|
||
{
|
||
_TABLENUMOK++;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
|
||
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0))
|
||
{
|
||
//本地有未上传
|
||
if (_DataRows != null && _DataRows.Length > 0 &&
|
||
!_TableNameBDList.Contains(_DataRows[0]["NICKNAME"].ToString()))
|
||
{
|
||
_TableNameBDList.Add(_DataRows[0]["NICKNAME"].ToString());
|
||
}
|
||
_TABLENUMNO++;
|
||
}
|
||
else if ((!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString())) &&
|
||
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) > 0)
|
||
{
|
||
//服务区有未上传
|
||
if (_DataRows != null && _DataRows.Length > 0 &&
|
||
!_TableNameHQList.Contains(_DataRows[0]["NICKNAME"].ToString()))
|
||
{
|
||
_TableNameHQList.Add(_DataRows[0]["NICKNAME"].ToString());
|
||
}
|
||
_TABLENUMNO++;
|
||
}
|
||
else
|
||
{
|
||
_TABLENUMOK++;
|
||
}
|
||
}
|
||
break;
|
||
case "HIGHWAY_EXCHANGE.T_EXCEPTION":
|
||
case "HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS":
|
||
case "HIGHWAY_EXCHANGE.T_TRANSMISSIONERROR":
|
||
_TABLEMIDDLE++;
|
||
break;
|
||
default:
|
||
if (((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
|
||
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0))
|
||
{
|
||
//本地有未上传
|
||
if (_DataRows != null && _DataRows.Length > 0 &&
|
||
!_TableNameBDList.Contains(_DataRows[0]["NICKNAME"].ToString()))
|
||
{
|
||
_TableNameBDList.Add(_DataRows[0]["NICKNAME"].ToString());
|
||
}
|
||
_TABLENUMNO++;
|
||
}
|
||
else if ((!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString())) &&
|
||
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) > 0)
|
||
{
|
||
//服务区有未上传
|
||
if (_DataRows != null && _DataRows.Length > 0 &&
|
||
!_TableNameHQList.Contains(_DataRows[0]["NICKNAME"].ToString()))
|
||
{
|
||
_TableNameHQList.Add(_DataRows[0]["NICKNAME"].ToString());
|
||
}
|
||
_TABLENUMNO++;
|
||
}
|
||
else
|
||
{
|
||
_TABLENUMOK++;
|
||
}
|
||
break;
|
||
}
|
||
|
||
string _UPLOADNUM = null;
|
||
try
|
||
{
|
||
if (!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) &&
|
||
!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString()))
|
||
{
|
||
switch (_DataRowSubgrade["TABLENAME"].ToString())
|
||
{
|
||
case "HIGHWAY_EXCHANGE.T_PERSONSELL":
|
||
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT":
|
||
case "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW":
|
||
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW":
|
||
case "HIGHWAY_EXCHANGE.T_BUSINESSTIME":
|
||
if (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0)
|
||
{
|
||
if (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
|
||
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString()) != 0)
|
||
{
|
||
_UPLOADNUM = (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
|
||
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString()) - 1).ToString();
|
||
}
|
||
else
|
||
{
|
||
_UPLOADNUM = "0";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_UPLOADNUM = (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
|
||
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString())).ToString();
|
||
}
|
||
break;
|
||
default:
|
||
_UPLOADNUM = (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
|
||
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString())).ToString();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
catch { _UPLOADNUM = null; }
|
||
|
||
if (_UPLOADNUM != null && _DataRowSubgrade["UPLOADNUM"].ToString() != _UPLOADNUM)
|
||
{
|
||
//更新
|
||
dataSql = string.Format(
|
||
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET SERVICE_UPDATETIME = {0},
|
||
UPLOADNUM = {1},TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {2} AND TABLENAME = {3}",
|
||
IsArrayType(ValueType.DateTime, DateTime.Now.ToString()),
|
||
IsArrayType(ValueType.String, _UPLOADNUM),
|
||
IsArrayType(ValueType.String, _DataRowSubgrade["TRANSFERSTATISTICS_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowSubgrade["TABLENAME"].ToString()));
|
||
SQLStringArray.Add(dataSql);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("RemoteDataThread_Run_Statistics:(SERVERPARTCODE:" +
|
||
_DataRowSubgrade["SERVERPARTCODE"].ToString() + ",SHOPCODE:" +
|
||
_DataRowSubgrade["SHOPCODE"].ToString() + "," + ex.Message + ")",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
}
|
||
|
||
//初始化
|
||
_TRANSFERSTATISTICS_DESC = "";
|
||
|
||
//备注统计
|
||
if (_TableNameBDList.Count > 0)
|
||
{
|
||
_TRANSFERSTATISTICS_DESC += " 区服未上传:" + string.Join(",", _TableNameBDList.ToArray()) + ";";
|
||
}
|
||
|
||
if (_TableNameHQList.Count > 0)
|
||
{
|
||
_TRANSFERSTATISTICS_DESC += " 总部未上传:" + string.Join(",", _TableNameHQList.ToArray()) + ";";
|
||
}
|
||
|
||
if (_DataRow["TRANSFERSTATISTICS_DESC"].ToString() != _TRANSFERSTATISTICS_DESC ||
|
||
_DataRow["UPLOADED_MACHINE"].ToString() != _TABLENUMOK.ToString() ||
|
||
_DataRow["NOTUPLOADED_MACHINE"].ToString() != _TABLENUMNO.ToString())
|
||
{
|
||
//更新
|
||
dataSql = string.Format(
|
||
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET TRANSFERSTATISTICS_DESC = {0},SERVICE_UPDATETIME = {1},
|
||
UPLOADED_MACHINE = {2},NOTUPLOADED_MACHINE = {3},
|
||
TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {4}",
|
||
IsArrayType(ValueType.String, _TRANSFERSTATISTICS_DESC),
|
||
IsArrayType(ValueType.DateTime, DateTime.Now.ToString()),
|
||
IsArrayType(ValueType.Int, _TABLENUMOK.ToString()),
|
||
IsArrayType(ValueType.Int, _TABLENUMNO.ToString()),
|
||
IsArrayType(ValueType.String, _DataRow["TRANSFERSTATISTICS_CODE"].ToString()));
|
||
SQLStringArray.Add(dataSql);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
|
||
#endregion
|
||
|
||
//分批执行语句
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
finally
|
||
{
|
||
_TRANSFERSTATISTICS_DESC = null;
|
||
}
|
||
#endregion
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:-------合计各表结束(" + oldDate + ")-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:-------服务区、总部传输 开始(" + oldDate + ")-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
|
||
#region 服务区、总部传输
|
||
try
|
||
{
|
||
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
|
||
"SELECT SERVERPARTCODE FROM T_SYSCODE WHERE SERVERPARTCODE IS NOT NULL").Tables[0].Rows)
|
||
{
|
||
DataSet _DataTemp = null;
|
||
dataSql = "SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE OPERATE_DATE >= TO_DATE('" +
|
||
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
|
||
newDate + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'";
|
||
DataTable _DataTableBD = _OracleBDHelper.ExcuteSqlGetDataSet(dataSql).Tables[0];
|
||
dataSql = "SELECT TRANSFERSTATISTICS_CODE,SERVERPARTCODE,LOCAL_UPDATETIME,SERVICE_UPDATETIME,OPERATE_DATE " +
|
||
"FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE OPERATE_DATE >= TO_DATE('" +
|
||
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
|
||
newDate + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'";
|
||
DataTable _DataTableHQ = _OracleHQHelper.ExcuteSqlGetDataSet(dataSql).Tables[0];
|
||
|
||
if (_DataTableBD != null)
|
||
{
|
||
_DataTemp = SplitDataTable(_DataTableBD, _MaxLoadBearing);
|
||
}
|
||
|
||
try
|
||
{
|
||
foreach (DataTable _DataTableTemp in _DataTemp.Tables)
|
||
{
|
||
if (SQLStringArray == null)
|
||
{
|
||
SQLStringArray = new List<string>();
|
||
}
|
||
else
|
||
{
|
||
SQLStringArray.Clear();
|
||
}
|
||
|
||
foreach (DataRow _DataRowBD in _DataTableTemp.Rows)
|
||
{
|
||
DataRow[] _DataRowHQ = _DataTableHQ.Select(" TRANSFERSTATISTICS_CODE = '" + _DataRowBD["TRANSFERSTATISTICS_CODE"].ToString() + "'");
|
||
if (_DataRowHQ.Length == 0)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + string.Join(",", _DataRowBD.ItemArray),
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
//添加
|
||
string _SqlString = string.Format(
|
||
@"INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS(
|
||
TRANSFERSTATISTICS_CODE,PID_CODE,
|
||
PROVINCE_CODE,SERVERPARTCODE,
|
||
SHOPCODE,MACHINECODE,
|
||
MACHINE_MACADDRESS,TABLENAME,
|
||
UPLOADNUM,LOCAL_UPLOADNUM,
|
||
LOCAL_NOTUPLOADNUM,LOCAL_UPDATETIME,
|
||
LOCAL_ENDTIME,SERVICE_UPLOADNUM,
|
||
SERVICE_NOTUPLOADNUM,SERVICE_UPDATETIME,
|
||
STAFF_ID,STAFF_NAME,
|
||
OPERATE_DATE,TRANSFERSTATISTICS_DESC,
|
||
UPLOADED_MACHINE,NOTUPLOADED_MACHINE,
|
||
NOTUPLOADED_TABLE)
|
||
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22})",
|
||
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["PID_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["PROVINCE_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["MACHINECODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["MACHINE_MACADDRESS"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["TABLENAME"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["UPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_UPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_NOTUPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_UPDATETIME"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_ENDTIME"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_UPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_NOTUPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["SERVICE_UPDATETIME"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["STAFF_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["STAFF_NAME"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["OPERATE_DATE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_DESC"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["UPLOADED_MACHINE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["NOTUPLOADED_MACHINE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["NOTUPLOADED_TABLE"].ToString()));
|
||
SQLStringArray.Add(_SqlString);
|
||
}
|
||
else
|
||
{
|
||
if (
|
||
(!string.IsNullOrEmpty(_DataRowBD["OPERATE_DATE"].ToString()) && (string.IsNullOrEmpty(_DataRowHQ[0]["OPERATE_DATE"].ToString()) ||
|
||
DateTime.Parse(_DataRowHQ[0]["OPERATE_DATE"].ToString()) < DateTime.Parse(_DataRowBD["OPERATE_DATE"].ToString())) ||
|
||
((!string.IsNullOrEmpty(_DataRowBD["LOCAL_UPDATETIME"].ToString()) && (string.IsNullOrEmpty(_DataRowHQ[0]["LOCAL_UPDATETIME"].ToString()) ||
|
||
DateTime.Parse(_DataRowHQ[0]["LOCAL_UPDATETIME"].ToString()) < DateTime.Parse(_DataRowBD["LOCAL_UPDATETIME"].ToString())))) ||
|
||
((!string.IsNullOrEmpty(_DataRowBD["SERVICE_UPDATETIME"].ToString()) && (string.IsNullOrEmpty(_DataRowHQ[0]["SERVICE_UPDATETIME"].ToString()) ||
|
||
DateTime.Parse(_DataRowHQ[0]["SERVICE_UPDATETIME"].ToString()) < DateTime.Parse(_DataRowBD["SERVICE_UPDATETIME"].ToString())))))
|
||
)
|
||
{
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:" + string.Join(",", _DataRowBD.ItemArray),
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
|
||
string _SqlString = string.Format(
|
||
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET
|
||
TRANSFERSTATISTICS_CODE = {0},PID_CODE = {1},
|
||
PROVINCE_CODE = {2},SERVERPARTCODE = {3},
|
||
SHOPCODE = {4},MACHINECODE ={5},
|
||
MACHINE_MACADDRESS = {6},TABLENAME = {7},
|
||
UPLOADNUM = {8},LOCAL_UPLOADNUM = {9},
|
||
LOCAL_NOTUPLOADNUM = {10},LOCAL_UPDATETIME ={11},
|
||
LOCAL_ENDTIME = {12}, SERVICE_UPLOADNUM ={13},
|
||
SERVICE_NOTUPLOADNUM = {14},SERVICE_UPDATETIME ={15},
|
||
STAFF_ID = {16},STAFF_NAME ={17},
|
||
OPERATE_DATE ={18},TRANSFERSTATISTICS_DESC ={19},
|
||
UPLOADED_MACHINE ={20},NOTUPLOADED_MACHINE ={21},
|
||
NOTUPLOADED_TABLE = {22}
|
||
WHERE TRANSFERSTATISTICS_CODE = {0}",
|
||
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["PID_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["PROVINCE_CODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["SERVERPARTCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["SHOPCODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["MACHINECODE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["MACHINE_MACADDRESS"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["TABLENAME"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["UPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_UPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_NOTUPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_UPDATETIME"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_ENDTIME"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_UPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_NOTUPLOADNUM"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["SERVICE_UPDATETIME"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["STAFF_ID"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["STAFF_NAME"].ToString()),
|
||
IsArrayType(ValueType.DateTime, _DataRowBD["OPERATE_DATE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_DESC"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["UPLOADED_MACHINE"].ToString()),
|
||
IsArrayType(ValueType.Int, _DataRowBD["NOTUPLOADED_MACHINE"].ToString()),
|
||
IsArrayType(ValueType.String, _DataRowBD["NOTUPLOADED_TABLE"].ToString()));
|
||
SQLStringArray.Add(_SqlString);
|
||
}
|
||
}
|
||
}
|
||
|
||
//分批执行语句(总部)
|
||
if (SQLStringArray != null && SQLStringArray.Count > 0)
|
||
{
|
||
_OracleHQHelper.ExecuteSqlTran(SQLStringArray);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
|
||
#endregion
|
||
|
||
LogHelper.WriteReceiveLog("Statistics:-------服务区、总部传输 结束(" + oldDate + ")-------",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
|
||
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
if (_Data != null)
|
||
{
|
||
//更新状态
|
||
_Data[TableNameType.STATISTICS] = true;
|
||
}
|
||
|
||
}
|
||
catch { }
|
||
|
||
//内存释放
|
||
dataSql = null;
|
||
SQLStringArray = null;
|
||
createDateName = null;
|
||
okSqls = null;
|
||
noSqls = null;
|
||
MemoryManagement.FlushMemory();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
|
||
#region 方法 -> 获取总部数据语句
|
||
private string SelectServerData(TableNameType type, string serverpartcode)
|
||
{
|
||
|
||
string SQLString = string.Empty;
|
||
switch (type)
|
||
{
|
||
//门店
|
||
case TableNameType.T_SHOPMESSAGE:
|
||
SQLString = @"SELECT SHOPMESSAGE_ID,SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE,
|
||
SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID FROM
|
||
(
|
||
SELECT T.*, ROW_NUMBER()
|
||
OVER(PARTITION BY SERVERPARTCODE,SERVERPARTSHOP_ID
|
||
ORDER BY T.DOWNLOADDATE DESC,T.SHOPMESSAGE_ID DESC) AS COLNUM
|
||
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE T
|
||
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
|
||
break;
|
||
//收银员
|
||
case TableNameType.T_SELLWORKER:
|
||
SQLString = @"SELECT SELLWORKER_ID,SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE,
|
||
DOWNLOADDATE,FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE FROM
|
||
(
|
||
SELECT T.*, ROW_NUMBER()
|
||
OVER(PARTITION BY SERVERPARTCODE,SELLWORKERCODE
|
||
ORDER BY T.DOWNLOADDATE DESC,T.SELLWORKER_ID DESC) AS COLNUM
|
||
FROM HIGHWAY_EXCHANGE.T_SELLWORKER T
|
||
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
|
||
break;
|
||
//商品
|
||
case TableNameType.T_COMMODITYEX:
|
||
SQLString = @"SELECT 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,
|
||
GUARANTEE_DAY,REMINDER_DAY,COMMODITY_HOTKEY,USERDEFINEDTYPE_ID
|
||
FROM (
|
||
SELECT T.*, ROW_NUMBER()
|
||
OVER(PARTITION BY SERVERPARTCODE,COMMODITY_CODE,SERVERPARTSHOP_ID
|
||
ORDER BY T.DOWNLOADDATE DESC,T.COMMODITYEX_ID DESC) AS COLNUM
|
||
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX T
|
||
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
|
||
break;
|
||
//快捷键
|
||
case TableNameType.T_HOTKEYSET:
|
||
SQLString = @"SELECT HOTKEYSET_ID,SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID FROM
|
||
(
|
||
SELECT T.*, ROW_NUMBER()
|
||
OVER(PARTITION BY SERVERPARTCODE,COMMODITY_BARCODE
|
||
ORDER BY T.DOWNLOADDATE DESC,T.HOTKEYSET_ID DESC) AS COLNUM
|
||
FROM HIGHWAY_EXCHANGE.T_HOTKEYSET T
|
||
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
|
||
break;
|
||
//流水简表
|
||
case TableNameType.T_SELLMASTER_SIMPLE:
|
||
SQLString = @"SELECT SELLMASTER_CODE,SERVERPARTCODE FROM
|
||
(
|
||
SELECT T.*, ROW_NUMBER()
|
||
OVER(PARTITION BY SELLMASTER_CODE
|
||
ORDER BY T.SELLMASTER_DATE DESC) AS COLNUM
|
||
FROM HIGHWAY_EXCHANGE.T_SELLMASTER_SIMPLE T
|
||
) WHERE COLNUM = 1 AND NVL(TRANSFER_STATE,0) = 0 AND SERVERPARTCODE = '" + serverpartcode + "'";
|
||
break;
|
||
}
|
||
return SQLString;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 分解数据表
|
||
/// <summary>
|
||
/// 分解数据表
|
||
/// </summary>
|
||
/// <param name="originalTab">需要分解的表</param>
|
||
/// <param name="rowsNum">每个表包含的数据量</param>
|
||
/// <returns></returns>
|
||
private static DataSet SplitDataTable(DataTable originalTab, int rowsNum)
|
||
{
|
||
//获取所需创建的表数量
|
||
int tableNum = (int)Math.Ceiling((decimal)originalTab.Rows.Count / rowsNum);
|
||
//获取数据余数
|
||
int remainder = originalTab.Rows.Count % rowsNum;
|
||
|
||
DataSet ds = new DataSet();
|
||
|
||
//如果只需要创建1个表,直接将原始表存入DataSet
|
||
//if (originalTab.Rows.Count <= rowsNum)
|
||
//{
|
||
// ds.Tables.Add(originalTab);
|
||
//}
|
||
//else
|
||
//{
|
||
DataTable[] tableSlice = new DataTable[tableNum];
|
||
|
||
//Save orginal columns into new table.
|
||
for (int c = 0; c < tableNum; c++)
|
||
{
|
||
tableSlice[c] = originalTab.Clone();
|
||
tableSlice[c].TableName = originalTab.TableName + c.ToString();
|
||
}
|
||
//Import Rows
|
||
for (int i = 0; i < tableNum; i++)
|
||
{
|
||
// if the current table is not the last one
|
||
//if (i != tableNum - 1)
|
||
//{
|
||
for (int j = i * rowsNum; j < ((i + 1) * rowsNum); j++)
|
||
{
|
||
if (j >= originalTab.Rows.Count)
|
||
{
|
||
break;
|
||
}
|
||
tableSlice[i].ImportRow(originalTab.Rows[j]);
|
||
}
|
||
//}
|
||
//else
|
||
//{
|
||
// for (int k = i * rowsNum; k < ((i + 1) * rowsNum + remainder); k++)
|
||
// {
|
||
// tableSlice[i].ImportRow(originalTab.Rows[k]);
|
||
// }
|
||
//}
|
||
}
|
||
|
||
//add all tables into a dataset
|
||
foreach (DataTable dt in tableSlice)
|
||
{
|
||
ds.Tables.Add(dt);
|
||
}
|
||
//}
|
||
return ds;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 检测对象是否为空
|
||
public static bool ObjectEmpty(string[] _Object)
|
||
{
|
||
bool Flag = true;
|
||
|
||
foreach (string STR in _Object)
|
||
{
|
||
if (string.IsNullOrEmpty(STR))
|
||
{
|
||
Flag = false;
|
||
}
|
||
}
|
||
|
||
return Flag;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 定义 表名的枚举
|
||
public enum TableNameType
|
||
{
|
||
T_SHOPMESSAGE = 62,
|
||
T_SELLWORKER = 63,
|
||
T_COMMODITYEX = 64,
|
||
T_HOTKEYSET = 65,
|
||
STATISTICS = 66,
|
||
T_SYSCODE = 67,
|
||
T_SELLMASTER_SIMPLE = 68
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 枚举参数过滤处理
|
||
/// <summary>
|
||
/// 枚举参数过滤处理,解决麻烦的SQL拼接
|
||
/// (对照数据表给定添加、更新的参数枚举类型ValueType)
|
||
/// </summary>
|
||
/// <param name="_Type"></param>
|
||
/// <param name="_String"></param>
|
||
/// <returns></returns>
|
||
public string IsArrayType(ValueType _Type, string _String = null)
|
||
{
|
||
if (_String != null && _String.Length > 0)
|
||
{
|
||
switch (_Type)
|
||
{
|
||
case ValueType.String:
|
||
return string.Format("'{0}'", _String.Replace("'", " "));
|
||
case ValueType.Int:
|
||
case ValueType.Double:
|
||
case ValueType.Boolean:
|
||
return _String;
|
||
case ValueType.DateTime:
|
||
return string.Format("TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS')", _String);
|
||
}
|
||
}
|
||
return "null";
|
||
}
|
||
|
||
/// <summary>
|
||
/// 枚举参数过滤处理,解决麻烦的SQL拼接
|
||
/// (对照数据表给定添加、更新的参数枚举类型ValueType)
|
||
/// </summary>
|
||
/// <param name="_Type"></param>
|
||
/// <param name="_Default">是否使用缺省值</param>
|
||
/// <returns></returns>
|
||
private static string IsArrayType(ValueType _Type, bool _DefaultValue = false)
|
||
{
|
||
if (_DefaultValue)
|
||
{
|
||
switch (_Type)
|
||
{
|
||
case ValueType.String:
|
||
return "''";
|
||
case ValueType.Int:
|
||
case ValueType.Double:
|
||
case ValueType.Boolean:
|
||
return "0";
|
||
case ValueType.DateTime:
|
||
return string.Format("TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS')", DateTime.Now.ToString());
|
||
}
|
||
}
|
||
return "null";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 定义 5个类型的枚举
|
||
public enum ValueType
|
||
{
|
||
String = 0,
|
||
Int = 1,
|
||
Double = 2,
|
||
Boolean = 3,
|
||
DateTime = 4
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 定时器
|
||
private void timer1_Tick(object sender, EventArgs e)
|
||
{
|
||
onStartThread();
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取已上传数据语句
|
||
private Hashtable getTopOrDownCount(string serverpartcode, string shopcode, string machinecode,
|
||
string dateName, string oldDate, string newDate, bool isUploaded)
|
||
{
|
||
Hashtable _AllDataSql = new Hashtable();
|
||
|
||
// _AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW",
|
||
// @"SELECT 1
|
||
// FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW WHERE COMMODITYEX_ID IS NOT NULL AND
|
||
// SERVERPARTCODE IS NOT NULL AND SERVERPARTSHOP_ID IS NOT NULL AND COMMODITY_CODE <> '' " +
|
||
// (isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
// (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
// (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
// IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT WHERE 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 > TO_DATE('2018/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS')" +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW WHERE ENDACCOUNT_CODE IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL " +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_EXCEPTION",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_EXCEPTION WHERE 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" +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAY",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY WHERE MOBILE_PAY_ID IS NOT NULL AND MOBILEPAY_TYPE IS NOT NULL AND
|
||
NVL(MOBILEPAY_RESULT,0) <> 9 AND TICKET_CODE IS NOT NULL AND MOBILEPAY_DATE IS NOT NULL" +
|
||
(isUploaded == true ? " AND NVL(MOBILEPAY_STATE,0) = 9" : " AND NVL(MOBILEPAY_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
// _AllDataSql.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK",
|
||
// @"SELECT 1
|
||
// FROM HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK WHERE MOBILE_PAYCHECK_ID IS NOT NULL AND
|
||
// MOBILEPAY_TYPE IS NOT NULL AND TICKET_CODE IS NOT NULL " +
|
||
// (isUploaded == true ? " AND NVL(MOBILE_PAYCHECK_STATE,0) = 9" : " AND NVL(MOBILE_PAYCHECK_STATE,0) <> 9") +
|
||
// (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
// IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_PERSONSELL",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_PERSONSELL WHERE PERSONSELL_ID IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND ENDDATE IS NOT NULL AND
|
||
SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND STARTDATE IS NOT NULL AND STARTDATE > TO_DATE('2018/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS') " +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_PERSONSELL_NEW",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_PERSONSELL_NEW WHERE ENDACCOUNT_CODE IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL " +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_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 HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR WHERE 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" +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
// _AllDataSql.Add("HIGHWAY_EXCHANGE.T_SELLDATA",
|
||
// @"SELECT 1
|
||
// FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE 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 > TO_DATE('2018/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS')" +
|
||
// (isUploaded == true ? " AND NVL(SELLDATA_STATE,0) = 9" : " AND NVL(SELLDATA_STATE,0) <> 9") +
|
||
// (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
// (string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
// (string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
// (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
// IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSFER_SALE",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE TRANSFER_FIRSTDATAS IS NOT NULL AND TRANSFER_ID IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL" +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
|
||
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS",
|
||
@"SELECT 1
|
||
FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE OPERATE_DATE IS NOT NULL AND TRANSFERSTATISTICS_CODE IS NOT NULL" +
|
||
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
|
||
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
|
||
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
|
||
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
|
||
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
|
||
return _AllDataSql;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 对应表的时间字段
|
||
private Hashtable getCreateDateName()
|
||
{
|
||
Hashtable _CreateDateName = new Hashtable();
|
||
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT", "ENDACCOUNT_DATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW", "ENDDATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_EXCEPTION", "EXCEPTION_DATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAY", "MOBILEPAY_DATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_PERSONSELL", "ENDDATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_PERSONSELL_NEW", "ENDDATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR", "ENDDATE");
|
||
//_CreateDateName.Add("HIGHWAY_EXCHANGE.T_SELLDATA", "SELLDATA_DATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_TRANSFER_SALE", "ENDDATE");
|
||
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS", "OPERATE_DATE");
|
||
return _CreateDateName;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|