|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396 |
- using Devart.Data;
- using MaiMuAOI.SysCtrl;
- using MaiMuAOI.SysUI.ProductAndStep;
- using MaiMuControl.SysStatusMgr.UserMgr;
- using Models;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using OpenCvSharp.Flann;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Data.Common;
- using System.Drawing;
- using System.Dynamic;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using System.Runtime.InteropServices.ComTypes;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- using System.Web.Routing;
- using System.Web.UI.WebControls;
- using System.Windows.Forms;
- using static MaiMuControl.Form1;
-
- namespace MaiMuAOI.SysUI.DefectPicShow
- {
- public partial class DataQueryFrm : Form
- {
- Service.OrderService OrderService = new Service.OrderService();
- List<Order> QueryOrders = new List<Order>();
- List<Order> QueryAllOrders = new List<Order>();
-
- List<string> ItemName = new List<string>();
- List<string> labels = new List<string>();
-
- public DataQueryFrm()
- {
- InitializeComponent();
- UIStyle.SetUIStyle(this);
- this.uiTitel1.FatherForm = this;
-
- //反射 循环 获取数据
- labels.Add("Tension");
- labels.Add("Height");
-
- Type t = typeof(PointTestType);
- FieldInfo[] fieldInfos = t.GetFields();
- foreach (var item in fieldInfos)
- {
- //不是枚举字段不处理
- if (item.FieldType.IsEnum)
- {
- //名称可以直接获取
- ItemName.Add(item.Name);
- labels.Add(item.Name);
- }
- }
- }
-
- private void DataQueryFrm_Load(object sender, EventArgs e)
- {
- LoadPdtList(SysMgr.Instance.ProductCodeList);
-
- //激活OnPageChanged事件
- pageCtrl1.OnPageChanged += new EventHandler(pagerControl1_OnPageChanged);
- }
-
- #region 切页
- /// <summary>
- /// 页数变化时调用绑定数据方法
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void pagerControl1_OnPageChanged(object sender, EventArgs e)
- {
- QueryData();
- }
- #endregion
-
- #region 加载料号
- private string[] pdtlistData;
- private void LoadPdtList(List<string> list)
- {
- this.cbProductCode.Items.Clear();
- this.pdtlistData = list.ToArray();
- cbProductCode.Items.AddRange(pdtlistData);//比使用DataSource速度要快一些
- cbProductCode.TextUpdate += cobList_TextUpdate;//重新绑定事件
- cbProductCode.KeyDown += CobList_KeyDown;
- this.cbProductCode.Text = "";
- cbProductCode.Focus();
- cbProductCode.SelectAll();
- }
- private void CobList_KeyDown(object sender, KeyEventArgs e)
- {
- ComboBox ctrl = sender as ComboBox;
- if (e.KeyCode == Keys.Enter)
- {
- if (ctrl.Items.Count == 1)
- ctrl.Text = ctrl.Items[0].ToString();
- }
- }
-
- private void cobList_TextUpdate(object sender, EventArgs e)
- {
- ComboBox ctrl = sender as ComboBox;
- if (ctrl.Text != null)
- {
- string str = ctrl.Text; //获取cb_material控件输入内
- //清空combobox
- ctrl.DataSource = null;
- ctrl.Items.Clear();
-
- string[] workOrderFiltered;
-
- workOrderFiltered = pdtlistData.Where(x => x.IndexOf(str, StringComparison.CurrentCultureIgnoreCase) != -1).ToArray();//忽略大小写
- ctrl.Items.AddRange(workOrderFiltered);//比使用DataSource速度要快一些
-
- // 不存在符合条件时
- //设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列
- ctrl.Cursor = Cursors.Default; //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置
- if (workOrderFiltered.Length > 0)
- {
- if (!ctrl.DroppedDown)
- ctrl.DroppedDown = true; // 自动弹出下拉框
- }
-
- ctrl.SelectionStart = str.Length; // 设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列
- }
- }
-
- #endregion
-
- #region 查询数据
-
- #region 数据库查询
- private class domainItem
- {
- public string FieldName { get; set; }
- public string FieldValue { get; set; }
- public int ConditionalType { get; set; }
- }
- private class QueryOrderData
- {
- public string model { get; set; }
- public string fields { get; set; }
- public List<domainItem> domain { get; set; }
- public string order { get; set; }
-
- public int pageNum { get; set; }
- public int pageSize { get; set; }
-
- }
- private List<Order> getTableList(JObject req, out int TotalCnt)
- {
- try
- {
- string model, fields = "", domain = "", order = "";
- int pageNum = 0, pageSize = 0, totalCount = 0;
-
- model = req.Value<string>("model");
- if (req.ContainsKey("fields")) fields = req.Value<string>("fields");
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
- if (req.ContainsKey("order")) order = req.Value<string>("order");
-
- if (req.ContainsKey("pageNum")) pageNum = req.Value<int>("pageNum");
- if (req.ContainsKey("pageSize")) pageSize = req.Value<int>("pageSize");
-
- //创建表达式
- var exp1 = Expressionable.Create<Order>()
- //.AndIF((int)cobProductList.SelectedValue > 0, it => it.ProductId == (int)cobProductList.SelectedValue)
- //.AndIF((int)cobStepList.SelectedValue > 0, it => it.StepId == (int)cobStepList.SelectedValue)
- //.AndIF(dateTimePicker1.Checked, it => it.CreateTime >= dateTimePicker1.Value)
- //.AndIF(dateTimePicker2.Checked, it => it.CreateTime < dateTimePicker2.Value)
- .ToExpression();//注意 这一句 不能少
-
-
- var list = OrderService.GetListEx(fields, domain, order, pageNum, pageSize, ref totalCount);
- TotalCnt = totalCount;
- //var list = svcOrder.GetListNav(pageNum, pageSize, ref totalCount, exp1);
- return list;
- }
- catch (Exception ex)
- {
- ;
- }
- TotalCnt = 0;
- return null;
- }
- #endregion
-
- #region 新老流程数据分析
- private void ShowDataTableEx(List<Order> list)
- {
- dataGridView1.Columns.Clear();
- //记录数据类型列数
- Dictionary<string, int> dataCnt = new Dictionary<string, int>();
- DataTable dt = new DataTable(); //建立个数据表
- //通用列
- DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
- chk.Name = "Select";
- chk.HeaderText = "选择";
- dataGridView1.Columns.Add(chk);
- dt.Columns.Add(new DataColumn("检验日期", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("检测单号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("产品名称", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("料号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("网版编码", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("批次", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("合格", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("修复", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("异常情况", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("修复人员", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("比对", typeof(string)));//在表中添加string类型的列
-
- foreach(var item in list)
- {
- //老流程
- if(item.StepInfo == null ||item.StepInfo.ProcessType != "快速流程")
- {
- //加入数据表
- if(item.SizeDefectInfoList == null)
- item.SizeDefectInfoList = new List<SizeDefectInfo>();
- #region 张力
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension5,
- });
- #endregion
- #region 厚度
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height5,
- });
- #endregion
- #region YPT
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT6,
- });
- #endregion
- #region 线宽
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth6,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth7,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth8,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth9,
- });
- #endregion
- if (!dataCnt.ContainsKey("张力"))
- dataCnt.Add("张力", 5);
- else
- if (dataCnt["张力"] < 5)
- dataCnt["张力"] = 5;
-
- if (!dataCnt.ContainsKey("厚度"))
- dataCnt.Add("厚度", 5);
- else
- if (dataCnt["厚度"] < 5)
- dataCnt["厚度"] = 5;
-
- if (!dataCnt.ContainsKey("Y轴方向PT值检测"))
- dataCnt.Add("Y轴方向PT值检测", 5);
- else
- if (dataCnt["Y轴方向PT值检测"] < 5)
- dataCnt["Y轴方向PT值检测"] = 5;
-
- if (!dataCnt.ContainsKey("线宽正面"))
- dataCnt.Add("线宽正面", 9);
- else
- if (dataCnt["线宽正面"] < 9)
- dataCnt["线宽正面"] = 9;
- }
- else
- {
- //string[] pointType = new string[19] {"Tension", "Height", "Y轴方向PT值检测" , "线宽正面" , "反面检测" ,
- // "X轴方向PT值检测","主栅连接线检测","主栅宽度检测","主栅间距","细栅间距检测","背极宽度",
- // "主栅长度检测","Mark点横向间距","Mark点竖向间距","鱼叉口长","鱼叉口宽","鱼叉口间距", "蜈蚣角长", "蜈蚣角宽"};
-
- //按照检测项目分类
- //string[] pointType = labels.ToArray();
- //for (int i = 0; i < pointType.Length; i++)
- //{
- // List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.PointCode == pointType[i]).ToList();
- // if (t.Count > 0)
- // {
- // //当前测试项数据个数
- // if (!dataCnt.ContainsKey(pointType[i]))
- // dataCnt.Add(pointType[i], t.Count);
- // else
- // if (dataCnt[pointType[i]] < t.Count)
- // dataCnt[pointType[i]] = t.Count;
- // }
- //}
-
- //按照步骤流程分类
- string[] pointType = item.SizeDefectInfoList.Select(t => t.StepName).Distinct().ToList().ToArray();
- for (int i = 0; i < pointType.Length; i++)
- {
- List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.StepName == pointType[i]).ToList();
- if (t.Count > 0)
- {
- //当前测试项数据个数
- if (!dataCnt.ContainsKey(pointType[i]))
- dataCnt.Add(pointType[i], t.Count);
- else
- if (dataCnt[pointType[i]] < t.Count)
- dataCnt[pointType[i]] = t.Count;
- }
- }
- }
- }
- //插入列
- foreach (var item in dataCnt)
- {
- //按步骤名称插入列
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"{item.Key}-{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn($"{item.Key}均值", typeof(string)));
- #if false
- switch (item.Key)
- {
- case "Tension":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"张力{i+1}", typeof(string)));
- dt.Columns.Add(new DataColumn("张力均值", typeof(string)));
- break;
- case "Height":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"厚度{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("厚度均值", typeof(string)));
- break;
- case "Y轴方向PT值检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"Y轴方向PT值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("Y轴方向PT值均值", typeof(string)));
- break;
- case "线宽正面":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"线宽正面{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("线宽正面均值", typeof(string)));
- break;
- case "反面检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"反面检测{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("反面检测均值", typeof(string)));
- break;
- case "X轴方向PT值检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"X轴方向PT值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("X轴方向PT值均值", typeof(string)));
- break;
-
- case "主栅连接线检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅连接线检测值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅连接线检测均值", typeof(string)));
- break;
- case "主栅宽度检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅宽度检测值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅宽度检测均值", typeof(string)));
- break;
- case "主栅间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅间距值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅间距均值", typeof(string)));
- break;
- case "细栅间距检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"细栅间距检测值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("细栅间距检测均值", typeof(string)));
- break;
- case "背极宽度":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"背极宽度值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("背极宽度均值", typeof(string)));
- break;
-
- case "主栅长度检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅长度检测{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅长度检测均值", typeof(string)));
- break;
- case "Mark点横向间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"Mark点横向间距{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("Mark点横向间距均值", typeof(string)));
- break;
- case "Mark点竖向间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"Mark点竖向间距{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("Mark点竖向间距均值", typeof(string)));
- break;
- case "鱼叉口长":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"鱼叉口长{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("鱼叉口长均值", typeof(string)));
- break;
- case "鱼叉口宽":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"鱼叉口宽{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("鱼叉口宽均值", typeof(string)));
- break;
- case "鱼叉口间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"鱼叉口间距{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("鱼叉口间距均值", typeof(string)));
- break;
- case "蜈蚣角长":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"蜈蚣角长{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("蜈蚣角长均值", typeof(string)));
- break;
- case "蜈蚣角宽":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"蜈蚣角宽{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("蜈蚣角宽均值", typeof(string)));
- break;
-
- case "分片间隔":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"分片间隔{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("分片间隔均值", typeof(string)));
- break;
- case "焊点长":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"焊点长{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("焊点长均值", typeof(string)));
- break;
- case "焊点宽":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"焊点宽{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("焊点宽均值", typeof(string)));
- break;
- case "焊点间隔":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"焊点间隔{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("焊点间隔均值", typeof(string)));
- break;
- }
- #endif
- }
-
- dt.Columns.Add(new DataColumn("堵孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("脏污数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝异常数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("纤维丝数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("缺口数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("针孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("泡泡数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("划伤数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("压线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("斜边数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("栅线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝断裂数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("残胶堵孔数量", typeof(int)));//在表中添加int类型的列
-
- //插入按钮
- dataGridView1.DataSource = dt;
- //在datagridview中添加button按钮
- //DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
- //btn.Name = "Modify";
- //btn.HeaderText = "操作";
- //btn.DefaultCellStyle.NullValue = "修改";
- //dataGridView1.Columns.Add(btn);
- //DataGridViewButtonColumn btn2 = new DataGridViewButtonColumn();
- //btn2.Name = "HistoryView";
- //btn2.HeaderText = "查看";
- //btn2.DefaultCellStyle.NullValue = "历史";
- //dataGridView1.Columns.Add(btn2);
- DataGridViewButtonColumn btn3 = new DataGridViewButtonColumn();
- btn3.Name = "Distribution";
- btn3.HeaderText = "缺陷分布";
- btn3.DefaultCellStyle.NullValue = "分布";
- dataGridView1.Columns.Add(btn3);
-
- DataTable dts = (DataTable)dataGridView1.DataSource;
- dts.Clear();
- foreach (var item in list)
- {
- //新增
- DataRow dr;//行
- dr = dts.NewRow();
- //dr["选择"] = false;
- dr["检验日期"] = item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
- dr["检测单号"] = item.DetectOrder;
- dr["产品名称"] = item.ProductInfo.Name;
- dr["料号"] = item.ProductInfo.Code;
- dr["网版编码"] = item.SN;
- dr["批次"] = item.BatchId;
- dr["合格"] = item.Qualified ? "合格": "不合格";
- dr["修复"] = item.State == 10 ? "异常" : item.State == 5 ? "修复" : "待修复";
- dr["异常情况"] = item.Abnormalities;
- dr["修复人员"] = item.RepairCode;
- dr["比对"] = item.CompareResult == 2 ? "不通过" : item.CompareResult == 1 ? "通过" : "未比对";
-
- //根据不同步骤名称插入数据
- List<SizeDefectInfo> tempd = new List<SizeDefectInfo>();
- foreach (var tdata in dataCnt)
- {
- tempd = item.SizeDefectInfoList.Where(q => q.StepName == tdata.Key).ToList();
- List<double> dataList = new List<double>();
- for (int i = 0; i < tempd.Count; i++)
- {
- dataList.Add(tempd[i].Data);
- dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- }
- if (dataList.Count > 0)
- dr[$"{tdata.Key}均值"] = dataList.Average().ToString("0.0000");
- else
- dr[$"{tdata.Key}均值"] = "0";
- #if false
- switch (tdata.Key)
- {
- case "Tension":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Tension").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"张力{i + 1}"] = tempd[i].Data.ToString("0.00") ;
- dr["张力均值"] = item.TensionValue.ToString("0.00");
- break;
- case "Height":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Height").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"厚度{i + 1}"] = tempd[i].Data.ToString("0.00");
- dr["厚度均值"] = item.HeightValue.ToString("0.00");
- break;
- case "Y轴方向PT值检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Y轴方向PT值检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"Y轴方向PT值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["Y轴方向PT值均值"] = item.PTValue.ToString("0.0000");
- break;
- case "线宽正面":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "线宽正面").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"线宽正面{i + 1}"] = tempd[i].Data.ToString("0.00");
- dr["线宽正面均值"] = item.LineWidthValue.ToString("0.00");
- break;
- case "反面检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "反面检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"反面检测{i + 1}"] = tempd[i].Data.ToString("0.00");
- dr["反面检测均值"] = item.FLineWidthValue.ToString("0.00");
- break;
- case "X轴方向PT值检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "X轴方向PT值检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"X轴方向PT值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["X轴方向PT值均值"] = item.XPTValue.ToString("0.0000");
- break;
- case "主栅连接线检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅连接线检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅连接线检测值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅连接线检测均值"] = item.MGridIntervalValue.ToString("0.0000");
- break;
- case "主栅宽度检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅宽度检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅宽度检测值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅宽度检测均值"] = item.MGridWidthValue.ToString("0.0000");
- break;
- case "主栅间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅间距值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅间距均值"] = item.MGridSpreadValue.ToString("0.0000");
- break;
- case "细栅间距检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "细栅间距检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"细栅间距检测值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["细栅间距检测均值"] = item.FGridSpreadValue.ToString("0.0000");
- break;
- case "背极宽度":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "背极宽度").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"背极宽度值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["背极宽度均值"] = item.BackPoleWidthValue.ToString("0.0000");
- break;
-
- case "主栅长度检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅长度检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅长度检测{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅长度检测均值"] = item.MGridLengthValue.ToString("0.0000");
- break;
- case "Mark点横向间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Mark点横向间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"Mark点横向间距{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["Mark点横向间距均值"] = item.MarkXDisValue.ToString("0.0000");
- break;
- case "Mark点竖向间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Mark点竖向间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"Mark点竖向间距{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["Mark点竖向间距均值"] = item.MarkYDisValue.ToString("0.0000");
- break;
- case "鱼叉口长":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "鱼叉口长").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"鱼叉口长{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["鱼叉口长均值"] = item.ForkLengthValue.ToString("0.0000");
- break;
- case "鱼叉口宽":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "鱼叉口宽").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"鱼叉口宽{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["鱼叉口宽均值"] = item.ForkWidthValue.ToString("0.0000");
- break;
- case "鱼叉口间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "鱼叉口间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"鱼叉口间距{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["鱼叉口间距均值"] = item.ForkDisValue.ToString("0.0000");
- break;
- case "蜈蚣角长":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "蜈蚣角长").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"蜈蚣角长{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["蜈蚣角均值"] = item.ChilopodLengthValue.ToString("0.0000");
- break;
- case "蜈蚣角宽":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "蜈蚣角宽").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"蜈蚣角宽{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["蜈蚣角宽均值"] = item.ChilopodWidthValue.ToString("0.0000");
- break;
-
- case "分片间隔":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "分片间隔").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"分片间隔{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["分片间隔均值"] = item.MarkYDisValue.ToString("0.0000");
- break;
- case "焊点长":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "焊点长").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"焊点长{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["焊点长均值"] = item.ForkLengthValue.ToString("0.0000");
- break;
- case "焊点宽":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "焊点宽").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"焊点宽{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["焊点宽均值"] = item.ForkWidthValue.ToString("0.0000");
- break;
- case "焊点间隔":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "焊点间隔").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"焊点间隔{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["焊点间隔均值"] = item.ForkDisValue.ToString("0.0000");
- break;
- }
- #endif
- }
-
- dr["堵孔数量"] = item.DKCount;
- dr["脏污数量"] = item.ZWCount;
- dr["钢丝异常数量"] = item.GSYCCount;
- dr["纤维丝数量"] = item.XWSCount;
- dr["缺口数量"] = item.QKCount;
- dr["针孔数量"] = item.ZKCount;
- dr["泡泡数量"] = item.PPCount ;
- dr["划伤数量"] = item.HSCount;
- dr["压线数量"] = item.YXCount;
- dr["斜边数量"] = item.XBCount;
- dr["栅线数量"] = item.SXCount;
- dr["钢丝断裂数量"] = item.GSDLCount;
- dr["残胶堵孔数量"] = item.CJDKCount;
-
- dts.Rows.Add(dr);//在表的对象的行里添加此行
- }
-
- //dts.DefaultView.Sort = "时间戳 desc";
- //dts = dts.DefaultView.ToTable();
-
- dataGridView1.DataSource = dts;
-
- this.dataGridView1.Columns[0].Width = 50;
- this.dataGridView1.Columns[1].Width = 120;
-
- for (int i = 0; i < 12; i++)
- {
- this.dataGridView1.Columns[i].Frozen = true;
- }
-
- return;
- }
- #endregion
-
- private void QueryData()
- {
- QueryOrderData queryOrderData = new QueryOrderData();
- queryOrderData.model = "order";
- queryOrderData.fields = "*";
- queryOrderData.order = "id desc";
- queryOrderData.pageNum = this.pageCtrl1.PageIndex;
- queryOrderData.pageSize = this.pageCtrl1.PageSize;
- queryOrderData.domain = new List<domainItem>();
-
- domainItem startTime = new domainItem();
- startTime.FieldName = "CreateTime";
- startTime.FieldValue = dateTimePicker1.Value.ToString("yyyy-M-d");
- startTime.ConditionalType = 3;
- queryOrderData.domain.Add(startTime);
-
- domainItem endTime = new domainItem();
- endTime.FieldName = "CreateTime";
- endTime.FieldValue = dateTimePicker2.Value.ToString("yyyy-M-d") + " 23:59:59";
- endTime.ConditionalType = 5;
- queryOrderData.domain.Add(endTime);
- //OrderService.GetList
-
- //产品条件
- if (!string.IsNullOrEmpty(cbProductCode.Text))
- {
- domainItem ProductCode = new domainItem();
- ProductCode.FieldName = "ProductId";
- ProductCode.FieldValue = SysMgr.Instance.ProductIdList[cbProductCode.SelectedIndex].ToString();
- ProductCode.ConditionalType = 6;
- queryOrderData.domain.Add(ProductCode);
- }
- //合格条件
- if (!string.IsNullOrEmpty(comboBox2.Text))
- {
- domainItem CompareResult = new domainItem();
- CompareResult.FieldName = "Qualified";
- CompareResult.FieldValue = comboBox2.Text == "合格"? "1":"0";
- CompareResult.ConditionalType = 0;
- queryOrderData.domain.Add(CompareResult);
- }
- //比对条件
- if (!string.IsNullOrEmpty(comboBox1.Text))
- {
- domainItem CompareResultOptions = new domainItem();
- CompareResultOptions.FieldName = "CompareResult";
- CompareResultOptions.FieldValue = comboBox1.Text == "通过" ? "1" : comboBox1.Text == "未通过" ? "2" : "0";
- CompareResultOptions.ConditionalType = 0;
- queryOrderData.domain.Add(CompareResultOptions);
- }
- //异常条件
- if (!string.IsNullOrEmpty(comboBox3.Text))
- {
- domainItem State = new domainItem();
- State.FieldName = "State";
- State.FieldValue = comboBox3.Text == "修复" ? "5" : comboBox3.Text == "未修复" ? "0" : "10";
- State.ConditionalType = 0;
- queryOrderData.domain.Add(State);
- }
-
- int totalcnt = 0;
- JObject str = JObject.Parse(JsonConvert.SerializeObject(queryOrderData));
- var list = getTableList(str, out totalcnt);
- this.pageCtrl1.DrawControl(totalcnt);
-
- QueryOrders = list;
- //自动生成表格
- ShowDataTableEx(list);
-
- //总数居
- queryOrderData.pageNum = 0;
- queryOrderData.pageSize = 0;
- JObject str2 = JObject.Parse(JsonConvert.SerializeObject(queryOrderData));
- var list2 = getTableList(str2, out totalcnt);
- QueryAllOrders = list2;
- }
- private void skinButton2_Click(object sender, EventArgs e)
- {
- pageCtrl1.PageIndex = 1;
- QueryData();
- }
- #endregion
-
- #region 表格单击
-
- #region 更新数据
-
- #endregion
- private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- int Index = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
- if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "操作")
- {
- //修改数据
- AmendantRecordFrm recordFrm = new AmendantRecordFrm(QueryOrders[Index]);
- recordFrm.ShowDialog();
- //重新显示
- QueryData();
- }
- else if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "查看")
- {
- //查看历史
- HistoryViewFrm Frm = new HistoryViewFrm(QueryOrders[Index]);
- Frm.ShowDialog();
-
- }
- else if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "缺陷分布")
- {
- //缺陷分布
- DistributionFrm Frm = new DistributionFrm(QueryOrders[Index]);
- Frm.WindowState = FormWindowState.Maximized;
- Frm.ShowDialog();
-
- }
- else if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "选择")
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[Index].Cells[0];
- Boolean flag = Convert.ToBoolean(checkCell.Value);
- if (flag == true) //查找被选择的数据行
- {
- checkCell.Value = false;
- }
- else
- checkCell.Value = true;
- }
- }
- #endregion
-
- #region 界面调整
- private void DataQueryFrm_SizeChanged(object sender, EventArgs e)
- {
- if (this.WindowState == FormWindowState.Maximized)
- {
- this.WindowState = FormWindowState.Normal;
- this.Top = 0;
- this.Left = 0;
- this.Width = SystemInformation.WorkingArea.Width;
- this.Height = SystemInformation.WorkingArea.Height;
- }
- }
- #endregion
-
- #region 删除
- private int delTableList(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string model = req.Value<string>("model");
- string domain = req.Value<JArray>("domain").ToString();
- //var idArr = req.Value<JArray>("idList");
- //List<int> ids = new List<int>();
- //foreach (int id in idArr) ids.Add(id);
- int result = OrderService.DeleteList(model, domain);
- return 1;
- }
- catch (Exception ex)
- {
-
- }
- return 0;
- }
- private void skinButton3_Click(object sender, EventArgs e)
- {
-
-
- for (int i = 0; i < dataGridView1.Rows.Count; i++)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0];
- Boolean flag = Convert.ToBoolean(checkCell.Value);
- if(flag == true)
- {
- QueryOrderData delOrderData = new QueryOrderData();
- delOrderData.model = "order";
- delOrderData.domain = new List<domainItem>();
- domainItem doitem = new domainItem();
- doitem.FieldName = "Id";
- doitem.FieldValue = QueryOrders[i].Id.ToString();
- doitem.ConditionalType = 6;
- delOrderData.domain.Add(doitem);
- JObject str = JObject.Parse(JsonConvert.SerializeObject(delOrderData));
- int ret = delTableList(str);
- if (ret == 1)
- {
- //删除历史
- QueryOrderData HistoryOrderData = new QueryOrderData();
- HistoryOrderData.model = "OrderHistory";
- HistoryOrderData.domain = new List<domainItem>();
-
- domainItem doitem2 = new domainItem();
- doitem2.FieldName = "Pid";
- doitem2.FieldValue = QueryOrders[i].Id.ToString();
- doitem2.ConditionalType = 6;
- HistoryOrderData.domain.Add(doitem2);
-
-
- JObject str2 = JObject.Parse(JsonConvert.SerializeObject(HistoryOrderData));
- delTableList(str2);
- }
- }
- }
-
-
-
- //重新显示
- QueryData();
- }
- #endregion
-
- #region Excel导出
- private void ShowAllDataTableEx(string filePath)
- {
- //记录数据类型列数
- Dictionary<string, int> dataCnt = new Dictionary<string, int>();
- DataTable dt = new DataTable(); //建立个数据表
- //通用列
- dt.Columns.Add(new DataColumn("检验日期", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("检测单号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("产品名称", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("料号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("网版编码", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("批次", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("合格", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("修复", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("异常情况", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("修复人员", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("比对", typeof(string)));//在表中添加string类型的列
-
- foreach (var item in QueryAllOrders)
- {
- //老流程
- if (item.StepInfo == null || item.StepInfo.ProcessType != "快速流程")
- {
- //加入数据表
- if (item.SizeDefectInfoList == null)
- item.SizeDefectInfoList = new List<SizeDefectInfo>();
- #region 张力
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension5,
- });
- #endregion
- #region 厚度
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height5,
- });
- #endregion
- #region YPT
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT6,
- });
- #endregion
- #region 线宽
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth6,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth7,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth8,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth9,
- });
- #endregion
- if (!dataCnt.ContainsKey("张力"))
- dataCnt.Add("张力", 5);
- else
- if (dataCnt["张力"] < 5)
- dataCnt["张力"] = 5;
-
- if (!dataCnt.ContainsKey("厚度"))
- dataCnt.Add("厚度", 5);
- else
- if (dataCnt["厚度"] < 5)
- dataCnt["厚度"] = 5;
-
- if (!dataCnt.ContainsKey("Y轴方向PT值检测"))
- dataCnt.Add("Y轴方向PT值检测", 5);
- else
- if (dataCnt["Y轴方向PT值检测"] < 5)
- dataCnt["Y轴方向PT值检测"] = 5;
-
- if (!dataCnt.ContainsKey("线宽正面"))
- dataCnt.Add("线宽正面", 9);
- else
- if (dataCnt["线宽正面"] < 9)
- dataCnt["线宽正面"] = 9;
- }
- else
- {
- //按照步骤流程分类
- string[] pointType = item.SizeDefectInfoList.Select(t => t.StepName).Distinct().ToList().ToArray();
- for (int i = 0; i < pointType.Length; i++)
- {
- List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.StepName == pointType[i]).ToList();
- if (t.Count > 0)
- {
- //当前测试项数据个数
- if (!dataCnt.ContainsKey(pointType[i]))
- dataCnt.Add(pointType[i], t.Count);
- else
- if (dataCnt[pointType[i]] < t.Count)
- dataCnt[pointType[i]] = t.Count;
- }
- }
- }
- }
- //插入列
- foreach (var item in dataCnt)
- {
- //按步骤名称插入列
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"{item.Key}-{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn($"{item.Key}均值", typeof(string)));
- }
-
- dt.Columns.Add(new DataColumn("堵孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("脏污数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝异常数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("纤维丝数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("缺口数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("针孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("泡泡数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("划伤数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("压线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("斜边数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("栅线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝断裂数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("残胶堵孔数量", typeof(int)));//在表中添加int类型的列
-
-
- foreach (var item in QueryAllOrders)
- {
- //新增
- DataRow dr;//行
- dr = dt.NewRow();
- //dr["选择"] = false;
- dr["检验日期"] = item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
- dr["检测单号"] = item.DetectOrder;
- dr["产品名称"] = item.ProductInfo.Name;
- dr["料号"] = item.ProductInfo.Code;
- dr["网版编码"] = item.SN;
- dr["批次"] = item.BatchId;
- dr["合格"] = item.Qualified ? "合格" : "不合格";
- dr["修复"] = item.State == 10 ? "异常" : item.State == 5 ? "修复" : "待修复";
- dr["异常情况"] = item.Abnormalities;
- dr["修复人员"] = item.RepairCode;
- dr["比对"] = item.CompareResult == 2 ? "不通过" : item.CompareResult == 1 ? "通过" : "未比对";
-
- List<SizeDefectInfo> tempd = new List<SizeDefectInfo>();
- foreach (var tdata in dataCnt)
- {
- tempd = item.SizeDefectInfoList.Where(q => q.StepName == tdata.Key).ToList();
- List<double> dataList = new List<double>();
- //for (int i = 0; i < tempd.Count; i++)
- // dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- //dr[$"{tdata.Key}均值"] = item.TensionValue.ToString("0.0000");
- for (int i = 0; i < tempd.Count; i++)
- {
- dataList.Add(tempd[i].Data);
- dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- }
- if (dataList.Count > 0)
- dr[$"{tdata.Key}均值"] = dataList.Average().ToString("0.0000");
- else
- dr[$"{tdata.Key}均值"] = "0";
- }
-
- dr["堵孔数量"] = item.DKCount;
- dr["脏污数量"] = item.ZWCount;
- dr["钢丝异常数量"] = item.GSYCCount;
- dr["纤维丝数量"] = item.XWSCount;
- dr["缺口数量"] = item.QKCount;
- dr["针孔数量"] = item.ZKCount;
- dr["泡泡数量"] = item.PPCount;
- dr["划伤数量"] = item.HSCount;
- dr["压线数量"] = item.YXCount;
- dr["斜边数量"] = item.XBCount;
- dr["栅线数量"] = item.SXCount;
- dr["钢丝断裂数量"] = item.GSDLCount;
- dr["残胶堵孔数量"] = item.CJDKCount;
-
- dt.Rows.Add(dr);//在表的对象的行里添加此行
- }
-
- try
- {
- // 创建一个新的CSV文件并写入数据
- using (StreamWriter writer = new StreamWriter(filePath, false, UnicodeEncoding.GetEncoding("GB2312")))
- {
- // 写入CSV文件的标题行
- for (int i = 0; i < dt.Columns.Count; i++)
- {
- writer.Write(dt.Columns[i].ColumnName + ",");
- }
- writer.Write("\r\n");
-
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- // 写入数据行
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- writer.Write(dt.Rows[i][j] + ",");
- }
- writer.Write("\r\n");
- //Console.WriteLine("CSV文件写入成功!");
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show("数据导出失败!error:" + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
-
- return;
- }
- private void skinButton1_Click(object sender, EventArgs e)
- {
- DataTable dt = (DataTable)dataGridView1.DataSource;
- if (dt.Rows.Count > 0)
- {
- SaveFileDialog fileDialog = new SaveFileDialog();
- fileDialog.Filter = "数据文件(*.csv)|*.csv";
- fileDialog.Title = "保存数据";
- //保存对话框是否记忆上次打开的目录
- fileDialog.RestoreDirectory = true;
-
- if (fileDialog.ShowDialog() == DialogResult.OK)
- {
- try
- {
- string filePath = fileDialog.FileName; // CSV文件路径
- ShowAllDataTableEx(filePath);
- MessageBox.Show("数据导出成功!" , "完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- catch (Exception ex)
- {
- MessageBox.Show("数据导出失败!error:" + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- }
- #endregion
-
- private void btnClear_Click(object sender, EventArgs e)
- {
- cbProductCode.Text = "";
- }
- }
- }
|