| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- 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.Entity;
- using CoreFS.CA06;
- using Infragistics.Win;
- using Infragistics.Win.UltraWinGrid;
- namespace Core.StlMes.Client.Mcp.Control.Common
- {
- public partial class FrmScrapNum : FrmBase
- {
- private string plineCode ;
- private string _slGx ;
- private string[] gxs;
- private string heatPlanNo ;
- private int _processSeq ;
- private string defaultStorage ;
- private List<PortHttBatchSampleResultEntityWithCheck> _batchNo;
- private readonly List<string> SignOfflineMatNo = new DataSourceList<string>();
- public FrmScrapNum(OpeBase ob, string heatPlanNo, List<PortHttBatchSampleResultEntityTotal> batchNo, string slGx, int processSeq, string plineCode, string[] gxs, string defaultStorage)
- {
- InitializeComponent();
- this.heatPlanNo = heatPlanNo;
- ucBatchNo.DataSource = batchNo;
- ucBatchNo.DisplayMember = "PhyBatchNo";
- ucBatchNo.ValueMember = "PhyBatchNo";
- _slGx = slGx;
- _processSeq = processSeq;
- this.plineCode = plineCode;
- this.gxs = gxs;
- this.defaultStorage = defaultStorage;
- this.ob = ob;
- SignOfflineMatNo = new DataSourceList<string>();
- _batchNo =
- EntityHelper.GetData<PortHttBatchSampleResultEntityWithCheck>(
- "com.steering.mes.mcp.common.PlanService.getQueryDbkPortVrphot",
- new object[] { heatPlanNo, processSeq }, ob);
- httOfflineResultDentityBindingSource.DataSource = new List<HttOfflineResultDentity>();
- EntityHelper.ShowGridCaption<PortHttBatchSampleResultEntityWithCheck>(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.common.PlanService.getBaseInfo",
- new object[] { "6003" }, ob);
- ucMemo.DataSource = dt;
- ucMemo.DisplayMember = "BASENAME";
- ucMemo.ValueMember = "BASENAME";
- YdmBaseClass.SetComboItemHeight(ucMemo);
- }
- /// <summary>
- /// 保存离线
- /// </summary>
- private void Save()
- {
- this.ultraGridDetailDes1.UpdateData();
-
- string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- ArrayList list = new ArrayList();
- list.Add(heatPlanNo);
- list.Add("");
- list.Add(_slGx);
- list.Add(_processSeq);
- list.Add(this.UserInfo.GetUserName());
- list.Add(this.UserInfo.GetUserOrder());
- list.Add(this.UserInfo.GetUserGroup());
- list.Add("");
- list.Add(plineCode);
- list.Add(gxs);
- if (MessageUtil.ShowYesNoAndQuestion("是否离线?") == DialogResult.No) return;
- var list1 =
- httOfflineResultDentityBindingSource.DataSource as List<HttOfflineResultDentity>;
- 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.TryParseInt()))
- {
- MessageUtil.ShowTips("支数请输入整数!");
- return;
- }
- if (list1.Any(p => string.IsNullOrEmpty(p.Memo)))
- {
- 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 = "HttOffLine";
- ccp.ServerParams = new Object[] { list1.Select(JSONFormat.Format).ToList(), list };
- 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);
- HttOfflineResultDentity Entity = e.Cell.Row.ListObject as HttOfflineResultDentity;
- if (e.Cell.Column.Key.Equals("BatchNo"))
- {
- foreach (var t in Entity.GetTotal().Where(p => p.Check))
- {
- RemoveWes(t);
- }
- Entity.ListPortMarts.Where(p =>
- {
- if (p.InstoreFlag == "已入库" || p.MatStatus != "合格")
- return false;
- return !SignOfflineMatNo.Contains(p.MatNo);
- }
- )
- .ToList().ForEach(AddWes);
- try
- {
- Entity.OfflineNum = Entity.ListPortMarts.Count(p=>p.Check).ToString();
- }
- catch (Exception)
- {
- Entity.OfflineNum = "0";
- }
-
- } else if ((e.Cell.Column.Key == "Check") && e.Cell.Row.HasParent())
- {
- var t =
- e.Cell.Row.ListObject as PortHttBatchSampleResultEntityWithCheck;
- if ((bool)e.Cell.Value)
- AddWes(t);
- else
- RemoveWes(t);
- ultraGridDetailDes1.UpdateData();
- var HttOfflineResultDentity = e.Cell.Row.ParentRow.ListObject as HttOfflineResultDentity;
- HttOfflineResultDentity.OfflineNum = HttOfflineResultDentity.ListPortMarts.Count(p => p.Check).ToString();
-
- }
- else if ((e.Cell.Column.Key == "OfflineNum") && e.Cell.Row.HasChild())
- {
- var HttOfflineResultDentity = e.Cell.Row.ListObject as HttOfflineResultDentity;
- if ((HttOfflineResultDentity != null) && (HttOfflineResultDentity.OfflineNum != null))
- {
- var signedData = HttOfflineResultDentity.ListPortMarts.Where(p => p.Check).ToList();
- int count = 0;
- if (!int.TryParse(HttOfflineResultDentity.OfflineNum, out count))
- {
- count = 0;
- }
- if (signedData.Count >= count)
- signedData.Skip(count).ToList().ForEach(RemoveWes);
- else
- HttOfflineResultDentity.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 = HttOfflineResultDentity.ListPortMarts.Where(p => p.Check).ToList();
- int Count = listCheck.Count;
- if (Count < count)
- {
- MessageBox.Show("无足够的合格管可以离线,请检查是否入库或者已经离线!");
- HttOfflineResultDentity.OfflineNum = Count.ToString();
- ultraGridDetailDes1.PerformAction(UltraGridAction.ExitEditMode);
- }
- }
- }
- ultraGridDetailDes1.UpdateData();
- if (e.Cell.Row.HasParent()) ultraGridDetailDes1.PerformAction(UltraGridAction.ExitEditMode);
- ultraGridDetailDes1.Refresh();
- }
- public void AddWes(PortHttBatchSampleResultEntityWithCheck 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(PortHttBatchSampleResultEntityWithCheck 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();
- List<PortHttBatchSampleResultEntityTotal> list = ucBatchNo.DataSource as List<PortHttBatchSampleResultEntityTotal>;
- HttOfflineResultDentity currentEntity = e.Row.ListObject as HttOfflineResultDentity;
- var listAll =
- httOfflineResultDentityBindingSource.DataSource as List<HttOfflineResultDentity>;
- var list1 =
- list.Where(p => listAll.All(q => q.BatchNo.ToString() != p.PhyBatchNo)).ToList();
- currentEntity.BatchNo =list1.Any()? list1[0].PhyBatchNo :"";
- currentEntity.ListPortMarts = _batchNo.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.ToString();
- 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;
- }
-
-
- }
- }
|