From 06a22e3d6d75e811affc35e12d00e8fd4259d869 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 09 6月 2024 16:06:55 +0800
Subject: [PATCH] 222

---
 iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
index 035d7d3..ca9e64d 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
@@ -250,6 +250,116 @@
             return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName };
         }
 
+
+        #region 浜ч噺鏌ヨ [Editby shaocx,2024-06-08]
+
+        /// <summary>
+        /// 浜ч噺鏌ヨ
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet("queryYield")]
+        public async Task<PageResult<QueryYieldOutput>> QueryYield([FromQuery] WorkPieceProcessSearch input)
+        {
+          
+            var workPieceProcesss = await (from process in _workPieceProcessRep.DetachedEntities
+                                           join baseinfo in _equipmentBaseInfoRep.DetachedEntities on process.EquipmentID equals baseinfo.EquipmentId into joinedEmpty
+                                           from baseinfo2 in joinedEmpty.DefaultIfEmpty()
+                                           join workPiece in _workPieceInfoRep.DetachedEntities on process.WorkPieceID equals workPiece.WorkPieceID into joined2Empty
+                                           from workPiece2 in joined2Empty.DefaultIfEmpty()
+                                           where process.IsDeleted == false && process.WorkPieceID.Contains(string.IsNullOrEmpty(input.WorkPieceID) ? "" : input.WorkPieceID)
+                     && process.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : process.QualityState)
+                     && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID)
+                     && process.WorkingProcedureCurrent == (string.IsNullOrEmpty(input.WorkingProcedureCurrent) ? process.WorkingProcedureCurrent : input.WorkingProcedureCurrent)
+                     && workPiece2.OP80NewCode == (string.IsNullOrEmpty(input.OP80NewCode) ? workPiece2.OP80NewCode : input.OP80NewCode)
+                     && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID)
+                     && process.OperationType == (string.IsNullOrEmpty(input.OperationType) ? process.OperationType : input.OperationType)
+                     && !string.IsNullOrEmpty(process.WorkPieceID)
+                     && process.StartTime >= (input.StartTimeBeginTime.HasValue ? input.StartTimeBeginTime : DateTime.MinValue)
+                     && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue)
+                                           select new WorkPieceProcessOutput
+                                           {
+
+                                               Id = process.Id,
+                                               WorkPieceID = process.WorkPieceID,
+                                               EquipmentID = process.EquipmentID,
+                                               EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName),
+                                               OP80NewCode = workPiece2.OP80NewCode,
+
+                                               WorkingProcedureCurrent = process.WorkingProcedureCurrent,
+                                               StartTime = process.StartTime,
+                                               EndTime = process.EndTime,
+                                               QualityState = process.QualityState,
+                                               QualityDataInfoID = process.QualityDataInfoID,
+                                               OperationType = process.OperationType,
+                                               CreateUserName = process.CreatedUserName
+                                           }).OrderBy(o => o.StartTime)
+             .ProjectToType<QueryYieldOutput>()
+              .ToADPagedListAsync(input.PageNo, input.PageSize);
+
+            return workPieceProcesss;
+        }
+
+        /// <summary>
+        /// 瀵煎嚭浜ч噺鏌ヨ
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns>瀵煎嚭鐨凟xcel鏂囦欢</returns>
+        [HttpGet("exportYield")]
+        public async Task<IActionResult> ExportYield([FromQuery] WorkPieceProcessSearch input)
+        {
+            var workPieceMachiningInfos = await (from process in _workPieceProcessRep.DetachedEntities
+                                                 join baseinfo in _equipmentBaseInfoRep.DetachedEntities
+                                               on process.EquipmentID equals baseinfo.EquipmentId into joinedEmpty
+                                                 from baseinfo2 in joinedEmpty.DefaultIfEmpty()
+                                                 join workPiece in _workPieceInfoRep.DetachedEntities on process.WorkPieceID equals workPiece.WorkPieceID into joined2Empty
+                                                 from workPiece2 in joined2Empty.DefaultIfEmpty()
+                                                 where process.IsDeleted == false && process.WorkPieceID.Contains(string.IsNullOrEmpty(input.WorkPieceID) ? "" : input.WorkPieceID)
+                    && process.QualityState == (input.QualityState.HasValue ? input.QualityState.Value : process.QualityState)
+                                                 && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID)
+                                                 && process.WorkingProcedureCurrent == (string.IsNullOrEmpty(input.WorkingProcedureCurrent) ? process.WorkingProcedureCurrent : input.WorkingProcedureCurrent)
+                                                 && process.EquipmentID == (string.IsNullOrEmpty(input.EquipmentID) ? process.EquipmentID : input.EquipmentID)
+                                                 && workPiece2.OP80NewCode == (string.IsNullOrEmpty(input.OP80NewCode) ? workPiece2.OP80NewCode : input.OP80NewCode)
+                    && process.OperationType == (string.IsNullOrEmpty(input.OperationType) ? process.OperationType : input.OperationType)
+                                                && !string.IsNullOrEmpty(process.WorkPieceID)
+                    && process.StartTime >= (input.StartTimeBeginTime.HasValue ? input.StartTimeBeginTime : DateTime.MinValue)
+                    && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue)
+                                                 select new WorkPieceProcessExcelOutput
+                                                 {
+                                                     OP80NewCode = workPiece2.OP80NewCode,
+
+                                                     Id = process.Id,
+                                                     WorkPieceID = process.WorkPieceID,
+                                                     //EquipmentID = process.EquipmentID,
+                                                     EquipmentName = (baseinfo2 == null ? "" : baseinfo2.EquipmentName),
+                                                     WorkingProcedureCurrent = process.WorkingProcedureCurrent,
+                                                     StartTime = process.StartTime.ToString(),
+                                                     EndTime = process.EndTime.ToString(),
+                                                     //QualityState = process.QualityState,
+                                                     CreateUserName = process.CreatedUserName
+                                                 }).OrderBy(o => o.StartTime).Distinct()
+            .ProjectToType<WorkPieceProcessExcelOutput>()
+             .ToListAsync();
+
+
+            foreach (WorkPieceProcessExcelOutput item in workPieceMachiningInfos)
+            {
+                item.StartTime = string.IsNullOrEmpty(item.StartTime) ? "" : Convert.ToDateTime(item.StartTime).ToString("yyyy-MM-dd hh:mm:ss");
+                item.EndTime = string.IsNullOrEmpty(item.EndTime) ? "" : Convert.ToDateTime(item.EndTime).ToString("yyyy-MM-dd hh:mm:ss");
+            }
+
+            MemoryStream ms = new();
+            DataConvertUtil.ToExcelData(workPieceMachiningInfos, _sysDictTypeRep, _sysDictDataRep, out List<string> headers,
+                out List<List<object>> data, out string sheetName);
+
+            ExcelUtil.ToExcel(headers, data, sheetName, ms);
+            ms.Position = 0;
+            var fileName = HttpUtility.UrlEncode($"{sheetName}[{DateTimeOffset.Now:yyyy-MM-dd}].xlsx", Encoding.GetEncoding("UTF-8"));
+            return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName };
+        }
+
+        #endregion
+
         /// <summary>
         /// 鍒嗛〉鏌ヨ宸ヤ欢鍔犲伐(宸ヤ欢淇℃伅琛�)
         /// </summary>

--
Gitblit v1.9.3