using Dongke.IBOSS.PRD.Basics.BaseControls;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Client.CommonModule;
using Dongke.IBOSS.PRD.Client.Controls;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.Proxys;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
namespace Dongke.IBOSS.PRD.Client.SAPDataModule.Hegii
{
public partial class F_SAP_HEGII_0109 : DKDockPanelBase
{
#region 成员变量
private static F_SAP_HEGII_0109 _instance = null;
#endregion
#region 单例模式
///
/// 单例模式,防止重复创建窗体
///
public static F_SAP_HEGII_0109 Instance
{
get
{
if (_instance == null)
{
_instance = new F_SAP_HEGII_0109();
}
return _instance;
}
}
#endregion
#region 构造函数
///
/// 成品SAP日志
///
public F_SAP_HEGII_0109()
{
InitializeComponent();
this.Text = "BPM同步日志";
this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE;
this.tsbtnClose.Text = ButtonText.TSBTN_CLOSE;
this.dgvScrap.AutoGenerateColumns = false;
}
#endregion
#region 事件
///
/// 加载事件
///
///
///
private void F_SAP_HEGII_0109_Load(object sender, EventArgs e)
{
dgvScrap.AutoGenerateColumns = false;
this.dtpDateAgin.Value = DateTime.Now.Date;
this.dtpDateEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
//数据节点数据绑定确认状态
DataTable DataCodeDt = new DataTable();
DataCodeDt.Columns.Add("DataCodeName", typeof(string));
DataCodeDt.Columns.Add("DataCode", typeof(string));
DataRow dr = DataCodeDt.NewRow();
dr["DataCodeName"] = "";
dr["DataCode"] = "-1";
DataCodeDt.Rows.InsertAt(dr, 0);
dr = DataCodeDt.NewRow();
dr["DataCodeName"] = "已确认";
dr["DataCode"] = "1";
DataCodeDt.Rows.InsertAt(dr, 1);
dr = DataCodeDt.NewRow();
dr["DataCodeName"] = "未确认";
dr["DataCode"] = "0";
DataCodeDt.Rows.InsertAt(dr, 2);
this.cbCheckFlag.DisplayMember = "DataCodeName";
this.cbCheckFlag.ValueMember = "DataCode";
this.cbCheckFlag.DataSource = DataCodeDt;
this.cbCheckFlag.SelectedValue = "-1";
//数据节点数据绑定确认状态
DataTable SyncFlagDt = new DataTable();
SyncFlagDt.Columns.Add("DataCodeName", typeof(string));
SyncFlagDt.Columns.Add("DataCode", typeof(string));
DataRow SFdr = SyncFlagDt.NewRow();
SFdr["DataCodeName"] = "";
SFdr["DataCode"] = "-1";
SyncFlagDt.Rows.InsertAt(SFdr, 0);
SFdr = SyncFlagDt.NewRow();
SFdr["DataCodeName"] = "已同步";
SFdr["DataCode"] = "1";
SyncFlagDt.Rows.InsertAt(SFdr, 1);
SFdr = SyncFlagDt.NewRow();
SFdr["DataCodeName"] = "未同步";
SFdr["DataCode"] = "0";
SyncFlagDt.Rows.InsertAt(SFdr, 2);
SFdr = SyncFlagDt.NewRow();
SFdr["DataCodeName"] = "BPM系统审批不通过";
SFdr["DataCode"] = "2";
SyncFlagDt.Rows.InsertAt(SFdr, 3);
this.cbSyncFlag.DisplayMember = "DataCodeName";
this.cbSyncFlag.ValueMember = "DataCode";
this.cbSyncFlag.DataSource = SyncFlagDt;
this.cbSyncFlag.SelectedValue = "-1";
}
///
/// 查询
///
///
///
private void tsbtnSearch_Click(object sender, EventArgs e)
{
this.QueryDataFromOther();
this.tsbtnAdaptive_Click(null, null);
}
///
/// 确认组件报损
///
///
///
private void tsbtnConfirm_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count==0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter= "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
DataRow[] rows = checkedDt.Select("CheckFlagName = '已确认'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "已确认数据不允许再确认");
return;
}
DialogResult dr = MessageBox.Show("是否对所选数据进行确认?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr != System.Windows.Forms.DialogResult.Yes)
{
return;
}
ClientRequestEntity cre = new ClientRequestEntity();
cre.NameSpace = "Hegii";
cre.Name = "SaveConfirmIdnrkScrap";
cre.Data = new DataSet();
cre.Data.Tables.Add(checkedDt);
ServiceResultEntity sre = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cre);
});
if (sre.OtherStatus > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.I_CMN_S_002);
tsbtnSearch_Click(null, null);
}
else
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, sre.Message);
return;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 撤销确认
///
///
///
private void tsbtnUNConfirm_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count == 0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter = "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
DataRow[] rows = checkedDt.Select("CheckFlagName = '未确认'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未确认数据不能撤销");
return;
}
rows = checkedDt.Select("SyncFlagName = '已同步' or SyncFlagName = 'BPM系统审批不通过'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "已同步数据不能撤销");
return;
}
DialogResult dr = MessageBox.Show("是否对所选数据进行撤销?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr != System.Windows.Forms.DialogResult.Yes)
{
return;
}
ClientRequestEntity cre = new ClientRequestEntity();
cre.NameSpace = "Hegii";
cre.Name = "SaveUNConfirmIdnrkScrap";
cre.Data = new DataSet();
cre.Data.Tables.Add(checkedDt);
ServiceResultEntity sre = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cre);
});
if (sre.OtherStatus > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.I_CMN_S_002);
tsbtnSearch_Click(null, null);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 同步
///
///
///
private void tsbtnSynLog_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count == 0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter = "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
DataRow[] rows = checkedDt.Select("CheckFlagName = '未确认'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未确认数据不允许同步");
return;
}
rows = checkedDt.Select("SyncFlagName = '已同步'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "已同步数据不允许同步");
return;
}
DataRow[] Hasrows = checkedDt.Select("incident is not null");
DataRow[] Nonerows = checkedDt.Select("incident is null");
if(Hasrows.Length>0 && Nonerows.Length>0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "BPM拒绝数据和第一次同步数据不能同时推送");
return;
}
if(Hasrows.Length > 0)
{
// 同一bpm流程实例数据是否全部勾选
string ids = ",";
foreach (DataRow item in Hasrows)
{
ids += item["SCRAPID"].ToString() + ",";
}
ClientRequestEntity cres = new ClientRequestEntity();
cres.NameSpace = "Hegii";
cres.Name = "CheckScrap";
cres.Properties["SCRAPIDs"] = ids;
ServiceResultEntity sres = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cres);
});
if (sres.Data.Tables[0]!=null && sres.Data.Tables[0].Rows.Count>0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "BPM拒绝数据再次推送,需勾选全部数据");
return;
}
}
DialogResult dr = MessageBox.Show("是否对所选数据进行同步?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr != System.Windows.Forms.DialogResult.Yes)
{
return;
}
ClientRequestEntity cre = new ClientRequestEntity();
cre.NameSpace = "Hegii";
cre.Name = "SynIdnrkScrap";
cre.Data = new DataSet();
cre.Data.Tables.Add(checkedDt);
ServiceResultEntity sre = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cre);
});
if (sre.OtherStatus > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.I_CMN_S_002);
tsbtnSearch_Click(null, null);
}
else
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, sre.Message);
return;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 撤销同步
///
///
///
private void tsbtnCancelSynLog_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count == 0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter = "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
DataRow[] rows = checkedDt.Select("SyncFlagName <> '已同步'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未同步数据不允许撤销");
return;
}
DataRow[] hasrow = checkedDt.Select("incident is not null");
if (hasrow.Length > 0)
{
// 同一bpm流程实例数据是否全部勾选
string ids = ",";
foreach (DataRow item in hasrow)
{
ids += item["SCRAPID"].ToString() + ",";
}
ClientRequestEntity cres = new ClientRequestEntity();
cres.NameSpace = "Hegii";
cres.Name = "CheckScrap";
cres.Properties["SCRAPIDs"] = ids;
ServiceResultEntity sres = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cres);
});
if (sres.Data.Tables[0] != null && sres.Data.Tables[0].Rows.Count > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "BPM拒绝数据再次推送,需勾选全部数据");
return;
}
}
DialogResult dr = MessageBox.Show("是否对所选数据进行撤销?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr != System.Windows.Forms.DialogResult.Yes)
{
return;
}
ClientRequestEntity cre = new ClientRequestEntity();
cre.NameSpace = "Hegii";
cre.Name = "CancelSynIdnrkScrap";
cre.Data = new DataSet();
cre.Data.Tables.Add(checkedDt);
ServiceResultEntity sre = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cre);
});
if (sre.OtherStatus > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.I_CMN_S_002);
tsbtnSearch_Click(null, null);
}
else
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "BPM系统同步失败!");
return;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 设置成本中心
///
///
///
private void btnSetCostCenter_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count == 0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter = "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
DataRow [] rows = checkedDt.Select("SyncFlagName = '已同步'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "已同步数据不允许修改");
return;
}
F_SAP_HEGII_0110 frmFsap0110 = new F_SAP_HEGII_0110(checkedDt);
DialogResult dialogresult = frmFsap0110.ShowDialog();
if (dialogresult.Equals(DialogResult.OK))
{
this.tsbtnSearch_Click(null, null);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 新建
///
///
///
private void tsbAdd_Click(object sender, EventArgs e)
{
try
{
F_SAP_HEGII_0111 frmMST0202 = new F_SAP_HEGII_0111();
DialogResult dialogResult = frmMST0202.ShowDialog();
if (dialogResult.Equals(DialogResult.OK))
{
this.tsbtnSearch_Click(null, null);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 编辑
///
///
///
private void toolStripButton2_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count == 0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter = "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
else if(checkedDt.Rows.Count >1)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "请选择一条数据");
return;
}
DataRow[] rows = checkedDt.Select("CheckFlagName = '已确认'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "已确认数据不允许修改");
return;
}
int scrapid = Convert.ToInt32(checkedDt.Rows[0]["SCRAPID"]);
F_SAP_HEGII_0111 frmMST0202 = new F_SAP_HEGII_0111(scrapid);
DialogResult dialogResult = frmMST0202.ShowDialog();
if (dialogResult.Equals(DialogResult.OK))
{
this.tsbtnSearch_Click(null, null);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 删除履历
///
///
///
private void tsbDelete_Click(object sender, EventArgs e)
{
try
{
tsrToolStrip1.Focus();
DataTable data = (DataTable)this.dgvScrap.DataSource;
if (data == null || data.Rows.Count == 0)
{
return;
}
DataTable datacp = data.Copy();
datacp.DefaultView.RowFilter = "check1 =1 ";
DataTable checkedDt = datacp.DefaultView.ToTable();
if (checkedDt.Rows.Count == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "未选择任何数据");
return;
}
DataRow[] rows = checkedDt.Select("CheckFlagName = '已确认'");
if (rows.Length > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, "已确认数据不允许删除");
return;
}
DialogResult dr = MessageBox.Show("是否对所选数据进行删除?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr != System.Windows.Forms.DialogResult.Yes)
{
return;
}
ClientRequestEntity cre = new ClientRequestEntity();
cre.NameSpace = "Hegii";
cre.Name = "DeleteIDNRKScrap";
cre.Data = new DataSet();
cre.Data.Tables.Add(checkedDt);
ServiceResultEntity sre = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cre);
});
if (sre.OtherStatus > 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.I_CMN_S_002);
tsbtnSearch_Click(null, null);
}
else
{
DKMessageBox.ShowDialog(this, DKMessageCode.W_CMN_S_004, sre.Message);
return;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 清空条件
///
///
///
private void tsbtnClearCondition_Click(object sender, EventArgs e)
{
this.dtpDateAgin.Value = DateTime.Now.Date;
this.dtpDateEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
this.cbCheckFlag.SelectedValue = "-1";
this.cbSyncFlag.SelectedValue = "-1";
}
///
/// 自适应列宽
///
///
///
private void tsbtnAdaptive_Click(object sender, EventArgs e)
{
this.dgvScrap.AutoResizeColumns();
}
///
/// 关闭
///
///
///
private void tsbtnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 窗体关闭
///
///
///
private void F_SAP_HEGII_0109_FormClosed(object sender, FormClosedEventArgs e)
{
_instance = null;
}
#endregion
#region 私有方法
///
/// 查询数据
///
private void QueryDataFromOther()
{
try
{
this.dgvScrap.DataSource = null;
this.tsrToolStrip1.Focus();
ClientRequestEntity cre = new ClientRequestEntity();
cre.Properties["dateagin"] = this.dtpDateAgin.Value;
cre.Properties["dateend"] = Convert.ToDateTime( this.dtpDateEnd.Value).AddSeconds(1);
cre.Properties["CheckFlag"] = this.cbCheckFlag.SelectedValue;
cre.Properties["SyncFlag"] = this.cbSyncFlag.SelectedValue;
cre.NameSpace = "Hegii";
cre.Name = "GetDataBARCODEIDNRKSCRAP";
ServiceResultEntity sre = DoAsync(() =>
{
return SAPDataModuleProxy.Service.DoRequest(cre);
});
if (sre.Status == Constant.ServiceResultStatus.Success)
{
// 查询成功
this.dgvScrap.DataSource = sre.Data.Tables[0];
if (this.dgvScrap.RowCount == 0)
{
DKMessageBox.ShowDialog(this, DKMessageCode.I_CMN_S_001);
}
}
}
catch (Exception ex)
{
throw;
}
}
#endregion
}
}