using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Configuration.ConfigurationManager;
using static System.Windows.Forms.LinkLabel;
///
///
///
namespace SYNC_SAP_MES
{
///
///
///
public partial class FormSAP : Form
{
///
///
///
static string Curr_OrderNo = "";
static string Split_OrderNo = "";
static string Split_Order = "";
///
///
///
public FormSAP()
{
InitializeComponent();
PP.ConnectionString = AppSettings["ConnectionString"];
timer_OnLine_Show.Enabled = true;
dtPicker_SyncDate.Value = DateTime.Now;
}
///
/// 显示通讯状态
///
private void Show_OnLineState()
{
//状态显示
OnLineStatus_Check();
OnLineState_C(pb_OnLine_Sql, PP.OnLine_Sql);
OnLineState_C(pb_OnLine_SAP, PP.OnLine_SAP);
}
///
/// 显示通讯状态
///
///
///
private void OnLineState_C(PictureBox pb, bool onLine)
{
pb.Image = onLine ? global::SYNC_SAP_MES.Properties.Resources.连接
: global::SYNC_SAP_MES.Properties.Resources.断开连接;
}
private static bool Ping(string ip)
{
return new Ping().Send(ip).Status == IPStatus.Success ? true : false;
}
public static void OnLineStatus_Check()
{
try
{
PP.OnLine_Sql = SqlOperation.ExecuteSql("select getdate()", out DataTable dt, out string error);
}
catch (Exception err)
{
PP.OnLine_Sql = false;
}
try
{
//PP.OnLine_SAP = READ_SAP.GetMCode().Rows.Count > 0 ? true : false;
PP.OnLine_SAP = Ping("mes4api.weichai.com");
}
catch (Exception err)
{
PP.OnLine_SAP = false;
}
}
///
///
///
///
///
private void timer_OnLine_Show_Tick(object sender, EventArgs e)
{
timer_OnLine_Show.Enabled = false;
Show_OnLineState();
if (!chk_syncModel.Checked && DateTime.Now.Date > dtPicker_SyncDate.Value.Date)
{
dtPicker_SyncDate.Value = DateTime.Now;
SyncFunc_From_SAP.SyncDate = dtPicker_SyncDate.Value.ToString("yyyy-MM-dd");
}
timer_OnLine_Show.Enabled = true;
}
///
///
///
///
///
private void btn_ManualSync_Click(object sender, EventArgs e)
{
if (SyncFunc_From_SAP.IsSyncing)
{
PP.main.ShowError("您正在同步计划数据,不能重复操作!");
return;
}
if (MessageBox.Show("确认手动同步计划数据吗?", "确认提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
SyncFunc_From_SAP.SyncDataOperationTask("手动同步");
}
}
///
///
///
private int count = 0;
///
///
///
public void ReInit()
{
count = 0;
if (lb_ErrCount.InvokeRequired)
{
lb_ErrCount.Invoke(new Action(delegate ()
{
lb_ErrCount.Text = "消息数量:" + 0.ToString();
}));
}
else
{
lb_ErrCount.Text = "消息数量:" + 0.ToString();
}
if (txt_Err.InvokeRequired)
{
txt_Err.Invoke(new Action(delegate ()
{
txt_Err.Clear();
}));
}
else
{
txt_Err.Clear();
}
}
///
///
///
///
public void ShowError(string s)
{
count++;
if (count > 3000) ReInit();
if (lb_ErrCount.InvokeRequired)
{
lb_ErrCount.Invoke(new Action(delegate ()
{
lb_ErrCount.Text = "消息数量:" + count.ToString();
}));
}
else
{
lb_ErrCount.Text = "消息数量:" + count.ToString();
}
if (txt_Err.InvokeRequired)
{
txt_Err.Invoke(new Action(delegate ()
{
txt_Err.AppendText(count.ToString("000000") + " [ " + DateTime.Now.ToString("G") + " ] " + s + "\r\n");
txt_Err.ScrollToCaret();
// SlMesDbIterface.LogRecord.Insert_Log(SlMesDbIterface.LogRecord.Type_Log.Tip, s);
}));
}
else
{
txt_Err.AppendText(count.ToString("000000") + " [ " + DateTime.Now.ToString("G") + " ] " + s + "\r\n");
txt_Err.ScrollToCaret();
// SlMesDbIterface.LogRecord.Insert_Log(SlMesDbIterface.LogRecord.Type_Log.Tip, s);
}
}
///
///
///
///
///
private void btn_ManualCheck_Click(object sender, EventArgs e)
{
SyncFunc_From_SAP.OnLineStatus_Check();
}
///
///
///
///
///
private void btn_Refresh_MesPlan_Click(object sender, EventArgs e)
{
DateTime SearchDate= dtPicker_MES.Value;
//Sql_Biz_SAP.Get_MesPlan(SearchDate, out DataTable table_Plan);
////Sql_Biz_SAP.Get_MesSpiltPlan(DateTime.Parse("2024-01-04"), out DataTable table_Plan);
//dgv_MesPlan.DataSource = table_Plan;
//var dateDay = dtp_yyyyMMdd.Value;
//var line = txt_Line.Text;
//var table = READ_SAP.GetPlan(dateDay, line);
//dgv_SAPPlan.DataSource = table;
//label_Count_Plan.Text = $"数量:{table.Rows.Count}";
//if (cb_SaveFile.Checked)
//{
// var str = JsonConvert.SerializeObject(table);
// File.WriteAllText("Plan.json", str);
//}
//dgv_SpiltPlan.DataSource=null;
//dgv_MesOrderNo_BOM.DataSource = null;
}
private void FormSAP_Load(object sender, EventArgs e)
{
SyncFunc_From_SAP.SyncTask_SAP();
}
private void btn_ManualSync_Plan_Click(object sender, EventArgs e)
{
}
private void btn_ManualSync_PlanBOM_Click(object sender, EventArgs e)
{
//var dlg = new D_Sure();
//if (dlg.ShowDialog() == DialogResult.OK)
//{
// //3.同步订单BOM
// var success_BOM = SyncFunc_From_SAP.Move_SAP_To_MES_Order_BOM(Curr_OrderNo);
// PP.main.ShowError($"【手动强制】{Curr_OrderNo}订单BOM同步完成!\r\n");
// MessageBox.Show("【手动强制】订单BOM同步成功!");
//}
}
private void button3_Click_1(object sender, EventArgs e)
{
DateTime startdate = DateTime.Parse("2024-06-11");
//READ_SAP.GetPlan_Test(startdate, "ZP02");
}
private void btn_Query_Click(object sender, EventArgs e)
{
DateTime SearchDate = dtPicker_ProductDate.Value;
var key_OrderNum=this.txt_OrderNum.Text.Trim();
Sql_Biz_SAP.Get_Mes_ExcutePlan(SearchDate, key_OrderNum, out DataTable table_ExcutePlan);
//Sql_Biz_SAP.Get_MesSpiltPlan(DateTime.Parse("2024-01-04"), out DataTable table_Plan);
dgv_ExcutePlan.DataSource = table_ExcutePlan;
}
private void FormSAP_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确认退出计划同步程序吗?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
{
e.Cancel = true;
}
}
private void chk_syncModel_CheckedChanged(object sender, EventArgs e)
{
btn_ManualSync.Enabled= chk_syncModel.Checked;
}
private void dtPicker_SyncDate_ValueChanged(object sender, EventArgs e)
{
SyncFunc_From_SAP.SyncDate=dtPicker_SyncDate.Value.ToString("yyyy-MM-dd");
}
}
}