From 30458c0bca8066d98ca901b5065832a44a7e970e Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期四, 16 七月 2020 15:47:22 +0800
Subject: [PATCH] 测量结果 查询+导出功能

---
 src/Bro.M071.Process/UI/M071_DataForm.cs |  219 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 204 insertions(+), 15 deletions(-)

diff --git a/src/Bro.M071.Process/UI/M071_DataForm.cs b/src/Bro.M071.Process/UI/M071_DataForm.cs
index 213b464..5b306db 100644
--- a/src/Bro.M071.Process/UI/M071_DataForm.cs
+++ b/src/Bro.M071.Process/UI/M071_DataForm.cs
@@ -1,11 +1,15 @@
-锘縰sing Bro.M071.DBManager;
+锘縰sing 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;
@@ -18,6 +22,10 @@
     {
         public ProductionMeasurementRecordsManager _productionMeasurementRecordsManager = new ProductionMeasurementRecordsManager();
         public MeasurementUnitResultManager _measurementUnitResultManager = new MeasurementUnitResultManager();
+
+        ProductionMeasurementRecordsRequest recordsRequest = new ProductionMeasurementRecordsRequest();
+        MeasurementUnitResultRequest resultRequest = new MeasurementUnitResultRequest();
+
         public M071_DataForm()
         {
             InitializeComponent();
@@ -33,7 +41,54 @@
 
         private void buttonQuery_Click(object sender, EventArgs e)
         {
-            ProductionMeasurementRecordsRequest recordsRequest = new ProductionMeasurementRecordsRequest();
+            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();
@@ -46,35 +101,169 @@
             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", "HeightAlignment", "FullRowHeightAlignment" };
+            comboBoxMeasurementType_MR.DataSource = new List<string>() { "", "Slant", "Alignment", "RowAlignment" };
         }
 
         private void buttonQuery_MR_Click(object sender, EventArgs e)
         {
-            MeasurementUnitResultRequest recordsRequest = new MeasurementUnitResultRequest();
-            recordsRequest.ProductionCode = textBoxPCode_MR.Text;
-            recordsRequest.ProductionBarcode = textBoxtextBoxPBarCode_MR.Text;
-            recordsRequest.MeasurementName = textBoxMeasurementName_MR.Text;
-            recordsRequest.MeasurementType = comboBoxMeasurementType_MR.SelectedItem?.ToString();
-            recordsRequest.MeasurementResult = comboBoxResult_MR.SelectedItem?.ToString();
-            recordsRequest.StartTime = Convert.ToDateTime(dateTimePickerStartTime_MR.Value.ToString("D").ToString());
-            recordsRequest.EndTime = Convert.ToDateTime(dateTimePickerEndTime_MR.Value.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
+            resultRequest.PageNum = 1;
+            GetMeasurementUnitResult();
+        }
 
-            var queryData = _measurementUnitResultManager.GetMeasurementUnitResult(recordsRequest);
+        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
-
-
     }
 }

--
Gitblit v1.8.0