| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Linq;
- using System.Windows.Forms;
- using com.steering.mes.mcp.entity;
- using Core.Mes.Client.Comm.Server;
- using Core.Mes.Client.Comm.Tool;
- using Core.StlMes.Client.Mcp.Control.Common;
- using Core.StlMes.Client.Mcp.Control.Entity;
- using CoreFS.CA06;
- using Infragistics.Win;
- using Infragistics.Win.UltraWinGrid;
- using Infragistics.Win.UltraWinToolbars;
- namespace Core.StlMes.Client.Mcp.Control
- {
- public partial class CommonScrap : FrmBase
- {
- private string _batchNo = "";
- private readonly List<string> SignSuspiciousMatNo = new DataSourceList<string>();
- private bool _isScrap = true;
- public CommonScrap(OpeBase ob)
- {
- InitializeComponent();
- this.ob = ob;
- dataList = new List<MchBugDEntity>();
- }
- public CommonScrap(OpeBase ob, List<MchBugDEntity> list1, Func<List<PortMchBatchSampleResultEntityWithCheck>> GetMatNo,
- string FailCode, string BatchNo, bool ShowChild = false ,bool isScrap = true)
- {
- InitializeComponent();
- this.ob = ob;
- _batchNo = BatchNo;
- _isScrap = isScrap;
- EntityHelper.ShowGridCaption<MchBugDEntity>(ultraGridDetailDes1.DisplayLayout.Bands[0]);
- EntityHelper.ShowGridCaption<PortMchBatchSampleResultEntityWithCheck>(ultraGridDetailDes1.DisplayLayout.Bands[1]);
- ultraGridDetailDes1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- dataList = list1 == null ? new List<MchBugDEntity>() : list1.Select(p => p.Clone()).ToList();
- //下拉废品原因
- var dt2 = ServerHelper.GetData("com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
- new object[] { FailCode }, ob);
- kreason.DataSource = dt2;
- kreason.DisplayMember = "BASENAME";
- kreason.ValueMember = "BASECODE";
- YdmBaseClass.SetComboItemHeight(kreason);
- var list = GetMatNo();
- if (list == null) return;
- if (ShowChild)
- {
- PortHttBatch = new DataSourceList<PortMchBatchSampleResultEntityWithCheck>();
- foreach (var data in list)
- {
- for (int i = 0; i < data.OutnumCut; i++)
- {
- var temp = data.Clone();
- temp.OutnumCut = 1;
- temp.ActLen = temp.ActLen/data.OutnumCut;
- temp.ActWeight = temp.ActWeight/data.OutnumCut;
- temp.ActTheoryWeight = temp.ActTheoryWeight/data.OutnumCut;
- temp.MatNo = temp.MatNo + (data.OutnumCut<=1?"": ((i + 1).ToString().PadLeft(2, '0')));
- temp.BarCode = temp.BarCode + (data.OutnumCut<=1?"": ( "-"+ (i + 1).ToString().PadLeft(2, '0')));
- PortHttBatch.Add(temp);
- }
- }
- }
- else
- {
- PortHttBatch = list;
- }
- SignSuspiciousMatNo = dataList.SelectMany(p => p.MatNo.Split(',').ToList()).ToList();
- mchBugDEntityBindingSource.DataSource = dataList;
- ultraGridDetailDes1.DisplayLayout.Bands[1].Columns["BarCode"].PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand,
- true);
- }
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
- ultraGridDetailDes1.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
- ultraGridDetailDes1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- }
- private List<PortMchBatchSampleResultEntityWithCheck> PortHttBatch { get; set; }
- public List<MchBugDEntity> dataList { get; private set; }
- private void ultraToolbarsManager1_ToolClick(object sender, ToolClickEventArgs e)
- {
- switch (e.Tool.Key)
- {
- case "Save":
- Save();
- break;
- case "Close":
- CloseFrm();
- break;
- }
- }
- private void CloseFrm()
- {
- DialogResult = DialogResult.Cancel;
- Close();
- }
- /// <summary>
- /// 保存可疑、剔除品
- /// </summary>
- private void Save()
- {
- ultraGridDetailDes1.UpdateData();
- var list1 =
- mchBugDEntityBindingSource.DataSource as List<MchBugDEntity>;
- list1 = list1.Where(p => p.Chk).Select(p =>
- {
- var list = p.ListData.Where(q => q.Check).ToList();
- p.MatNo = list.Any()
- ? list
- .Select(q => q.MatNo)
- .Aggregate((a, b) => a + (a == "" ? "" : ",") + b)
- : "";
- p.FailWt = list.Any()
- ? list
- .Sum(q => q.ActTheoryWeight ?? 0)
- : 0;
- return p;
- }).ToList();
- foreach (var MchBugDEntity in list1)
- {
- if (MchBugDEntity.FailTypeCode == "")
- {
- MessageUtil.ShowTips("原因不能为空,请选择!");
- return;
- }
- if ((MchBugDEntity.FailNum == null) || (MchBugDEntity.FailNum <= 0))
- {
- MessageUtil.ShowTips("支数不能为空或者为零支,请输入!");
- return;
- }
- }
- dataList = list1;
- DialogResult = DialogResult.OK;
- }
- private void ultraGridDetailDes1_CellChange(object sender, CellEventArgs e)
- {
- var UltraGrid = sender as UltraGrid;
- UltraGrid.UpdateData();
- if (e.Cell.Column.Key == "Chk")
- GridEdite(e.Cell.Row);
- else if (e.Cell.Column.Key == "FailTypeCode")
- e.Cell.Row.Cells["FailTypeName"].Value = e.Cell.Text;
- else if ((e.Cell.Column.Key == "Check") && e.Cell.Row.HasParent())
- {
- var t =
- e.Cell.Row.ListObject as PortMchBatchSampleResultEntityWithCheck;
- if((bool)e.Cell.Value)
- AddSuspicious(t);
- else
- RemoveSuspicious(t);
-
- UltraGrid.UpdateData();
- var MchBugDEntity = e.Cell.Row.ParentRow.ListObject as MchBugDEntity;
- MchBugDEntity.FailNum = MchBugDEntity.ListData.Count(p => p.Check);
-
- }
- else if ((e.Cell.Column.Key == "FailNum"))
- {
-
- var MchBugDEntity = e.Cell.Row.ListObject as MchBugDEntity;
- if (!e.Cell.Row.HasChild())
- {
- MessageBox.Show("无足够的合格管!");
- MchBugDEntity.FailNum = 0;
- UltraGrid.PerformAction(UltraGridAction.ExitEditMode);
- }
- else
- {
- if ((MchBugDEntity != null) && (MchBugDEntity.FailNum != null))
- {
- var signedData = MchBugDEntity.ListData.Where(p => p.Check).ToList();
- if (signedData.Count >= MchBugDEntity.FailNum)
- signedData.Skip((int) MchBugDEntity.FailNum).ToList().ForEach(RemoveSuspicious);
- else
- MchBugDEntity.ListData.Where(p =>
- {
- if (_isScrap && (p.InstoreFlag == "已入库" || p.InstoreFlag == "在途"))
- return false;
- if (p.MatStatus != "合格") return false;
- // if (_isScrap && p.TrFlag == "1") return false;
- return !SignSuspiciousMatNo.Contains(p.MatNo);
- }
- )
- .OrderBy(
- p => p.IsSamplePipe
- ).ThenBy(p => p.MeasuringSeq).ThenBy(p => p.MatNo)
- .Take((int) MchBugDEntity.FailNum - signedData.Count).ToList().ForEach(AddSuspicious);
- var listCheck = MchBugDEntity.ListData.Where(p => p.Check).ToList();
- int Count = listCheck.Count;
- if (Count < MchBugDEntity.FailNum)
- {
- MessageBox.Show("无足够的合格管!");
- MchBugDEntity.FailNum = Count;
- UltraGrid.PerformAction(UltraGridAction.ExitEditMode);
- }
- }
- }
- }
- UltraGrid.UpdateData();
- if (e.Cell.Row.HasParent()) UltraGrid.PerformAction(UltraGridAction.ExitEditMode);
- UltraGrid.Refresh();
- }
- /// <summary>
- /// ulltragrid控件受勾影响(打钩可编辑,不打勾不能编辑)**
- /// </summary>
- /// <param name="row"></param>
- private void GridEdite(UltraGridRow row)
- {
- if (row.HasParent()) return;
- if (row.GetValue("Chk") == "True")
- {
- foreach (var cell in row.Cells)
- if (cell.Column.CellActivation == Activation.AllowEdit)
- cell.Activation = Activation.AllowEdit;
- }
- else
- {
- foreach (var 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 ultraGridDetailDes_AfterRowInsert(object sender, RowEventArgs e)
- {
- var MchBugDEntity = e.Row.ListObject as MchBugDEntity;
- MchBugDEntity.BatchNo = _batchNo;
- if (PortHttBatch!=null)
- MchBugDEntity.ListData = PortHttBatch.Select(q => q.Clone()).ToList();
- ultraGridDetailDes1.DisplayLayout.Bands[1].Columns["BarCode"].PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand,
- true);
- GridEdite(e.Row);
- }
- private void ultraGridDetailDes1_InitializeTemplateAddRow(object sender, InitializeTemplateAddRowEventArgs e)
- {
- if (ultraGridDetailDes1.ActiveRow == null)
- e.TemplateAddRow.Activated = true;
- }
-
-
- public void AddSuspicious(PortMchBatchSampleResultEntityWithCheck t)
- {
- try
- {
- if (_isScrap && t.InstoreFlag == "已入库")
- {
- MessageBox.Show("该管号已入库!");
- t.Check = false;
- return;
- }
- if (_isScrap && t.InstoreFlag == "在途")
- {
- MessageBox.Show("该管号正在途运输!");
- t.Check = false;
- return;
- }
- if (t.MatStatus != "合格")
- {
- MessageBox.Show("该管号不是合格管号!");
- t.Check = false;
- return;
- }
- /* if (_isScrap && t.TrFlag == "1")
- {
- MessageBox.Show("该管号已经经过测量点,无法剔废!");
- t.Check = false;
- return;
- }*/
- if (SignSuspiciousMatNo.Contains(t.MatNo))
- {
- MessageBox.Show("该管号已被标记!");
- t.Check = false;
- return;
- }
-
- SignSuspiciousMatNo.Add(t.MatNo);
- t.Check = true;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- t.Check = false;
- }
- }
-
- public void RemoveSuspicious(PortMchBatchSampleResultEntityWithCheck t)
- {
- try
- {
- t.Check = false;
- SignSuspiciousMatNo.Remove(t.MatNo);
- }
- catch (Exception ex)
- {
- }
- }
- private void ultraGridDetailDes2_InitializeRow(object sender, InitializeRowEventArgs e)
- {
- if (e.Row.HasParent())
- if (!e.Row.Cells["MatStatus"].Text.Equals("合格"))
- e.Row.Cells["MatStatus"].Appearance.ForeColor = Color.Red;
-
- }
-
-
- }
- }
|