From 2b05362eba2f989b7857349cc9a3a1c12f8181b6 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 26 9月 2025 11:35:50 +0800
Subject: [PATCH] 222

---
 iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/QualityDataInfoService.cs |  306 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 195 insertions(+), 111 deletions(-)

diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/QualityDataInfoService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/QualityDataInfoService.cs
index 6b95364..4923d49 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/QualityDataInfoService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/QualityDataInfo/QualityDataInfoService.cs
@@ -26,7 +26,7 @@
     [Route("api/[Controller]")]
     public class QualityDataInfoService : IQualityDataInfoService, IDynamicApiController, ITransient
     {
-        private readonly IRepository<QualityDataInfo,MasterDbContextLocator> _qualityDataInfoRep;
+        private readonly IRepository<QualityDataInfo, MasterDbContextLocator> _qualityDataInfoRep;
         private readonly IRepository<EquipmentBaseInfo, MasterDbContextLocator> _equipmentBaseInfoRep;
         private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep;
         private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
@@ -40,7 +40,7 @@
         /// <param name="sysDictTypeRep"></param>
         /// <param name="sysDictDataRep"></param>
         public QualityDataInfoService(
-            IRepository<QualityDataInfo,MasterDbContextLocator> qualityDataInfoRep,
+            IRepository<QualityDataInfo, MasterDbContextLocator> qualityDataInfoRep,
             IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep,
             IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep,
             IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep,
@@ -62,9 +62,9 @@
         public async Task<AddQualityDataInfoInputV2> GetQualityInfoSPCForID([FromQuery] QualityDataInfoSearch2 input)
         {
             var interfaceLog = _accessInterfaceLogRep.DetachedEntities.Where(o => o.Id == input.QualityDataInfoID).FirstOrDefault();
-            if(interfaceLog==null|| interfaceLog.Id<1)
+            if (interfaceLog == null || interfaceLog.Id < 1)
             {//娌℃湁鏌ヨ鍒�
-                throw Oops.Oh($"褰撳墠宸ヤ欢{input.WorkPieceID??""}娌℃湁SPC鍙嶉淇℃伅锛�");
+                throw Oops.Oh($"褰撳墠宸ヤ欢{input.WorkPieceID ?? ""}娌℃湁SPC鍙嶉淇℃伅锛�");
             }
             var output = JsonConvert.DeserializeObject<AddQualityDataInfoInputV2>(interfaceLog.ParaJSON);
             return output;
@@ -76,9 +76,9 @@
         /// <returns></returns>
         [HttpGet("GetQualityInfoForID")]
         public async Task<QualityDataInfoOutput> GetQualityInfoForID([FromQuery] QualityDataInfoSearch2 input)
-        {            
+        {
             QualityDataInfoOutput qualityDataInfo = new QualityDataInfoOutput();
-            if(input==null|| string.IsNullOrEmpty(input.OperationType))
+            if (input == null || string.IsNullOrEmpty(input.OperationType))
             {
                 throw Oops.Oh("浼犲弬寮傚父锛�");
             }
@@ -137,13 +137,31 @@
                    QualityOP80To8 = m.a.QualityOP80To8,
                    QualityOP80To9 = m.a.QualityOP80To9,
                    QualityOP80To10 = m.a.QualityOP80To10,
+
+                   //鏂板OP80鐨勪竴浜涜川閲忔暟鎹� 銆怑ditby shaocx,2024 - 06 - 13銆�
+                   QualityOP80_Houdu = m.a.QualityOP80_Houdu,
+                   QualityOP80_ZXJ = m.a.QualityOP80_ZXJ,
+                   QualityOP80_DTKYZD = m.a.QualityOP80_DTKYZD,
+                   QualityOP80_XTSMYD = m.a.QualityOP80_XTSMYD,
+                   QualityOP80_XTXMYD = m.a.QualityOP80_XTXMYD,
+                   QualityOP80_D_TKZJ = m.a.QualityOP80_D_TKZJ,
+                   QualityOP80_D_S_X = m.a.QualityOP80_D_S_X,
+                   QualityOP80_D_S_Y = m.a.QualityOP80_D_S_Y,
+                   QualityOP80_D_X_X = m.a.QualityOP80_D_X_X,
+                   QualityOP80_D_X_Y = m.a.QualityOP80_D_X_Y,
+                   QualityOP80_X_TKZJ = m.a.QualityOP80_X_TKZJ,
+                   QualityOP80_X_S_X = m.a.QualityOP80_X_S_X,
+                   QualityOP80_X_S_Y = m.a.QualityOP80_X_S_Y,
+                   QualityOP80_X_X_X = m.a.QualityOP80_X_X_X,
+                   QualityOP80_X_X_Y = m.a.QualityOP80_X_X_Y,
+
                    Remarks = m.a.Remarks,
                })
                //.OrderBy(PageInputOrder.OrderBuilder<QualityDataInfoSearch>(input))
                .ProjectToType<QualityDataInfoOutput>()
                .FirstOrDefaultAsync();
             }
-            
+
             return qualityDataInfo;
         }
 
@@ -155,7 +173,7 @@
         [HttpGet("page")]
         public async Task<PageResult<QualityDataInfoOutput>> Page([FromQuery] QualityDataInfoSearch input)
         {
-            if(!input.StartTime.HasValue|| !input.EndTime.HasValue||input.StartTime>input.EndTime)
+            if (!input.StartTime.HasValue || !input.EndTime.HasValue || input.StartTime > input.EndTime)
             {
                 throw Oops.Oh("浼犲弬寮傚父:鏃ユ湡鑼冨洿蹇呴』浼犲�硷紒");
             }
@@ -170,107 +188,6 @@
             //}
             var qualityDataInfos = await _qualityDataInfoRep.DetachedEntities
                 .Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
-                //.Where(o => o.a.CreatedTime.Value.Date >= input.StartTime.Value)
-                //.Where(o => o.a.UpdatedTime.Value.Date <= input.EndTime.Value)
-               .Where(!string.IsNullOrEmpty(input.WorkPieceID), w => w.a.WorkPieceID.Contains(input.WorkPieceID))
-               .Where(input.EquipmentID.Equals("EOP10") && string.IsNullOrEmpty(input.WorkingProcedure), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value 
-               && o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value&&o.a.OP10QualityState==(input.QualityState.HasValue?input.QualityState.ToString():o.a.OP10QualityState)) || (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
-               .Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP10"), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)))
-               .Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP40"), o => (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
-               .Where(input.EquipmentID.Equals("EOP20"), o => o.a.OP20QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP20QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP20QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP20QualityState))
-               .Where(input.EquipmentID.Equals("EOP30"), o => o.a.OP30QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP30QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP30QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP30QualityState))
-               .Where(input.EquipmentID.Equals("EOP35"), o => o.a.OP35QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP35QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP35QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP35QualityState))
-               .Where(input.EquipmentID.Equals("EOP60"), o => o.a.OP60QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP60QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP60QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP60QualityState))
-               .Where(input.EquipmentID.Equals("EOP80"), o => o.a.OP80QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP80QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP80QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP80QualityState))
-               .Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID))
-               .Select(m => new QualityDataInfoOutput
-               {
-                   Id = m.a.Id,
-                   WorkPieceID = m.a.WorkPieceID,
-                   EquipmentID = input.EquipmentID,
-                   //EquipmentName = m.b.EquipmentName,
-                   WorkingProcedure = input.WorkingProcedure,
-                   QualityState = m.a.QualityState,
-                   //QualityStateName = m.a.f.f.Value,
-                   QualityStateUpdateMode = m.a.QualityStateUpdateMode,
-                   QualityStateUpdateUser = m.a.QualityStateUpdateUser,
-                   QualityReceiveTime = m.a.QualityReceiveTime,
-                   OfflineTime = m.a.OfflineTime,
-                   QualityOP10To1 = m.a.QualityOP10To1,
-                   QualityOP40To1 = m.a.QualityOP40To1,
-                   QualityOP20To1 = m.a.QualityOP20To1,
-                   QualityOP30To1 = m.a.QualityOP30To1,
-                   QualityOP30To2 = m.a.QualityOP30To2,
-                   QualityOP30To3 = m.a.QualityOP30To3,
-                   QualityOP30To4 = m.a.QualityOP30To4,
-                   QualityOP30To5 = m.a.QualityOP30To5,
-                   QualityOP30To6 = m.a.QualityOP30To6,
-                   QualityOP30To7 = m.a.QualityOP30To7,
-                   QualityOP30To8 = m.a.QualityOP30To8,
-                   QualityOP30To9 = m.a.QualityOP30To9,
-                   QualityOP30To10 = m.a.QualityOP30To10,
-                   QualityOP30To11 = m.a.QualityOP30To11,
-                   QualityOP35To1 = m.a.QualityOP35To1,
-                   QualityOP35To2 = m.a.QualityOP35To2,
-                   QualityOP60To1 = m.a.QualityOP60To1,
-                   QualityOP60To2 = m.a.QualityOP60To2,
-                   QualityOP70To1 = m.a.QualityOP70To1,
-                   QualityOP70To2 = m.a.QualityOP70To2,
-                   QualityOP70To3 = m.a.QualityOP70To3,
-                   QualityOP80To1 = m.a.QualityOP80To1,
-                   QualityOP80To2 = m.a.QualityOP80To2,
-                   QualityOP80To3 = m.a.QualityOP80To3,
-                   QualityOP80To4 = m.a.QualityOP80To4,
-                   QualityOP80To5 = m.a.QualityOP80To5,
-                   QualityOP80To6 = m.a.QualityOP80To6,
-                   QualityOP80To7 = m.a.QualityOP80To7,
-                   QualityOP80To8 = m.a.QualityOP80To8,
-                   QualityOP80To9 = m.a.QualityOP80To9,
-                   QualityOP80To10 = m.a.QualityOP80To10,
-                   OP10QualityReceiveTime = m.a.OP10QualityReceiveTime,
-                   OP20QualityReceiveTime = m.a.OP20QualityReceiveTime,
-                   OP30QualityReceiveTime = m.a.OP30QualityReceiveTime,
-                   OP35QualityReceiveTime = m.a.OP35QualityReceiveTime,
-                   OP40QualityReceiveTime=  m.a.OP40QualityReceiveTime,
-                   OP60QualityReceiveTime = m.a.OP60QualityReceiveTime,
-                   OP80QualityReceiveTime = m.a.OP80QualityReceiveTime,
-                   OP10QualityState = m.a.OP10QualityState,
-                   OP20QualityState = m.a.OP20QualityState,
-                   OP30QualityState = m.a.OP30QualityState,
-                   OP40QualityState = m.a.OP40QualityState,
-                   OP35QualityState = m.a.OP35QualityState,
-                   OP60QualityState = m.a.OP60QualityState,
-                   OP80QualityState = m.a.OP80QualityState,
-                   Remarks = m.a.Remarks,
-                   UpdateTime = m.a.UpdatedTime,
-               })
-            .ProjectToType<QualityDataInfoOutput>()
-               .OrderByDescending(o => o.UpdateTime)
-            .ToADPagedListAsync(input.PageNo, input.PageSize);
-            return qualityDataInfos;
-        }
-
-        
-        
-        /// <summary>
-        /// 鏍规嵁璐ㄩ噺鏁版嵁瀵煎嚭Excel
-        /// </summary>
-        /// <param name="input">璐ㄩ噺鏁版嵁浼犲叆淇℃伅</param>
-        /// <returns>瀵煎嚭鐨凟xcel鏂囦欢</returns>
-        [HttpGet("toExcel")]
-        public async Task<IActionResult> ToExcelAsync([FromQuery] QualityDataInfoSearch input)
-        {
-            if (!input.StartTime.HasValue || !input.EndTime.HasValue || input.StartTime > input.EndTime)
-            {
-                throw Oops.Oh("浼犲弬寮傚父:鏃ユ湡鑼冨洿蹇呴』浼犲�硷紒");
-            }
-            if (string.IsNullOrEmpty(input.EquipmentID))
-            {
-                throw Oops.Oh("浼犲弬寮傚父:璁惧缂栧彿蹇呴』浼犲弬锛�");
-            }
-
-            var qualityDataInfos = await _qualityDataInfoRep.DetachedEntities
-                .Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
                //.Where(o => o.a.CreatedTime.Value.Date >= input.StartTime.Value)
                //.Where(o => o.a.UpdatedTime.Value.Date <= input.EndTime.Value)
                .Where(!string.IsNullOrEmpty(input.WorkPieceID), w => w.a.WorkPieceID.Contains(input.WorkPieceID))
@@ -283,7 +200,7 @@
                .Where(input.EquipmentID.Equals("EOP35"), o => o.a.OP35QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP35QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP35QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP35QualityState))
                .Where(input.EquipmentID.Equals("EOP60"), o => o.a.OP60QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP60QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP60QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP60QualityState))
                .Where(input.EquipmentID.Equals("EOP80"), o => o.a.OP80QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP80QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP80QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP80QualityState))
-               .Where(o=>!string.IsNullOrEmpty(o.a.WorkPieceID))
+               .Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID))
                .Select(m => new QualityDataInfoOutput
                {
                    Id = m.a.Id,
@@ -342,6 +259,173 @@
                    OP35QualityState = m.a.OP35QualityState,
                    OP60QualityState = m.a.OP60QualityState,
                    OP80QualityState = m.a.OP80QualityState,
+
+                   OP30QualityStateCH3 = m.a.OP30QualityStateCH3,
+                   OP30QualityStateCH4 = m.a.OP30QualityStateCH4,
+                   OP30QualityStateCH5 = m.a.OP30QualityStateCH5,
+                   OP30QualityStateCH6 = m.a.OP30QualityStateCH6,
+
+                   //鏂板OP80鐨勪竴浜涜川閲忔暟鎹� 銆怑ditby shaocx,2024 - 06 - 13銆�
+                   QualityOP80_Houdu = m.a.QualityOP80_Houdu,
+                   QualityOP80_ZXJ = m.a.QualityOP80_ZXJ,
+                   QualityOP80_DTKYZD = m.a.QualityOP80_DTKYZD,
+                   QualityOP80_XTSMYD = m.a.QualityOP80_XTSMYD,
+                   QualityOP80_XTXMYD = m.a.QualityOP80_XTXMYD,
+                   QualityOP80_D_TKZJ = m.a.QualityOP80_D_TKZJ,
+                   QualityOP80_D_S_X = m.a.QualityOP80_D_S_X,
+                   QualityOP80_D_S_Y = m.a.QualityOP80_D_S_Y,
+                   QualityOP80_D_X_X = m.a.QualityOP80_D_X_X,
+                   QualityOP80_D_X_Y = m.a.QualityOP80_D_X_Y,
+                   QualityOP80_X_TKZJ = m.a.QualityOP80_X_TKZJ,
+                   QualityOP80_X_S_X = m.a.QualityOP80_X_S_X,
+                   QualityOP80_X_S_Y = m.a.QualityOP80_X_S_Y,
+                   QualityOP80_X_X_X = m.a.QualityOP80_X_X_X,
+                   QualityOP80_X_X_Y = m.a.QualityOP80_X_X_Y,
+
+                   Remarks = m.a.Remarks,
+                   UpdateTime = m.a.UpdatedTime,
+               })
+            .ProjectToType<QualityDataInfoOutput>().ToListAsync();
+
+            if (input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP10"))
+            {
+                qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP10QualityReceiveTime).ToList();
+            }
+            else if (input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP40"))
+            {
+                qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP40QualityReceiveTime).ToList();
+            }
+            else if (input.EquipmentID.Equals("EOP20"))
+            {
+                qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP20QualityReceiveTime).ToList();
+            }
+            else if (input.EquipmentID.Equals("EOP30"))
+            {
+                qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP30QualityReceiveTime).ToList();
+            }
+            else if (input.EquipmentID.Equals("EOP60"))
+            {
+                qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP60QualityReceiveTime).ToList();
+            }
+            else if (input.EquipmentID.Equals("EOP80"))
+            {
+                qualityDataInfos = qualityDataInfos.OrderByDescending(x => x.OP80QualityReceiveTime).ToList();
+            }
+
+            var retData = qualityDataInfos.ToADPagedList(input.PageNo, input.PageSize);
+            return retData;
+        }
+
+
+
+        /// <summary>
+        /// 鏍规嵁璐ㄩ噺鏁版嵁瀵煎嚭Excel
+        /// </summary>
+        /// <param name="input">璐ㄩ噺鏁版嵁浼犲叆淇℃伅</param>
+        /// <returns>瀵煎嚭鐨凟xcel鏂囦欢</returns>
+        [HttpGet("toExcel")]
+        public async Task<IActionResult> ToExcelAsync([FromQuery] QualityDataInfoSearch input)
+        {
+            if (!input.StartTime.HasValue || !input.EndTime.HasValue || input.StartTime > input.EndTime)
+            {
+                throw Oops.Oh("浼犲弬寮傚父:鏃ユ湡鑼冨洿蹇呴』浼犲�硷紒");
+            }
+            if (string.IsNullOrEmpty(input.EquipmentID))
+            {
+                throw Oops.Oh("浼犲弬寮傚父:璁惧缂栧彿蹇呴』浼犲弬锛�");
+            }
+
+            var qualityDataInfos = await _qualityDataInfoRep.DetachedEntities
+                .Join(_equipmentBaseInfoRep.DetachedEntities, a => a.EquipmentID, b => b.EquipmentId, (a, b) => new { a, b })
+               //.Where(o => o.a.CreatedTime.Value.Date >= input.StartTime.Value)
+               //.Where(o => o.a.UpdatedTime.Value.Date <= input.EndTime.Value)
+               .Where(!string.IsNullOrEmpty(input.WorkPieceID), w => w.a.WorkPieceID.Contains(input.WorkPieceID))
+               .Where(input.EquipmentID.Equals("EOP10") && string.IsNullOrEmpty(input.WorkingProcedure), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value
+               && o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)) || (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
+               .Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP10"), o => (o.a.OP10QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP10QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP10QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP10QualityState)))
+               .Where(input.EquipmentID.Equals("EOP10") && !string.IsNullOrEmpty(input.WorkingProcedure) && input.WorkingProcedure.Equals("OP40"), o => (o.a.OP40QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP40QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP40QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP40QualityState)))
+               .Where(input.EquipmentID.Equals("EOP20"), o => o.a.OP20QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP20QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP20QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP20QualityState))
+               .Where(input.EquipmentID.Equals("EOP30"), o => o.a.OP30QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP30QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP30QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP30QualityState))
+               .Where(input.EquipmentID.Equals("EOP35"), o => o.a.OP35QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP35QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP35QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP35QualityState))
+               .Where(input.EquipmentID.Equals("EOP60"), o => o.a.OP60QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP60QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP60QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP60QualityState))
+               .Where(input.EquipmentID.Equals("EOP80"), o => o.a.OP80QualityReceiveTime.Value.Date >= input.StartTime.Value && o.a.OP80QualityReceiveTime.Value.Date <= input.EndTime.Value && o.a.OP80QualityState == (input.QualityState.HasValue ? input.QualityState.ToString() : o.a.OP80QualityState))
+               .Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID))
+               .Select(m => new QualityDataInfoOutput
+               {
+                   Id = m.a.Id,
+                   WorkPieceID = m.a.WorkPieceID,
+                   EquipmentID = input.EquipmentID,
+                   //EquipmentName = m.b.EquipmentName,
+                   WorkingProcedure = input.WorkingProcedure,
+                   QualityState = m.a.QualityState,
+                   //QualityStateName = m.a.f.f.Value,
+                   QualityStateUpdateMode = m.a.QualityStateUpdateMode,
+                   QualityStateUpdateUser = m.a.QualityStateUpdateUser,
+                   QualityReceiveTime = m.a.QualityReceiveTime,
+                   OfflineTime = m.a.OfflineTime,
+                   QualityOP10To1 = m.a.QualityOP10To1,
+                   QualityOP40To1 = m.a.QualityOP40To1,
+                   QualityOP20To1 = m.a.QualityOP20To1,
+                   QualityOP30To1 = m.a.QualityOP30To1,
+                   QualityOP30To2 = m.a.QualityOP30To2,
+                   QualityOP30To3 = m.a.QualityOP30To3,
+                   QualityOP30To4 = m.a.QualityOP30To4,
+                   QualityOP30To5 = m.a.QualityOP30To5,
+                   QualityOP30To6 = m.a.QualityOP30To6,
+                   QualityOP30To7 = m.a.QualityOP30To7,
+                   QualityOP30To8 = m.a.QualityOP30To8,
+                   QualityOP30To9 = m.a.QualityOP30To9,
+                   QualityOP30To10 = m.a.QualityOP30To10,
+                   QualityOP30To11 = m.a.QualityOP30To11,
+                   QualityOP35To1 = m.a.QualityOP35To1,
+                   QualityOP35To2 = m.a.QualityOP35To2,
+                   QualityOP60To1 = m.a.QualityOP60To1,
+                   QualityOP60To2 = m.a.QualityOP60To2,
+                   QualityOP70To1 = m.a.QualityOP70To1,
+                   QualityOP70To2 = m.a.QualityOP70To2,
+                   QualityOP70To3 = m.a.QualityOP70To3,
+                   QualityOP80To1 = m.a.QualityOP80To1,
+                   QualityOP80To2 = m.a.QualityOP80To2,
+                   QualityOP80To3 = m.a.QualityOP80To3,
+                   QualityOP80To4 = m.a.QualityOP80To4,
+                   QualityOP80To5 = m.a.QualityOP80To5,
+                   QualityOP80To6 = m.a.QualityOP80To6,
+                   QualityOP80To7 = m.a.QualityOP80To7,
+                   QualityOP80To8 = m.a.QualityOP80To8,
+                   QualityOP80To9 = m.a.QualityOP80To9,
+                   QualityOP80To10 = m.a.QualityOP80To10,
+                   OP10QualityReceiveTime = m.a.OP10QualityReceiveTime,
+                   OP20QualityReceiveTime = m.a.OP20QualityReceiveTime,
+                   OP30QualityReceiveTime = m.a.OP30QualityReceiveTime,
+                   OP35QualityReceiveTime = m.a.OP35QualityReceiveTime,
+                   OP40QualityReceiveTime = m.a.OP40QualityReceiveTime,
+                   OP60QualityReceiveTime = m.a.OP60QualityReceiveTime,
+                   OP80QualityReceiveTime = m.a.OP80QualityReceiveTime,
+                   OP10QualityState = m.a.OP10QualityState,
+                   OP20QualityState = m.a.OP20QualityState,
+                   OP30QualityState = m.a.OP30QualityState,
+                   OP40QualityState = m.a.OP40QualityState,
+                   OP35QualityState = m.a.OP35QualityState,
+                   OP60QualityState = m.a.OP60QualityState,
+                   OP80QualityState = m.a.OP80QualityState,
+
+                   //鏂板OP80鐨勪竴浜涜川閲忔暟鎹� 銆怑ditby shaocx,2024 - 06 - 13銆�
+                   QualityOP80_Houdu = m.a.QualityOP80_Houdu,
+                   QualityOP80_ZXJ = m.a.QualityOP80_ZXJ,
+                   QualityOP80_DTKYZD = m.a.QualityOP80_DTKYZD,
+                   QualityOP80_XTSMYD = m.a.QualityOP80_XTSMYD,
+                   QualityOP80_XTXMYD = m.a.QualityOP80_XTXMYD,
+                   QualityOP80_D_TKZJ = m.a.QualityOP80_D_TKZJ,
+                   QualityOP80_D_S_X = m.a.QualityOP80_D_S_X,
+                   QualityOP80_D_S_Y = m.a.QualityOP80_D_S_Y,
+                   QualityOP80_D_X_X = m.a.QualityOP80_D_X_X,
+                   QualityOP80_D_X_Y = m.a.QualityOP80_D_X_Y,
+                   QualityOP80_X_TKZJ = m.a.QualityOP80_X_TKZJ,
+                   QualityOP80_X_S_X = m.a.QualityOP80_X_S_X,
+                   QualityOP80_X_S_Y = m.a.QualityOP80_X_S_Y,
+                   QualityOP80_X_X_X = m.a.QualityOP80_X_X_X,
+                   QualityOP80_X_X_Y = m.a.QualityOP80_X_X_Y,
+
                    Remarks = m.a.Remarks,
                    UpdateTime = m.a.UpdatedTime,
                })
@@ -407,6 +491,6 @@
             var fileName = HttpUtility.UrlEncode($"{sheetName}[{DateTimeOffset.Now:yyyy-MM-dd}].xlsx", Encoding.GetEncoding("UTF-8"));
             return new FileStreamResult(ms, "application/octet-stream") { FileDownloadName = fileName };
         }
-    
+
     }
 }

--
Gitblit v1.9.3