| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Windows.Forms;
- using Core.Mes.Client.Comm.Format;
- using Core.Mes.Client.Comm.Server;
- using Core.Mes.Client.Comm.Tool;
- using Core.StlMes.Client.Mcp.Control;
- using Core.StlMes.Client.Mcp.Control.Entity;
- using CoreFS.CA06;
- using Infragistics.Win;
- using Infragistics.Win.UltraWinGrid;
- namespace Core.StlMes.Client.Mcp.Mch
- {
- public partial class FrmScrapNum : FrmBase
- {
- private readonly List<string> SignOfflineMatNo = new DataSourceList<string>();
- private string _heatPlanNo;
- private string _batchNo;
- private string _gx;
- private string _userName;
- private string _shift;
- private string _group;
- private List<PortMchBatchSampleResultEntityWithCheck> list;
- public FrmScrapNum(OpeBase ob, string heatPlanNo, string BatchNo, string gx, string Username, string Shift, string Group)
- {
- InitializeComponent();
- this.ob = ob;
- SignOfflineMatNo = new DataSourceList<string>();
- _batchNo = BatchNo;
- _gx = gx;
- _userName = Username;
- _shift = Shift;
- _group = Group;
- list = EntityHelper.GetData<PortMchBatchSampleResultEntityWithCheck>(
- "com.steering.mes.mcp.common.PlanService.getQueryJGPortVrphot", new object[] { heatPlanNo, BatchNo }, ob);
- mchOfflineResultEntityBindingSource.DataSource = new List<MchOfflineResultEntity>();
- EntityHelper.ShowGridCaption<PortMchBatchSampleResultEntityWithCheck>(ultraGridDetailDes1.DisplayLayout.Bands[1]);
- }
-
- public string alamNum = "";
- public string scrapNum = "";
- public string testOfflineNum = "";
- private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
- {
- switch (e.Tool.Key)
- {
- case "Save":
- Save();
- break;
- case "Close":
- CloseFrm();
- break;
- }
- }
- private void CloseFrm()
- {
- this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.Close();
- }
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
- ultraGridDetailDes1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- ultraGridDetailDes1.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
- var dt =
- ServerHelper.GetData(
- "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
- new object[] { "7014" }, ob);
- ucMemo.DataSource = dt;
- ucMemo.DisplayMember = "BASENAME";
- ucMemo.ValueMember = "BASENAME";
- }
- /// <summary>
- /// 保存离线
- /// </summary>
- private void Save()
- {
- this.ultraGridDetailDes1.UpdateData();
-
- if (MessageUtil.ShowYesNoAndQuestion("是否离线?") == DialogResult.No) return;
- var list1 =
- mchOfflineResultEntityBindingSource.DataSource as List<MchOfflineResultEntity>;
- list1 = list1.Where(p => p.Chk).ToList();
- if (list1.Any(p => p.OfflineNum == null || p.OfflineNum == 0))
- {
- MessageUtil.ShowTips("支数不能为空或者为零支,请输入!");
- return;
- }
- if (list1.Any(p => !p.OfflineNum.ToString2().TryParseInt()))
- {
- MessageUtil.ShowTips("支数请输入整数!");
- return;
- }
- CoreClientParam ccp = new CoreClientParam();
- try
- {
- this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
- if (Constant.WaitingForm == null)
- {
- Constant.WaitingForm = new WaitingForm();
- }
- Constant.WaitingForm.ShowToUser = true;
- Constant.WaitingForm.Show();
- Constant.WaitingForm.Update();
- ccp.ServerName = "com.steering.mes.mcp.common.OfflineHelper";
- ccp.MethodName = "MchOffLine";
- ccp.ServerParams = new Object[] { list1.Select(JSONFormat.Format).ToList() };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- this.Cursor = Cursors.Default;
- Constant.WaitingForm.ShowToUser = false;
- Constant.WaitingForm.Close();
- Constant.WaitingForm = null;
- }
- catch (Exception ex)
- {
- this.Cursor = Cursors.Default;
- Constant.WaitingForm.ShowToUser = false;
- Constant.WaitingForm.Close();
- Constant.WaitingForm = null;
- }
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips(ccp.ReturnInfo);
- if (ccp.ReturnInfo.Equals("离线成功!"))
- {
- this.DialogResult = System.Windows.Forms.DialogResult.OK;
- }
- }
-
- }
-
- private void ultraGridDetailDes1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
- {
- this.ultraGridDetailDes1.UpdateData();
- GridEdite(e.Cell.Row);
- MchOfflineResultEntity Entity = e.Cell.Row.ListObject as MchOfflineResultEntity;
- if ((e.Cell.Column.Key == "Check") && e.Cell.Row.HasParent())
- {
- var t =
- e.Cell.Row.ListObject as PortMchBatchSampleResultEntityWithCheck;
- if ((bool)e.Cell.Value)
- AddWes(t);
- else
- RemoveWes(t);
- ultraGridDetailDes1.UpdateData();
- var MchOfflineResultEntity = e.Cell.Row.ParentRow.ListObject as MchOfflineResultEntity;
- MchOfflineResultEntity.OfflineNum = MchOfflineResultEntity.ListPortMarts.Count(p => p.Check);
- }
- else if ((e.Cell.Column.Key == "OfflineNum") && e.Cell.Row.HasChild())
- {
- var MchOfflineResultEntity = e.Cell.Row.ListObject as MchOfflineResultEntity;
- if ((MchOfflineResultEntity != null) && (MchOfflineResultEntity.OfflineNum != null))
- {
- var signedData = MchOfflineResultEntity.ListPortMarts.Where(p => p.Check).ToList();
- int count = 0;
- if (!int.TryParse(MchOfflineResultEntity.OfflineNum.ToString3(), out count))
- {
- count = 0;
- }
- if (signedData.Count >= count)
- signedData.Skip(count).ToList().ForEach(RemoveWes);
- else
- MchOfflineResultEntity.ListPortMarts.Where(p =>
- {
- if (p.InstoreFlag == "已入库" || p.MatStatus != "合格")
- return false;
- return !SignOfflineMatNo.Contains(p.MatNo);
- }
- ).ToList()
- .OrderBy(
- p=> p.IsSamplePipe
- ).ThenBy(p=>p.MatNo)
- .Take(count - signedData.Count).ToList().ForEach(
- AddWes
- );
- var listCheck = MchOfflineResultEntity.ListPortMarts.Where(p => p.Check).ToList();
- int Count = listCheck.Count;
- if (Count < count)
- {
- MessageBox.Show("无足够的合格管可以离线,请检查是否入库或者已经离线!");
- MchOfflineResultEntity.OfflineNum = Count;
- ultraGridDetailDes1.PerformAction(UltraGridAction.ExitEditMode);
- }
- }
- }
- ultraGridDetailDes1.UpdateData();
- if (e.Cell.Row.HasParent()) ultraGridDetailDes1.PerformAction(UltraGridAction.ExitEditMode);
- ultraGridDetailDes1.Refresh();
- }
- public void AddWes(PortMchBatchSampleResultEntityWithCheck t)
- {
- try
- {
- if (t.InstoreFlag == "已入库")
- {
- MessageBox.Show("该管号已入库!");
- t.Check = false;
- return;
- }
- if (t.MatStatus != "合格")
- {
- MessageBox.Show("该管号不是合格管号!");
- t.Check = false;
- return;
- }
- if (SignOfflineMatNo.Contains(t.MatNo))
- {
- MessageBox.Show("该管号在另一行已被标记将要离线!");
- t.Check = false;
- return;
- }
- SignOfflineMatNo.Add(t.MatNo);
- t.Check = true;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- t.Check = false;
- }
- }
- public void RemoveWes(PortMchBatchSampleResultEntityWithCheck t)
- {
- try
- {
- t.Check = false;
- SignOfflineMatNo.Remove(t.MatNo);
- }
- catch (Exception ex)
- {
- }
- }
-
- /// <summary>
- ///
- /// ulltragrid控件受勾影响(打钩可编辑,不打勾不能编辑)**
- /// </summary>
- /// <param name="row"></param>
- private void GridEdite(UltraGridRow row)
- {
- if(row.HasParent()) return;
- if (row.GetValue("Chk") == "True")
- {
- foreach (UltraGridCell cell in row.Cells)
- {
- if (cell.Column.CellActivation == Activation.AllowEdit)
- {
- cell.Activation = Activation.AllowEdit;
- }
- }
- }
- else
- {
- foreach (UltraGridCell cell in row.Cells)
- {
- if (cell.Column.Key.Contains("Chk")) continue;
- if (cell.Column.CellActivation == Activation.AllowEdit)
- {
- cell.Activation = Activation.ActivateOnly;
- }
- }
- }
- ultraGridDetailDes1.UpdateData();
- }
- private void ultraGridDetailDes1_AfterRowInsert(object sender, RowEventArgs e)
- {
- this.ultraGridDetailDes1.UpdateData();
- MchOfflineResultEntity currentEntity = e.Row.ListObject as MchOfflineResultEntity;
- currentEntity.ListPortMarts = list.Select(p => p.Clone()).ToList();
- var listOk = currentEntity.ListPortMarts.Where(p =>
- {
- if (p.InstoreFlag == "已入库" || p.MatStatus != "合格")
- return false;
- return !SignOfflineMatNo.Contains(p.MatNo);
- }
- )
- .ToList();
-
- try
- {
- currentEntity.OfflineNum = listOk.Count;
- listOk.ForEach(AddWes);
-
- }
- catch (Exception)
- {
- currentEntity.OfflineNum = 0;
- }
- ultraGridDetailDes1.DisplayLayout.Bands[1].Columns["BarCode"].PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand,
- true);
- GridEdite(e.Row);
- ultraGridDetailDes1.UpdateData();
- ultraGridDetailDes1.Refresh();
- }
- private void ultraGridDetailDes1_InitializeTemplateAddRow(object sender, InitializeTemplateAddRowEventArgs e)
- {
-
- if (ultraGridDetailDes1.ActiveRow == null)
- e.TemplateAddRow.Activated = true;
- }
-
-
- }
- }
|