using Bro.Common.Helper;
|
using Bro.M071.DBManager;
|
using Bro.M071.Model.Model;
|
using Bro.UI.Model.Winform;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Configuration;
|
using System.Data;
|
using System.Drawing;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace Bro.M071.Process.UI
|
{
|
[MenuNode("M071_DataForm", "数据查询界面", 3, "M071Node", true)]
|
public partial class M071_DataForm : MenuFrmBase
|
{
|
public ProductionMeasurementRecordsManager _productionMeasurementRecordsManager = new ProductionMeasurementRecordsManager();
|
public MeasurementUnitResultManager _measurementUnitResultManager = new MeasurementUnitResultManager();
|
|
ProductionMeasurementRecordsRequest recordsRequest = new ProductionMeasurementRecordsRequest();
|
MeasurementUnitResultRequest resultRequest = new MeasurementUnitResultRequest();
|
|
public M071_DataForm()
|
{
|
InitializeComponent();
|
InitialProductionRecordsLayout();
|
InitialMeasurementResultLayout();
|
}
|
|
#region 产品记录
|
private void InitialProductionRecordsLayout()
|
{
|
comboBoxPResult.DataSource = new List<string>() { "", "OK", "NG" };
|
}
|
|
private void buttonQuery_Click(object sender, EventArgs e)
|
{
|
recordsRequest.PageNum = 1;
|
GetProductionMeasurementRecords();
|
}
|
private void buttonToFirstPage_Click(object sender, EventArgs e)
|
{
|
recordsRequest.PageNum = 1;
|
GetProductionMeasurementRecords();
|
}
|
private void buttonToBeforePage_Click(object sender, EventArgs e)
|
{
|
if (recordsRequest.PageNum != 1)
|
{
|
recordsRequest.PageNum = recordsRequest.PageNum - 1;
|
GetProductionMeasurementRecords();
|
}
|
}
|
private void buttonToNextPage_Click(object sender, EventArgs e)
|
{
|
if (recordsRequest.PageNum != recordsRequest.TotalPage && recordsRequest.TotalPage != 0)
|
{
|
recordsRequest.PageNum = recordsRequest.PageNum + 1;
|
GetProductionMeasurementRecords();
|
}
|
}
|
private void buttonToLastPage_Click(object sender, EventArgs e)
|
{
|
if (recordsRequest.TotalPage != 0)
|
{
|
recordsRequest.PageNum = recordsRequest.TotalPage;
|
GetProductionMeasurementRecords();
|
}
|
}
|
|
private void ToPage(object sender, KeyEventArgs e)
|
{
|
if (e.KeyCode == Keys.Enter)
|
{
|
recordsRequest.PageNum = Convert.ToInt32(textBoxPageNum.Text);
|
if (recordsRequest.PageNum > recordsRequest.TotalPage)
|
{
|
recordsRequest.PageNum = recordsRequest.TotalPage == 0 ? 1 : recordsRequest.TotalPage;
|
}
|
GetProductionMeasurementRecords();
|
}
|
}
|
|
private void GetProductionMeasurementRecords()
|
{
|
recordsRequest.ProductionCode = textBoxPCode.Text;
|
recordsRequest.ProductionBarcode = textBoxPBarCode.Text;
|
recordsRequest.ProductionResult = comboBoxPResult.SelectedItem?.ToString();
|
recordsRequest.StartTime = Convert.ToDateTime(dateTimePStartTime.Value.ToString("D").ToString());
|
recordsRequest.EndTime = Convert.ToDateTime(dateTimePEndTime.Value.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
|
|
var queryData = _productionMeasurementRecordsManager.GetProductionMeasurementRecords(recordsRequest);
|
dataGridView1.AutoGenerateColumns = false;
|
dataGridView1.DataSource = queryData;
|
labelTotal.Text = $"数量:{recordsRequest.TotalNum} 总页数:{recordsRequest.TotalPage}";
|
textBoxPageNum.Text = recordsRequest.PageNum.ToString();
|
}
|
#endregion
|
|
#region 测量结果
|
private void InitialMeasurementResultLayout()
|
{
|
comboBoxResult_MR.DataSource = new List<string>() { "", "OK", "NG" };
|
comboBoxMeasurementType_MR.DataSource = new List<string>() { "", "Slant", "Alignment", "RowAlignment" };
|
}
|
|
private void buttonQuery_MR_Click(object sender, EventArgs e)
|
{
|
resultRequest.PageNum = 1;
|
GetMeasurementUnitResult();
|
}
|
|
private void GetMeasurementUnitResult()
|
{
|
resultRequest.ProductionCode = textBoxPCode_MR.Text;
|
resultRequest.ProductionBarcode = textBoxtextBoxPBarCode_MR.Text;
|
resultRequest.MeasurementName = textBoxMeasurementName_MR.Text;
|
resultRequest.MeasurementType = comboBoxMeasurementType_MR.SelectedItem?.ToString();
|
resultRequest.MeasurementResult = comboBoxResult_MR.SelectedItem?.ToString();
|
resultRequest.StartTime = Convert.ToDateTime(dateTimePickerStartTime_MR.Value.ToString("D").ToString());
|
resultRequest.EndTime = Convert.ToDateTime(dateTimePickerEndTime_MR.Value.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
|
|
var queryData = _measurementUnitResultManager.GetMeasurementUnitResult(resultRequest);
|
|
dataGridView2.AutoGenerateColumns = false;
|
dataGridView2.DataSource = queryData;
|
labelTotal_MR.Text = $"数量:{recordsRequest.TotalNum} 总页数:{recordsRequest.TotalPage}";
|
textBoxPageNum_MR.Text = recordsRequest.PageNum.ToString();
|
|
}
|
private void ToPageMR(object sender, KeyEventArgs e)
|
{
|
if (e.KeyCode == Keys.Enter)
|
{
|
resultRequest.PageNum = Convert.ToInt32(textBoxPageNum.Text);
|
if (resultRequest.PageNum > resultRequest.TotalPage)
|
{
|
resultRequest.PageNum = resultRequest.TotalPage == 0 ? 1 : resultRequest.TotalPage;
|
}
|
GetMeasurementUnitResult();
|
}
|
}
|
private void buttonExport_MR_Click(object sender, EventArgs e)
|
{
|
try
|
{
|
var exportData = GetMeasurementUnitResultAndKeyUnitData();
|
if (exportData != null)
|
{
|
ExportProductionExcel(exportData);
|
MessageBox.Show("导出完成");
|
}
|
}
|
catch (Exception ex)
|
{
|
MessageBox.Show(ex.Message);
|
}
|
}
|
|
private void ExportProductionExcel(ProductionMeasurementUnitResultExportDataSet productionMeasurementUnitResultExportDataSet)
|
{
|
ExcelExportSet excelExportDto = new ExcelExportSet();
|
excelExportDto.Worksheets = new List<string>() { "生产记录", "检测结果", "原始数据" };
|
var productionRecordsColumns = new Dictionary<string, string>()
|
{
|
{"ProductionCode", "产品编码"},
|
{"ProductionBarcode", "产品条码"},
|
{"ProductionResult", "产品结果"},
|
{"OperationStartTime", "操作开始时间"},
|
{"OperationEndTime", "操作结束时间"}
|
};
|
|
var keyUnitColumns = new Dictionary<string, string>()
|
{
|
{"ProductionBarcode", "产品条码"},
|
{"Key", "键"},
|
{"MeasurementItem", "检测项"},
|
{"ItemValue", "检测值"}
|
};
|
var measurementUnitResultColumns = new Dictionary<string, string>()
|
{
|
{"ProductionBarcode", "产品条码"},
|
{"MeasurementName", "检测名称"},
|
{"MeasurementType", "检测类型"},
|
{"MeasurementValue", "检测值"},
|
{"MeasurementResult", "检测结果"},
|
};
|
|
excelExportDto.WorksheetColumns[excelExportDto.Worksheets[0]] = productionRecordsColumns;
|
excelExportDto.WorksheetColumns[excelExportDto.Worksheets[1]] = keyUnitColumns;
|
excelExportDto.WorksheetColumns[excelExportDto.Worksheets[2]] = measurementUnitResultColumns;
|
|
excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[0]] = ExcelExportHelper.ListToDataTable(productionMeasurementUnitResultExportDataSet.ProductionMeasurementRecordList, productionRecordsColumns);
|
excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(productionMeasurementUnitResultExportDataSet.KeyUnitDataList, keyUnitColumns);
|
excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[2]] = ExcelExportHelper.ListToDataTable(productionMeasurementUnitResultExportDataSet.MeasurementUnitResultList, measurementUnitResultColumns);
|
|
var exportPath = ConfigurationManager.AppSettings["ExportPath"];
|
if (!Directory.Exists(exportPath))
|
{
|
Directory.CreateDirectory(exportPath);
|
}
|
var fileName = Path.Combine(exportPath, $"ExportData_{DateTime.Now.ToString("HHmmss")}.xlsx");
|
|
byte[] filecontent = ExcelExportHelper.CreateOrAppendExcel(excelExportDto, fileName);
|
FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
|
fs.Write(filecontent, 0, filecontent.Length);
|
fs.Flush();
|
fs.Close();
|
}
|
|
private ProductionMeasurementUnitResultExportDataSet GetMeasurementUnitResultAndKeyUnitData()
|
{
|
ProductionMeasurementUnitResultExportDataSet productionMeasurementUnitResultExportDataSet = new ProductionMeasurementUnitResultExportDataSet();
|
try
|
{
|
MeasurementUnitResultRequest measurementUnitResultRequest = resultRequest.DeepSerializeClone();
|
measurementUnitResultRequest.PageNum = 1;
|
measurementUnitResultRequest.PageSize = 10000;
|
productionMeasurementUnitResultExportDataSet = _measurementUnitResultManager.GetProductionMeasurementUnitResultExportDataSet(measurementUnitResultRequest);
|
}
|
catch (Exception ex)
|
{
|
MessageBox.Show(ex.Message);
|
}
|
return productionMeasurementUnitResultExportDataSet;
|
}
|
|
private void buttonToFirstPage_MR_Click(object sender, EventArgs e)
|
{
|
resultRequest.PageNum = 1;
|
GetMeasurementUnitResult();
|
}
|
|
private void buttonToBeforePage_MR_Click(object sender, EventArgs e)
|
{
|
if (resultRequest.PageNum != 1)
|
{
|
resultRequest.PageNum = resultRequest.PageNum - 1;
|
GetMeasurementUnitResult();
|
}
|
}
|
|
private void buttonToNextPage_MR_Click(object sender, EventArgs e)
|
{
|
if (resultRequest.PageNum != resultRequest.TotalPage && resultRequest.TotalPage != 0)
|
{
|
resultRequest.PageNum = resultRequest.PageNum + 1;
|
GetMeasurementUnitResult();
|
}
|
}
|
|
private void buttonToLastPage_MR_Click(object sender, EventArgs e)
|
{
|
if (resultRequest.TotalPage != 0)
|
{
|
resultRequest.PageNum = resultRequest.TotalPage;
|
GetMeasurementUnitResult();
|
}
|
}
|
|
#endregion
|
}
|
}
|