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 } }