| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568 |
- 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 FrmScrapHttNew : FrmBase
- {
- private readonly List<string> BatchNos;
- private string heatPlanNo = "";
- private readonly List<string> SignSuspiciousMatNo = new DataSourceList<string>();
- private readonly List<string> SignWasteMatNo = new DataSourceList<string>();
- private string DefaultBatchNo = "";
- public FrmScrapHttNew(OpeBase ob)
- {
- InitializeComponent();
- this.ob = ob;
- SuspiciousList = new List<HttWasteResultEntity>();
- ScrappedList = new List<HttWasteResultEntity>();
- }
- public FrmScrapHttNew(OpeBase ob, List<HttWasteResultEntity> list1, List<HttWasteResultEntity> list2,
- bool ShowSuspicious, string HeatPlanNo, int processSeq, string FailCode, string OnlyBatchNo, string defaultBatchNo = "", List<PortHttBatchSampleResultEntityWithCheck> portHttBatch = null,
- List<string> _signWasteMatNo =null)
- {
- InitializeComponent();
- this.ob = ob;
- heatPlanNo = HeatPlanNo;
- DefaultBatchNo = defaultBatchNo;
- EntityHelper.ShowGridCaption<HttWasteResultEntity>(ultraGridDetailDes1.DisplayLayout.Bands[0]);
- EntityHelper.ShowGridCaption<HttWasteResultEntity>(ultraGridDetailDes2.DisplayLayout.Bands[0]);
- EntityHelper.ShowGridCaption<PortHttBatchSampleResultEntityWithCheck>(ultraGridDetailDes1.DisplayLayout.Bands[1]);
- EntityHelper.ShowGridCaption<PortHttBatchSampleResultEntityWithCheck>(ultraGridDetailDes2.DisplayLayout.Bands[1]);
- ClientSize = new Size(1400 / 2, ClientSize.Height);
- if (!ShowSuspicious)
- splitMain.Panel1Collapsed = true;
- else
- splitMain.Panel2Collapsed = true;
-
- ultraGridDetailDes1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- ultraGridDetailDes2.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- SuspiciousList = list1 == null ? new List<HttWasteResultEntity>() : list1.Select(p => p.Clone()).ToList();
- ScrappedList = list2 == null ? new List<HttWasteResultEntity>() : list2.Select(p => p.Clone()).ToList();
- //下拉选探伤废品原因
- var dt2 = ServerHelper.GetData("com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
- new object[] {"6005"}, ob);
- kreason.DataSource = dt2;
- kreason.DisplayMember = "BASENAME";
- kreason.ValueMember = "BASECODE";
- YdmBaseClass.SetComboItemHeight(kreason);
- var dt3 = ServerHelper.GetData("com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
- new object[] {FailCode}, ob);
- reason.DataSource = dt3;
- reason.DisplayMember = "BASENAME";
- reason.ValueMember = "BASECODE";
- YdmBaseClass.SetComboItemHeight(reason);
- if (portHttBatch!=null)
- {
- PortHttBatch =
- portHttBatch;
- }
- else
- {
- PortHttBatch =
- EntityHelper.GetData<PortHttBatchSampleResultEntityWithCheck>(
- "com.steering.mes.mcp.common.PlanService.getQueryDbkPortVrphot",
- new object[] {HeatPlanNo, processSeq}, ob);
- }
- if (PortHttBatch==null) return;
- /* var dt4 = ServerHelper.GetData("com.steering.mes.mcp.heatTreatment.ScrapHelper.doQueryBatchNo",
- new object[] { heatPlanNo, processSeq }, ob);
-
- if (dt4.Rows.Count <= 0)
- {
- var row = dt4.NewRow();
- row["PHY_BATCH_NO"] = defaultBatchNo;
- dt4.Rows.Add(row);
- }*/
- if (defaultBatchNo != "")
- {
- PortHttBatch.ForEach(p => p.PhyBatchNo = defaultBatchNo);
- }
-
- BatchNos = OnlyBatchNo != "" ? new List<string>() { OnlyBatchNo } : PortHttBatch.Select(p => p.PhyBatchNo).Distinct().ToList();
- kBatchNo.DataSource = BatchNos;
- /* kBatchNo.DisplayMember = "PhyBatchNo";
- kBatchNo.ValueMember = "PhyBatchNo";*/
- YdmBaseClass.SetComboItemHeight(kBatchNo);
- BatchNo.DataSource = BatchNos;
- /* BatchNo.DisplayMember = "PhyBatchNo";
- BatchNo.ValueMember = "PhyBatchNo";*/
- YdmBaseClass.SetComboItemHeight(BatchNo);
- List<HttWasteResultEntityWithList> SuspiciousList1 =
- SuspiciousList.Select(SetData).ToList();
- List<HttWasteResultEntityWithList> ScrappedList1 =
- ScrappedList.Select(SetData).ToList();
- SuspiciousList1.ForEach(p => p.ListPortMarts = PortHttBatch.Select(q =>
- {
- PortHttBatchSampleResultEntityWithCheck data = q.Clone();
- if (!string.IsNullOrEmpty(p.MatNo) && p.MatNo.Split(',').Contains(q.MatNo)) data.Check = true;
- return data;
- }).ToList());
- ScrappedList1.ForEach(p => p.ListPortMarts = PortHttBatch.Select(q =>
- {
- PortHttBatchSampleResultEntityWithCheck data = q.Clone();
- if (!string.IsNullOrEmpty(p.MatNo) && p.MatNo.Split(',').Contains(q.MatNo)) data.Check = true;
- return data;
- }).ToList());
- SignSuspiciousMatNo = SuspiciousList1.SelectMany(p => p.MatNo.Split(',').ToList()).ToList();
- SignWasteMatNo = _signWasteMatNo ?? ScrappedList1.SelectMany(p => p.MatNo.Split(',').ToList()).ToList();
- httWasteResultEntityBindingSource1.DataSource = SuspiciousList1;
- httWasteResultEntityBindingSource2.DataSource = ScrappedList1;
- }
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
- foreach (var ugc in ultraGridDetailDes1.DisplayLayout.Bands[1].Columns)
- ugc.SortIndicator = SortIndicator.Disabled;
- foreach (var ugc in ultraGridDetailDes2.DisplayLayout.Bands[1].Columns)
- ugc.SortIndicator = SortIndicator.Disabled;
- }
- private List<PortHttBatchSampleResultEntityWithCheck> PortHttBatch { get; set; }
- /// <summary>
- /// 可疑
- /// </summary>
- public List<HttWasteResultEntity> SuspiciousList { get; private set; }
- /// <summary>
- /// 废品
- /// </summary>
- public List<HttWasteResultEntity> ScrappedList { 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();
- ultraGridDetailDes2.UpdateData();
- var list1 =
- httWasteResultEntityBindingSource1.DataSource as List<HttWasteResultEntityWithList>;
- list1 = list1.Where(p => p.Chk).Select(p =>
- {
- var list = p.ListPortMarts.Where(q => q.Check).ToList();
- p.MatNo = list.Any()
- ? list
- .Select(q => q.MatNo)
- .Aggregate((a, b) => a + (a == "" ? "" : ",") + b)
- : "";
- p.DefFillWt = list.Any()
- ? list
- .Sum(q => q.ActWeight ?? 0)
- : 0;
- return p;
- }).ToList();
- foreach (var httWasteResultEntity in list1)
- {
- if (httWasteResultEntity.DefFillCode == "")
- {
- MessageUtil.ShowTips("可疑原因不能为空,请选择!");
- return;
- }
- if ((httWasteResultEntity.DefFillNum == null) || (httWasteResultEntity.DefFillNum <= 0))
- {
- MessageUtil.ShowTips("可疑支数不能为空或者为零支,请输入!");
- return;
- }
- }
- var list2 =
- httWasteResultEntityBindingSource2.DataSource as List<HttWasteResultEntityWithList>;
- list2 = list2.Where(p => p.Chk).Select(p =>
- {
- var list = p.ListPortMarts.Where(q => q.Check).ToList();
- p.MatNo = list.Any()
- ? list
- .Select(q => q.MatNo)
- .Aggregate((a, b) => a + (a == "" ? "" : ",") + b)
- : "";
- p.DefFillWt = list.Any()
- ? list
- .Sum(q => q.ActWeight??0)
- : 0;
- return p;
- }).ToList();
- foreach (var httWasteResultEntity in list2)
- {
- if (httWasteResultEntity.DefFillCode == "")
- {
- MessageUtil.ShowTips("废品原因不能为空,请选择!");
- return;
- }
- if ((httWasteResultEntity.DefFillNum == null) || (httWasteResultEntity.DefFillNum <= 0))
- {
- MessageUtil.ShowTips("废品支数不能为空或者为零支,请输入!");
- return;
- }
- }
- SuspiciousList = list1.Select(p => p as HttWasteResultEntity).ToList();
- ScrappedList = list2.Select(p=>p as HttWasteResultEntity).ToList();
-
- DialogResult = DialogResult.OK;
- }
- private void FrmScrap_Load(object sender, EventArgs e)
- {
- EntityHelper.ShowGridCaption<HttLoadingResultEntity>(ultraGridDetailDes1.DisplayLayout.Bands[0]);
- EntityHelper.ShowGridCaption<HttLoadingResultEntity>(ultraGridDetailDes2.DisplayLayout.Bands[0]);
- splitMain.SplitterDistance = splitMain.Size.Width/2;
- }
- 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 == "DefFillCode")
- e.Cell.Row.Cells["DefFillName"].Value = e.Cell.Text;
- else if ((e.Cell.Column.Key == "Check") && e.Cell.Row.HasParent())
- {
- var t =
- e.Cell.Row.ListObject as PortHttBatchSampleResultEntityWithCheck;
- if (UltraGrid == ultraGridDetailDes1)
- if((bool)e.Cell.Value)
- AddSuspicious(t);
- else
- RemoveSuspicious(t);
- else
- if ((bool)e.Cell.Value)
- AddWes(t);
- else
- RemoveWes(t);
- UltraGrid.UpdateData();
- var HttWasteResultEntity = e.Cell.Row.ParentRow.ListObject as HttWasteResultEntityWithList;
- HttWasteResultEntity.DefFillNum = HttWasteResultEntity.ListPortMarts.Count(p => p.Check);
-
- }
- else if ((e.Cell.Column.Key == "DefFillNum") && e.Cell.Row.HasChild())
- {
- var HttWasteResultEntity = e.Cell.Row.ListObject as HttWasteResultEntityWithList;
- if ((HttWasteResultEntity != null) && (HttWasteResultEntity.DefFillNum != null))
- {
- var signedData = HttWasteResultEntity.ListPortMarts.Where(p => p.Check).ToList();
- if (signedData.Count >= HttWasteResultEntity.DefFillNum)
- signedData.Skip((int) HttWasteResultEntity.DefFillNum).ToList().ForEach(p =>
- {
- if (UltraGrid == ultraGridDetailDes1)
- RemoveSuspicious(p);
- else
- RemoveWes(p);
- });
- else
- HttWasteResultEntity.ListPortMarts.Where(p =>
- {
-
- if (UltraGrid == ultraGridDetailDes1)
- {
- if (p.MatStatus != "合格") return false;
- return !SignSuspiciousMatNo.Contains(p.MatNo);
- }
- else
- {
- if (p.InstoreFlag == "已入库" || p.MatStatus != "合格") return false;
- return !SignWasteMatNo.Contains(p.MatNo);
- }
- }
- )
- .OrderBy(
- p => p.IsSamplePipe
- ).ThenBy(p => p.MatNo)
- .Take((int) HttWasteResultEntity.DefFillNum - signedData.Count).ToList().ForEach(p =>
- {
- if (UltraGrid == ultraGridDetailDes1)
- AddSuspicious(p);
- else
- AddWes(p);
- });
- var listCheck = HttWasteResultEntity.ListPortMarts.Where(p => p.Check).ToList();
- int Count = listCheck.Count;
- if (Count < HttWasteResultEntity.DefFillNum)
- {
- MessageBox.Show("无足够的合格管标废!");
- HttWasteResultEntity.DefFillNum = 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();
- ultraGridDetailDes2.UpdateData();
- }
- private void ultraGridDetailDes_AfterRowInsert(object sender, RowEventArgs e)
- {
- var HttWasteResultEntity = e.Row.ListObject as HttWasteResultEntityWithList;
- if ((BatchNos != null) && (BatchNos.Count > 0))
- HttWasteResultEntity.BatchNo = BatchNos[BatchNos.Count - 1];
- if (PortHttBatch!=null)
- HttWasteResultEntity.ListPortMarts = PortHttBatch.Select(q => q.Clone()).ToList();
- GridEdite(e.Row);
- }
- private void ultraGridDetailDes1_InitializeTemplateAddRow(object sender, InitializeTemplateAddRowEventArgs e)
- {
- if (ultraGridDetailDes1.ActiveRow == null)
- e.TemplateAddRow.Activated = true;
- }
- private void ultraGridDetailDes2_InitializeTemplateAddRow(object sender, InitializeTemplateAddRowEventArgs e)
- {
- if (ultraGridDetailDes2.ActiveRow == null)
- e.TemplateAddRow.Activated = true;
- }
- public void AddWes(PortHttBatchSampleResultEntityWithCheck t)
- {
- try
- {
- if (t.InstoreFlag == "已入库")
- {
- MessageBox.Show("该管号已入库!");
- t.Check = false;
- }
- if (t.MatStatus != "合格")
- {
- MessageBox.Show("该管号不是合格管号!");
- t.Check = false;
- return;
- }
- if (SignWasteMatNo.Contains(t.MatNo))
- {
- MessageBox.Show("该管号已被标记废品!");
- t.Check = false;
- return;
- }
- SignWasteMatNo.Add(t.MatNo);
- t.Check = true;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- t.Check = false;
- }
- }
- public void AddSuspicious(PortHttBatchSampleResultEntityWithCheck t)
- {
- try
- {
- if (t.MatStatus != "合格")
- {
- 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 RemoveWes(PortHttBatchSampleResultEntityWithCheck t)
- {
- try
- {
- t.Check = false;
- SignWasteMatNo.Remove(t.MatNo);
- }
- catch (Exception ex)
- {
- }
- }
- public void RemoveSuspicious(PortHttBatchSampleResultEntityWithCheck 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;
-
- }
- public HttWasteResultEntityWithList SetData(HttWasteResultEntity HttWasteResultEntity)
- {
- return new HttWasteResultEntityWithList()
- {
- Chk = true,
- DefSerialItem = HttWasteResultEntity.DefSerialItem,
- DefSerialNo = HttWasteResultEntity.DefSerialNo,
- HeatPlanNo = HttWasteResultEntity.HeatPlanNo,
- DefFillNo = HttWasteResultEntity.DefFillNo,
- DefFillCode = HttWasteResultEntity.DefFillCode,
- DefFillName = HttWasteResultEntity.DefFillName,
- DefFillNum = HttWasteResultEntity.DefFillNum,
- CreTime = HttWasteResultEntity.CreTime,
- ResultNo = HttWasteResultEntity.ResultNo,
- PlineCode = HttWasteResultEntity.PlineCode,
- PlineName = HttWasteResultEntity.PlineName,
- DefFillWt = HttWasteResultEntity.DefFillWt,
- TotalLen = HttWasteResultEntity.TotalLen,
- BatchNo = DefaultBatchNo != ""? DefaultBatchNo: HttWasteResultEntity.BatchNo,
- MatNo = HttWasteResultEntity.MatNo,
- };
- }
- }
- }
|