1728 lines
85 KiB
C#
1728 lines
85 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Net.NetworkInformation;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
using System.Windows.Forms;
|
||
|
||
namespace DataUpdate
|
||
{
|
||
public partial class MachineInfo : Form
|
||
{
|
||
#region 属性
|
||
/// <summary>
|
||
/// 服务器IP
|
||
/// </summary>
|
||
public string dbip
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("server_ip", "").Trim() == "" ?
|
||
DataUpdate.ConfigUrationValues("dbip", "").Trim() :
|
||
DataUpdate.ConfigUrationValues("server_ip", "").Trim());
|
||
}
|
||
}
|
||
public string hostip
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("host_ip", "cloud.eshangtech.com"));
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// webservice服务端口
|
||
/// </summary>
|
||
public string serviceport { get { return (DataUpdate.ConfigUrationValues("service_port", "7080").Trim()); } }
|
||
/// <summary>
|
||
/// 数据库端口
|
||
/// </summary>
|
||
public string dbport
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("server_dbport", "").Trim() == "" ?
|
||
DataUpdate.ConfigUrationValues("dbport", "1521").Trim() :
|
||
DataUpdate.ConfigUrationValues("server_dbport", "1521").Trim());
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 数据库名
|
||
/// </summary>
|
||
public string dbname
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("server_dbname", "").Trim() == "" ?
|
||
DataUpdate.ConfigUrationValues("dbname", "highway_exchange").Trim() :
|
||
DataUpdate.ConfigUrationValues("server_dbname", "highway_exchange").Trim());
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 数据库用户名
|
||
/// </summary>
|
||
public string dbuser
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("server_dbuser", "").Trim() == "" ?
|
||
DataUpdate.ConfigUrationValues("dbuser", "highway_exchange").Trim() :
|
||
DataUpdate.ConfigUrationValues("server_dbuser", "highway_exchange").Trim());
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 数据库密码
|
||
/// </summary>
|
||
public string dbpass
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("server_dbpass", "").Trim() == "" ?
|
||
DataUpdate.ConfigUrationValues("dbpass", "qrwl").Trim() :
|
||
DataUpdate.ConfigUrationValues("server_dbpass", "qrwl").Trim());
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 数据库连接名
|
||
/// </summary>
|
||
public string conname
|
||
{
|
||
get
|
||
{
|
||
return (DataUpdate.ConfigUrationValues("server_conname", "").Trim() == "" ?
|
||
DataUpdate.ConfigUrationValues("conname", "orcl").Trim() :
|
||
DataUpdate.ConfigUrationValues("server_conname", "orcl").Trim());
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 服务区编码
|
||
/// </summary>
|
||
public string serverpartcode { get { return DataUpdate.ConfigUrationValues("serverpartcode", "").Trim(); } }
|
||
/// <summary>
|
||
/// 服务区名称
|
||
/// </summary>
|
||
public string serverpartname { get { return DataUpdate.ConfigUrationValues("serverpartname", "").Trim(); } }
|
||
/// <summary>
|
||
/// 门店编码
|
||
/// </summary>
|
||
public string shopcode { get { return DataUpdate.ConfigUrationValues("shopcode", "").Trim(); } }
|
||
/// <summary>
|
||
/// 门店名称
|
||
/// </summary>
|
||
public string shopname
|
||
{
|
||
get
|
||
{
|
||
try
|
||
{
|
||
return DBHelper.ExecuteDataSet("select shopname from t_shopmessage where serverpartcode = '" +
|
||
serverpartcode + "' and shopcode = '" + shopcode + "'").Tables[0].Rows[0]["shopname"].ToString();
|
||
}
|
||
catch { return ""; }
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 收银机编码
|
||
/// </summary>
|
||
public string machinecode { get { return DataUpdate.ConfigUrationValues("machinecode", "").Trim(); } }
|
||
/// <summary>
|
||
/// 收银机名称
|
||
/// </summary>
|
||
public string machinename { get { return Dns.GetHostName(); } }
|
||
/// <summary>
|
||
/// 收银系统版本
|
||
/// </summary>
|
||
public string softversion { get { return DataUpdate.ConfigUrationValues("version", "").Trim(); } }
|
||
/// <summary>
|
||
/// 收银机MAC地址
|
||
/// </summary>
|
||
public string macaddress { get { return ComputerInfoHelper.GetMacAddressByNetworkInformation(); } }
|
||
|
||
Boolean _Upload = false, _SetUpload = false, _UploadState = true, _OracleState = true;
|
||
OracleHelper _OracleHelper = null;
|
||
string SqlString = string.Empty;
|
||
decimal _timeout = 0;
|
||
decimal _testcount = 0;
|
||
Image imgSuccess = Properties.Resources.Success;
|
||
Image imgFail = Properties.Resources.Fail;
|
||
Image imgNone = Properties.Resources.None;
|
||
|
||
#endregion
|
||
Timer _NetWorkState = new Timer();
|
||
BackgroundWorker bgWorker = new BackgroundWorker();
|
||
BackgroundWorker bgWorkerEndaccount = new BackgroundWorker();
|
||
BackgroundWorker bgWorkerPersonsell = new BackgroundWorker();
|
||
BackgroundWorker bgWorkerMobeilPay = new BackgroundWorker();
|
||
BackgroundWorker bgWorkerOneClickUpload = new BackgroundWorker();
|
||
//调用API
|
||
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
|
||
public static extern IntPtr GetForegroundWindow(); //获得本窗体的句柄
|
||
[DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
|
||
public static extern bool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体
|
||
|
||
public MachineInfo()
|
||
{
|
||
InitializeComponent();
|
||
_OracleHelper = new OracleHelper(dbip, dbport, conname, dbuser, dbpass);
|
||
lblspname.Text = serverpartname;
|
||
lblshopname.Text = shopname;
|
||
lbllocalname.Text = machinename;
|
||
lblmachinecode.Text = machinecode;
|
||
lbllocalIP.Text = ComputerInfoHelper.GetAddressIP();
|
||
lblMACAdd.Text = macaddress;
|
||
lblserverIP.Text = dbip;
|
||
lblHQIP.Text = hostip;
|
||
lblSubstitution.Text = "";
|
||
lbllatency.Text = "";
|
||
lbldate.Text = "";
|
||
lblState.Text = "";
|
||
lblHQNetlatency.Text = "";
|
||
lblHQNetState.Text = "";
|
||
piclocalSale.Image = null;
|
||
piclocalMobeil.Image = null;
|
||
piclocalPerson.Image = null;
|
||
piclocalAudit.Image = null;
|
||
piclocalEnd.Image = null;
|
||
picserverMobeil.Image = null;
|
||
picserverAudit.Image = null;
|
||
picserverPerson.Image = null;
|
||
picserverSale.Image = null;
|
||
picserverEnd.Image = null;
|
||
progressBar1.Visible = false;
|
||
lblMessage.Text = "";
|
||
lblEndUpLoad.Text = "";
|
||
lblPersonUpLoad.Text = "";
|
||
lblSaleUpLoad.Text = "";
|
||
lblAuditUpLoad.Text = "";
|
||
lblMobeilUpLoad.Text = "";
|
||
bgWorker.WorkerReportsProgress = true;
|
||
bgWorker.WorkerSupportsCancellation = true;
|
||
bgWorker.DoWork += DoWork_Handler;
|
||
//bgWorker.ProgressChanged += ProgressChanged_Handler;
|
||
//bgWorker.RunWorkerCompleted += RunWorkerCompleted_Handler;
|
||
|
||
bgWorkerEndaccount.WorkerReportsProgress = true;
|
||
bgWorkerEndaccount.WorkerSupportsCancellation = true;
|
||
bgWorkerEndaccount.DoWork += EndaccountUpload_Handler;
|
||
|
||
bgWorkerMobeilPay.WorkerReportsProgress = true;
|
||
bgWorkerMobeilPay.WorkerSupportsCancellation = true;
|
||
bgWorkerMobeilPay.DoWork += MobeilPayUpload_Handler;
|
||
|
||
bgWorkerPersonsell.WorkerReportsProgress = true;
|
||
bgWorkerPersonsell.WorkerSupportsCancellation = true;
|
||
bgWorkerPersonsell.DoWork += PersonsellUpload_Handler;
|
||
|
||
bgWorkerOneClickUpload.WorkerReportsProgress = true;
|
||
bgWorkerOneClickUpload.WorkerSupportsCancellation = true;
|
||
bgWorkerOneClickUpload.DoWork += OneClickUpload_Handler;
|
||
bgWorkerOneClickUpload.ProgressChanged += ProgressChanged_Handler;
|
||
bgWorkerOneClickUpload.RunWorkerCompleted += RunWorkerCompleted_Handler;
|
||
_NetWorkState.Tick += new EventHandler(NetWorkState_Tick);
|
||
_NetWorkState.Interval = 1000;
|
||
_NetWorkState.Start();
|
||
|
||
//EndaccountUpload(true);
|
||
//EndaccountUpload(false);
|
||
}
|
||
|
||
public MachineInfo(string[] type)
|
||
{
|
||
InitializeComponent();
|
||
_OracleHelper = new OracleHelper(dbip, dbport, conname, dbuser, dbpass);
|
||
lblspname.Text = serverpartname;
|
||
lblshopname.Text = shopname;
|
||
lbllocalname.Text = machinename;
|
||
lblmachinecode.Text = machinecode;
|
||
lbllocalIP.Text = ComputerInfoHelper.GetAddressIP();
|
||
lblMACAdd.Text = macaddress;
|
||
lblserverIP.Text = dbip;
|
||
lblHQIP.Text = hostip;
|
||
lblSubstitution.Text = "";
|
||
lbllatency.Text = "";
|
||
lbldate.Text = "";
|
||
lblState.Text = "";
|
||
lblHQNetlatency.Text = "";
|
||
lblHQNetState.Text = "";
|
||
piclocalSale.Image = null;
|
||
piclocalMobeil.Image = null;
|
||
piclocalPerson.Image = null;
|
||
piclocalAudit.Image = null;
|
||
piclocalEnd.Image = null;
|
||
picserverMobeil.Image = null;
|
||
picserverAudit.Image = null;
|
||
picserverPerson.Image = null;
|
||
picserverSale.Image = null;
|
||
picserverEnd.Image = null;
|
||
progressBar1.Visible = false;
|
||
lblMessage.Text = "";
|
||
lblEndUpLoad.Text = "";
|
||
lblPersonUpLoad.Text = "";
|
||
lblSaleUpLoad.Text = "";
|
||
lblAuditUpLoad.Text = "";
|
||
lblMobeilUpLoad.Text = "";
|
||
bgWorker.WorkerReportsProgress = true;
|
||
bgWorker.WorkerSupportsCancellation = true;
|
||
bgWorker.DoWork += DoWork_Handler;
|
||
//bgWorker.ProgressChanged += ProgressChanged_Handler;
|
||
//bgWorker.RunWorkerCompleted += RunWorkerCompleted_Handler;
|
||
|
||
bgWorkerEndaccount.WorkerReportsProgress = true;
|
||
bgWorkerEndaccount.WorkerSupportsCancellation = true;
|
||
bgWorkerEndaccount.DoWork += EndaccountUpload_Handler;
|
||
|
||
bgWorkerMobeilPay.WorkerReportsProgress = true;
|
||
bgWorkerMobeilPay.WorkerSupportsCancellation = true;
|
||
bgWorkerMobeilPay.DoWork += MobeilPayUpload_Handler;
|
||
|
||
bgWorkerPersonsell.WorkerReportsProgress = true;
|
||
bgWorkerPersonsell.WorkerSupportsCancellation = true;
|
||
bgWorkerPersonsell.DoWork += PersonsellUpload_Handler;
|
||
|
||
bgWorkerOneClickUpload.WorkerReportsProgress = true;
|
||
bgWorkerOneClickUpload.WorkerSupportsCancellation = true;
|
||
bgWorkerOneClickUpload.DoWork += OneClickUpload_Handler;
|
||
bgWorkerOneClickUpload.ProgressChanged += ProgressChanged_Handler;
|
||
bgWorkerOneClickUpload.RunWorkerCompleted += RunWorkerCompleted_Handler;
|
||
//Timer _NetWorkState = new Timer();
|
||
_NetWorkState.Tick += new EventHandler(NetWorkState_Tick);
|
||
_NetWorkState.Interval = 1000;
|
||
_NetWorkState.Start();
|
||
}
|
||
|
||
public void MachineClose()
|
||
{
|
||
_NetWorkState.Stop();
|
||
this.Close();
|
||
this.Dispose();
|
||
}
|
||
/// <summary>
|
||
/// 在winform中查找控件
|
||
/// </summary>
|
||
/// <param ></param>
|
||
/// <param ></param>
|
||
/// <returns></returns>
|
||
private Control findControl(Control control, string controlName)
|
||
{
|
||
Control c1;
|
||
foreach (Control c in control.Controls)
|
||
{
|
||
if (c.Name == controlName)
|
||
{
|
||
return c;
|
||
}
|
||
else if (c.Controls.Count > 0)
|
||
{
|
||
c1 = findControl(c, controlName);
|
||
if (c1 != null)
|
||
{
|
||
return c1;
|
||
}
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
#region 上传状态
|
||
public void Pic(string name, Image img)
|
||
{
|
||
try
|
||
{
|
||
Invoke(new pic(picbox), new object[] { name, img });
|
||
}
|
||
catch { }
|
||
}
|
||
delegate void pic(string name, Image img);
|
||
void picbox(string name, Image img)
|
||
{
|
||
if (findControl(panel2, name) != null)
|
||
{
|
||
PictureBox _PictureBox = (PictureBox)findControl(panel2, name);
|
||
_PictureBox.BackgroundImage = img;
|
||
}
|
||
else if (findControl(panel3, name) != null)
|
||
{
|
||
PictureBox _PictureBox = (PictureBox)findControl(panel3, name);
|
||
_PictureBox.BackgroundImage = img;
|
||
}
|
||
else if (findControl(StatePanel, name) != null)
|
||
{
|
||
PictureBox _PictureBox = (PictureBox)findControl(StatePanel, name);
|
||
_PictureBox.BackgroundImage = img;
|
||
}
|
||
}
|
||
public void LabelText(string name, string txt, Color color)
|
||
{
|
||
try
|
||
{
|
||
Invoke(new text(lbltext), new object[] { name, txt, color });
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
delegate void text(string name, string txt, Color color);
|
||
void lbltext(string name, string txt, Color color)
|
||
{
|
||
Label _Label = (Label)findControl(panel1, name);
|
||
_Label.ForeColor = color;
|
||
_Label.Text = txt;
|
||
}
|
||
|
||
private void ProgressChanged_Handler(object sender, ProgressChangedEventArgs args)
|
||
{
|
||
progressBar1.Visible = true;
|
||
lblMessage.Visible = false;
|
||
progressBar1.Value = args.ProgressPercentage;
|
||
if (args.ProgressPercentage == 100)
|
||
{
|
||
lblMessage.Text = "日结营收数据上传已完成";
|
||
lblMessage.ForeColor = Color.Black;
|
||
}
|
||
}
|
||
private void RunWorkerCompleted_Handler(object sender, RunWorkerCompletedEventArgs args)
|
||
{
|
||
if (!lblMessage.Visible)
|
||
lblMessage.Visible = true;
|
||
progressBar1.Visible = false;
|
||
}
|
||
/// <summary>
|
||
/// 网络状态
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="args"></param>
|
||
private void DoWork_Handler(object sender, DoWorkEventArgs args)
|
||
{
|
||
if (bgWorker.CancellationPending == true)
|
||
{
|
||
args.Cancel = true;
|
||
}
|
||
NetWorkState();
|
||
|
||
}
|
||
/// <summary>
|
||
/// 日结及稽核数据上传状态
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="args"></param>
|
||
private void EndaccountUpload_Handler(object sender, DoWorkEventArgs args)
|
||
{
|
||
EndaccountUpload(false);
|
||
EndaccountUpload(true);
|
||
if (bgWorkerEndaccount.CancellationPending == true)
|
||
{
|
||
args.Cancel = true;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 交班数据上传状态
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="args"></param>
|
||
private void PersonsellUpload_Handler(object sender, DoWorkEventArgs args)
|
||
{
|
||
PersonsellUpload();
|
||
if (bgWorkerPersonsell.CancellationPending == true)
|
||
{
|
||
args.Cancel = true;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 移动支付数据上传状态
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="args"></param>
|
||
private void MobeilPayUpload_Handler(object sender, DoWorkEventArgs args)
|
||
{
|
||
MobeilPayUpload();
|
||
if (bgWorkerMobeilPay.CancellationPending == true)
|
||
{
|
||
args.Cancel = true;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 一键上传
|
||
/// <summary>
|
||
/// 一键上传最近账期数据
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="args"></param>
|
||
private void OneClickUpload_Handler(object sender, DoWorkEventArgs args)
|
||
{
|
||
BackgroundWorker worker = sender as BackgroundWorker;
|
||
string _selectsql;
|
||
string _Result = "";
|
||
int FailCount = 0;
|
||
List<string> _insertsql = new List<string>();
|
||
#region 稽核数据
|
||
_selectsql = "SELECT ENDACCOUNT_ID, ENDACCOUNT_STARTDATE, ENDACCOUNT_DATE, SERVERPARTCODE, SHOPCODE, MACHINECODE, " +
|
||
"ENDPERSONCODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, CASH, CREDITCARD, TICKETBILL, VIPPERSON, " +
|
||
"COSTBILL, OTHERPAY, CASHPAY, FLAG FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE = (" +
|
||
"SELECT MAX(ENDACCOUNT_DATE) FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE IS NOT NULL AND ENDACCOUNT_DATE < NOW() " +
|
||
"AND SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"' AND FLAG = 5 ) ORDER BY ENDACCOUNT_ID DESC";
|
||
using (DataTable _LocalDataTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_LocalDataTable.Rows.Count > 0)
|
||
{
|
||
#region 通过接口上传
|
||
DataSet _LocalDataSet = SplitDataTable(_LocalDataTable, 20);
|
||
//string[] str = { "ENDACCOUNT", JsonHelper.ToJson(_LocalDataTable) };
|
||
foreach (DataTable _Table in _LocalDataSet.Tables)
|
||
{
|
||
string[] str = { "ENDACCOUNT", JsonHelper.ToJson(_Table) };
|
||
try
|
||
{
|
||
//_Result = WSHelper.InvokeWebService("http://localhost:7000/PayService/Service.asmx", "LocalUpLoad", str).ToString();
|
||
_Result = WSHelper.InvokeWebService("http://" + dbip + ":" + serviceport + "/Service.asmx", "LocalUpLoad", str).ToString();
|
||
if (_Result != "1" && _Result != "9")
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
FailCount++;
|
||
LabelText("lblMessage", "稽核数据上传失败:" + ex.Message, Color.Red);
|
||
LabelText("lblAuditUpLoad", "稽核报表上传失败:" + ex.Message, Color.Black);
|
||
break;
|
||
}
|
||
}
|
||
switch (_Result)
|
||
{
|
||
case "1":
|
||
LabelText("lblAuditUpLoad", "稽核报表上传成功。", Color.Black);
|
||
Pic("picAuditUpLoad", imgSuccess);
|
||
worker.ReportProgress(10);
|
||
break;
|
||
case "9":
|
||
LabelText("lblAuditUpLoad", "稽核报表已上传。", Color.Black);
|
||
Pic("picAuditUpLoad", imgNone);
|
||
worker.ReportProgress(10);
|
||
break;
|
||
case "0":
|
||
default:
|
||
FailCount++;
|
||
LabelText("lblAuditUpLoad", "稽核报表上传失败:" + _Result, Color.Black);
|
||
Pic("picAuditUpLoad", imgFail);
|
||
worker.ReportProgress(10);
|
||
break;
|
||
}
|
||
#endregion
|
||
|
||
#region 数据库直接上传
|
||
decimal i = 0;
|
||
foreach (DataRow _row in _LocalDataTable.Rows)
|
||
{
|
||
i++;
|
||
_selectsql = "SELECT COUNT(*) FROM " + dbname + ".T_ENDACCOUNT " +
|
||
"WHERE SERVERPARTCODE = '" + _row["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" + _row["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _row["MACHINECODE"].ToString() + "' AND ENDACCOUNT_STARTDATE = TO_DATE('" +
|
||
_row["ENDACCOUNT_STARTDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND ENDACCOUNT_DATE = TO_DATE('" +
|
||
_row["ENDACCOUNT_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND FLAG = 5 ";
|
||
if (int.Parse(_OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0].Rows[0][0].ToString()) == 0)
|
||
{
|
||
string _insertstr = "INSERT INTO " + dbname + ".T_ENDACCOUNT ";
|
||
string _valuesstr = SqlValues(_LocalDataTable, _row);
|
||
string _columnsstr = SqlColumns(_LocalDataTable);
|
||
if (_valuesstr != "")
|
||
{
|
||
_insertsql.Add(_insertstr + "(" + _columnsstr + ") VALUES (" + _valuesstr + ")");
|
||
}
|
||
}
|
||
worker.ReportProgress((int)((i / Convert.ToDecimal(_LocalDataTable.Rows.Count)) * 20));
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 日结营收相关数据
|
||
//日结营收相关数据
|
||
_selectsql = "SELECT ENDACCOUNT_ID, ENDACCOUNT_STARTDATE, ENDACCOUNT_DATE, SERVERPARTCODE, SHOPCODE, MACHINECODE, " +
|
||
"ENDPERSONCODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, CASH, CREDITCARD, TICKETBILL, VIPPERSON, " +
|
||
"COSTBILL, OTHERPAY, CASHPAY, FLAG FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE = " +
|
||
"( SELECT MAX(ENDACCOUNT_DATE) FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE IS NOT NULL AND ENDACCOUNT_DATE < NOW() " +
|
||
"AND SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"' AND FLAG <> 5 ) ORDER BY ENDACCOUNT_ID DESC";
|
||
using (DataTable _LocalDataTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_LocalDataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _LocalDataSet = SplitDataTable(_LocalDataTable, 20);
|
||
#region 通过接口上传
|
||
//string[] str = { "ENDACCOUNT", JsonHelper.ToJson(_LocalDataTable) };
|
||
foreach (DataTable _Table in _LocalDataSet.Tables)
|
||
{
|
||
string[] str = { "ENDACCOUNT", JsonHelper.ToJson(_Table) };
|
||
try
|
||
{
|
||
_Result = WSHelper.InvokeWebService("http://" + dbip + ":" + serviceport + "/Service.asmx", "LocalUpLoad", str).ToString();
|
||
if (_Result != "1" && _Result != "9")
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
FailCount++;
|
||
LabelText("lblMessage", "日结报表上传失败:" + ex.Message, Color.Red);
|
||
LabelText("lblEndUpLoad", "日结报表上传失败:" + ex.Message, Color.Black);
|
||
break;
|
||
}
|
||
}
|
||
switch (_Result)
|
||
{
|
||
case "1":
|
||
LabelText("lblEndUpLoad", "日结报表上传成功。", Color.Black);
|
||
Pic("picEndUpLoad", imgSuccess);
|
||
worker.ReportProgress(20);
|
||
break;
|
||
case "9":
|
||
LabelText("lblEndUpLoad", "日结报表已上传。", Color.Black);
|
||
Pic("picEndUpLoad", imgNone);
|
||
worker.ReportProgress(20);
|
||
break;
|
||
case "0":
|
||
default:
|
||
FailCount++;
|
||
LabelText("lblEndUpLoad", "日结报表上传失败:" + _Result, Color.Black);
|
||
Pic("picEndUpLoad", imgFail);
|
||
worker.ReportProgress(20);
|
||
break;
|
||
}
|
||
#endregion
|
||
#region 数据库直接上传
|
||
int i = 0;//, ii = 0, values = 0;
|
||
foreach (DataRow _row in _LocalDataTable.Rows)
|
||
{
|
||
i++;
|
||
_selectsql = "SELECT COUNT(*) FROM " + dbname + ".T_ENDACCOUNT " +
|
||
"WHERE SERVERPARTCODE = '" + _row["SERVERPARTCODE"].ToString() + "' AND SHOPCODE = '" + _row["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _row["MACHINECODE"].ToString() + "' AND ENDACCOUNT_STARTDATE = TO_DATE('" +
|
||
_row["ENDACCOUNT_STARTDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND ENDACCOUNT_DATE = TO_DATE('" +
|
||
_row["ENDACCOUNT_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') AND FLAG <> 5 ";
|
||
if (int.Parse(_OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0].Rows[0][0].ToString()) == 0)
|
||
{
|
||
string _insertstr = "INSERT INTO " + dbname + ".T_ENDACCOUNT ";
|
||
string _valuesstr = SqlValues(_LocalDataTable, _row);
|
||
string _columnsstr = SqlColumns(_LocalDataTable);
|
||
if (_valuesstr != "")
|
||
{
|
||
_insertsql.Add(_insertstr + "(" + _columnsstr + ") VALUES (" + _valuesstr + ")");
|
||
}
|
||
}
|
||
worker.ReportProgress((int)((i * (70 / Convert.ToDecimal(_LocalDataTable.Rows.Count))) + 20));
|
||
#endregion
|
||
|
||
#region 交班报表
|
||
_selectsql = "SELECT " +
|
||
"PERSONSELL_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, STARTDATE, ENDDATE, " +
|
||
"CASHWORKER_CODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, " +
|
||
"CASH, TICKETBILL, CREDITCARD, VIPPERSON, COSTBILL, OTHERPAY, CASHPAY, ENDPERSONCODE " +
|
||
"FROM " +
|
||
"T_PERSONSELL " +
|
||
"WHERE " +
|
||
"SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" +
|
||
machinecode + "' AND STARTDATE >= DATETIME('" + _row["ENDACCOUNT_STARTDATE"].ToString() +
|
||
"') AND ENDDATE <= DATETIME('" + _row["ENDACCOUNT_DATE"].ToString() + "')";
|
||
using (DataTable _Personsell = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_Personsell.Rows.Count > 0)
|
||
{
|
||
#region 通过接口上传
|
||
//string[] strPersonsell = { "PERSONSELL", JsonHelper.ToJson(_Personsell) };
|
||
DataSet _PersonsellDataSet = SplitDataTable(_Personsell, 20);
|
||
foreach (DataTable _Table in _PersonsellDataSet.Tables)
|
||
{
|
||
string[] strPersonsell = { "PERSONSELL", JsonHelper.ToJson(_Table) };
|
||
try
|
||
{
|
||
_Result = WSHelper.InvokeWebService("http://" + dbip + ":" + serviceport + "/Service.asmx", "LocalUpLoad", strPersonsell).ToString();
|
||
if (_Result != "1" && _Result != "9")
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
FailCount++;
|
||
LabelText("lblMessage", "交班报表上传失败:" + ex.Message, Color.Red);
|
||
LabelText("lblPersonUpLoad", "交班报表上传失败:" + ex.Message, Color.Black);
|
||
break;
|
||
}
|
||
}
|
||
switch (_Result)
|
||
{
|
||
case "1":
|
||
LabelText("lblPersonUpLoad", "交班报表上传成功。", Color.Black);
|
||
Pic("picPersonUpLoad", imgSuccess);
|
||
break;
|
||
case "9":
|
||
LabelText("lblPersonUpLoad", "交班报表已上传。", Color.Black);
|
||
Pic("picPersonUpLoad", imgNone);
|
||
break;
|
||
case "0":
|
||
default:
|
||
FailCount++;
|
||
LabelText("lblPersonUpLoad", "交班报表上传失败:" + _Result, Color.Black);
|
||
Pic("picPersonUpLoad", imgFail);
|
||
break;
|
||
}
|
||
#endregion
|
||
|
||
#region 数据库直接上传
|
||
foreach (DataRow _PersonsellRow in _Personsell.Rows)
|
||
{
|
||
_selectsql = "SELECT " +
|
||
"PERSONSELL_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, STARTDATE, ENDDATE, " +
|
||
"CASHWORKER_CODE, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT, " +
|
||
"CASH, TICKETBILL, CREDITCARD, VIPPERSON, COSTBILL, OTHERPAY, CASHPAY, ENDPERSONCODE " +
|
||
"FROM " +
|
||
dbname + ".T_PERSONSELL " +
|
||
"WHERE " +
|
||
" PERSONSELL_ID = " + _PersonsellRow["PERSONSELL_ID"].ToString() +
|
||
" AND SERVERPARTCODE = '" + _PersonsellRow["SERVERPARTCODE"].ToString() + "' " +
|
||
" AND SHOPCODE = '" + _PersonsellRow["SHOPCODE"].ToString() + "' " +
|
||
" AND MACHINECODE = '" + _PersonsellRow["MACHINECODE"].ToString() + "' " +
|
||
" AND STARTDATE = TO_DATE('" + _PersonsellRow["STARTDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
|
||
int _Count = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0].Rows.Count;
|
||
if (_Count < 1)
|
||
{
|
||
string _insertstr = "INSERT INTO " + dbname + ".T_PERSONSELL ";
|
||
string _valuesstr = SqlValues(_Personsell, _PersonsellRow);
|
||
string _columnsstr = SqlColumns(_Personsell);
|
||
if (_valuesstr != "")
|
||
{
|
||
_insertsql.Add(_insertstr + "(" + _columnsstr + ") VALUES (" + _valuesstr + ")");
|
||
}
|
||
}
|
||
else if (_Count == 1)
|
||
{
|
||
string _updatesql = "UPDATE " + dbname + ".T_PERSONSELL " +
|
||
"SET ENDDATE = TO_DATE('" + _PersonsellRow["ENDDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," +
|
||
"CASHWORKER_CODE = '" + _PersonsellRow["CASHWORKER_CODE"].ToString() + "'," +
|
||
"TICKETCOUNT = " + _PersonsellRow["TICKETCOUNT"].ToString() + "," +
|
||
"TOTALCOUNT = " + _PersonsellRow["TOTALCOUNT"].ToString() + "," +
|
||
"TOTALSELLAMOUNT = " + _PersonsellRow["TOTALSELLAMOUNT"].ToString() + "," +
|
||
"TOTALOFFAMOUNT = " + _PersonsellRow["TOTALOFFAMOUNT"].ToString() + "," +
|
||
"CASH = " + _PersonsellRow["CASH"].ToString() + "," +
|
||
"TICKETBILL = " + _PersonsellRow["TICKETBILL"].ToString() + "," +
|
||
"CREDITCARD = " + _PersonsellRow["CREDITCARD"].ToString() + "," +
|
||
"VIPPERSON = " + _PersonsellRow["VIPPERSON"].ToString() + "," +
|
||
"COSTBILL = " + _PersonsellRow["COSTBILL"].ToString() + "," +
|
||
"OTHERPAY = " + _PersonsellRow["OTHERPAY"].ToString() + "," +
|
||
"CASHPAY = " + _PersonsellRow["CASHPAY"].ToString() + "," +
|
||
"ENDPERSONCODE = '" + _PersonsellRow["ENDPERSONCODE"].ToString() + "' " +
|
||
"WHERE " +
|
||
" PERSONSELL_ID = " + _PersonsellRow["PERSONSELL_ID"].ToString() +
|
||
" AND SERVERPARTCODE = '" + _PersonsellRow["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _PersonsellRow["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _PersonsellRow["MACHINECODE"].ToString() +
|
||
"' AND STARTDATE = TO_DATE('" + _PersonsellRow["STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') ";
|
||
_insertsql.Add(_updatesql);
|
||
}
|
||
else
|
||
{
|
||
_insertsql.Add("DELETE FROM " + dbname + ".T_PERSONSELL WHERE " +
|
||
"PERSONSELL_ID = " + _PersonsellRow["PERSONSELL_ID"].ToString() +
|
||
" AND SERVERPARTCODE = '" + _PersonsellRow["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _PersonsellRow["SHOPCODE"].ToString() +
|
||
"' AND MACHINECODE = '" + _PersonsellRow["MACHINECODE"].ToString() +
|
||
"' AND STARTDATE = TO_DATE('" + _PersonsellRow["STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') ");
|
||
string _insertstr = "INSERT INTO " + dbname + ".T_PERSONSELL ";
|
||
string _valuesstr = SqlValues(_Personsell, _PersonsellRow);
|
||
string _columnsstr = SqlColumns(_Personsell);
|
||
if (_valuesstr != "")
|
||
{
|
||
_insertsql.Add(_insertstr + "(" + _columnsstr + ") VALUES (" + _valuesstr + ")");
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 单品报表
|
||
_selectsql = "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 FROM T_TRANSFER_SALE " +
|
||
" WHERE SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND STARTDATE >= DATETIME('" +
|
||
_row["ENDACCOUNT_STARTDATE"].ToString() + "') AND ENDDATE <= DATETIME('" + _row["ENDACCOUNT_DATE"].ToString() + "')";
|
||
using (DataTable _TransferSale = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_TransferSale.Rows.Count > 0)
|
||
{
|
||
#region 通过接口上传
|
||
//string[] strTransferSale = { "TRANSFER_SALE", JsonHelper.ToJson(_TransferSale) };
|
||
DataSet _TransferSaleDataSet = SplitDataTable(_TransferSale, 20);
|
||
foreach (DataTable _Table in _TransferSaleDataSet.Tables)
|
||
{
|
||
string[] strTransferSale = { "TRANSFER_SALE", JsonHelper.ToJson(_Table) };
|
||
try
|
||
{
|
||
_Result = WSHelper.InvokeWebService("http://" + dbip + ":" + serviceport + "/Service.asmx", "LocalUpLoad", strTransferSale).ToString();
|
||
if (_Result != "1" && _Result != "9")
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
FailCount++;
|
||
LabelText("lblMessage", "单品数据上传失败:" + ex.Message, Color.Red);
|
||
LabelText("lblSaleUpLoad", "单品报表上传失败:" + ex.Message, Color.Black);
|
||
break;
|
||
}
|
||
}
|
||
switch (_Result)
|
||
{
|
||
case "1":
|
||
LabelText("lblSaleUpLoad", "单品报表上传成功。", Color.Black);
|
||
Pic("picSaleUpLoad", imgSuccess);
|
||
break;
|
||
case "9":
|
||
LabelText("lblSaleUpLoad", "单品报表已上传。", Color.Black);
|
||
Pic("picSaleUpLoad", imgNone);
|
||
break;
|
||
case "0":
|
||
default:
|
||
FailCount++;
|
||
LabelText("lblSaleUpLoad", "单品报表上传失败:" + _Result, Color.Black);
|
||
Pic("picSaleUpLoad", imgFail);
|
||
break;
|
||
}
|
||
#endregion
|
||
|
||
#region 数据库直接上传
|
||
foreach (DataRow _TransferSaleRow in _TransferSale.Rows)
|
||
{
|
||
_selectsql = "SELECT COUNT(*) FROM " + dbname + ".T_TRANSFER_SALE WHERE SERVERPARTCODE = '" + _TransferSaleRow["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _TransferSaleRow["SHOPCODE"].ToString() + "' AND STARTDATE = TO_DATE('" + _TransferSaleRow["STARTDATE"].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS') AND ENDDATE = TO_DATE('" + _TransferSaleRow["ENDDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') " +
|
||
" AND TRANSFER_FIRSTDATAS = '" + _TransferSaleRow["TRANSFER_FIRSTDATAS"].ToString() + "'";
|
||
if (int.Parse(_OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0].Rows[0][0].ToString()) == 0)
|
||
{
|
||
string _insertstr = "INSERT INTO " + dbname + ".T_TRANSFER_SALE ";
|
||
string _valuesstr = SqlValues(_TransferSale, _TransferSaleRow);
|
||
string _columnsstr = SqlColumns(_TransferSale);
|
||
if (_valuesstr != "")
|
||
{
|
||
_insertsql.Add(_insertstr + "(" + _columnsstr + ") VALUES (" + _valuesstr + ")");
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 移动支付
|
||
_selectsql = "SELECT " +
|
||
"MOBILE_PAY_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, WORKERCODE, MOBILEPAY_DATE, " +
|
||
"MOBILEPAY_TYPE, TICKET_CODE, TICKET_AMOUNT, MOBILEPAY_RESULT, MOBILEPAY_FEEDBACK " +
|
||
"FROM " +
|
||
"T_MOBILE_PAY " +
|
||
" WHERE " +
|
||
"SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode +
|
||
"' AND MACHINECODE = '" + machinecode + "' AND MOBILEPAY_DATE BETWEEN DATETIME('" +
|
||
_row["ENDACCOUNT_STARTDATE"].ToString() + "') AND DATETIME('" + _row["ENDACCOUNT_DATE"].ToString() + "')";
|
||
using (DataTable _MobilePay = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_MobilePay.Rows.Count > 0)
|
||
{
|
||
#region 通过接口上传
|
||
//string[] strMobilePay = { "MOBILE_PAY", JsonHelper.ToJson(_MobilePay) };
|
||
DataSet _MobilePayDataSet = SplitDataTable(_MobilePay, 20);
|
||
foreach (DataTable _Table in _MobilePayDataSet.Tables)
|
||
{
|
||
string[] strMobilePay = { "MOBILE_PAY", JsonHelper.ToJson(_Table) };
|
||
try
|
||
{
|
||
_Result = WSHelper.InvokeWebService("http://" + dbip + ":" + serviceport + "/Service.asmx", "LocalUpLoad", strMobilePay).ToString();
|
||
if (_Result != "1" && _Result != "9")
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
FailCount++;
|
||
LabelText("lblMessage", "移动支付上传失败:" + ex.Message, Color.Red);
|
||
LabelText("lblMobeilUpLoad", "移动支付上传失败:" + ex.Message, Color.Black);
|
||
}
|
||
}
|
||
switch (_Result)
|
||
{
|
||
case "1":
|
||
LabelText("lblMobeilUpLoad", "移动支付上传成功。", Color.Black);
|
||
Pic("picMobeilUpLoad", imgSuccess);
|
||
break;
|
||
case "9":
|
||
LabelText("lblMobeilUpLoad", "移动支付已上传。", Color.Black);
|
||
Pic("picMobeilUpLoad", imgNone);
|
||
break;
|
||
case "0":
|
||
default:
|
||
LabelText("lblMobeilUpLoad", "移动支付上传失败:" + _Result, Color.Black);
|
||
Pic("picMobeilUpLoad", imgFail);
|
||
break;
|
||
}
|
||
#endregion
|
||
|
||
#region 数据库上传
|
||
foreach (DataRow _MobilePayRow in _MobilePay.Rows)
|
||
{
|
||
_selectsql = "SELECT COUNT(*) FROM " + dbname + ".T_MOBILE_PAY WHERE SERVERPARTCODE = '" + _MobilePayRow["SERVERPARTCODE"].ToString() +
|
||
"' AND SHOPCODE = '" + _MobilePayRow["SHOPCODE"].ToString() + "' AND MACHINECODE = '" + _MobilePayRow["MACHINECODE"].ToString() +
|
||
"' AND MOBILEPAY_DATE = TO_DATE('" + _MobilePayRow["MOBILEPAY_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS') " +
|
||
" AND TICKET_CODE = '" + _MobilePayRow["TICKET_CODE"].ToString() + "'";
|
||
if (int.Parse(_OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0].Rows[0][0].ToString()) == 0)
|
||
{
|
||
string _insertstr = "INSERT INTO " + dbname + ".T_MOBILE_PAY ";
|
||
string _valuesstr = SqlValues(_MobilePay, _MobilePayRow);
|
||
string _columnsstr = SqlColumns(_MobilePay);
|
||
if (_valuesstr != "")
|
||
{
|
||
_insertsql.Add(_insertstr + "(" + _columnsstr + ") VALUES (" + _valuesstr + ")");
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
//worker.ReportProgress((int)((Convert.ToDecimal(_insertsql.Count) / Convert.ToDecimal(_LocalDataTable.Rows.Count)) * 100));
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
if (_insertsql.Count > 0)
|
||
{
|
||
worker.ReportProgress(95);
|
||
//注释后不使用数据库上传功能
|
||
//_OracleHelper.ExecuteSqlTran(_insertsql);
|
||
}
|
||
if (FailCount == 0)
|
||
worker.ReportProgress(100);
|
||
if (bgWorkerOneClickUpload.CancellationPending == true)
|
||
{
|
||
args.Cancel = true;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region DataTable相关
|
||
/// <summary>
|
||
/// 分解数据表
|
||
/// </summary>
|
||
/// <param name="originalTab">需要分解的表</param>
|
||
/// <param name="rowsNum">每个表包含的数据量</param>
|
||
/// <returns></returns>
|
||
public 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 (tableNum == 0)
|
||
{
|
||
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] = new DataTable();
|
||
foreach (DataColumn dc in originalTab.Columns)
|
||
{
|
||
tableSlice[c].Columns.Add(dc.ColumnName, dc.DataType);
|
||
}
|
||
}
|
||
//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++)
|
||
{
|
||
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;
|
||
}
|
||
/// <summary>
|
||
/// 获取列名
|
||
/// </summary>
|
||
/// <param name="Table"></param>
|
||
/// <returns></returns>
|
||
private string SqlColumns(DataTable Table)
|
||
{
|
||
string _Columnsstr = "";
|
||
foreach (DataColumn col in Table.Columns)
|
||
{
|
||
_Columnsstr += (_Columnsstr == "" ? col.ColumnName : "," + col.ColumnName);
|
||
}
|
||
return _Columnsstr;
|
||
}
|
||
/// <summary>
|
||
/// 获取行值
|
||
/// </summary>
|
||
/// <param name="Table"></param>
|
||
/// <param name="Row"></param>
|
||
/// <returns></returns>
|
||
private string SqlValues(DataTable Table, DataRow Row)
|
||
{
|
||
string _valuesstr = "";
|
||
for (int i = 0; i < Table.Columns.Count; i++)
|
||
{
|
||
if (Table.Columns[i].DataType.ToString() == "System.Decimal")
|
||
{
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : Row[i].ToString()) : "," + (Row[i].ToString() == "" ? "NULL" : Row[i].ToString());
|
||
}
|
||
else if (Table.Columns[i].DataType.ToString() == "System.DateTime")
|
||
{
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" + Row[i].ToString() +
|
||
"','YYYY/MM/DD HH24:MI:SS')") : "," + (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" + Row[i].ToString() + "','YYYY/MM/DD HH24:MI:SS')");
|
||
}
|
||
else
|
||
{
|
||
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString()) + "'" : "," + (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString() + "'");
|
||
}
|
||
}
|
||
return _valuesstr;
|
||
}
|
||
/// <summary>
|
||
/// 转换DataTable字段类型
|
||
/// </summary>
|
||
/// <param name="table"></param>
|
||
/// <returns></returns>
|
||
public static DataTable ConvertOraclTableToDoNetTable(DataTable table)
|
||
{
|
||
DataTable dt = new DataTable();
|
||
foreach (DataColumn dc in table.Columns)
|
||
{
|
||
DataColumn column = new DataColumn();
|
||
column.DataType = GetDataType(dc.DataType);
|
||
column.ColumnName = dc.ColumnName;
|
||
column.Caption = dc.Caption;
|
||
dt.Columns.Add(column);
|
||
}
|
||
dt.TableName = table.TableName;
|
||
dt.Merge(table, false, MissingSchemaAction.Ignore);
|
||
return dt;
|
||
}
|
||
/// <summary>
|
||
/// 字段类型
|
||
/// </summary>
|
||
/// <param name="dataType"></param>
|
||
/// <returns></returns>
|
||
public static Type GetDataType(Type dataType)
|
||
{
|
||
switch (dataType.ToString())
|
||
{
|
||
case "System.Double":
|
||
return System.Type.GetType("System.Decimal");
|
||
case "System.Int32":
|
||
return System.Type.GetType("System.Decimal");
|
||
case "System.Int16":
|
||
return System.Type.GetType("System.Decimal");
|
||
case "System.Int64":
|
||
return System.Type.GetType("System.Decimal");
|
||
default:
|
||
return dataType;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
private void NetWorkState_Tick(object sender, EventArgs e)
|
||
{
|
||
lblspname.Text = serverpartname;
|
||
lblshopname.Text = shopname;
|
||
lbllocalname.Text = machinename;
|
||
lblmachinecode.Text = machinecode;
|
||
lbllocalIP.Text = ComputerInfoHelper.GetAddressIP();
|
||
lblMACAdd.Text = macaddress;
|
||
lblserverIP.Text = dbip;
|
||
//if (Handle != GetForegroundWindow()) //持续使该窗体置为最前,屏蔽该行则单次置顶
|
||
//{
|
||
// SetForegroundWindow(Handle);
|
||
//}
|
||
//lblSubstitution.Text = "";
|
||
if (!bgWorker.IsBusy)
|
||
bgWorker.RunWorkerAsync();
|
||
//if (!bgWorkerOneClickUpload.IsBusy)
|
||
// bgWorkerOneClickUpload.RunWorkerAsync();
|
||
}
|
||
|
||
#region 网络检测
|
||
/// <summary>
|
||
/// 网络检测
|
||
/// </summary>
|
||
private void NetWorkState()
|
||
{
|
||
//构造Ping实例
|
||
Ping pingSender = new Ping();
|
||
//Ping 选项设置
|
||
PingOptions options = new PingOptions();
|
||
options.DontFragment = true;
|
||
//测试数据
|
||
string data = "";
|
||
byte[] buffer = Encoding.ASCII.GetBytes(data);
|
||
//设置超时时间
|
||
int timeout = 120;
|
||
//调用同步 send 方法发送数据,将返回结果保存至PingReply实例
|
||
try
|
||
{
|
||
_testcount++;
|
||
PingReply reply = pingSender.Send(dbip, timeout, buffer, options);
|
||
if (reply.Status == IPStatus.Success)
|
||
{
|
||
LabelText("lbllatency", reply.RoundtripTime.ToString() + "ms", Color.Gray);
|
||
if (!_SetUpload)
|
||
_SetUpload = true;
|
||
//if (_SetUpload && !_UploadState && !_Upload && _OracleState)
|
||
// LabelText("lblMessage", "按【F12】开始上传收银机营收数据", Color.Black);
|
||
if (reply.RoundtripTime < 10)
|
||
{
|
||
LabelText("lblState", "(畅通)", Color.FromArgb(60, 179, 113));
|
||
}
|
||
else if (reply.RoundtripTime < 30 && reply.RoundtripTime >= 10)
|
||
{
|
||
LabelText("lblState", "(良好)", Color.FromArgb(0, 255, 255));
|
||
}
|
||
else if (reply.RoundtripTime < 50 && reply.RoundtripTime >= 30)
|
||
{
|
||
LabelText("lblState", "(普通)", Color.FromArgb(252, 110, 75));
|
||
}
|
||
else
|
||
{
|
||
LabelText("lblState", "(拥堵)", Color.Red);
|
||
}
|
||
if (DateTime.Now.Second % 2 == 0)
|
||
{
|
||
if (!bgWorkerEndaccount.IsBusy)
|
||
bgWorkerEndaccount.RunWorkerAsync();
|
||
if (!bgWorkerPersonsell.IsBusy)
|
||
bgWorkerPersonsell.RunWorkerAsync();
|
||
if (!bgWorkerMobeilPay.IsBusy)
|
||
bgWorkerMobeilPay.RunWorkerAsync();
|
||
}
|
||
if (DateTime.Now.Second % 5 == 0)
|
||
{
|
||
string _Result = "0";
|
||
string[] str = { hostip };
|
||
try
|
||
{
|
||
//_Result = WSHelper.InvokeWebService("http://localhost:7080/EShangTechService/Service.asmx", "HostNetConnect", str).ToString();
|
||
_Result = WSHelper.InvokeWebService("http://" + dbip + ":" + serviceport + "/Service.asmx", "HostNetConnect", str).ToString();
|
||
LabelText("lblHQNetlatency", _Result + "ms", Color.Gray);
|
||
if (decimal.Parse(_Result) < 10)
|
||
{
|
||
LabelText("lblHQNetState", "(畅通)", Color.FromArgb(60, 179, 113));
|
||
}
|
||
else if (decimal.Parse(_Result) < 30 && decimal.Parse(_Result) >= 10)
|
||
{
|
||
LabelText("lblHQNetState", "(良好)", Color.FromArgb(0, 255, 255));
|
||
}
|
||
else if (decimal.Parse(_Result) < 50 && decimal.Parse(_Result) >= 30)
|
||
{
|
||
LabelText("lblHQNetState", "(普通)", Color.FromArgb(252, 110, 75));
|
||
}
|
||
else
|
||
{
|
||
LabelText("lblHQNetState", "(拥堵)", Color.Red);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
else if (reply.Status == IPStatus.TimedOut)
|
||
{
|
||
_timeout++;
|
||
LabelText("lbllatency", "网络超时", Color.Gray);
|
||
LabelText("lblState", "(超时)", Color.Red);
|
||
if (_SetUpload)
|
||
_SetUpload = false;
|
||
}
|
||
else
|
||
{
|
||
_timeout++;
|
||
LabelText("lbllatency", "网络中断", Color.Gray);
|
||
LabelText("lblState", "(断网)", Color.FromArgb(128, 0, 255));
|
||
if (_SetUpload)
|
||
_SetUpload = false;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_timeout++;
|
||
if (_SetUpload)
|
||
_SetUpload = false;
|
||
LabelText("lbllatency", "网络中断", Color.Gray);
|
||
LabelText("lblState", "(断网)", Color.FromArgb(128, 0, 255));
|
||
bgWorkerEndaccount.CancelAsync();
|
||
bgWorkerMobeilPay.CancelAsync();
|
||
bgWorkerPersonsell.CancelAsync();
|
||
Pic("piclocalSale", null);
|
||
Pic("piclocalMobeil", null);
|
||
Pic("piclocalPerson", null);
|
||
Pic("piclocalAudit", null);
|
||
Pic("piclocalEnd", null);
|
||
Pic("picserverMobeil", null);
|
||
Pic("picserverAudit", null);
|
||
Pic("picserverPerson", null);
|
||
Pic("picserverSale", null);
|
||
Pic("picserverEnd", null);
|
||
}
|
||
LabelText("lblSubstitution", (_timeout / _testcount * 100).ToString("F2") + "%", Color.Gray);
|
||
}
|
||
#endregion
|
||
|
||
#region 日结及稽核信息上传状态
|
||
/// <summary>
|
||
/// 检测日结及稽核信息上传状态
|
||
/// </summary>
|
||
/// <param name="Symbol">是否稽核数据</param>
|
||
private void EndaccountUpload(Boolean Symbol)
|
||
{
|
||
string _selectsql;
|
||
DateTime? _endaccount_startdate = null;
|
||
DateTime? _endaccount_date = null;
|
||
_selectsql = "SELECT ENDACCOUNT_STARTDATE,ENDACCOUNT_DATE FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE = (" +
|
||
"SELECT MAX(ENDACCOUNT_DATE) FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE IS NOT NULL AND ENDACCOUNT_DATE < NOW() AND SERVERPARTCODE = '" +
|
||
serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode + "' AND FLAG " + (Symbol ? "=" : "<>") + " 5 ) ORDER BY ENDACCOUNT_ID DESC";
|
||
try
|
||
{
|
||
using (DataTable _DataTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
if (Symbol)
|
||
{
|
||
Pic("piclocalAuditData", imgSuccess);
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalEndData", imgSuccess);
|
||
}
|
||
try
|
||
{
|
||
_endaccount_startdate = Convert.ToDateTime(_DataTable.Rows[0]["ENDACCOUNT_STARTDATE"]);
|
||
_endaccount_date = Convert.ToDateTime(_DataTable.Rows[0]["ENDACCOUNT_DATE"]);
|
||
}
|
||
catch
|
||
{
|
||
_endaccount_startdate = null;
|
||
_endaccount_date = null;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (Symbol)
|
||
{
|
||
Pic("piclocalAuditData", imgNone);
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalEndData", imgNone);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
if (Symbol)
|
||
{
|
||
Pic("piclocalAuditData", imgFail);
|
||
LabelText("lblMessage", "稽核数据读取失败:" + ex.Message, Color.Red);
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalEndData", imgFail);
|
||
LabelText("lblMessage", "日结数据读取失败:" + ex.Message, Color.Red);
|
||
}
|
||
}
|
||
if (!Symbol)
|
||
{
|
||
//lbldate.Text = _endaccount_date.ToString();
|
||
LabelText("lbldate", _endaccount_date.ToString(), Color.Gray);
|
||
}
|
||
if (_endaccount_date != null)
|
||
{
|
||
_selectsql = "SELECT NVL(TRANSFER_STATE,0) AS TRANSFER_STATE FROM " + dbname + ".T_ENDACCOUNT " +
|
||
"WHERE SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode +
|
||
"' AND MACHINECODE = '" + machinecode + "' AND ENDACCOUNT_STARTDATE = TO_DATE('" +
|
||
_endaccount_startdate + "','YYYY/MM/DD HH24:MI:SS') AND ENDACCOUNT_DATE = TO_DATE('" +
|
||
_endaccount_date + "','YYYY/MM/DD HH24:MI:SS') AND FLAG " + (Symbol ? "=" : "<>") + " 5 ";
|
||
try
|
||
{
|
||
using (DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
if (Symbol)
|
||
{
|
||
//piclocalAudit.Image = imgSuccess;
|
||
Pic("piclocalAudit", imgSuccess);
|
||
}
|
||
else
|
||
{
|
||
//piclocalEnd.Image = imgSuccess;
|
||
Pic("piclocalEnd", imgSuccess);
|
||
}
|
||
if (int.Parse(_DataTable.Rows[0]["TRANSFER_STATE"].ToString()) == 9)
|
||
{
|
||
if (Symbol)
|
||
{
|
||
//picserverAudit.Image = imgSuccess;
|
||
Pic("picserverAudit", imgSuccess);
|
||
}
|
||
else
|
||
{
|
||
//picserverEnd.Image = imgSuccess;
|
||
Pic("picserverEnd", imgSuccess);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (Symbol)
|
||
{
|
||
//picserverAudit.Image = imgFail;
|
||
Pic("picserverAudit", imgFail);
|
||
}
|
||
else
|
||
{
|
||
//picserverEnd.Image = imgFail;
|
||
Pic("picserverEnd", imgFail);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (Symbol)
|
||
{
|
||
//piclocalAudit.Image = imgFail;
|
||
Pic("piclocalAudit", imgFail);
|
||
//picserverAudit.Image = imgFail;
|
||
Pic("picserverAudit", imgFail);
|
||
if (_UploadState)
|
||
_UploadState = false;
|
||
}
|
||
else
|
||
{
|
||
//piclocalEnd.Image = imgFail;
|
||
Pic("piclocalEnd", imgFail);
|
||
//picserverEnd.Image = imgFail;
|
||
Pic("picserverEnd", imgFail);
|
||
if (_UploadState)
|
||
_UploadState = false;
|
||
}
|
||
}
|
||
}
|
||
if (!_OracleState)
|
||
{
|
||
_OracleState = true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LabelText("lblMessage", (Symbol ? "稽核报表" : "日结报表") + "本地上传检测失败:" + ex.Message, Color.Red);
|
||
//LogHelper.WriteServiceLog(_selectsql);
|
||
if (Symbol)
|
||
{
|
||
Pic("piclocalAudit", imgNone);
|
||
Pic("picserverAudit", imgNone);
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalEnd", imgNone);
|
||
Pic("picserverEnd", imgNone);
|
||
}
|
||
if (_OracleState)
|
||
_OracleState = false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (Symbol)
|
||
{
|
||
//piclocalAudit.Image = null;
|
||
Pic("piclocalAudit", imgNone);
|
||
//picserverAudit.Image = null;
|
||
Pic("picserverAudit", imgNone);
|
||
}
|
||
else
|
||
{
|
||
//piclocalEnd.Image = null;
|
||
Pic("piclocalEnd", imgNone);
|
||
//picserverEnd.Image = null;
|
||
Pic("picserverEnd", imgNone);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 交班及单品上传状态
|
||
/// <summary>
|
||
/// 检测交班及单品上传状态
|
||
/// </summary>
|
||
private void PersonsellUpload()
|
||
{
|
||
string _selectsql;
|
||
DateTime? _startdate = null;
|
||
DateTime? _enddate = null;
|
||
|
||
_selectsql = "SELECT STARTDATE,ENDDATE FROM T_PERSONSELL WHERE SERVERPARTCODE = '" + serverpartcode +
|
||
"' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode + "' AND ENDDATE = ( " +
|
||
"SELECT MAX(ENDDATE) FROM T_PERSONSELL WHERE SERVERPARTCODE = '" + serverpartcode +
|
||
"' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"' AND ENDDATE < NOW() AND ENDDATE IS NOT NULL)";
|
||
try
|
||
{
|
||
using (DataTable _DataTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
Pic("piclocalPersonData", imgSuccess);
|
||
try
|
||
{
|
||
_startdate = Convert.ToDateTime(_DataTable.Rows[0]["STARTDATE"]);
|
||
_enddate = Convert.ToDateTime(_DataTable.Rows[0]["ENDDATE"]);
|
||
}
|
||
catch
|
||
{
|
||
_startdate = null;
|
||
_enddate = null;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalPersonData", imgNone);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Pic("piclocalPersonData", imgFail);
|
||
LabelText("lblMessage", "交班数据读取失败:" + ex.Message, Color.Red);
|
||
}
|
||
if (_enddate != null)
|
||
{
|
||
#region 交班数据上传检测
|
||
_selectsql = "SELECT STARTDATE,ENDDATE,NVL(TRANSFER_STATE,0) AS TRANSFER_STATE FROM " + dbname + ".T_PERSONSELL WHERE SERVERPARTCODE = '" + serverpartcode +
|
||
"' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode + "' AND STARTDATE = TO_DATE('" +
|
||
_startdate + "','YYYY/MM/DD HH24:MI:SS') AND ENDDATE = TO_DATE('" + _enddate + "','YYYY/MM/DD HH24:MI:SS')";
|
||
try
|
||
{
|
||
using (DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
Pic("piclocalPerson", imgSuccess);
|
||
if (int.Parse(_DataTable.Rows[0]["TRANSFER_STATE"].ToString()) == 9)
|
||
{
|
||
Pic("picserverPerson", imgSuccess);
|
||
}
|
||
else
|
||
{
|
||
Pic("picserverPerson", imgFail);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalPerson", imgFail);
|
||
Pic("picserverPerson", imgFail);
|
||
if (_UploadState)
|
||
_UploadState = false;
|
||
}
|
||
}
|
||
if (!_OracleState)
|
||
{
|
||
_OracleState = true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LabelText("lblMessage", "交班报表本地上传检测失败:" + ex.Message, Color.Red);
|
||
Pic("piclocalPerson", imgNone);
|
||
Pic("picserverPerson", imgNone);
|
||
if (_OracleState)
|
||
_OracleState = false;
|
||
}
|
||
#endregion
|
||
#region 单品数据上传状态
|
||
_selectsql = "SELECT TRANSFER_ID,STARTDATE,ENDDATE FROM T_TRANSFER_SALE WHERE SERVERPARTCODE = '" + serverpartcode +
|
||
"' AND SHOPCODE = '" + shopcode + "' AND STARTDATE = DATETIME('" + _startdate + "') AND ENDDATE = DATETIME('" + _enddate + "')";
|
||
try
|
||
{
|
||
using (DataTable _DataTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
Pic("piclocalSaleData", imgSuccess);
|
||
string _TRANSFER_ID = "";
|
||
foreach (DataRow _Row in _DataTable.Rows)
|
||
{
|
||
_TRANSFER_ID += _TRANSFER_ID == "" ? _Row["TRANSFER_ID"].ToString() : "," + _Row["TRANSFER_ID"].ToString();
|
||
}
|
||
_selectsql = "SELECT TRANSFER_ID,STARTDATE,ENDDATE,NVL(TRANSFER_STATE,0) AS TRANSFER_STATE FROM " + dbname + ".T_TRANSFER_SALE WHERE SERVERPARTCODE = '" +
|
||
serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND STARTDATE = TO_DATE('" + _startdate +
|
||
"','YYYY/MM/DD HH24:MI:SS') " + " AND ENDDATE = TO_DATE('" + _enddate + "','YYYY/MM/DD HH24:MI:SS') " +
|
||
" AND TRANSFER_ID IN (" + _TRANSFER_ID + ")";
|
||
try
|
||
{
|
||
using (DataTable _ServerDataTable = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_ServerDataTable.Rows.Count > 0)
|
||
{
|
||
if (_ServerDataTable.Rows.Count >= _DataTable.Rows.Count)
|
||
{
|
||
Pic("piclocalSale", imgSuccess);
|
||
for (int i = 0; i < _ServerDataTable.Rows.Count; i++)
|
||
{
|
||
if (int.Parse(_ServerDataTable.Rows[i]["TRANSFER_STATE"].ToString()) != 9)
|
||
{
|
||
Pic("picserverSale", imgFail);
|
||
break;
|
||
}
|
||
if (i + 1 == _ServerDataTable.Rows.Count)
|
||
{
|
||
Pic("picserverSale", imgSuccess);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalSale", imgFail);
|
||
Pic("picserverSale", imgFail);
|
||
if (_UploadState)
|
||
_UploadState = false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalSale", imgFail);
|
||
Pic("picserverSale", imgFail);
|
||
if (_UploadState)
|
||
_UploadState = false;
|
||
}
|
||
}
|
||
if (!_OracleState)
|
||
{
|
||
_OracleState = true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LabelText("lblMessage", "单品报表本地上传检测失败:" + ex.Message, Color.Red);
|
||
Pic("piclocalSale", imgNone);
|
||
Pic("picserverSale", imgNone);
|
||
if (_OracleState)
|
||
_OracleState = false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalSaleData", imgNone);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Pic("piclocalSaleData", imgFail);
|
||
LabelText("lblMessage", "单品数据读取失败:" + ex.Message, Color.Red);
|
||
}
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
//piclocalPerson.Image = null;
|
||
//piclocalSale.Image = null;
|
||
Pic("piclocalPerson", imgNone);
|
||
Pic("picserverPerson", imgNone);
|
||
Pic("piclocalSale", imgNone);
|
||
Pic("picserverSale", imgNone);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 移动支付上传状态
|
||
private void MobeilPayUpload()
|
||
{
|
||
string _selectsql;
|
||
DateTime? _startdate = null;
|
||
DateTime? _enddate = null;
|
||
_selectsql = "SELECT STARTDATE,ENDDATE FROM T_PERSONSELL WHERE SERVERPARTCODE = '" + serverpartcode +
|
||
"' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode + "' AND ENDDATE = ( " +
|
||
"SELECT MAX(ENDDATE) FROM T_PERSONSELL WHERE SERVERPARTCODE = '" + serverpartcode +
|
||
"' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"' AND ENDDATE < NOW() AND ENDDATE IS NOT NULL)";
|
||
try
|
||
{
|
||
using (DataTable _DataTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0])
|
||
{
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
_startdate = DateTime.Parse(_DataTable.Rows[0]["STARTDATE"].ToString());
|
||
_enddate = DateTime.Parse(_DataTable.Rows[0]["ENDDATE"].ToString());
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
_startdate = null;
|
||
_enddate = null;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_startdate = null;
|
||
_enddate = null;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Pic("piclocalMobeilData", imgFail);
|
||
lbltext("lblMessage", "移动支付数据读取失败:" + ex.Message, Color.Red);
|
||
}
|
||
if (_enddate != null)
|
||
{
|
||
_selectsql = "SELECT MOBILE_PAY_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, WORKERCODE, MOBILEPAY_DATE, " +
|
||
"MOBILEPAY_TYPE, TICKET_CODE,TICKET_AMOUNT, MOBILEPAY_RESULT, MOBILEPAY_FEEDBACK FROM T_MOBILE_PAY" +
|
||
" WHERE SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"'AND MOBILEPAY_DATE BETWEEN DATETIME('" + _startdate + "') AND DATETIME('" + _enddate + "')";
|
||
DataTable localMobeilPayTable = DBHelper.ExecuteDataSet(_selectsql).Tables[0];
|
||
if (localMobeilPayTable.Rows.Count > 0)
|
||
{
|
||
Pic("piclocalMobeilData", imgSuccess);
|
||
_selectsql = "SELECT MOBILE_PAY_ID, SERVERPARTCODE, SHOPCODE, MACHINECODE, WORKERCODE, MOBILEPAY_DATE, " +
|
||
"MOBILEPAY_TYPE, TICKET_CODE, TICKET_AMOUNT, MOBILEPAY_RESULT, MOBILEPAY_FEEDBACK FROM " + dbname + ".T_MOBILE_PAY" +
|
||
" WHERE SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"'AND MOBILEPAY_DATE BETWEEN TO_DATE('" + _startdate + "','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('" + _enddate + "','YYYY/MM/DD HH24:MI:SS')";
|
||
try
|
||
{
|
||
DataTable serverMobeilPayTable = ConvertOraclTableToDoNetTable(_OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0]);
|
||
var _query = localMobeilPayTable.AsEnumerable().Except(serverMobeilPayTable.AsEnumerable(), DataRowComparer.Default);
|
||
if (_query.Count() > 0)
|
||
{
|
||
//piclocalMobeil.Image = imgFail;
|
||
//picserverMobeil.Image = imgFail;
|
||
Pic("piclocalMobeil", imgFail);
|
||
Pic("picserverMobeil", imgFail);
|
||
if (_UploadState)
|
||
_UploadState = false;
|
||
}
|
||
else
|
||
{
|
||
//piclocalMobeil.Image = imgSuccess;
|
||
Pic("piclocalMobeil", imgSuccess);
|
||
_selectsql = "SELECT MOBILE_PAY_ID,NVL(MOBILEPAY_STATE,0) AS MOBILEPAY_STATE FROM " + dbname + ".T_MOBILE_PAY" +
|
||
" WHERE SERVERPARTCODE = '" + serverpartcode + "' AND SHOPCODE = '" + shopcode + "' AND MACHINECODE = '" + machinecode +
|
||
"'AND MOBILEPAY_DATE BETWEEN TO_DATE('" + _startdate + "','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('" + _enddate + "','YYYY/MM/DD HH24:MI:SS')";
|
||
using (DataTable _TempDataTable = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0])
|
||
{
|
||
for (int i = 0; i < _TempDataTable.Rows.Count; i++)
|
||
{
|
||
if (int.Parse(_TempDataTable.Rows[0]["MOBILEPAY_STATE"].ToString()) != 9)
|
||
{
|
||
//picserverMobeil.Image = imgFail;
|
||
Pic("picserverMobeil", imgFail);
|
||
break;
|
||
}
|
||
if (i + 1 == _TempDataTable.Rows.Count)
|
||
{
|
||
//picserverMobeil.Image = imgSuccess;
|
||
Pic("picserverMobeil", imgSuccess);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (!_OracleState)
|
||
{
|
||
_OracleState = true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LabelText("lblMessage", "移动支付本地上传检测失败:" + ex.Message, Color.Red);
|
||
Pic("piclocalMobeil", imgNone);
|
||
Pic("picserverMobeil", imgNone);
|
||
if (_OracleState)
|
||
_OracleState = false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalMobeilData", imgNone);
|
||
Pic("piclocalMobeil", imgNone);
|
||
Pic("picserverMobeil", imgNone);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Pic("piclocalMobeilData", imgNone);
|
||
Pic("piclocalMobeil", imgNone);
|
||
Pic("picserverMobeil", imgNone);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
private void MachineInfo_KeyDown(object sender, KeyEventArgs e)
|
||
{
|
||
if (e.KeyCode == Keys.Escape)
|
||
{
|
||
bgWorker.CancelAsync();
|
||
bgWorkerEndaccount.CancelAsync();
|
||
bgWorkerMobeilPay.CancelAsync();
|
||
bgWorkerPersonsell.CancelAsync();
|
||
Close();
|
||
}
|
||
else if (e.KeyCode == Keys.F12)
|
||
{
|
||
//if (_SetUpload && !_UploadState && !_Upload && _OracleState)
|
||
//{
|
||
// _Upload = true;
|
||
// if (!bgWorkerOneClickUpload.IsBusy)
|
||
// bgWorkerOneClickUpload.RunWorkerAsync();
|
||
//}
|
||
}
|
||
}
|
||
}
|
||
}
|