基线 SVN r240
SVN-Revision: r240
This commit is contained in:
@@ -0,0 +1,919 @@
|
||||
using Lskj.Control;
|
||||
using Lskj.Core;
|
||||
using Lskj.Data;
|
||||
//using Lskj.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using static SynchronousOven.NewEmp;
|
||||
|
||||
namespace SynchronousOven
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// ini文件内段落名
|
||||
/// </summary>
|
||||
public bool RunAutomatically = false;
|
||||
|
||||
/// <summary>
|
||||
/// ini文件内段落名
|
||||
/// </summary>
|
||||
public string company = "烤箱同步工具";
|
||||
/// <summary>
|
||||
/// 初始时间间隔
|
||||
/// </summary>
|
||||
int second = 30;
|
||||
/// <summary>
|
||||
/// IP,端口,请求路径
|
||||
/// </summary>
|
||||
public string IP = "110.185.210.70";
|
||||
public string port = "8881";
|
||||
|
||||
public System.Threading.Thread thread = null;
|
||||
|
||||
public System.Timers.Timer timer1 = new System.Timers.Timer();
|
||||
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
txtSeverId.Text = Lskj.Util.IniHelper.Read("Setting.ini", company, "serverName");
|
||||
txtDataBase.Text = Lskj.Util.IniHelper.Read("Setting.ini", company, "dbName");
|
||||
txtName.Text = Lskj.Util.IniHelper.Read("Setting.ini", company, "user");
|
||||
txtPassword.Text = Lskj.Util.IniHelper.Read("Setting.ini", company, "password");
|
||||
txtTimeInterval.Text = Lskj.Util.IniHelper.Read("Setting.ini", company, "interval");
|
||||
|
||||
//txtSeverId.Text = IniUtil.IniReadValue(company, "serverName");
|
||||
//txtDataBase.Text = IniUtil.IniReadValue(company, "dbName");
|
||||
//txtName.Text = IniUtil.IniReadValue(company, "user");
|
||||
//txtPassword.Text = IniUtil.IniReadValue(company, "password");
|
||||
//txtTimeInterval.Text = IniUtil.IniReadValue(company, "interval");
|
||||
|
||||
|
||||
if (string.IsNullOrEmpty(txtTimeInterval.Text)) txtTimeInterval.Text = "30";
|
||||
txtTimeInterval.LostFocus += new EventHandler(txtTimeInterval_LostFocus);
|
||||
this.FormClosed += new FormClosedEventHandler(Form1_FormClosed);
|
||||
this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
|
||||
|
||||
//数据都有的话就自动启动
|
||||
if (!string.IsNullOrWhiteSpace(txtSeverId.Text) && !string.IsNullOrWhiteSpace(txtDataBase.Text) && !string.IsNullOrWhiteSpace(txtName.Text) && !string.IsNullOrWhiteSpace(txtPassword.Text) && !string.IsNullOrWhiteSpace(txtTimeInterval.Text))
|
||||
{
|
||||
RunAutomatically = Lskj.Util.IniHelper.Read("Setting.ini", company, "RunAutomatically").Equals("1");
|
||||
if (RunAutomatically)
|
||||
{
|
||||
this.btnBegin_Click(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if (thread != null)
|
||||
{
|
||||
thread.Abort();
|
||||
}
|
||||
this.Dispose();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 时间间隔TextBox失去焦点事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void txtTimeInterval_LostFocus(object sender, EventArgs e)
|
||||
{
|
||||
string checkStr = txtTimeInterval.Text.ToString();
|
||||
if (string.IsNullOrEmpty(checkStr)) txtTimeInterval.Text = "30";
|
||||
int check = Convert.ToInt32(txtTimeInterval.Text.ToString());
|
||||
if (check < 30)
|
||||
{
|
||||
txtTimeInterval.Text = "30";
|
||||
}
|
||||
second = Convert.ToInt32(txtTimeInterval.Text.ToString());
|
||||
IniUtil.IniWriteValue(company, "interval", txtTimeInterval.Text.ToString());
|
||||
}
|
||||
|
||||
//开始同步
|
||||
private void btnBegin_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (thread == null)
|
||||
{
|
||||
thread = new System.Threading.Thread(StartMethod);
|
||||
thread.Start();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//同步事件
|
||||
private void StartMethod()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ConnectServer())
|
||||
{
|
||||
//判断数据库是否有该配置列
|
||||
DataTable DT = SqlHelper.ExecuteDataTable("select name from syscolumns where id=object_id('mrp_WorkTaskListTab') and name='SyncFlag'");
|
||||
bool flag = DT.Rows.Count > 0;
|
||||
if (!flag)
|
||||
{
|
||||
MessageBox.Show("同步失败,原因:数据库内无同步标识列!");
|
||||
return;
|
||||
}
|
||||
timer1.Interval = second * 1000;
|
||||
|
||||
RefreshLogUIThread("开始同步");
|
||||
SynchronizeWorkOrder();
|
||||
|
||||
SynchronizeStatus();
|
||||
SynchronousMachiningParameter();
|
||||
SynchronizePersonnelInformation();
|
||||
RefreshLogUIThread("同步完成");
|
||||
|
||||
timer1.Enabled = true;
|
||||
this.timer1.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
thread = null;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RefreshLogUIThread(DateTime.Now + string.Format("失败.原因:{0}.\r\n", ex.Message));
|
||||
}
|
||||
}
|
||||
|
||||
//private void RefreshTemperature()
|
||||
//{
|
||||
// Thread thread = new Thread(DatabaseMonitoring);
|
||||
// thread.IsBackground = true;
|
||||
// thread.Start();
|
||||
//}
|
||||
|
||||
|
||||
///// <summary>
|
||||
///// timer2事件
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//private void timer2_Tick(object sender, EventArgs e)
|
||||
//{
|
||||
// RefreshTemperature();
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// timer事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
timer1.Enabled = false;
|
||||
ReClearLogUIThread();//清除内容
|
||||
SynchronizeWorkOrder();
|
||||
SynchronizeStatus();
|
||||
SynchronousMachiningParameter();
|
||||
SynchronizePersonnelInformation();
|
||||
timer1.Enabled = true;
|
||||
}
|
||||
/// <summary>
|
||||
///温度同步
|
||||
/// </summary>
|
||||
//public void DatabaseMonitoring()
|
||||
//{
|
||||
// string sqlValue = "select * from p_sbhottab";
|
||||
// DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
// string url = "http://110.185.210.70:8881/business/receive/findEquipmentSetData?jtBillNo=";
|
||||
// foreach (DataRow row in dt.Rows)
|
||||
// {
|
||||
// if (string.IsNullOrEmpty(row["sbhot"].ToString()) || row["sbhot"].ToString().Equals("0.00"))
|
||||
// {
|
||||
// url = "http://110.185.210.70:8881/business/receive/findEquipmentSetData?jtBillNo=";
|
||||
// url += row["sbno"];
|
||||
// ResponseMode mode = NewEmp.GetUrl(url);
|
||||
// if (mode!=null&&0 == mode.ret)
|
||||
// {
|
||||
// string temp = mode.data.temp;
|
||||
// sqlValue = string.Format("update p_sbhottab set sbhot='{0}' where sbno='{1}'", temp, row["sbno"].ToString());
|
||||
// SqlHelper.ExecuteNonQuery(sqlValue);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// string errorMsg = mode != null ? mode.msg : "未知原因.";
|
||||
// RefreshLogUIThread(DateTime.Now + string.Format(" 维修状态,信息读取失败,错误原因:{0}.\r\n", errorMsg));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 同步事件 人员账号信息
|
||||
/// </summary>
|
||||
private void SynchronizePersonnelInformation()
|
||||
{
|
||||
//现在用户信息表里的信息
|
||||
string sqlValue = "select isnull(LoginAccount,'') as LoginAccount,isnull(Password,'') as Password,isnull(p_emp_status,'') as p_emp_status,isnull(EmployeeName,'') as EmployeeName,isnull(p_emp_linkphone,'') as p_emp_linkphone,isnull(p_emp_email,'') as p_emp_email from P_EmployeeTab";
|
||||
DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
sqlValue = "select isnull(LoginAccount,'') as LoginAccount,isnull(UseFlag,0) as UseFlag from P_EmployeeTab";
|
||||
DataTable useFlagTab = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
//人员信息对照表
|
||||
sqlValue = "select * from P_EmployeeTab_temp";
|
||||
DataTable lastimportDt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
//有差别的数据 差集
|
||||
DataTable changeContent = dt.Clone();
|
||||
IEnumerable<DataRow> QCJ = dt.Select().AsEnumerable().Except(lastimportDt.Select().AsEnumerable(), DataRowComparer.Default);
|
||||
try
|
||||
{
|
||||
DataTable jg = QCJ.CopyToDataTable();
|
||||
changeContent = jg;
|
||||
|
||||
//sqlValue = "select LoginAccount,Password,p_emp_status,EmployeeName,p_emp_linkphone,p_emp_email from P_EmployeeTab where LoginAccount='09998'";
|
||||
//changeContent = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
}
|
||||
catch (System.InvalidOperationException ex) //如果差集为null,就回进当前报错
|
||||
{
|
||||
changeContent = dt.Clone();
|
||||
}
|
||||
finally
|
||||
{
|
||||
//更改表格列名
|
||||
changeContent.Columns["LoginAccount"].ColumnName = "userName";
|
||||
changeContent.Columns["Password"].ColumnName = "password";
|
||||
changeContent.Columns["p_emp_status"].ColumnName = "status";
|
||||
changeContent.Columns["EmployeeName"].ColumnName = "trueName";
|
||||
changeContent.Columns["p_emp_linkphone"].ColumnName = "phone";
|
||||
changeContent.Columns["p_emp_email"].ColumnName = "email";
|
||||
}
|
||||
|
||||
string tokenName = "09998";
|
||||
string token = GetToken();
|
||||
|
||||
try
|
||||
{
|
||||
foreach (DataRow item in changeContent.Rows)
|
||||
{
|
||||
string statusStr = item["status"] + "";
|
||||
//判断更改状态
|
||||
string loginAccount = item["userName"] + "";
|
||||
DataTable selectTab = SqlHelper.ExecuteDataTable(string.Format("select * from P_EmployeeTab_temp where LoginAccount='{0}'", loginAccount));
|
||||
if (selectTab.Rows.Count == 0)
|
||||
{
|
||||
item["status"] = "1";
|
||||
}
|
||||
else
|
||||
{
|
||||
string useFlag = useFlagTab.Select(string.Format("LoginAccount='{0}'", loginAccount))[0]["UseFlag"] + "";
|
||||
DataRow selectRow = selectTab.Rows[0];
|
||||
if ((item["status"] + "").Equals("离职") || useFlag.Equals("0") || useFlag.Equals(""))
|
||||
{
|
||||
item["status"] = "3";
|
||||
}
|
||||
else
|
||||
{
|
||||
item["status"] = "2";
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(token))
|
||||
{
|
||||
string jsonObj = JsonUtil.ToJsonObject(item);
|
||||
newResponseMode newmode = ExecutePost(tokenName, token, jsonObj);
|
||||
|
||||
//修改对比表数据
|
||||
sqlValue = string.Format(@"if(select 1 from P_EmployeeTab_temp where LoginAccount='{0}')=1
|
||||
begin
|
||||
update P_EmployeeTab_temp set Password = '{1}', p_emp_status = '{2}',EmployeeName='{3}',p_emp_linkphone='{4}',p_emp_email='{5}' where LoginAccount='{0}';
|
||||
end else
|
||||
begin
|
||||
insert into P_EmployeeTab_temp(LoginAccount,Password,p_emp_status,EmployeeName,p_emp_linkphone,p_emp_email) values('{0}', '{1}', '{2}','{3}','{4}','{5}')
|
||||
end
|
||||
", item["userName"], item["password"], statusStr, item["trueName"], item["phone"], item["email"]);
|
||||
SqlHelper.ExecuteNonQuery(sqlValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RefreshLogUIThread(DateTime.Now + string.Format(" 人员账号信息,信息读取失败.\r\n" + " 原因:" + ex.Message + Environment.NewLine));
|
||||
}
|
||||
RefreshLogUIThread(DateTime.Now + "人员账号信息 同步完成.\r\n");
|
||||
RefreshLogUIThread("--------------------分割线------------------------\r\n");
|
||||
}
|
||||
private newResponseMode ExecutePost(string tokenName, string token, string jsonStr, int num = 0)
|
||||
{
|
||||
string url = "http://110.185.210.70:8881/auth/sys/users/thirdPlatformData?userDb=ditoo&username={0}&token={1}";
|
||||
url = string.Format(url, tokenName, token);
|
||||
string jsonObj = jsonStr;
|
||||
string newDeljson = jsonObj.Substring(1, jsonObj.Length - 2);
|
||||
newResponseMode newmode = NewEmp.newPostMethodToObj(url, newDeljson);
|
||||
if (newmode.msg.Equals("token验证失败,请重新登录!"))
|
||||
{
|
||||
if (num < 10)
|
||||
{
|
||||
num += 1;
|
||||
token = GetToken();
|
||||
newmode = ExecutePost(tokenName, token, jsonStr, num);
|
||||
}
|
||||
else
|
||||
{
|
||||
return newmode;
|
||||
}
|
||||
}
|
||||
return newmode;
|
||||
}
|
||||
private string GetToken()
|
||||
{
|
||||
string token = string.Empty;
|
||||
string tokenUrl = "http://110.185.210.70:8881/auth/sys/users/thirdPlatformData/login?userDb=ditoo";//获得令牌
|
||||
string tokenSqlStr = "select isnull(LoginAccount,'') as LoginAccount,isnull(Password,'') as Password,isnull(p_emp_status,'') as p_emp_status,isnull(EmployeeName,'') as EmployeeName,isnull(p_emp_linkphone,'') as p_emp_linkphone,isnull(p_emp_email,'') as p_emp_email from P_EmployeeTab where LoginAccount='09998'";
|
||||
DataTable tokenTab = SqlHelper.ExecuteDataTable(tokenSqlStr);
|
||||
DataRow tokenRow = null;
|
||||
if (tokenTab.Rows.Count > 0)
|
||||
{
|
||||
tokenRow = tokenTab.Rows[0];
|
||||
}
|
||||
if (tokenRow != null)
|
||||
{
|
||||
string tokenName = tokenRow["LoginAccount"] + "";
|
||||
string tokenPassWord = tokenRow["Password"] + "";
|
||||
string tokenJson = string.Format("\"userName\":\"{0}\",\"password\":\"{1}\"", tokenName, tokenPassWord);//sbs@4433 item["password"] + ""
|
||||
tokenJson = "{" + tokenJson + "}";
|
||||
newResponseMode mode = NewEmp.newPostMethodToObj(tokenUrl, tokenJson);
|
||||
if (mode.data != null)
|
||||
{
|
||||
token = mode.data.token;
|
||||
}
|
||||
}
|
||||
return token;
|
||||
}
|
||||
/// <summary>
|
||||
/// 同步事件 维修状态
|
||||
/// </summary>
|
||||
private void SynchronizeStatus()
|
||||
{
|
||||
//当前最新的维修状态信息
|
||||
string sqlValue = @"
|
||||
select sbnumber as 'jtBillNo',isrepair,COALESCE((
|
||||
select top 1 Ema_wx_wxman
|
||||
from EMA_WxMaintab a left
|
||||
join p_departmenttab b on a.Ema_wx_departmentid = b.Departmentid
|
||||
where 1 = 1
|
||||
and isnull(Ema_wx_Affirmer, 0) <> 0
|
||||
and ISNULL(Ema_wx_stepcode, '') > 100 and Ema_wx_sbnumber = sbnumber order by Ema_wx_operatedate desc
|
||||
) ,'')as 'ema_wx_wxman',
|
||||
COALESCE((
|
||||
select top 1 case when Ema_wx_receiveflag=1 then '维修中'
|
||||
when Ema_wx_receiveflag=2 then '完工'
|
||||
when Ema_wx_receiveflag=3 then '暂停'
|
||||
else '未开工' end
|
||||
from EMA_WxMaintab a left
|
||||
join p_departmenttab b on a.Ema_wx_departmentid = b.Departmentid
|
||||
where 1 = 1
|
||||
and isnull(Ema_wx_Affirmer, 0) <> 0
|
||||
and ISNULL(Ema_wx_stepcode, '') > 100 and Ema_wx_sbnumber = sbnumber order by Ema_wx_operatedate desc
|
||||
) ,'')as 'stateOfRepair'
|
||||
from(select a.*
|
||||
,case when sbnumber in (select Ema_wx_sbnumber from EMA_WxMaintab where Ema_wx_receiveflag = 1) then '是'
|
||||
else '' end as isrepair
|
||||
,case when sbnumber in (select ema_sbnumber from EMA_stopTab where ema_type = '停用' ) then '停用'
|
||||
when sbnumber in (select ema_pst_number from EMA_ScrapTab ) then '报废'
|
||||
when sbnumber in (select Ema_wx_sbnumber from EMA_WxMaintab where isnull(Ema_wx_receiveflag,0) = 0) then '待修'
|
||||
else '启用' end as Usage
|
||||
from Wms_toolsTab a where 1 = 1
|
||||
) a where 1 = 1 ";
|
||||
|
||||
//2022-1-20 zj让把Ema_wx_receiveflag 改为isnull(Ema_wx_receiveflag,0) 改前是按照设备档案sql查询
|
||||
DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
//上一次同步时的维修信息
|
||||
sqlValue = "select * from lastimport_repair";
|
||||
DataTable lastimportDt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
//有差别的数据 差集
|
||||
DataTable changeContent = dt.Clone();
|
||||
IEnumerable<DataRow> QCJ = dt.Select().AsEnumerable().Except(lastimportDt.Select().AsEnumerable(), DataRowComparer.Default);
|
||||
try
|
||||
{
|
||||
DataTable jg = QCJ.CopyToDataTable();
|
||||
changeContent = jg;
|
||||
}
|
||||
catch (System.InvalidOperationException ex) //如果差集为null,就回进当前报错
|
||||
{
|
||||
changeContent = dt.Clone();
|
||||
}
|
||||
|
||||
string url = "http://110.185.210.70:8881/business/receive/maintainRecord";
|
||||
try
|
||||
{
|
||||
foreach (DataRow item in changeContent.Rows)
|
||||
{
|
||||
string ema_wx_wxman = item["ema_wx_wxman"].ToString();
|
||||
string name = (ema_wx_wxman.Split(','))[0];//维修人只传第一个
|
||||
item["ema_wx_wxman"] = name;
|
||||
|
||||
string jtBillNo = item["jtBillNo"].ToString();
|
||||
string newjtBillNo = jtBillNo.Trim();
|
||||
item["jtBillNo"] = newjtBillNo;
|
||||
|
||||
string jsonObj = JsonUtil.ToJsonObject(item);
|
||||
string deljson = jsonObj.Substring(1, jsonObj.Length - 2);
|
||||
|
||||
ResponseMode mode = NewEmp.PostMethodToObj(url, deljson);
|
||||
item["ema_wx_wxman"] = ema_wx_wxman;
|
||||
item["jtBillNo"] = jtBillNo;
|
||||
if (mode != null && 0 == mode.ret)
|
||||
{
|
||||
//修改上一次查询表的数据,根据是否存在编号去修改或新增
|
||||
sqlValue = string.Format(@"if(select 1 from lastimport_repair where jtBillNo='{0}')=1
|
||||
begin
|
||||
update lastimport_repair set isrepair = '{1}', ema_wx_wxman = '{2}',stateOfRepair='{3}' where jtBillNo='{0}';
|
||||
end else
|
||||
begin
|
||||
insert into lastimport_repair(jtBillNo, isrepair, ema_wx_wxman,stateOfRepair) values('{0}', '{1}', '{2}','{3}')
|
||||
end",
|
||||
item["jtBillNo"], item["isrepair"], item["ema_wx_wxman"], item["stateOfRepair"]);
|
||||
SqlHelper.ExecuteNonQuery(sqlValue);
|
||||
string updareabak = DateTime.Now + string.Format(" 维修状态{0} 信息同步成功.\r\n", item["jtBillNo"]);
|
||||
RefreshLogUIThread(updareabak);
|
||||
}
|
||||
else
|
||||
{
|
||||
string errorMsg = mode != null ? mode.msg : "未知原因.";
|
||||
RefreshLogUIThread(DateTime.Now + string.Format(" 维修状态,信息读取失败,错误原因:{0}.\r\n", errorMsg));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RefreshLogUIThread(DateTime.Now + string.Format(" 维修状态,信息读取失败.\r\n" + " 原因:" + ex.Message + Environment.NewLine));
|
||||
}
|
||||
RefreshLogUIThread(DateTime.Now + "维修状态 同步完成.\r\n");
|
||||
RefreshLogUIThread("--------------------分割线------------------------\r\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 同步事件 加工参数
|
||||
/// </summary>
|
||||
private void SynchronousMachiningParameter()
|
||||
{
|
||||
//当前最新的加工参数数据
|
||||
string sqlValue = @"select wms_ep_ProductId,wms_ep_mojuid,isnull(wms_ep_bzlhwd,0)as wms_ep_bzlhwd ,isnull(wms_ep_lhwdgc,0)as wms_ep_lhwdgc,
|
||||
isnull(wms_ep_lhtime,0)as wms_ep_lhtime,isnull(wms_ep_sjgc,0)as wms_ep_sjgc,isnull(wms_ep_lhyl,0)as wms_ep_lhyl,
|
||||
isnull(wms_ep_ylgc,0)as wms_ep_ylgc,isnull(wms_ep_bzedwd,0)as wms_ep_bzedwd,isnull(wms_ep_edwdgc,0)as wms_ep_edwdgc,
|
||||
isnull(wms_ep_bzedtime,0)as wms_ep_bzedtime,isnull(wms_ep_edsjgc,0)as wms_ep_edsjgc,isnull(wms_ep_bzedwd2,0)as wms_ep_bzedwd2,
|
||||
isnull(wms_ep_edwdgc2,0)as wms_ep_edwdgc2,isnull(wms_ep_bzedtime2,0)as wms_ep_bzedtime2,isnull(wms_ep_edsjgc2,0)as wms_ep_edsjgc2,
|
||||
isnull(wms_ep_bzedwd3,0)as wms_ep_bzedwd3,isnull(wms_ep_edwdgc3,0)as wms_ep_edwdgc3,isnull(wms_ep_bzedtime3,0)as wms_ep_bzedtime3,
|
||||
isnull(wms_ep_edsjgc3,0)as wms_ep_edsjgc3,isnull(wms_ep_bzedwd4,0)as wms_ep_bzedwd4,isnull(wms_ep_edwdgc4,0)as wms_ep_edwdgc4,
|
||||
isnull(wms_ep_bzedtime4,0)as wms_ep_bzedtime4,isnull(wms_ep_edsjgc4,0)as wms_ep_edsjgc4,isnull(wms_ep_jfdy,0)as wms_ep_jfdy,
|
||||
isnull(wms_ep_nyz,0)as wms_ep_nyz,isnull(wms_ep_nytime,0)as wms_ep_nytime,isnull(wms_ep_yl1,0)as wms_ep_yl1,isnull(wms_ep_yl2,0)as wms_ep_yl2,
|
||||
isnull(wms_ep_yl3,0)as wms_ep_yl3,isnull(wms_ep_yl4,0)as wms_ep_yl4,isnull(wms_ep_yl5,0)as wms_ep_yl5,isnull(wms_ep_yl6,0)as wms_ep_yl6,
|
||||
isnull(wms_ep_yl7,0)as wms_ep_yl7,isnull(wms_ep_yl8,0)as wms_ep_yl8,isnull(wms_ep_yl9,0)as wms_ep_yl9,isnull(wms_ep_yl10,0)as wms_ep_yl10
|
||||
from wms_Equipmentparameterstab";
|
||||
DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
// 上一次同步时物料加工标准参数
|
||||
sqlValue = @"select wms_ep_ProductId,wms_ep_mojuid,wms_ep_bzlhwd,wms_ep_lhwdgc,wms_ep_lhtime,wms_ep_sjgc,wms_ep_lhyl,wms_ep_ylgc,
|
||||
wms_ep_bzedwd,wms_ep_edwdgc,wms_ep_bzedtime,wms_ep_edsjgc,wms_ep_bzedwd2,wms_ep_edwdgc2,wms_ep_bzedtime2,wms_ep_edsjgc2,
|
||||
wms_ep_bzedwd3,wms_ep_edwdgc3,wms_ep_bzedtime3,wms_ep_edsjgc3,wms_ep_bzedwd4,wms_ep_edwdgc4,wms_ep_bzedtime4,wms_ep_edsjgc4,
|
||||
wms_ep_jfdy,wms_ep_nyz,wms_ep_nytime,wms_ep_yl1,wms_ep_yl2,wms_ep_yl3,wms_ep_yl4,wms_ep_yl5,wms_ep_yl6,wms_ep_yl7,wms_ep_yl8,
|
||||
wms_ep_yl9,wms_ep_yl10
|
||||
from lastimport_machining";
|
||||
DataTable LastTimeDt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
//需要同步的数据
|
||||
DataTable changeContent = dt.Clone();
|
||||
//差集
|
||||
IEnumerable<DataRow> QCJ = dt.Select().AsEnumerable().Except(LastTimeDt.Select().AsEnumerable(), DataRowComparer.Default);
|
||||
string url = "http://110.185.210.70:8881/business/receive/productionStandard";
|
||||
try
|
||||
{
|
||||
DataTable jg = QCJ.CopyToDataTable();
|
||||
changeContent = jg;
|
||||
}
|
||||
catch (System.InvalidOperationException ex) //如果差集为null,就回进当前报错
|
||||
{
|
||||
changeContent = dt.Clone();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
foreach (DataRow item in changeContent.Rows)
|
||||
{
|
||||
string updateSql = "update {0} set {1} where {2}='{3}';";
|
||||
string insertSql = "insert into {0}({1}) values({2});";
|
||||
string updateFields = string.Empty;
|
||||
string insertFields = string.Empty;
|
||||
string insertValues = string.Empty;
|
||||
|
||||
string jsonObj = JsonUtil.ToJsonObject(item);
|
||||
string deljson = jsonObj.Substring(1, jsonObj.Length - 2);
|
||||
ResponseMode mode = NewEmp.PostMethodToObj(url, deljson);
|
||||
if (mode != null && 0 == mode.ret)
|
||||
{
|
||||
//判断对照表中是否存在相同编码
|
||||
DataRow[] dr = LastTimeDt.Select("wms_ep_ProductId" + "='" + item["wms_ep_ProductId"] + "'");
|
||||
bool isupdate = dr.Length == 1 ? true : false;
|
||||
//同步数据到对照表中
|
||||
foreach (DataColumn column in changeContent.Columns)
|
||||
{
|
||||
if (isupdate)
|
||||
{
|
||||
//修改语句
|
||||
if (!column.ColumnName.Equals("wms_ep_ProductId"))
|
||||
{
|
||||
if (column.DataType == typeof(Decimal) || column.DataType == typeof(Int32))
|
||||
{
|
||||
updateFields += string.Format("[{0}]='{1}',", column.ColumnName, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateFields += string.Format("[{0}]='{1}',", column.ColumnName, (item[column.ColumnName] + "").Replace("'", "''"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//新增语句
|
||||
string fieldValue = string.Empty;
|
||||
fieldValue = (item[column.ColumnName] + "").Replace("'", "''");
|
||||
insertFields += "[" + column.ColumnName + "],";
|
||||
if (!string.IsNullOrWhiteSpace(fieldValue))
|
||||
{
|
||||
insertValues += column.DataType == typeof(DateTime) ? "'" + Convert.ToDateTime(fieldValue).ToString("yyyy-MM-dd HH:mm:ss") + "'," : "'" + fieldValue + "',";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (column.DataType == typeof(Decimal) || column.DataType == typeof(Int32))
|
||||
insertValues += "0,";
|
||||
else if (column.DataType == typeof(DateTime))
|
||||
insertValues += "NULL,";
|
||||
else
|
||||
insertValues += "'',";
|
||||
}
|
||||
}
|
||||
}
|
||||
updateFields = updateFields.TrimEnd(',');
|
||||
insertFields = insertFields.TrimEnd(',');
|
||||
insertValues = insertValues.TrimEnd(',');
|
||||
|
||||
if (!string.IsNullOrEmpty(updateFields))
|
||||
{
|
||||
sqlValue = string.Format(updateSql, "lastimport_machining", updateFields, "wms_ep_ProductId", item["wms_ep_ProductId"]);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(insertFields))
|
||||
{
|
||||
sqlValue = string.Format(insertSql, "lastimport_machining", insertFields, insertValues);
|
||||
}
|
||||
SqlHelper.ExecuteNonQuery(sqlValue);
|
||||
string updareabak = DateTime.Now + string.Format(" 加工参数{0} 信息同步成功.\r\n", item["wms_ep_ProductId"]);
|
||||
RefreshLogUIThread(updareabak);
|
||||
}
|
||||
else
|
||||
{
|
||||
string errorMsg = mode != null ? mode.msg : "未知原因.";
|
||||
RefreshLogUIThread(DateTime.Now + string.Format(" 加工参数 信息读取失败,错误原因:{0}.\r\n", errorMsg));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RefreshLogUIThread(DateTime.Now + string.Format("加工参数 信息读取失败.\r\n" + " 原因:" + ex.Message + Environment.NewLine));
|
||||
}
|
||||
RefreshLogUIThread(DateTime.Now + "加工参数 同步完成.\r\n");
|
||||
RefreshLogUIThread("--------------------分割线------------------------\r\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 同步事件 工单明细信息
|
||||
/// </summary>
|
||||
private void SynchronizeWorkOrder()
|
||||
{
|
||||
// string sqlValue = @"select mrp_lwt_id,mrp_lwt_workno ,mrp_lwt_workordername ,stdt,
|
||||
//(select (CASE mrp_lwt_workordername WHEN '硫化' THEN (select mrp_lwt_beforeAmount) ELSE( select (mrp_lwt_kxamount1+mrp_lwt_kxamount2 +mrp_lwt_kxamount3) as 'mrp_lwt_kxamount' from mrp_WorkTaskListTab where mrp_lwt_workno = a.mrp_lwt_workno and mrp_lwt_workordername=a.mrp_lwt_workordername and mrp_lwt_ProductId=a.mrp_lwt_ProductId and mrp_lwt_id=a.mrp_lwt_id )END )) as'mrp_lwt_beforeAmount',
|
||||
//--mrp_lwt_beforeAmount,
|
||||
// enddt,mrp_lwt_AfterAmount,mrp_lwt_badamount,
|
||||
// (select EmployeeName from p_employeetab where employeeid = mrp_lwt_publishOper) as mrp_lwt_publishOper,
|
||||
// mrp_lwt_ProductId,
|
||||
// (select mrp_mwt_appellation from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)as 'mrp_mwt_appellation',
|
||||
|
||||
//(select (CASE mrp_lwt_workordername WHEN '硫化' THEN (select jtBillNo from Mps_MachineSetTab where id =(select mrp_mwt_machine from mrp_worktaskmaintab where mrp_mwt_workno = a.mrp_lwt_workno)) ELSE( select mrp_lwt_kaoxiang1 from mrp_WorkTaskListTab where mrp_lwt_workno = a.mrp_lwt_workno and mrp_lwt_workordername=a.mrp_lwt_workordername and mrp_lwt_ProductId=a.mrp_lwt_ProductId and mrp_lwt_id=a.mrp_lwt_id )END )) as'jtBillNo',
|
||||
//(select (CASE mrp_lwt_workordername WHEN '硫化' THEN (select jtname from Mps_MachineSetTab where id =(select mrp_mwt_machine from mrp_worktaskmaintab where mrp_mwt_workno = a.mrp_lwt_workno)) ELSE( select jtname from Mps_MachineSetTab where jtBillNo =(select mrp_lwt_kaoxiang1 from mrp_WorkTaskListTab where mrp_lwt_workno = a.mrp_lwt_workno and mrp_lwt_workordername=a.mrp_lwt_workordername and mrp_lwt_ProductId=a.mrp_lwt_ProductId and mrp_lwt_id=a.mrp_lwt_id ))END )) as'jtname',
|
||||
// --(select jtBillNo from Mps_MachineSetTab where id =(select CASE mrp_lwt_workordername WHEN '硫化' THEN mrp_mwt_machine ELSE mrp_mwt_str3 END from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)) as 'jtBillNo',
|
||||
// --(select jtname from Mps_MachineSetTab where id =(select CASE mrp_lwt_workordername WHEN '硫化' THEN mrp_mwt_machine ELSE mrp_mwt_str3 END from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)) as 'jtname',
|
||||
//SyncFlag,
|
||||
// (select mrp_mwt_comid from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)as 'comid',
|
||||
// (select mrp_mwt_finish from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)as 'finish'
|
||||
// from(
|
||||
// select
|
||||
// *, DATEDIFF(minute, a.mrp_lwt_starttime, a.mrp_lwt_endtime) / 60 as betweenTime
|
||||
// ,case when isnull(mrp_lwt_glgx, '') = '' then b.mes_list_glgx else mrp_lwt_glgx end as glgx
|
||||
// from mrp_WorkTaskListTab a with(nolock)
|
||||
// left join(
|
||||
// select mes_list_no, mes_List_Name , mes_list_glgx from mes_fl_list with(nolock)
|
||||
// where isnull(sign,0)= 0
|
||||
// ) b on b.mes_list_no = a.mrp_lwt_prolistno
|
||||
// left join(
|
||||
// select a.workno, a.taskid, MIN(optime) stdt, max(opendtime) enddt
|
||||
// from mrp_worktaskoptimetab a
|
||||
// group by a.workno, a.taskid
|
||||
// ) aa on a.mrp_lwt_workno = aa.workno and a.mrp_lwt_id = aa.taskid
|
||||
// where 1 = 1
|
||||
// ) a where 1 = 1 and (mrp_lwt_workordername = '硫化' or mrp_lwt_workordername = '二段硫化') and ISNULL(SyncFlag,0)<>1 ";
|
||||
//and stdt > '2021-11-19' and mrp_lwt_workno='CCP202201170056' and ISNULL(SyncFlag,0)<>1
|
||||
|
||||
|
||||
string sqlValue = @"select mrp_lwt_id,mrp_lwt_workno ,mrp_lwt_workordername ,stdt,
|
||||
(select (CASE mrp_lwt_workordername WHEN '硫化' THEN (select mrp_lwt_beforeAmount) ELSE( select (mrp_lwt_kxamount1+mrp_lwt_kxamount2 +mrp_lwt_kxamount3) as 'mrp_lwt_kxamount' from mrp_WorkTaskListTab where mrp_lwt_workno = a.mrp_lwt_workno and mrp_lwt_workordername=a.mrp_lwt_workordername and mrp_lwt_ProductId=a.mrp_lwt_ProductId and mrp_lwt_id=a.mrp_lwt_id )END )) as'mrp_lwt_beforeAmount',
|
||||
enddt,mrp_lwt_AfterAmount,mrp_lwt_badamount,
|
||||
(select EmployeeName from p_employeetab where employeeid = mrp_lwt_publishOper) as mrp_lwt_publishOper,
|
||||
mrp_lwt_ProductId,
|
||||
(select mrp_mwt_appellation from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)as 'mrp_mwt_appellation',
|
||||
(select (CASE mrp_lwt_workordername WHEN '硫化' THEN (select jtBillNo from Mps_MachineSetTab where id =(select mrp_mwt_machine from mrp_worktaskmaintab where mrp_mwt_workno = a.mrp_lwt_workno)) ELSE( select mrp_lwt_kaoxiang1 from mrp_WorkTaskListTab where mrp_lwt_workno = a.mrp_lwt_workno and mrp_lwt_workordername=a.mrp_lwt_workordername and mrp_lwt_ProductId=a.mrp_lwt_ProductId and mrp_lwt_id=a.mrp_lwt_id )END )) as'jtBillNo',
|
||||
(select (CASE mrp_lwt_workordername WHEN '硫化' THEN (select jtname from Mps_MachineSetTab where id =(select mrp_mwt_machine from mrp_worktaskmaintab where mrp_mwt_workno = a.mrp_lwt_workno)) ELSE( select jtname from Mps_MachineSetTab where jtBillNo =(select mrp_lwt_kaoxiang1 from mrp_WorkTaskListTab where mrp_lwt_workno = a.mrp_lwt_workno and mrp_lwt_workordername=a.mrp_lwt_workordername and mrp_lwt_ProductId=a.mrp_lwt_ProductId and mrp_lwt_id=a.mrp_lwt_id ))END )) as'jtname',
|
||||
SyncFlag,
|
||||
(select mrp_mwt_comid from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)as 'comid',
|
||||
(select mrp_mwt_finish from mrp_worktaskmaintab where mrp_mwt_workno = mrp_lwt_workno)as 'finish'
|
||||
--,mrp_mwt_Start
|
||||
from(
|
||||
select
|
||||
*, DATEDIFF(minute, a.mrp_lwt_starttime, a.mrp_lwt_endtime) / 60 as betweenTime
|
||||
,case when isnull(mrp_lwt_glgx, '') = '' then b.mes_list_glgx else mrp_lwt_glgx end as glgx
|
||||
from mrp_WorkTaskListTab a with(nolock)
|
||||
left join ( select mrp_mwt_Start,mrp_mwt_workno from mrp_worktaskmaintab ) ttt on ttt.mrp_mwt_workno=a.mrp_lwt_workno
|
||||
left join(
|
||||
select mes_list_no, mes_List_Name , mes_list_glgx from mes_fl_list with(nolock)
|
||||
where isnull(sign,0)= 0
|
||||
) b on b.mes_list_no = a.mrp_lwt_prolistno
|
||||
left join(
|
||||
select a.workno, a.taskid, MIN(optime) stdt, max(opendtime) enddt
|
||||
from mrp_worktaskoptimetab a
|
||||
group by a.workno, a.taskid
|
||||
) aa on a.mrp_lwt_workno = aa.workno and a.mrp_lwt_id = aa.taskid
|
||||
where 1 = 1 and mrp_mwt_Start=1
|
||||
) a where 1 = 1 and (mrp_lwt_workordername = '硫化' or mrp_lwt_workordername = '二段硫化') and ISNULL(SyncFlag,0)<>1";
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
DataTable dt = SqlHelper.ExecuteDataTable(sqlValue);
|
||||
|
||||
|
||||
dt.Columns.Remove("SyncFlag");
|
||||
string url = "http://110.185.210.70:8881/business/receive/followWorkOrder";
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(dt.Rows[i]["jtBillNo"]+"")) continue;
|
||||
|
||||
string jsonObj = JsonUtil.ToJsonObject(dt.Rows[i]);
|
||||
string deljson = jsonObj.Substring(1, jsonObj.Length - 2);
|
||||
ResponseMode mode = NewEmp.PostMethodToObj(url, deljson);
|
||||
|
||||
if (mode!=null&&0 == mode.ret)
|
||||
{
|
||||
//有完工时间的行才会改变同步状态
|
||||
if ("1".Equals(dt.Rows[i]["comid"] + "") || "1".Equals(dt.Rows[i]["finish"] + "") || !string.IsNullOrWhiteSpace(dt.Rows[i]["enddt"] + ""))
|
||||
{
|
||||
sqlValue = string.Format("update mrp_WorkTaskListTab set SyncFlag = 1 where mrp_lwt_workno='{0}' and mrp_lwt_workordername='{1}' and mrp_lwt_id='{2}'", dt.Rows[i]["mrp_lwt_workno"], dt.Rows[i]["mrp_lwt_workordername"], dt.Rows[i]["mrp_lwt_id"]);
|
||||
SqlHelper.ExecuteNonQuery(sqlValue);
|
||||
}
|
||||
string updareabak = DateTime.Now + string.Format(" 工单号{0},工序{1} 信息同步成功.\r\n", dt.Rows[i]["mrp_lwt_workno"], dt.Rows[i]["mrp_lwt_workordername"]);
|
||||
RefreshLogUIThread(updareabak);
|
||||
}
|
||||
else
|
||||
{
|
||||
string errorMsg = mode != null ? mode.msg : "未知原因.";
|
||||
RefreshLogUIThread(DateTime.Now + string.Format("工单明细信息 信息读取失败,错误原因:{0}.\r\n", errorMsg));
|
||||
}
|
||||
}
|
||||
|
||||
////删除或者取消下发的工单信息。 SyncFlag标识 0还未同步 1正在同步 2同步成功
|
||||
//RefreshLogUIThread("正在同步已删除和取消下发工单信息\r\n");
|
||||
//string sqlValue2 = "update DeleteWorkOrderTable set SyncFlag='1' where ISNULL(SyncFlag,0)=0";//
|
||||
//SqlHelper.ExecuteNonQuery(sqlValue2);
|
||||
//sqlValue2 = "select * from DeleteWorkOrderTable where SyncFlag='1'";
|
||||
//DataTable deleteDt = SqlHelper.ExecuteDataTable(sqlValue2);
|
||||
|
||||
|
||||
//deleteDt.Columns.Remove("SyncFlag");
|
||||
////推送程序中删除或取消下发的工单数据
|
||||
//for (int i = 0; i < deleteDt.Rows.Count; i++)
|
||||
//{
|
||||
// string jsonObj = JsonUtil.ToJsonObject(deleteDt.Rows[i]);
|
||||
// string deljson = jsonObj.Substring(1, jsonObj.Length - 2);
|
||||
// deljson = deljson.Replace("\"true\"", "true");
|
||||
// //url = "http://110.185.210.70:8881/business/receive/followWorkOrder";
|
||||
// ResponseMode mode = NewEmp.PostMethodToObj(url, deljson);
|
||||
// if (mode != null && mode.msg.Equals("success"))
|
||||
// {
|
||||
// //修改标识
|
||||
// //sqlValue2 = string.Format("update DeleteWorkOrderTable set SyncFlag='2' where SyncFlag='1' and mrp_lwt_workno='{0}' and mrp_lwt_workordername='{1}'", deleteDt.Rows[i]["mrp_lwt_workno"], deleteDt.Rows[i]["mrp_lwt_workordername"]);
|
||||
// sqlValue2 = string.Format("update DeleteWorkOrderTable set SyncFlag='2' where SyncFlag='1' and mrp_lwt_workno='{0}' and mrp_lwt_workordername='{1}' and mrp_lwt_id='{2}'", deleteDt.Rows[i]["mrp_lwt_workno"], deleteDt.Rows[i]["mrp_lwt_workordername"], deleteDt.Rows[i]["mrp_lwt_id"]);
|
||||
|
||||
// SqlHelper.ExecuteNonQuery(sqlValue2);
|
||||
// }
|
||||
// else if(string.IsNullOrWhiteSpace(deleteDt.Rows[i]["jtBillNo"] +"")&& !string.IsNullOrWhiteSpace(deleteDt.Rows[i]["mrp_lwt_id"] + ""))
|
||||
// {
|
||||
// //如果机器编号未空,则直接算同步成功,不会再次同步
|
||||
// sqlValue2 = string.Format("update DeleteWorkOrderTable set SyncFlag='2' where mrp_lwt_id='{0}'", deleteDt.Rows[i]["mrp_lwt_id"]);
|
||||
// SqlHelper.ExecuteNonQuery(sqlValue2);
|
||||
// }
|
||||
//}
|
||||
//清空删除信息表
|
||||
//sqlValue2 = "delete DeleteWorkOrderTable where SyncFlag='1'";
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RefreshLogUIThread(DateTime.Now + string.Format("工单明细信息 信息读取失败.\r\n" + " 原因:" + ex.Message + Environment.NewLine));
|
||||
}
|
||||
|
||||
|
||||
|
||||
RefreshLogUIThread(DateTime.Now + "工单明细信息 同步完成.\r\n");
|
||||
RefreshLogUIThread("--------------------分割线------------------------\r\n");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台线程刷新数据
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
public void RefreshLogUIThread(string msg)
|
||||
{
|
||||
if (this.IsHandleCreated)
|
||||
{
|
||||
Invoke((EventHandler)delegate
|
||||
{
|
||||
txtLog.Text += msg;
|
||||
txtLog.Select(txtLog.TextLength, 0);
|
||||
txtLog.ScrollToCaret();
|
||||
});
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 后台线程清理数据
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
public void ReClearLogUIThread()
|
||||
{
|
||||
if (this.IsHandleCreated)
|
||||
{
|
||||
Invoke((EventHandler)delegate
|
||||
{
|
||||
txtLog.Clear();
|
||||
});
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 主线程刷新数据
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
public void RefreshLog(string msg)
|
||||
{
|
||||
txtLog.Text += msg;
|
||||
txtLog.Select(txtLog.TextLength, 0);
|
||||
txtLog.ScrollToCaret();
|
||||
}
|
||||
#region 连接服务器
|
||||
/// <summary>
|
||||
/// <para>说明:连接服务器</para>
|
||||
/// <para>创建人:龚宇超</para>
|
||||
/// <para>创建日期:2017-08-09 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
/// <param name="isSave">if set to <c>true</c> [is save].</param>
|
||||
public bool ConnectServer(bool isSave = false)
|
||||
{
|
||||
string serverName = this.txtSeverId.Text.Trim();//地址
|
||||
string dbName = this.txtDataBase.Text.Trim();//数据库名
|
||||
string user = this.txtName.Text.Trim();//用户名
|
||||
string password = this.txtPassword.Text.Trim();//密码
|
||||
|
||||
if (string.IsNullOrWhiteSpace(serverName))
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.ServerNameIsNull);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(dbName))
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.ServerDBIsNull);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(user))
|
||||
{
|
||||
MessageUtil.Show("请重新输入用户名");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// 测试数据库连接
|
||||
try
|
||||
{
|
||||
if (ConnectingToDatabase())
|
||||
{
|
||||
if (isSave)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
IniUtil.IniWriteValue(company, "serverName", serverName);
|
||||
IniUtil.IniWriteValue(company, "dbName", dbName);
|
||||
IniUtil.IniWriteValue(company, "user", user);
|
||||
IniUtil.IniWriteValue(company, "password", password);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.ConnectFault);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.ConnectFault);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:创建数据库连接</para>
|
||||
/// <para>创建人:龚宇超</para>
|
||||
/// <para>创建日期:2017-08-07 </para>
|
||||
/// <para>修改人:</para>
|
||||
/// <para>修改日期:</para>
|
||||
/// <para>修改备注:</para>
|
||||
/// <para>版本:1.0</para>
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
||||
public bool ConnectingToDatabase()
|
||||
{
|
||||
string connStr = GetConnection();
|
||||
if (SqlHelper._connection != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
SqlHelper._connection.Close();
|
||||
SqlHelper._connection.Dispose();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
SqlHelper._connection = null;
|
||||
}
|
||||
try
|
||||
{
|
||||
SqlHelper._connection = new SqlConnection(connStr);
|
||||
SqlHelper._connection.Open();
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// LogHelper.Instance.WriteLog(ex.Message);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取连接服务器的字符串
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string GetConnection()
|
||||
{
|
||||
return string.Format("Server={0};Database={1};Persist Security Info=True;User ID={2};Password={3};Connection Timeout=5;MultipleActiveResultSets=true", txtSeverId.Text.ToString(), txtDataBase.Text.ToString(), txtName.Text.ToString(), txtPassword.Text.ToString());
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user