| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Windows.Forms;
- using System.Windows.Input;
- using Core.Mes.Client.Comm.Format;
- 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 NPOI.SS.Formula.Functions;
- namespace Core.StlMes.Client.Mcp.Control.Machining
- {
- public partial class FinalCheckGControl : UserControl
- {
- protected List<HttSignatureEntity> Names = new List<HttSignatureEntity>();
- protected string _plineCode = "";
- public FinalCheckGControl()
- {
- InitializeComponent();
- EntityHelper.ShowGridCaption<MchFinalCheckGTotal>(ultraGrid1.DisplayLayout.Bands[0]);
- //commHelper.RefreshAndAutoSizeExceptColumns(ultraGrid1, "UnPass");
- var list = new ValueList();
- list.ValueListItems.Add(new ValueListItem("0", "合格"));
- list.ValueListItems.Add(new ValueListItem("1", "不合"));
- list.ValueListItems.Add(new ValueListItem("2", "废品"));
- ultraGrid1.DisplayLayout.Bands[0].Columns["Station"].ValueList = list;
-
- }
- private OpeBase ob;
- private string BatchNo = "";
- //是否有喷印管号
- private bool isMeasureData = false;
- public void Init(OpeBase _ob)
- {
- ultraGrid1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- ultraGrid1.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
- ob = _ob;
- }
- private List<PortMchBatchSampleResultEntity> _portHttBatchSampleResultEntitys;
- private List<PortMchBatchSampleResultEntity> _UncheckPort;
- private List<PortMchBatchSampleResultEntity> _checkPort;
- public List<PortMchBatchSampleResultEntity> ProMchPort
- {
- get
- {
- return _checkPort;
- }
- }
- public List<MchFinalCheckGTotal> Detail { get; private set; }
- private MchFinalCheckResultEntity Data;
- public MchFinalCheckResultEntity GetData()
- {
- if(Data==null) Data=new MchFinalCheckResultEntity();
- Data.ProNum = ProMchPort.Count;
- Data.ProWt = ProMchPort.Sum(p => p.ActWeight);
- Data.CheckNum = Detail.Where(p=>!string.IsNullOrWhiteSpace(p.SizeCheck)).Select(p=>p.MatNo).Distinct().Count();
- Data.CheckWt = ProMchPort.Where(p => Detail.Any(q=>!string.IsNullOrWhiteSpace(q.SizeCheck) && q.MatNo==p.MatNo)).Sum(p => p.ActWeight);
- Data.ProShift = uceBc.Value.ToString2();
- Data.ProGroup = uceBz.Value.ToString2();
- Data.ProTime = udeProData.Value.ToString2();
- Data.ProUser = txtUserName.Text;
- Data.UnqualifiedNum = Detail.Where(p => p.Station == "1").Select(p => p.MatNo).Distinct().Count();
- Data.UnqualifiedWt = ProMchPort.Where(p => Detail.Any(q => q.MatNo == p.MatNo && q.Station == "1")).Sum(p => p.ActWeight);
- Data.FailNum = Detail.Where(p => p.Station == "2").Select(p => p.MatNo).Distinct().Count();
- Data.FailWt = ProMchPort.Where(p => Detail.Any(q => q.MatNo == p.MatNo && q.Station == "2")).Sum(p => p.ActWeight);
- Data.QualifiedNum = Data.CheckNum - Data.UnqualifiedNum;
- Data.QualifiedWt = Data.CheckWt - Data.UnqualifiedWt;
- Data.ResultType = "0";
- return Data;
- }
- public void SetValue(MchFinalCheckResultEntity value, List<PortMchBatchSampleResultEntity> port )
- {
- Data = value;
- isMeasureData = port.Any(p => p.MeasuringSeq != null);
- _portHttBatchSampleResultEntitys = isMeasureData ?
- port.Where(p => (p.MatStatus == "合格" || p.MatStatus == "待处理") && p.MeasuringSeq != null ).OrderBy(p => p.MeasuringSeq).ToList() :
- port.Where(p => (p.MatStatus == "合格" || p.MatStatus == "待处理")).OrderBy(p => p.MatNo).ToList();
- _UncheckPort = _portHttBatchSampleResultEntitys.Where(p => p.IsFinalcheck == "0").ToList();
- txtUserName.Text = Data.ProUser;
- uceBc.Value = Data.ProShift;
- uceBz.Value = Data.ProGroup;
- _checkPort = new List<PortMchBatchSampleResultEntity>();
- udeProData.Value = DateTime.Now;
- if (_UncheckPort.Any())
- {
- if (isMeasureData)
- {
- txtProStart.Value = _UncheckPort.Min(p => p.MeasuringSeq).ToString2();
- txtProEnd.Value = _UncheckPort.Max(p => p.MeasuringSeq).ToString2();
- }
- else
- {
- int checkNum = _portHttBatchSampleResultEntitys.TakeWhile(p => p.IsFinalcheck != "0").Count();
- txtProStart.Value = checkNum + 1;
- txtProEnd.Value = _UncheckPort.Count + checkNum;
- }
- }
- else
- {
- txtProStart.Value = 1;
- txtProEnd.Value = 1;
- }
- Detail = new List<MchFinalCheckGTotal>();
- mchFinalCheckTotalBindingSource.DataSource = Detail;
- if (_plineCode != value.PlineCode)
- {
- Names = EntityHelper.GetData<HttSignatureEntity>(
- "com.steering.mes.mcp.heatTreatment.FrmHttCrackDetectResult.getHttSign",
- new object[] { value.PlineCode, "12" }, ob);
- txtUserName.DisplayMember = "UserName";
- txtUserName.ValueMember = "UserName";
- _plineCode = value.PlineCode;
- txtUserName.DataSource = Names;
- }
- ultraGrid1.DisplayLayout.Bands[0].Summaries[0].DisplayFormat = "送检0支";
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸抽检率 0%";
- }
- private void ultraGrid1_CellChange(object sender, CellEventArgs e)
- {
-
-
- }
- private void uteUnpass_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- MchFinalCheckGTotal entity = ultraGrid1.ActiveRow.ListObject as MchFinalCheckGTotal;
- bool Fail = ultraGrid1.ActiveCell.Column.Key == "ScrapReason";
- var matfrm = new ReasonChooseNew(ob,string.IsNullOrWhiteSpace(entity.SizeCheck)?"703601": "7036", Fail, Fail ? entity.ScrapList : entity.UnPassList);
- matfrm.ShowDialog();
- if (matfrm.DialogResult == DialogResult.OK)
- {
- if (Fail)
- {
- entity.ScrapList = matfrm.FailData;
- entity.ScrapList.ForEach(p =>
- {
- p.MatNo = entity.MatNo;
- p.FailNum = 1;
- p.FailWt = _checkPort.Where(q => q.MatNo == p.MatNo).Sum(q => q.ActWeight);
- p.BatchNo = Data.BatchNo;
- p.HeatPlanNo = Data.HeatPlanNo;
- });
- }
- else
- {
- entity.UnPassList = matfrm.FailData;
- entity.UnPassList.ForEach(p =>
- {
- p.MatNo = entity.MatNo;
- p.FailNum = 1;
- p.FailWt = _checkPort.Where(q => q.MatNo == p.MatNo).Sum(q => q.ActWeight);
- p.BatchNo = Data.BatchNo;
- p.HeatPlanNo = Data.HeatPlanNo;
- });
- }
- entity.Station = entity.ScrapList.Any() ? "2" : entity.UnPassList.Any() ? "1" : "0";
- if (entity.Station == "1" || entity.Station =="2")
- {
- ultraGrid1.ActiveCell.Row.Cells["Station"].Appearance.BackColor = Color.Red;
-
- }
- else
- {
- ultraGrid1.ActiveCell.Row.Cells["Station"].Appearance.ResetBackColor();
- }
- if (entity.Station == "2")
- {
- entity.UnPassList = new List<MchBugDEntity>();
- }
- ultraGrid1.PerformAction(UltraGridAction.ExitEditMode);
- mchFinalCheckTotalBindingSource.ResetBindings(false);
- ultraGrid1.UpdateData();
- }
-
- }
-
- private void txtDir_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (e.KeyChar ==13)
- {
- btnSizeAdd_Click(null, null);
- }
- }
- private void ultraGrid1_InitializeRowsCollection(object sender, InitializeRowsCollectionEventArgs e)
- {
- foreach (var ultraGridRow in e.Rows)
- {
- if (ultraGridRow.Cells["Station"].Value.ToString2() == "1")
- {
- ultraGridRow.Cells["Station"].Appearance.BackColor = Color.Red;
- }
- else if (ultraGridRow.Cells["Station"].Value.ToString2() == "2")
- {
- ultraGridRow.Cells["Station"].Appearance.BackColor = Color.Red;
- }
- else
- {
- ultraGridRow.Cells["Station"].Appearance.ResetBackColor();
- }
- }
-
- }
- private void btnCheck_Click(object sender, EventArgs e)
- {
- int Start = 0;
- int Frequency = 0;
- if (!int.TryParse(txtStart.Value.ToString3(), out Start) || Start <= 0)
- {
- MessageBox.Show("请输入正确的起始管号");
- return;
- }
- if (!int.TryParse(uceFrequency.Text, out Frequency) && Frequency <= 0)
- {
- MessageBox.Show("请输入正确的抽取频率");
- return;
- }
- for (int i = 0, j = Start - 1; j < Detail.Count; j = (++i) * Frequency + Start - 1)
- {
- Detail[j].SizeCheck = "√";
- }
- mchFinalCheckTotalBindingSource.DataSource = Detail;
- int CheckNum = Detail.Count(p => p.SizeCheck == "√");
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸检查 " + CheckNum + "支 抽检率 " +(Detail.Count==0? 0: CheckNum * 100 / Detail.Count )+ "%";
- }
- private void cmsCopy_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
- ultraGrid1.UpdateData();
- if ( ultraGrid1.ActiveRow == null)
- {
- return;
- }
- MchFinalCheckGTotal entity;
- if (ultraGrid1.ActiveRow.HasParent())
- {
- entity = ultraGrid1.ActiveRow.ParentRow.ListObject as MchFinalCheckGTotal;
- }
- else
- {
- entity = ultraGrid1.ActiveRow.ListObject as MchFinalCheckGTotal;
- }
- if (e.ClickedItem.Name == "tmsCopyToAll")
- {
- List<MchFinalCheckGTotal> list = mchFinalCheckTotalBindingSource.DataSource as List<MchFinalCheckGTotal>;
- list
- .ForEach(
- p =>
- {
- p.ScrapList = entity.ScrapList.Select(q =>
- {
- MchBugDEntity bug = q.Clone();
- bug.MatNo = p.MatNo;
- return bug;
- }).ToList();
- p.UnPassList = entity.UnPassList.Select(q =>
- {
- MchBugDEntity bug = q.Clone();
- bug.MatNo = p.MatNo;
- return bug;
- }).ToList();
- p.Station = entity.Station;
- });
- mchFinalCheckTotalBindingSource.ResetBindings(false);
- ultraGrid1.UpdateData();
- ultraGrid1.Rows.ToList().ForEach(
- p =>
- {
- if (p.Cells["Station"].Value.ToString2() == "1")
- {
- p.Cells["Station"].Appearance.BackColor = Color.Red;
- }
- else if (p.Cells["Station"].Value.ToString2() == "2")
- {
- p.Cells["Station"].Appearance.BackColor = Color.Red;
- }
- else
- {
- p.Cells["Station"].Appearance.ResetBackColor();
- }
- }
- );
- }
- else if (e.ClickedItem.Name == "tmsCopyToSize")
- {
- List<MchFinalCheckGTotal> list = mchFinalCheckTotalBindingSource.DataSource as List<MchFinalCheckGTotal>;
- list.Where(p=>!string.IsNullOrWhiteSpace(p.SizeCheck)).ToList()
- .ForEach(
- p =>
- {
- p.ScrapList = entity.ScrapList.Select(q =>
- {
- MchBugDEntity bug = q.Clone();
- bug.MatNo = p.MatNo;
- return bug;
- }).ToList();
- p.UnPassList = entity.UnPassList.Select(q =>
- {
- MchBugDEntity bug = q.Clone();
- bug.MatNo = p.MatNo;
- return bug;
- }).ToList();
- p.Station = entity.Station;
- });
- mchFinalCheckTotalBindingSource.ResetBindings(false);
- ultraGrid1.UpdateData();
- ultraGrid1.Rows.ToList().ForEach(
- p =>
- {
- if (p.Cells["Station"].Value.ToString2() == "1")
- {
- p.Cells["Station"].Appearance.BackColor = Color.Red;
- }
- else if (p.Cells["Station"].Value.ToString2() == "2")
- {
- p.Cells["Station"].Appearance.BackColor = Color.Red;
- }
- else
- {
- p.Cells["Station"].Appearance.ResetBackColor();
- }
- }
- );
- }
- }
- private void btnAdd_Click(object sender, EventArgs e)
- {
- List<PortMchBatchSampleResultEntity> NeedAdds = new List<PortMchBatchSampleResultEntity>();
- if (txtProStart.Value == null || txtProEnd.Value == null)
- {
- MessageBox.Show("请输入正确的管号区间");
- return;
- }
- int Start = int.Parse(txtProStart.Value.ToString3());
- int End = int.Parse(txtProEnd.Value.ToString3());
- if (Start > End)
- {
- MessageBox.Show("管号区间的开始管号不能大于结束管号");
- return;
- }
- if (!_UncheckPort.Any())
- {
- MessageBox.Show("无待检的管号!");
- return;
- }
- if (isMeasureData)
- {
- if (Start < _UncheckPort.Min(p => p.MeasuringSeq) || End > _UncheckPort.Max(p => p.MeasuringSeq))
- {
- MessageBox.Show("管号不存在");
- return;
- }
- NeedAdds = _UncheckPort.Where(
- p => p.MeasuringSeq >= Start && p.MeasuringSeq <= End && Detail.All(q => q.MatNo != p.MatNo)).ToList();
- }
- else
- {
- if (Start < _portHttBatchSampleResultEntitys.TakeWhile(p => p.IsFinalcheck != "0").Count() || End - Start > _UncheckPort.Count)
- {
- MessageBox.Show("管号不存在");
- return;
- }
- NeedAdds = _portHttBatchSampleResultEntitys.Skip(Start-1).Take(End-Start+1).Where(
- p => p.IsFinalcheck == "0" && Detail.All(q => q.MatNo != p.MatNo)).ToList();
- }
- /* int offlineCout = NeedAdds.Count(p => p.MatStatus == "待处理");
- if (offlineCout > 0)
- {
- MessageBox.Show("存在" + offlineCout + "支管已经离线");
- return;
- }*/
- foreach (var needAdd in NeedAdds)
- {
- Detail.Add(new MchFinalCheckGTotal()
- {
- MatNo = needAdd.MatNo,
- BarCode = needAdd.BarCode,
- MeasuringSeq = needAdd.MeasuringSeq,
- AppCheck = "√",
- Station = "0",
- ScrapList = new List<MchBugDEntity>(),
- UnPassList = new List<MchBugDEntity>()
- });
- }
- _checkPort.AddRange(NeedAdds);
- Detail = isMeasureData ? Detail.OrderBy(p => p.MeasuringSeq).ToList() : Detail.OrderBy(p => p.MatNo).ToList();
- mchFinalCheckTotalBindingSource.DataSource = Detail;
- ultraGrid1.DisplayLayout.Bands[0].Summaries[0].DisplayFormat = "送检 " + Detail.Count + "支 " + " 外观检查100%";
- int CheckNum = Detail.Count(p => p.SizeCheck == "√");
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸检查 " + CheckNum + "支 抽检率 " + CheckNum * 100 / Detail.Count + "%";
- }
- private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
- {
- if (e.Cell.Column.Key == "SizeCheck")
- {
- if (e.Cell.Value.ToString2() != "")
- {
- e.Cell.Row.Cells["SizeCheck"].Value = "";
- }
- else
- {
- e.Cell.Row.Cells["SizeCheck"].Value = "√";
- }
- ultraGrid1.UpdateData();
- int CheckNum = Detail.Count(p => p.SizeCheck == "√");
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸检查 " + CheckNum + "支 抽检率 " + (CheckNum * 100d / Detail.Count).ToString("0.00") + "%";
- }
- }
- private void btnClear_Click(object sender, EventArgs e)
- {
- Detail = new List<MchFinalCheckGTotal>();
- _checkPort = new List<PortMchBatchSampleResultEntity>();
- mchFinalCheckTotalBindingSource.DataSource = Detail;
- ultraGrid1.DisplayLayout.Bands[0].Summaries[0].DisplayFormat = "送检0支";
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸抽检率 0%";
- }
- private void btnClear2_Click(object sender, EventArgs e)
- {
- Detail.ForEach(P=>P.SizeCheck="");
- mchFinalCheckTotalBindingSource.DataSource = Detail;
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸检查 0支 抽检率 0%";
- }
- private void btnSizeAdd_Click(object sender, EventArgs e)
- {
- if (txtDir.Text == "")
- {
- MessageBox.Show("指定管号不能为空");
- return;
- }
- if (isMeasureData)
- {
- var dir = Detail.Where(p => p.MeasuringSeq.ToString2() == txtDir.Text).ToList();
- if (!dir.Any())
- {
- MessageBox.Show("找不到指定管号");
- return;
- }
- dir[0].SizeCheck = "√";
- }
- else
- {
- int dirNum = 0;
- if (!int.TryParse(txtDir.Text, out dirNum) || dirNum <= 0)
- {
- MessageBox.Show("请输入正确的管号");
- return;
- }
- if (dirNum >= Detail.Count)
- {
- MessageBox.Show("超出抽检管号范围");
- return;
- }
- Detail[dirNum - 1].SizeCheck = "√";
- }
- mchFinalCheckTotalBindingSource.DataSource = Detail;
- int CheckNum = Detail.Count(p => p.SizeCheck == "√");
- ultraGrid1.DisplayLayout.Bands[0].Summaries[1].DisplayFormat = "尺寸检查 " + CheckNum + "支 抽检率 " + (CheckNum * 100d / Detail.Count).ToString("0.00") + "%";
- txtDir.SelectAll();
- }
-
-
-
- }
- }
|