1618 lines
77 KiB
C#
1618 lines
77 KiB
C#
using GetHttpData.SDK.ThreadPool;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Net;
|
||
using System.Threading;
|
||
using System.Windows;
|
||
using System.Windows.Controls;
|
||
using System.Windows.Input;
|
||
using System.Windows.Media;
|
||
using System.Windows.Media.Imaging;
|
||
using System.Windows.Threading;
|
||
using TouchCashier.Common;
|
||
using TouchCashier.Utils;
|
||
using TouchCashier.Parameter;
|
||
using System.IO;
|
||
|
||
namespace TouchCashier
|
||
{
|
||
/// <summary>
|
||
/// MainWindow.xaml 的交互逻辑
|
||
/// </summary>
|
||
public partial class MainWindow : Window
|
||
{
|
||
#region 初始化
|
||
private Thread _thread;
|
||
private Thread _DataThread;
|
||
private Thread LoadThread;
|
||
private Thread DownDateThread;
|
||
ClientThread _ClientThread = new ClientThread();
|
||
int Downing = 0;
|
||
bool IsLogin = false;
|
||
#endregion
|
||
|
||
public MainWindow()
|
||
{
|
||
InitializeComponent();
|
||
//初始化
|
||
imgload.Image = Properties.Resources.登录状态;
|
||
imga.Image = Properties.Resources.load;
|
||
PictureFigr.Image = Properties.Resources.扫描指纹;
|
||
PictureFace.Image = Properties.Resources.人脸识别;
|
||
//数据库连接检测
|
||
string sql = "select * from dba.sys_globle";
|
||
try
|
||
{
|
||
DBHelper.QueryOdbc(sql);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//启动本地数据库
|
||
try
|
||
{
|
||
System.Diagnostics.Process.Start(AppDomain.CurrentDomain.BaseDirectory + "dbsrv12.exe",
|
||
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "datebase", "hydb.db") +
|
||
" -os 10240k -m -c 8m -q -n " + Dns.GetHostName());
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
ConnDetection _ConnDetection = new ConnDetection();
|
||
_ConnDetection.ShowDialog();
|
||
//Grid_User.Visibility = Visibility.Collapsed;
|
||
//GridLoad.Visibility = Visibility.Visible;
|
||
//TxtMsg.Text = "正在连接数据库请稍候....";
|
||
}
|
||
//启动加载
|
||
LoadThread = new Thread(Loading)
|
||
{
|
||
IsBackground = true
|
||
};
|
||
Grid_Load.Visibility = Visibility.Visible;
|
||
LoadThread.Start();
|
||
}
|
||
|
||
void Loading()
|
||
{
|
||
try
|
||
{
|
||
if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.ini")))
|
||
{
|
||
byte[] Save = Properties.Resources.config;
|
||
FileStream fsObj = new FileStream(Path.Combine(
|
||
AppDomain.CurrentDomain.BaseDirectory, "config.ini"), FileMode.Create);
|
||
fsObj.Write(Save, 0, Save.Length);
|
||
fsObj.Close();
|
||
}
|
||
}
|
||
catch { }
|
||
//升级本地数据库
|
||
//this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
//{
|
||
// TxtLoad.Text = "正在更新本地数据库......";
|
||
//});
|
||
//ESSupport.Lib.DataBaseUpdate.PosDataBaseUpdate();
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
TxtLoad.Text = "正在加载系统设置,请稍候......";
|
||
});
|
||
//获取参数信息
|
||
QualityHelper.GetConfiguration();
|
||
//获取版本信息并更新
|
||
string version = "YSv" + System.Windows.Forms.Application.ProductVersion.ToString();
|
||
if (QualityHelper.version != version)
|
||
{
|
||
QualityHelper.version = version;
|
||
QualityHelper.UpdateConfigUration("version", version);
|
||
QualityHelper.UpdateConfigUration("UpdateDate",
|
||
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
||
}
|
||
|
||
try
|
||
{
|
||
_DataThread = new Thread(GetDate)
|
||
{
|
||
IsBackground = true
|
||
};
|
||
_DataThread.Start();
|
||
}
|
||
catch { }
|
||
//QualityHelper.GetDate();
|
||
//与服务器校对时间
|
||
try
|
||
{
|
||
DateTime _ServerTime = ESSupport.Lib.HttpHelper.GetBeijingTime(
|
||
$"http://{QualityHelper.dbip}:{QualityHelper.serviceport}/Service.asmx");
|
||
if (_ServerTime != DateTime.MinValue && _ServerTime > new DateTime(2021, 06, 01))
|
||
{
|
||
SyTime.SetLocalTimeByStr(_ServerTime);
|
||
QualityHelper.UpdateConfigUration("syncdtime", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
|
||
}
|
||
}
|
||
catch { }
|
||
|
||
//通过云端接口获取当前服务区门店对应的业主参数配置(软件名称、扫码上传数据地址、业主单位名称、业主单位ID标识)
|
||
ESSupport.Pos.ThreadHelper.ConfigurationByCloud($"http://{QualityHelper.dbip}:{QualityHelper.serviceport}/Service.asmx");
|
||
|
||
|
||
QualityHelper.UpdateConfigUration("NewSystem", "1");
|
||
if (!QualityHelper.serverpartcode.StartsWith("14") && QualityHelper.serverpartcode != "888888")
|
||
{
|
||
QualityHelper.UpdateConfigUration("VideoSwitch", "0");
|
||
QualityHelper.VideoSwitch = "0";
|
||
}
|
||
|
||
DateTime _SoftExpiryDate;
|
||
string _strUsingType = QualityHelper.ConfigurationValues("using_type", "1000");
|
||
if (!DateTime.TryParse(QualityHelper.ConfigurationValues("expirydate", ""), out _SoftExpiryDate))
|
||
{
|
||
try
|
||
{
|
||
_SoftExpiryDate = DateTime.Parse(DBHelper.QueryOdbc("SELECT EXPIRY_DATE " +
|
||
"FROM SYS_GLOBLE WHERE VAR_NAME = 'g_ver'").Tables[0].Rows[0]["expiry_date"].ToString());
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
try
|
||
{
|
||
string _XmlPath = AppDomain.CurrentDomain.BaseDirectory + "update.xml";
|
||
string _KillApp = "TouchCashier.exe|cashier.exe|Stardb.exe|dbsyc.exe|GetMembership.exe|DataUpdate.exe|InvoicingTool.exe|ConnectPoint.exe";
|
||
string _KillAppConfig = ESSupport.Lib.ConfigHelper.GetAppConfig(_XmlPath, "KillApp");
|
||
if (_KillAppConfig != _KillApp)
|
||
{
|
||
ESSupport.Lib.ConfigHelper.UpdateAppConfig(_XmlPath, "KillApp", _KillApp);
|
||
}
|
||
string _StartApp = "Stardb.exe|TouchCashier.exe|GetMembership.exe|ConnectPoint.exe";
|
||
string _StartAppConfig = ESSupport.Lib.ConfigHelper.GetAppConfig(_XmlPath, "StartApp");
|
||
if (_StartAppConfig != _StartApp)
|
||
{
|
||
ESSupport.Lib.ConfigHelper.UpdateAppConfig(_XmlPath, "StartApp", _StartApp);
|
||
}
|
||
if (ESSupport.Lib.ConfigHelper.GetAppConfig(_XmlPath, "NewSystem") != "1")
|
||
{
|
||
ESSupport.Lib.ConfigHelper.UpdateAppConfig(_XmlPath, "NewSystem", "1");
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("启动文件校验失败:" + ex.Message);
|
||
}
|
||
#region 开机后启动Socket通讯客户端
|
||
//启动Socket客户端连接线程
|
||
if (PosControl.PosSocket == null)
|
||
{
|
||
|
||
PosControl.PosSocket = new ESSupport.Transfer.PosSuperSocketClient(
|
||
$"ws://{QualityHelper.dbip}:7199/?ServerpartCode={QualityHelper.serverpartcode}&" +
|
||
$"ShopCode={QualityHelper.shopcode}&MachineCode={QualityHelper.machinecode}",
|
||
QualityHelper.serverpartcode, QualityHelper.shopcode, QualityHelper.machinecode, $"http://{QualityHelper.dbip}:7198/webApi_publish");
|
||
PosControl.PosSocket.NotifyEvent += PosSystemHelper.PosSocket_NotifyEvent;
|
||
}
|
||
if (!PosControl.PosSocket.ClientRuning)
|
||
{
|
||
PosControl.PosSocket.Start();
|
||
}
|
||
#endregion
|
||
|
||
PosSystemHelper.PosSocket_NotifyEvent(null, new ESSupport.Model.Common.NotifyEventArgs
|
||
{
|
||
NotifyLoggerType = ESSupport.Transfer.TransferDataDictionary.LoggerType.开机通知,
|
||
NotifyLoggerTime = DateTime.Now,
|
||
NotifyLoggerMessage = $"【启动时间:{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")}】收银系统启动成功,等待用户登录。",
|
||
NotifyUploadState = false
|
||
});
|
||
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate
|
||
{
|
||
TxtSoftwareName.Text = QualityHelper.softwarename;
|
||
#region
|
||
try
|
||
{
|
||
//QualityHelper.GetDate();
|
||
switch (QualityHelper.IsTouch)
|
||
{
|
||
case "0":
|
||
chk_other.IsChecked = true;
|
||
chk_log.IsChecked = false;
|
||
break;
|
||
case "1":
|
||
chk_other.IsChecked = false;
|
||
chk_log.IsChecked = true;
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
#endregion
|
||
GetValue(TxtVersion, QualityHelper.version, "#000000");
|
||
GetValue(TxtExpiryDate, _SoftExpiryDate == DateTime.MinValue ? "" :
|
||
((_strUsingType == "2000" ? "租赁有效期: " : "软件有效期: ") + _SoftExpiryDate.ToString("yyyy年MM月dd日")), "#000000");
|
||
|
||
#region 设置页面颜色和图片
|
||
try
|
||
{
|
||
if (QualityHelper.softwarename.Contains("蜀越"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/sc.png"));
|
||
img_logo.Visibility = Visibility.Collapsed;
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("高速驿网"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/gsyw.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("贵州"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/gz.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("恒辉"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/jx.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("恒信"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/gx.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("骋客"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/ck.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("驿佳"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/gs.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("招商") || QualityHelper.softwarename.Contains("星程"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/ytw.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("晋行晋驿"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/sx.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("智驿"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/qhzy.png"));
|
||
}
|
||
else if (QualityHelper.softwarename.Contains("驿达"))
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/ahyd.png"));
|
||
}
|
||
else
|
||
{
|
||
img_logo.Source = new BitmapImage(new Uri("pack://application:,,,/Image/logo/es.png"));
|
||
}
|
||
img_login.Source = new BitmapImage(new Uri("pack://application:,,,/Image/" + SkinPeeler.ImgSource + "/未登录头像.png"));
|
||
img_uname.Source = new BitmapImage(new Uri("pack://application:,,,/Image/" + SkinPeeler.ImgSource + "/账号.png"));
|
||
img_pwd.Source = new BitmapImage(new Uri("pack://application:,,,/Image/" + SkinPeeler.ImgSource + "/密码.png"));
|
||
chk_log.Style = Resources["" + SkinPeeler.ResourcesSource + "CheckBoxStyle"] as Style;
|
||
chk_other.Style = Resources["" + SkinPeeler.ResourcesSource + "CheckBoxStyle"] as Style;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
}
|
||
#endregion
|
||
Grid_Load.Visibility = Visibility.Collapsed;
|
||
//自动登录
|
||
if (QualityHelper.autologon == "1")
|
||
{
|
||
//QualityHelper.GetDate();
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc(
|
||
$@"SELECT A.SELLWORKERCODE,A.SELLWORKERNAME,
|
||
A.SELLWORKERPASSWORD
|
||
FROM T_SELLWORKER A,T_PERSONSELL_NEW B
|
||
WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND
|
||
UPPER(A.SELLWORKERCODE) = UPPER(B.SELLWORKER_CODE) AND
|
||
B.SERVERPARTCODE = '{QualityHelper.serverpartcode}' AND
|
||
B.SHOPCODE = '{QualityHelper.shopcode}' AND
|
||
MACHINECODE = '{QualityHelper.machinecode}' AND ENDDATE IS NULL").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
TxtUserName.Text = _DataTable.Rows[0]["SELLWORKERCODE"].ToString();
|
||
TxtPwd.Password = _DataTable.Rows[0]["SELLWORKERPASSWORD"].ToString();
|
||
Grid_User.Visibility = Visibility.Collapsed;
|
||
GridLoad.Visibility = Visibility.Visible;
|
||
Button_Click(btn_login, null);
|
||
}
|
||
else
|
||
{
|
||
DownDateThread = new Thread(CheckDate)
|
||
{
|
||
IsBackground = true
|
||
};
|
||
DownDateThread.Start();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("自动登录失败:" + ex.Message);
|
||
LoginFail();
|
||
DownDateThread = new Thread(CheckDate)
|
||
{
|
||
IsBackground = true
|
||
};
|
||
DownDateThread.Start();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
DownDateThread = new Thread(CheckDate)
|
||
{
|
||
IsBackground = true
|
||
};
|
||
DownDateThread.Start();
|
||
}
|
||
TxtUserName.Focus();
|
||
});
|
||
}
|
||
|
||
|
||
|
||
#region 事件 -> 绑定快捷键
|
||
private void TextBox_KeyDown(object sender, KeyEventArgs e)
|
||
{
|
||
if (e.Key == Key.Enter)
|
||
{
|
||
TxtUserName.Text = TxtUserName.Text.PadLeft(4, '0');
|
||
TxtPwd.SelectAll();
|
||
TxtPwd.Focus();
|
||
}
|
||
else if (e.Key == Key.F16)
|
||
{
|
||
TxtUserName.Text = "";
|
||
return;
|
||
}
|
||
}
|
||
|
||
private void TxtPwd_KeyDown_1(object sender, KeyEventArgs e)
|
||
{
|
||
if (e.Key == Key.Enter)
|
||
{
|
||
Button_Click(btn_login, null);
|
||
return;
|
||
}
|
||
else if (e.Key == Key.F16)
|
||
{
|
||
TxtPwd.Password = "";
|
||
return;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 事件 -> 按钮单击
|
||
private void Button_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
Button keybtn = sender as Button;
|
||
switch (keybtn.Name)
|
||
{
|
||
case "btn_login":
|
||
#region 登录按钮
|
||
TxtMessage.Text = "";
|
||
//非空判断
|
||
if (TxtUserName.Text.Trim() == "")
|
||
{
|
||
GetValue(TxtMessage, "用户名不能为空!", "#FF0000");
|
||
TxtUserName.Focus();
|
||
return;
|
||
}
|
||
if (TxtPwd.Password == "")
|
||
{
|
||
GetValue(TxtMessage, "密码不能为空!", "#FF0000");
|
||
TxtPwd.Focus();
|
||
return;
|
||
}
|
||
string _SelectSql;
|
||
//验证是否存在
|
||
try
|
||
{
|
||
DataTable _SellWorker = DBHelper.QueryOdbc(
|
||
$@"SELECT PROWERRIGHT,SELLWORKERCODE,SELLWORKERNAME,DISCOUNT_RATE
|
||
FROM T_SELLWORKER WHERE SERVERPARTCODE='{QualityHelper.serverpartcode}' AND
|
||
UPPER(SELLWORKERCODE)=UPPER('{TxtUserName.Text}') AND
|
||
SELLWORKERPASSWORD='{TxtPwd.Password}' AND VALID = 1").Tables[0];
|
||
if (_SellWorker.Rows.Count > 0)
|
||
{
|
||
QualityHelper.sellworkercode = _SellWorker.Rows[0]["SELLWORKERCODE"].ToString();
|
||
QualityHelper.sellworkername = _SellWorker.Rows[0]["SELLWORKERNAME"].ToString();
|
||
//验证销售权限
|
||
if (PosSystemHelper.SellWorkerAuthority(PosDictionary.AuthorityType.销售,
|
||
_SellWorker.Rows[0]["PROWERRIGHT"].ToString()) != 0)
|
||
{
|
||
GetValue(TxtMessage, "你没有销售权限!!", "#FF0000");
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
return;
|
||
}
|
||
//更新权限串
|
||
PosControl.ProwerRight = _SellWorker.Rows[0]["PROWERRIGHT"].ToString();
|
||
//更新收银员最大折扣权限
|
||
if (decimal.TryParse(_SellWorker.Rows[0]["DISCOUNT_RATE"].ToString(), out decimal _DiscountRate))
|
||
{
|
||
PosControl.DiscountRate = _DiscountRate > 0 && _DiscountRate <= 1 ? _DiscountRate : (decimal)0.01;
|
||
}
|
||
else
|
||
{
|
||
PosControl.DiscountRate = (decimal)0.01;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
GetValue(TxtMessage, "账号或密码错误,请核对后重新输入!", "#FF0000");
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
return;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//MessageBox.Show(ex.ToString());
|
||
LogHelper.WriteServiceLog(ex.ToString());
|
||
GetValue(TxtMessage, "数据库连接异常,请重试!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
return;
|
||
}
|
||
#region 结账
|
||
//判断结账校验
|
||
DataTable dt;
|
||
string sqls = "select isnull(endaccount_day,1) from sys_globle where var_name = 'g_ver'";
|
||
DataTable _tables = DBHelper.QueryOdbc(sqls).Tables[0];
|
||
_SelectSql = "select startdate from t_endaccount_new where serverpartcode='" + QualityHelper.serverpartcode +
|
||
"' and shopcode = '" + QualityHelper.shopcode + "' and machinecode = '" + QualityHelper.machinecode +
|
||
"' and enddate is null";
|
||
try
|
||
{
|
||
dt = DBHelper.QueryOdbc(_SelectSql).Tables[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ESSupport.Lib.LogHelper.WriteServiceLog(ex.ToString());
|
||
GetValue(TxtMessage, "本地数据库连接错误,请重试!", "#FF0000");
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
return;
|
||
}
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
//24小时未结账,登录前进行结账操作
|
||
if (DateTime.Parse(dt.Rows[0][0].ToString()).AddDays(double.Parse(_tables.Rows[0][0].ToString())) < DateTime.Now &&
|
||
DateTime.Parse(dt.Rows[0][0].ToString()) < DateTime.Today.AddDays(double.Parse(_tables.Rows[0][0].ToString()) * -1))
|
||
{
|
||
//弹出结账操作窗口
|
||
CommodityShift _CommodityShift = new CommodityShift("check", "0")
|
||
{
|
||
Owner = this
|
||
};
|
||
_CommodityShift.ShowDialog();
|
||
if (_CommodityShift.DialogResult != true)
|
||
{
|
||
GetValue(TxtMessage, "请先结账后登陆!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ESSupport.Lib.LogHelper.WriteServiceLog(ex.ToString());
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
return;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 上一个工班未退出检查,存在未交班的记录要求先交班再更换工号登录
|
||
//交班检测
|
||
string _SellWorkerCode = "";
|
||
string _SellWorkerName = "";
|
||
try
|
||
{
|
||
DataTable _DataTable = ESSupport.Lib.SyBaseHelper.QueryOdbc(
|
||
$@"SELECT A.PERSONSELL_ID,A.SELLWORKER_CODE,B.SELLWORKERNAME
|
||
FROM T_PERSONSELL_NEW A LEFT JOIN T_SELLWORKER B
|
||
ON UPPER(A.SELLWORKER_CODE) = UPPER(B.SELLWORKERCODE) AND
|
||
B.SERVERPARTCODE = '{QualityHelper.serverpartcode}'
|
||
WHERE A.ENDDATE IS NULL AND A.STARTDATE IS NOT NULL AND
|
||
A.SERVERPARTCODE = '{QualityHelper.serverpartcode}' AND
|
||
A.SHOPCODE='{QualityHelper.shopcode}' AND A.MACHINECODE = '{QualityHelper.machinecode}'
|
||
ORDER BY A.PERSONSELL_ID DESC").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
_SellWorkerCode = _DataTable.Rows[0]["SELLWORKER_CODE"].ToString().ToUpper();
|
||
_SellWorkerName = _DataTable.Rows[0]["SELLWORKERNAME"].ToString();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
GetValue(TxtMessage, "收银工班校验失败,请重试!", "#FF0000");
|
||
TxtPwd.Focus();
|
||
TxtPwd.SelectAll();
|
||
return;
|
||
}
|
||
if (TxtUserName.Text.Trim().ToUpper() != _SellWorkerCode && !String.IsNullOrWhiteSpace(_SellWorkerCode))
|
||
{
|
||
CommodityPrompt _CommodityPrompt = new CommodityPrompt("",
|
||
$"收银员[{_SellWorkerCode}]{_SellWorkerName}未交班,是否交班并登陆?")
|
||
{
|
||
Owner = this
|
||
};
|
||
_CommodityPrompt.ShowDialog();
|
||
if (_CommodityPrompt.DialogResult == true)
|
||
{
|
||
CommodityShift _CommodityShift = new CommodityShift("shift", "1")
|
||
{
|
||
Owner = this
|
||
};
|
||
_CommodityShift.ShowDialog();
|
||
if (_CommodityShift.DialogResult != true)
|
||
{
|
||
GetValue(TxtMessage, $"收银员[{_SellWorkerName}]工号已登录,请先进行交班再登录其他收银员工号!", "#FF0000");
|
||
TxtUserName.Text = _SellWorkerCode;
|
||
TxtPwd.Password = "";
|
||
TxtPwd.Focus();
|
||
TxtPwd.SelectAll();
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
GetValue(TxtMessage, $"收银员[{_SellWorkerName}]工号已登录,请先进行交班再登录其他收银员工号!", "#FF0000");
|
||
TxtUserName.Text = _SellWorkerCode;
|
||
TxtPwd.Password = "";
|
||
TxtPwd.Focus();
|
||
TxtPwd.SelectAll();
|
||
return;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
//2021.7.7修改:合并自然日流水文件生成方法
|
||
//调整原因:在开机时直接生成存在因为网络未连接,移动支付交易未全部补充到流水中情况,导致流水数据跟自然日报表不一致,
|
||
// 现对流水压缩文件生成进行调整,调整后自然日流水压缩文件跟自然日数据同步生成并上传,以此解决移动支付流水不完整的情况。
|
||
|
||
//启动时生成自然日数据及流水压缩包文件并进行上传
|
||
if (PosControl.DataFileUploadThread == null || !PosControl.DataFileUploadThread.IsAlive)
|
||
{
|
||
PosControl.DataFileUploadThread = new Thread(() =>
|
||
{
|
||
try
|
||
{
|
||
DataTable table_Endaccount = ESSupport.Lib.SyBaseHelper.QueryOdbc(
|
||
$@"SELECT MAX(STARTDATE) AS STARTDATE FROM T_ENDACCOUNT_NEW
|
||
WHERE SERVERPARTCODE = '{QualityHelper.serverpartcode}' AND
|
||
SHOPCODE = '{QualityHelper.shopcode}' AND MACHINECODE = '{QualityHelper.machinecode}' AND
|
||
ENDDATE < DATETIME('{DateTime.Today.ToString("yyyy/MM/dd HH:mm:ss")}') AND
|
||
ENDACCOUNT_TYPE = {(int)PosDictionary.EndaccountType.NaturalDayAccount}").Tables[0];
|
||
//从未产生过自然日数据的收银机,默认从7天前开始生成数据
|
||
DateTime _StartDate = DateTime.Today.AddDays(-7);
|
||
try
|
||
{
|
||
_StartDate = (DateTime)table_Endaccount.Rows[0]["STARTDATE"];
|
||
}
|
||
catch { }
|
||
//校验上一次生成自然日数据后未确认的移动支付交易结果
|
||
bool b_CheckSuccess = MobilePayCheck.MobilePayQueryCheck(_StartDate, (num) => { });
|
||
//插入校验成功的移动支付交易流水
|
||
MobilePayCheck.MobilePaySellCheck(_StartDate, (num) => { });
|
||
#region 生成自然日数据
|
||
//实例化压缩文件处理传输类
|
||
ESSupport.ZipFile.PosDataZipFile zip_PosDataZipFile = new ESSupport.ZipFile.PosDataZipFile(QualityHelper.serverpartcode, QualityHelper.shopcode, QualityHelper.machinecode);
|
||
int int_Days = DateTime.Now.Subtract(_StartDate).Days;
|
||
//补齐上一次自然日数据生成时间至当前时间的自然日结账数据
|
||
for (int i = int_Days; i > 0; i--)
|
||
{
|
||
if (ESSupport.Lib.SyBaseHelper.QueryOdbc(
|
||
$@"SELECT 1 FROM T_ENDACCOUNT_NEW
|
||
WHERE SERVERPARTCODE = '{QualityHelper.serverpartcode}' AND
|
||
SHOPCODE = '{QualityHelper.shopcode}' AND MACHINECODE = '{QualityHelper.machinecode}' AND
|
||
STARTDATE = DATETIME('{DateTime.Today.AddDays(-1 * i).ToString("yyyy/MM/dd HH:mm:ss")}') AND
|
||
ENDACCOUNT_TYPE = {(int)PosDictionary.EndaccountType.NaturalDayAccount}").Tables[0].Rows.Count == 0)
|
||
{
|
||
//生成自然日结账数据
|
||
PosReportHelper.CreateEndaccount(QualityHelper.serverpartcode, QualityHelper.shopcode, QualityHelper.machinecode,
|
||
QualityHelper.sellworkercode, QualityHelper.sellworkercode, QualityHelper.sellworkername, 0, DateTime.Today.AddDays(-1 * i),
|
||
DateTime.Today.AddDays(-1 * (i - 1)).AddSeconds(-1), PosDictionary.EndaccountType.NaturalDayAccount, false);
|
||
//生成自然日流水压缩文件
|
||
zip_PosDataZipFile.CreateDataZipFile(DateTime.Today.AddDays(-1 * i), DateTime.Today.AddDays(-1 * (i - 1)).AddSeconds(-1), ESSupport.ZipFile.PosDataZipFile.DateType.NaturalDay);
|
||
}
|
||
}
|
||
//生成前一自然日日志压缩文件
|
||
zip_PosDataZipFile.CreateLogZipFile(DateTime.Today.AddDays(-1), ESSupport.ZipFile.PosDataZipFile.DateType.SystemLog);
|
||
//初始化压缩文件传输实例
|
||
ESSupport.Transfer.ZipFileUpload zipFileUpload = new ESSupport.Transfer.ZipFileUpload();
|
||
//上传全部压缩文件到服务器
|
||
zipFileUpload.UploadDataZipFile($"http://{QualityHelper.dbip}:{QualityHelper.DataServicePort}/PosDataUpload");
|
||
#endregion
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("自然日报表生成失败:" + ex.Message);
|
||
}
|
||
})
|
||
{
|
||
IsBackground = true
|
||
};
|
||
PosControl.DataFileUploadThread.Start();
|
||
}
|
||
|
||
//登录时的操作
|
||
GetValue(TxtLogin, "", "#FF0000");
|
||
Grid_wf.Visibility = Visibility.Visible;
|
||
LostKeyboard();
|
||
stp_title.Visibility = Visibility.Collapsed;
|
||
stp_name.Visibility = Visibility.Collapsed;
|
||
stp_pwd.Visibility = Visibility.Collapsed;
|
||
stp_img.Visibility = Visibility.Visible;
|
||
btn_login.IsEnabled = false;
|
||
btn_close.IsEnabled = false;
|
||
btnParameter.IsEnabled = false;
|
||
string UserName = TxtUserName.Text.Trim().ToUpper();
|
||
string Pwd = TxtPwd.Password;
|
||
TxtUserName.IsEnabled = false;
|
||
TxtPwd.IsEnabled = false;
|
||
int Edition = 0;
|
||
if (chk_log.IsChecked.Value == true)
|
||
{
|
||
Edition = 1;
|
||
}
|
||
if (chk_other.IsChecked.Value == true)
|
||
{
|
||
Edition = 2;
|
||
}
|
||
if ((_thread == null || !_thread.IsAlive) && !IsLogin)
|
||
{
|
||
IsLogin = true;
|
||
_thread = new Thread(() => Login_User(UserName, Pwd, Edition))
|
||
{
|
||
IsBackground = true
|
||
};
|
||
_thread.Start();
|
||
}
|
||
#endregion
|
||
break;
|
||
case "btnParameter":
|
||
#region 参数
|
||
ParameterPower _ParameterPower = new ParameterPower()
|
||
{
|
||
Owner = this
|
||
};
|
||
_ParameterPower.ShowDialog();
|
||
if (_ParameterPower.DialogResult == true)
|
||
{
|
||
//ParameterSetting _ParameterSetting = new ParameterSetting();
|
||
ParConfigtion _ParConfigtion = new ParConfigtion()
|
||
{
|
||
Owner = this
|
||
};
|
||
_ParConfigtion.ShowDialog();
|
||
QualityHelper.GetConfiguration();
|
||
}
|
||
#endregion
|
||
break;
|
||
case "btnScaveng":
|
||
#region 扫码配置参数
|
||
ScavengConfig _ScavengConfig = new ScavengConfig()
|
||
{
|
||
Owner = this
|
||
};
|
||
_ScavengConfig.ShowDialog();
|
||
#endregion
|
||
break;
|
||
case "btn_close":
|
||
#region 取消
|
||
UpLoadSwitch _UpLoadSwitch = new UpLoadSwitch()
|
||
{
|
||
Owner = this
|
||
};
|
||
if (_UpLoadSwitch.ShowDialog() == true)
|
||
{
|
||
DataUpload _DataUpload = new DataUpload()
|
||
{
|
||
Owner = this
|
||
};
|
||
_DataUpload.ShowDialog();
|
||
}
|
||
#endregion
|
||
break;
|
||
case "btnarport":
|
||
#region 查看状态
|
||
CashRegisterInf _CashRegisterInf = new CashRegisterInf()
|
||
{
|
||
Owner = this
|
||
};
|
||
_CashRegisterInf.ShowDialog();
|
||
#endregion
|
||
break;
|
||
case "btn_user":
|
||
#region 账号登录
|
||
Grid_LoginUser.Visibility = Visibility.Visible;
|
||
Grid_LoginFinger.Visibility = Visibility.Collapsed;
|
||
Grid_LoginFace.Visibility = Visibility.Collapsed;
|
||
gif_face.Visibility = Visibility.Collapsed;
|
||
gif_finger.Visibility = Visibility.Collapsed;
|
||
img_face.Visibility = Visibility.Visible;
|
||
img_finger.Visibility = Visibility.Visible;
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
if (Grid_keyboard.Margin == new Thickness(240, 453, 240, 0))
|
||
{
|
||
GetKeyboard();
|
||
}
|
||
#endregion
|
||
break;
|
||
case "btn_face":
|
||
#region 人脸识别登录
|
||
LostKeyboard();
|
||
Grid_LoginUser.Visibility = Visibility.Collapsed;
|
||
Grid_LoginFinger.Visibility = Visibility.Collapsed;
|
||
Grid_LoginFace.Visibility = Visibility.Visible;
|
||
gif_face.Visibility = Visibility.Collapsed;
|
||
gif_finger.Visibility = Visibility.Collapsed;
|
||
img_face.Visibility = Visibility.Visible;
|
||
img_finger.Visibility = Visibility.Visible;
|
||
TxtStateFace.Text = "正在连接识别器,请稍候..";
|
||
#endregion
|
||
break;
|
||
case "btn_finger":
|
||
#region 指纹识别登录
|
||
LostKeyboard();
|
||
Grid_LoginUser.Visibility = Visibility.Collapsed;
|
||
Grid_LoginFinger.Visibility = Visibility.Visible;
|
||
Grid_LoginFace.Visibility = Visibility.Collapsed;
|
||
gif_face.Visibility = Visibility.Collapsed;
|
||
gif_finger.Visibility = Visibility.Collapsed;
|
||
img_face.Visibility = Visibility.Visible;
|
||
img_finger.Visibility = Visibility.Visible;
|
||
TxtState.Text = "正在连接识别器,请稍候..";
|
||
#endregion
|
||
break;
|
||
case "btnDownDate":
|
||
#region 基础信息下载
|
||
Start();
|
||
#endregion
|
||
break;
|
||
case "btn_report":
|
||
new CommodityMenu("", 0, true) { Owner = this }.ShowDialog();
|
||
break;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> Textblock加载内容
|
||
private void GetValue(TextBlock _TextBlock, string txt, string colortxt)
|
||
{
|
||
GiveValue(_TextBlock, txt, colortxt);
|
||
}
|
||
|
||
void GiveValue(TextBlock _TextBlock, string txt, string colortxt)
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate
|
||
{
|
||
_TextBlock.Text = txt;
|
||
_TextBlock.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString(colortxt));
|
||
//要执行的代码
|
||
});
|
||
}
|
||
#endregion
|
||
|
||
#region 事件 -> 键盘动画效果
|
||
private void TxtUserName_GotFocus_1(object sender, RoutedEventArgs e)
|
||
{
|
||
if (Grid_keyboard.Margin == new Thickness(240, 453, 240, 0))
|
||
{
|
||
GetKeyboard();
|
||
}
|
||
}
|
||
|
||
private void GetKeyboard()
|
||
{
|
||
//键盘弹出
|
||
System.Windows.Media.Animation.Storyboard storyboard_action = new System.Windows.Media.Animation.Storyboard();
|
||
storyboard_action.Stop();
|
||
storyboard_action.Children.Clear();
|
||
//添加动画
|
||
System.Windows.Media.Animation.ThicknessAnimation stb_1 = new System.Windows.Media.Animation.ThicknessAnimation(new Thickness(240, 453, 240, 0), new Thickness(240, 205, 240, 0), new Duration
|
||
(TimeSpan.FromSeconds(0.2)));
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTarget(stb_1, Grid_keyboard);
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTargetProperty(stb_1, new PropertyPath("Margin"));
|
||
|
||
storyboard_action.Children.Add(stb_1);
|
||
|
||
//添加动画2
|
||
System.Windows.Media.Animation.ThicknessAnimation stb_2 = new System.Windows.Media.Animation.ThicknessAnimation(new Thickness(100, 115, 100, 98), new Thickness(100, 0, 100, 98), new Duration
|
||
(TimeSpan.FromSeconds(0.2)));
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTarget(stb_2, Grid_User);
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTargetProperty(stb_2, new PropertyPath("Margin"));
|
||
|
||
storyboard_action.Children.Add(stb_2);
|
||
|
||
|
||
storyboard_action.Begin();
|
||
}
|
||
|
||
private void LostKeyboard()
|
||
{
|
||
if (Grid_keyboard.Margin == new Thickness(240, 205, 240, 0))
|
||
{
|
||
//键盘收起
|
||
System.Windows.Media.Animation.Storyboard storyboard_action = new System.Windows.Media.Animation.Storyboard();
|
||
storyboard_action.Stop();
|
||
storyboard_action.Children.Clear();
|
||
//添加动画
|
||
System.Windows.Media.Animation.ThicknessAnimation stb_1 = new System.Windows.Media.Animation.ThicknessAnimation(new Thickness(240, 205, 240, 0), new Thickness(240, 453, 240, 0), new Duration
|
||
(TimeSpan.FromSeconds(0.2)));
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTarget(stb_1, Grid_keyboard);
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTargetProperty(stb_1, new PropertyPath("Margin"));
|
||
|
||
storyboard_action.Children.Add(stb_1);
|
||
|
||
//添加动画2
|
||
System.Windows.Media.Animation.ThicknessAnimation stb_2 = new System.Windows.Media.Animation.ThicknessAnimation(new Thickness(100, 0, 100, 98), new Thickness(100, 115, 100, 98), new Duration
|
||
(TimeSpan.FromSeconds(0.2)));
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTarget(stb_2, Grid_User);
|
||
|
||
System.Windows.Media.Animation.Storyboard.SetTargetProperty(stb_2, new PropertyPath("Margin"));
|
||
|
||
storyboard_action.Children.Add(stb_2);
|
||
|
||
|
||
storyboard_action.Begin();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 登录
|
||
private void Login_User(string UserName, string Pwd, int Edition)
|
||
{
|
||
if (!LoginCheck())
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
//GetValue(TxtMessage, "登录校验失败,请重试!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
}
|
||
if (string.IsNullOrWhiteSpace(QualityHelper.serverpartshop_id) ||
|
||
string.IsNullOrWhiteSpace(QualityHelper.businesstype))
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "门店信息初始化失败,请重试!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
}
|
||
int _PersonResult = Currency.PersonLogin(UserName.Trim(), out string sellWorkerCode);
|
||
switch (_PersonResult)
|
||
{
|
||
case 0:
|
||
break;
|
||
case -1:
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "账期数据插入失败,请重试!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
case -2:
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "工班数据插入失败,请重试!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
case -3:
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "收银员[" + sellWorkerCode + "]未交班!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
case -4:
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "账期数据插入失败,请重试!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
case -5:
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "当前系统时间错误,请调整后重新登录!", "#FF0000");
|
||
LoginFail();
|
||
});
|
||
return;
|
||
}
|
||
|
||
PosSystemHelper.PosSocket_NotifyEvent(null, new ESSupport.Model.Common.NotifyEventArgs
|
||
{
|
||
NotifyLoggerType = ESSupport.Transfer.TransferDataDictionary.LoggerType.登录通知,
|
||
NotifyLoggerTime = DateTime.Now,
|
||
NotifyLoggerMessage = $"【登录时间:{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")}】" +
|
||
$"工号:[{UserName}]{PosSystemHelper.QueryPersonName(QualityHelper.serverpartcode, UserName)} 登录成功;" +
|
||
$"当前版本:YSv{System.Windows.Forms.Application.ProductVersion}",
|
||
NotifyUploadState = false
|
||
});
|
||
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
//对页面元素的操作
|
||
if (QualityHelper.IsGrocery == "1")
|
||
{
|
||
QualityHelper.UpdateConfigUration("IsTouch", "1");
|
||
QualityHelper.IsTouch = "1";
|
||
CommoditySaleCashier _CommoditySaleCashier = new CommoditySaleCashier(TxtUserName.Text.ToUpper());
|
||
_CommoditySaleCashier.Show();
|
||
Close();
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
if (chk_log.IsChecked == true)
|
||
{
|
||
CommoditySaleCashier _CommoditySaleCashier = new CommoditySaleCashier(TxtUserName.Text.ToUpper());
|
||
_CommoditySaleCashier.Show();
|
||
Close();
|
||
}
|
||
else if (chk_other.IsChecked == true)
|
||
{
|
||
CommoditySaleOther _CommoditySaleOther = new CommoditySaleOther(TxtUserName.Text.ToUpper());
|
||
_CommoditySaleOther.Show();
|
||
Close();
|
||
}
|
||
}
|
||
});
|
||
}
|
||
#endregion
|
||
|
||
#region 事件 -> 收银员版获取焦点
|
||
private void chk_log_Click_1(object sender, RoutedEventArgs e)
|
||
{
|
||
if (chk_log.IsChecked == true)
|
||
{
|
||
if (Grid_keyboard.Margin == new Thickness(240, 205, 243, 0))
|
||
{
|
||
LostKeyboard();
|
||
}
|
||
chk_other.IsChecked = false;
|
||
QualityHelper.UpdateConfigUration("IsTouch", "1");
|
||
QualityHelper.IsTouch = "1";
|
||
}
|
||
else
|
||
{
|
||
if (Grid_keyboard.Margin == new Thickness(240, 205, 243, 0))
|
||
{
|
||
LostKeyboard();
|
||
}
|
||
chk_other.IsChecked = true;
|
||
chk_log.IsChecked = false;
|
||
QualityHelper.UpdateConfigUration("IsTouch", "0");
|
||
QualityHelper.IsTouch = "0";
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 点击页面空余地方键盘自动收起
|
||
private void Window_MouseDown_1(object sender, MouseButtonEventArgs e)
|
||
{
|
||
//if (Grid_keyboard.Margin == new Thickness(240, 205, 243, 0))
|
||
//{
|
||
// LostKeyboard();
|
||
//}
|
||
//txt_focus.Focus();
|
||
//txt_focus.SelectAll();
|
||
}
|
||
#endregion
|
||
|
||
#region 事件 -> 其他版获取焦点
|
||
private void chk_other_Click_1(object sender, RoutedEventArgs e)
|
||
{
|
||
if (chk_other.IsChecked == true)
|
||
{
|
||
if (Grid_keyboard.Margin == new Thickness(240, 205, 243, 0))
|
||
{
|
||
LostKeyboard();
|
||
}
|
||
chk_log.IsChecked = false;
|
||
QualityHelper.UpdateConfigUration("IsTouch", "0");
|
||
QualityHelper.IsTouch = "0";
|
||
}
|
||
else
|
||
{
|
||
if (Grid_keyboard.Margin == new Thickness(240, 205, 243, 0))
|
||
{
|
||
LostKeyboard();
|
||
}
|
||
chk_log.IsChecked = true;
|
||
chk_other.IsChecked = false;
|
||
QualityHelper.UpdateConfigUration("IsTouch", "1");
|
||
QualityHelper.IsTouch = "1";
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取最大编号
|
||
private int GetMaxCode(string StrSql)
|
||
{
|
||
//获取最大编号并加1
|
||
DataTable _DataTable = DBHelper.QueryOdbc(StrSql).Tables[0];
|
||
int MaxCode = 0;
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
try
|
||
{
|
||
MaxCode = int.Parse(_DataTable.Rows[0][0].ToString()) + 1;
|
||
}
|
||
catch
|
||
{
|
||
MaxCode = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
MaxCode = 1;
|
||
}
|
||
return MaxCode;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 键盘快捷键
|
||
private void Window_KeyDown_1(object sender, KeyEventArgs e)
|
||
{
|
||
if (e.SystemKey == Key.F4)
|
||
{
|
||
e.Handled = true;
|
||
}
|
||
switch (e.Key)
|
||
{
|
||
case Key.Escape:
|
||
Button_Click(btn_close, null);
|
||
break;
|
||
case Key.F1:
|
||
Button_Click(btnarport, null);
|
||
break;
|
||
case Key.F2:
|
||
if (chk_other.IsChecked == true)
|
||
{
|
||
chk_log.IsChecked = true;
|
||
chk_log_Click_1(null, null);
|
||
}
|
||
else
|
||
{
|
||
chk_other.IsChecked = true;
|
||
chk_other_Click_1(null, null);
|
||
}
|
||
break;
|
||
case Key.F3:
|
||
Button_Click(btnScaveng, null);
|
||
break;
|
||
case Key.F4:
|
||
Button_Click(btnParameter, null);
|
||
break;
|
||
case Key.F5:
|
||
Button_Click(btn_report, null);
|
||
break;
|
||
case Key.Down:
|
||
TxtUserName.Focus();
|
||
if (Grid_keyboard.Margin == new Thickness(240, 453, 240, 0))
|
||
{
|
||
GetKeyboard();
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 登录数据校验验证
|
||
/// <summary>
|
||
/// 登录账期班期数据验证
|
||
/// </summary>
|
||
/// <param name="person">登录工号</param>
|
||
/// <returns></returns>
|
||
private bool LoginCheck()
|
||
{
|
||
try
|
||
{
|
||
OracleHelper _OracleHelper = new OracleHelper(QualityHelper.dbip, QualityHelper.dbport, QualityHelper.conname, QualityHelper.dbuser, QualityHelper.dbpass);
|
||
PosControl.OracleServer = new OracleHelper(QualityHelper.dbip, QualityHelper.dbport, QualityHelper.conname, QualityHelper.dbuser, QualityHelper.dbpass);
|
||
//判断本地数据库连接
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc("select * from dba.sys_globle").Tables[0];
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "本地数据库无法连接,请重试!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
//判断收银机配置
|
||
if (QualityHelper.serverpartcode == "" || QualityHelper.shopcode == "" || QualityHelper.machinecode == "")
|
||
{
|
||
//参数错误
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "收银系统配置不正确,请前往参数页面修改!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
|
||
#region 检查自然日结账数据生成是否已开启,未开启的情况下,补生成2021.5.1至当前时间的自然日数据
|
||
//检查自然日结账数据生成是否已开启,未开启的情况下,补生成2021.5.1至当前时间的自然日数据,并永久打开自然日结账数据生成功能
|
||
//已开启的情况,代表已经存在自然日结账报表数据,跳过补齐自然日结账数据的操作
|
||
if (QualityHelper.NaturalDayAccount == "0")
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "正在进行数据报表生成......", "#FF0000");
|
||
});
|
||
try
|
||
{
|
||
DateTime _StartDate = new DateTime(2021, 6, 1);
|
||
int int_Days = DateTime.Now.Subtract(_StartDate).Days;
|
||
//补齐2021.5.1至当前时间的自然日结账数据
|
||
for (int i = int_Days; i > 0; i--)
|
||
{
|
||
if (ESSupport.Lib.SyBaseHelper.QueryOdbc(
|
||
$@"SELECT 1 FROM T_ENDACCOUNT_NEW
|
||
WHERE SERVERPARTCODE = '{QualityHelper.serverpartcode}' AND
|
||
SHOPCODE = '{QualityHelper.shopcode}' AND MACHINECODE = '{QualityHelper.machinecode}' AND
|
||
STARTDATE = DATETIME('{DateTime.Today.AddDays(-1 * i).ToString("yyyy/MM/dd HH:mm:ss")}') AND
|
||
ENDDATE = DATETIME('{DateTime.Today.AddDays(-1 * (i - 1)).AddSeconds(-1).ToString("yyyy/MM/dd HH:mm:ss")}') AND
|
||
ENDACCOUNT_TYPE = {(int)PosDictionary.EndaccountType.NaturalDayAccount}").Tables[0].Rows.Count == 0)
|
||
{
|
||
//生成自然日结账数据
|
||
PosReportHelper.CreateEndaccount(QualityHelper.serverpartcode, QualityHelper.shopcode,
|
||
QualityHelper.machinecode, QualityHelper.sellworkercode, QualityHelper.sellworkercode,
|
||
QualityHelper.sellworkername, 0, DateTime.Today.AddDays(-1 * i),
|
||
DateTime.Today.AddDays(-1 * (i - 1)).AddSeconds(-1),
|
||
PosDictionary.EndaccountType.NaturalDayAccount, false);
|
||
}
|
||
}
|
||
//补齐未生成的自然日结账数据后,将自然日结账统计开关永久打开,后续跳过此代码
|
||
QualityHelper.UpdateConfigUration("NaturalDayAccount", "1");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("自然日数据补齐失败:" + ex.Message);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
//与服务器校对时间
|
||
try
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "正在校准系统时间......", "#FF0000");
|
||
});
|
||
DateTime _ServerTime = ESSupport.Lib.HttpHelper.GetBeijingTime($"http://{QualityHelper.dbip}:{QualityHelper.serviceport}/Service.asmx");
|
||
if (_ServerTime != DateTime.MinValue && _ServerTime > new DateTime(2020, 06, 01))
|
||
{
|
||
SyTime.SetLocalTimeByStr(_ServerTime);
|
||
QualityHelper.UpdateConfigUration("syncdtime", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
|
||
}
|
||
}
|
||
catch { }
|
||
|
||
//判断当前时间是否小于上次登录时间
|
||
DateTime _DateTime = new DateTime(2018, 01, 01, 00, 00, 00);
|
||
|
||
string _strLocalDate = QualityHelper.ConfigurationValues("syncdtime", "2018/01/01 00:00:00");
|
||
|
||
DateTime _LocalDate;
|
||
if (DateTime.TryParse(_strLocalDate, out _LocalDate))
|
||
{
|
||
if (DateTime.Now >= _LocalDate)
|
||
{
|
||
QualityHelper.UpdateConfigUration("syncdtime", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
|
||
}
|
||
else
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "当前系统时间错误,请调整后重新登录!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//系统第一次启动,判断是否小于预设时间
|
||
if (DateTime.Now >= _DateTime)
|
||
{
|
||
QualityHelper.UpdateConfigUration("syncdtime", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
|
||
}
|
||
else
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "当前系统时间错误,请调整后重新登录!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
}
|
||
//判断软件到期时间
|
||
try
|
||
{
|
||
string _strUsingType = QualityHelper.ConfigurationValues("using_type", "1000");
|
||
decimal _WarnDay = 0;
|
||
decimal.TryParse(QualityHelper.ConfigurationValues("expiry_day", "15"), out _WarnDay);
|
||
if (_WarnDay == 0)
|
||
{
|
||
_WarnDay = 15;
|
||
}
|
||
DateTime _SoftExpiryDate;
|
||
if (!DateTime.TryParse(QualityHelper.ConfigurationValues("expirydate", ""), out _SoftExpiryDate))
|
||
{
|
||
try
|
||
{
|
||
_SoftExpiryDate = DateTime.Parse(DBHelper.QueryOdbc("SELECT EXPIRY_DATE " +
|
||
"FROM SYS_GLOBLE WHERE VAR_NAME = 'g_ver'").Tables[0].Rows[0]["expiry_date"].ToString());
|
||
}
|
||
catch { }
|
||
}
|
||
if (_SoftExpiryDate != DateTime.MinValue)
|
||
{
|
||
if (DateTime.Today > _SoftExpiryDate)
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, (_strUsingType == "2000" ? "您租赁的设备已到期" : "您购买的设备软件版本已到期") + ",请及时续费!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
int _RemainingTime = (int)_SoftExpiryDate.Subtract(DateTime.Today).TotalDays;
|
||
if (_RemainingTime <= _WarnDay)
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, (_strUsingType == "2000" ? "您租赁的设备剩余【" : "您购买的设备软件版本剩余【") +
|
||
_RemainingTime + "】天到期,请及时续费!", "#FF0000");
|
||
TxtUserName.Focus();
|
||
});
|
||
MessageBoxResult _Result = MessageBox.Show((_strUsingType == "2000" ? "您租赁的设备剩余【" : "您购买的设备软件版本剩余【") +
|
||
_RemainingTime + "】天过期,请及时续费!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Information,
|
||
MessageBoxResult.OK, MessageBoxOptions.ServiceNotification);
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("软件有效期检测错误:" + ex.Message);
|
||
}
|
||
|
||
//判断门店状态
|
||
DataTable _ShopTable = ESSupport.Lib.SyBaseHelper.QueryOdbc(
|
||
$@"SELECT SERVERPARTSHOP_ID,SHOPNAME,BUSINESSTYPE,VALID
|
||
FROM T_SHOPMESSAGE WHERE SHOPCODE = '{QualityHelper.shopcode}' AND
|
||
SERVERPARTCODE = '{QualityHelper.serverpartcode}'").Tables[0];
|
||
if (_ShopTable.Rows.Count > 0)
|
||
{
|
||
QualityHelper.serverpartshop_id = _ShopTable.Rows[0]["SERVERPARTSHOP_ID"].ToString();
|
||
QualityHelper.shopname = _ShopTable.Rows[0]["SHOPNAME"].ToString();
|
||
QualityHelper.businesstype = _ShopTable.Rows[0]["BUSINESSTYPE"].ToString();
|
||
if (_ShopTable.Rows[0]["VALID"].ToString() != "1")
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "该门店已停业", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, "门店信息未下载!", "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
DownDateThread = new Thread(CheckDate)
|
||
{
|
||
IsBackground = true
|
||
};
|
||
DownDateThread.Start();
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteServiceLog("登录验证异常:" + ex.Message);
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
GetValue(TxtMessage, ex.Message, "#FF0000");
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
TxtUserName.Focus();
|
||
});
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
private void LoginFail()
|
||
{
|
||
btn_login.IsEnabled = true;
|
||
btn_close.IsEnabled = true;
|
||
btnParameter.IsEnabled = true;
|
||
TxtUserName.IsEnabled = true;
|
||
stp_name.Visibility = Visibility.Visible;
|
||
stp_pwd.Visibility = Visibility.Visible;
|
||
stp_img.Visibility = Visibility.Collapsed;
|
||
stp_title.Visibility = Visibility.Visible;
|
||
TxtPwd.IsEnabled = true;
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
Grid_wf.Visibility = Visibility.Collapsed;
|
||
Grid_User.Visibility = Visibility.Visible;
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
IsLogin = false;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 下载监听回调
|
||
/// </summary>
|
||
/// <param name="downResultInfo"></param>
|
||
/// <param name="resultString"></param>
|
||
private void DownStringEvent(DownResultInfo downResultInfo, string resultString)
|
||
{
|
||
int _DownCount = _ClientThread.getStartDownTypes().Count;
|
||
if (!downResultInfo.StartToEnd)
|
||
{
|
||
Downing++;
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate
|
||
{
|
||
pbrDown.Value = (double)Downing / _DownCount;
|
||
});
|
||
}
|
||
if (Downing == _DownCount)
|
||
{
|
||
//QualityHelper.GetDate();
|
||
QualityHelper.GetConfiguration();
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate
|
||
{
|
||
Grid_Load.Visibility = Visibility.Collapsed;
|
||
pbrDown.Value = 0;
|
||
GetValue(TxtMessage, "基础信息下载完成!", "#FF0000");
|
||
this.IsEnabled = true;
|
||
TxtUserName.Focus();
|
||
TxtUserName.SelectAll();
|
||
});
|
||
}
|
||
}
|
||
|
||
#region 方法 -> 校验数据库
|
||
/// <summary>
|
||
/// 数据库升级校验
|
||
/// </summary>
|
||
private void GetDate()
|
||
{
|
||
try
|
||
{
|
||
ESSupport.Lib.DataBaseUpdate.PosDataBaseUpdate();
|
||
try
|
||
{
|
||
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran(new List<string>
|
||
{
|
||
@"UPDATE T_COMMODITYSALE_NEW A
|
||
SET A.COMMODITY_SYMBOL = B.COMMODITY_SYMBOL
|
||
FROM T_COMMODITYEX B
|
||
WHERE A.COMMODITY_CODE = B.COMMODITY_CODE AND
|
||
ISNULL(A.COMMODITY_SYMBOL,'') = ''" ,
|
||
@"UPDATE T_SELLDETAILS A
|
||
SET A.COMMODITY_TYPE = B.COMMODITY_TYPE,
|
||
A.COMMODITY_SYMBOL = B.COMMODITY_SYMBOL
|
||
FROM T_COMMODITYEX B
|
||
WHERE A.COMMODITY_CODE = B.COMMODITY_CODE AND
|
||
ISNULL(A.COMMODITY_SYMBOL,'') = '' AND ISNULL(A.COMMODITY_TYPE,'') = ''",
|
||
@"UPDATE T_ABNORMALITY A
|
||
SET A.TRANSFER_STATE = 0
|
||
WHERE A.TRANSFER_STATE = 2 AND EXISTS (
|
||
SELECT 1 FROM T_ABNORMALITY B
|
||
WHERE A.ABNORMALITY_CODE = B.ABNORMALITY_PCODE AND
|
||
B.ABNORMALITY_TYPE = 1099 )"
|
||
});
|
||
}
|
||
catch { }
|
||
|
||
if (QualityHelper.IsGrocery == "0" || QualityHelper.data_delete == "1")
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc("SELECT SERVERPARTSHOP_ID FROM T_SHOPMESSAGE " +
|
||
"WHERE SERVERPARTCODE = '" + QualityHelper.serverpartcode + "' AND SHOPCODE = '" + QualityHelper.shopcode + "'").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
string _ServerPartShopID = _DataTable.Rows[0]["SERVERPARTSHOP_ID"].ToString();
|
||
ESSupport.Lib.DataBaseUpdate.ClearData(QualityHelper.serverpartcode,
|
||
QualityHelper.shopcode, _ServerPartShopID, int.Parse(QualityHelper.effective_day));
|
||
}
|
||
}
|
||
try
|
||
{
|
||
ESSupport.Lib.DataBaseUpdate.ClearDataBackup(
|
||
AppDomain.CurrentDomain.BaseDirectory + "\\DataBackup",
|
||
int.Parse(QualityHelper.effective_day), true);
|
||
}
|
||
catch { }
|
||
}
|
||
catch
|
||
{ }
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 检测数据是否存在并启动下发线程
|
||
private void CheckDate()
|
||
{
|
||
try
|
||
{
|
||
string _SelectSql = String.Format("SELECT SELLWORKERCODE,COUNT(SELLWORKERCODE) " +
|
||
"FROM T_SELLWORKER WHERE SERVERPARTCODE = '{0}' GROUP BY SELLWORKERCODE " +
|
||
"HAVING COUNT(SELLWORKERCODE) > 1", QualityHelper.serverpartcode);
|
||
//删除错误工号数据
|
||
try
|
||
{
|
||
DBHelper.ExecuteSqlTran("DELETE FROM T_SELLWORKER WHERE DATALENGTH(PROWERRIGHT) < 255");
|
||
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran("DELETE FROM T_COMMODITYEX WHERE COMMODITY_BARCODE IS NULL");
|
||
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran("DELETE FROM T_COMMODITYEX_INEFFECTIVE WHERE COMMODITY_BARCODE IS NULL ");
|
||
}
|
||
catch { }
|
||
_SelectSql = "SELECT SHOPMESSAGE_ID FROM T_SHOPMESSAGE WHERE SERVERPARTCODE = '" +
|
||
QualityHelper.serverpartcode + "' AND SHOPCODE = '" + QualityHelper.shopcode + "'";
|
||
DataTable _ShopMessageTable = DBHelper.QueryOdbc(_SelectSql).Tables[0];
|
||
_SelectSql = String.Format("SELECT 1 FROM T_SELLWORKER WHERE SERVERPARTCODE = '{0}'", QualityHelper.serverpartcode);
|
||
DataTable _SellWorkerTable = DBHelper.QueryOdbc(_SelectSql).Tables[0];
|
||
if (_ShopMessageTable.Rows.Count == 0 || _SellWorkerTable.Rows.Count == 0)
|
||
{
|
||
DBHelper.ExecuteSqlTran(new List<string> { "DELETE FROM T_DOWNUPDATE", "DELETE FROM T_SELLWORKER", "DELETE FROM T_SHOPMESSAGE" });
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
Start();
|
||
});
|
||
}
|
||
try
|
||
{
|
||
if (QualityHelper.HDModelSwitch != "1")
|
||
{
|
||
string _ServiceUrl = "http://" + QualityHelper.dbip + ":" + QualityHelper.DataServicePort + "/DataServices/Service.asmx";
|
||
System.Collections.Hashtable hashtable = new System.Collections.Hashtable
|
||
{
|
||
{ "serverPartShop_id", QualityHelper.serverpartshop_id }
|
||
};
|
||
DataTable _DataTable = ESSupport.Lib.JsonHelper.ToDataTable(
|
||
ESSupport.Lib.SoapWSHelper.QuerySoapWebServiceString(_ServiceUrl, "CommodityDeduplication", hashtable));
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
string _CommodityID = "";
|
||
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
||
{
|
||
_CommodityID += (_CommodityID == "" ? "" : ",") + _DataTable.Rows[i]["COMMODITYEX_ID"].ToString();
|
||
}
|
||
DBHelper.ExecuteSqlTran(string.Format("DELETE FROM T_COMMODITYEX WHERE COMMODITYEX_ID IN ({0})", _CommodityID));
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
try
|
||
{
|
||
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran(
|
||
$@"DELETE FROM T_COMMODITYEX
|
||
WHERE SERVERPARTCODE <> '{QualityHelper.serverpartcode}'");
|
||
}
|
||
catch { }
|
||
try
|
||
{
|
||
//启动时删除重复商品条码,并设置重新获取商品数据
|
||
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran(
|
||
@"DELETE FROM T_COMMODITYEX B
|
||
WHERE B.ISVALID = 0 AND B.COMMODITY_BARCODE IN(
|
||
SELECT A.COMMODITY_BARCODE
|
||
FROM T_COMMODITYEX A
|
||
--WHERE A.ISVALID = 1
|
||
GROUP BY A.SERVERPARTCODE,A.COMMODITY_BARCODE
|
||
HAVING COUNT(COMMODITY_BARCODE) > 1)");
|
||
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran("DELETE FROM T_DOWNUPDATE");
|
||
}
|
||
catch { }
|
||
}
|
||
catch
|
||
{
|
||
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
|
||
{
|
||
Start();
|
||
});
|
||
}
|
||
}
|
||
private void Start()
|
||
{
|
||
GridLoad.Visibility = Visibility.Collapsed;
|
||
ConfigThread _ConfigThread = new ConfigThread(QualityHelper.serverpartcode);
|
||
_ClientThread.setConfiguration("http://" + QualityHelper.dbip + ":" + QualityHelper.DataServicePort + "/DataServices/Service.asmx",
|
||
QualityHelper.authorization, QualityHelper.serverpartcode, "",
|
||
QualityHelper.shopcode, QualityHelper.macaddress, QualityHelper.machinecode, 400, 5, 20);
|
||
List<string> _DownList = new List<string>();
|
||
//if (QualityHelper.serverpartcode == "888888" || QualityHelper.serverpartcode.StartsWith("62"))
|
||
//{
|
||
Enum.TryParse(QualityHelper.ProvinceCode, out PosDictionary.ProvinceName pn_ProvinceName);
|
||
switch (pn_ProvinceName)
|
||
{
|
||
case PosDictionary.ProvinceName.sxti:
|
||
case PosDictionary.ProvinceName.zjwzgs:
|
||
case PosDictionary.ProvinceName.wzgszc:
|
||
case PosDictionary.ProvinceName.bghxam:
|
||
case PosDictionary.ProvinceName.cqhygs:
|
||
_DownList = new List<string>() { "T_SELLWORKER", "T_SHOPMESSAGE", "T_CONFIGURATION" };
|
||
break;
|
||
case PosDictionary.ProvinceName.stig:
|
||
case PosDictionary.ProvinceName.gsyw:
|
||
case PosDictionary.ProvinceName.gxjtsy:
|
||
case PosDictionary.ProvinceName.gzhd:
|
||
case PosDictionary.ProvinceName.gshy:
|
||
case PosDictionary.ProvinceName.qhzy:
|
||
case PosDictionary.ProvinceName.gsywxj:
|
||
default:
|
||
_DownList = new List<string>() { "T_SELLWORKER_UNIT", "T_SELLWORKER_CLOUD", "T_SHOPMESSAGE_EX", "T_CONFIGURATION" };
|
||
break;
|
||
}
|
||
|
||
_ClientThread.IsDownload(true, _DownList);
|
||
|
||
_ClientThread.setConfigThread(_ConfigThread);
|
||
_ClientThread.DownloadStringEvent += new ClientThread.OutputResultsDownArg(DownStringEvent);//监听上传事件
|
||
bool b = _ClientThread.onState();
|
||
Downing = 0;
|
||
Grid_Load.Visibility = Visibility.Visible;
|
||
this.IsEnabled = false;
|
||
TxtLoad.Text = "正在下载基础信息,请稍候...";
|
||
if (!b)
|
||
{
|
||
Grid_Load.Visibility = Visibility.Collapsed;
|
||
this.IsEnabled = true;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
}
|
||
}
|