From 193c31efe3b7c9f61aeb06fc06c1765669a9efcb Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 19 6月 2024 18:44:04 +0800
Subject: [PATCH] PDA问题- 出库执行

---
 iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs |   63 ++++++++++++++++++++++---------
 iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml |    7 +++
 2 files changed, 52 insertions(+), 18 deletions(-)

diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
index 44b8d03..655cbdd 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
@@ -66,7 +66,7 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet("getOneWorkPiece")]
-        public async Task<WorkPieceInfoOutput> getOneWorkPiece([FromQuery] WorkPieceProcessPdaSearch input) 
+        public async Task<WorkPieceInfoOutput> getOneWorkPiece([FromQuery] WorkPieceProcessPdaSearch input)
         {
             if (string.IsNullOrEmpty(input.WorkPieceID))
             {
@@ -97,8 +97,8 @@
                    WorkPieceCurrentPosition = s.c.a.WorkPieceCurrentPosition,
                    WorkPieceinitOnlineTime = s.c.a.WorkPieceinitOnlineTime,
                    WorkPieceLastOfflineTime = s.c.a.WorkPieceLastOfflineTime,
-                   WorkingProcedureCompleted= s.c.a.WorkingProcedureCompleted,
-                   OP80NewCode=s.c.a.OP80NewCode,
+                   WorkingProcedureCompleted = s.c.a.WorkingProcedureCompleted,
+                   OP80NewCode = s.c.a.OP80NewCode,
                })
                .ProjectToType<WorkPieceInfoOutput>().FirstOrDefaultAsync();
             if (workPieceInfo == null)
@@ -122,7 +122,7 @@
                 // //.Where(x => (x.g.Code.Equals("equipment_state")))
                 .Where(u => u.a.QualityState != (int)EnumQualityState.OK)
                   .Where(u => u.a.IsDeleted == false)
-                  .Where(o => o.a.WorkPieceID.Contains(queryStr ?? "")|| o.a.QualityErrorInfo.Contains(queryStr ?? ""))
+                  .Where(o => o.a.WorkPieceID.Contains(queryStr ?? "") || o.a.QualityErrorInfo.Contains(queryStr ?? ""))
                  //.Where(o => (o.a.QualityStateUpdateTime.HasValue ? o.a.QualityStateUpdateTime.Value : DateTime.MinValue) > DateTime.Now.AddDays(-7))
                  .Where(o => !string.IsNullOrEmpty(o.a.WorkPieceID))
                  .Select(s => new WorkPieceInfoOutput
@@ -137,8 +137,8 @@
                      WorkingProcedureCompleted = s.a.WorkingProcedureCompleted,
                      WorkPieceinitOnlineTime = s.a.WorkPieceinitOnlineTime,
                      QualityState = s.a.QualityState,
-                     QualityErrorInfo= s.a.QualityErrorInfo,
-                     QualityStateUpdateTime=(s.a.QualityStateUpdateTime.HasValue? s.a.QualityStateUpdateTime.Value:DateTime.MinValue),
+                     QualityErrorInfo = s.a.QualityErrorInfo,
+                     QualityStateUpdateTime = (s.a.QualityStateUpdateTime.HasValue ? s.a.QualityStateUpdateTime.Value : DateTime.MinValue),
                      EquipmentID = s.a.EquipmentID,
                      EquipmentName = s.b.EquipmentName,
                      //EquipmentCurrentState = s.d.EquipmentCurrentState,
@@ -287,7 +287,7 @@
                     throw Oops.Oh($"淇敼宸ヤ欢璐ㄩ噺鐘舵�佸け璐ワ細宸ヤ欢{item}涓嶅瓨鍦紒");
                 }
 
-                if(int.Parse(input.QualityState)==(int)EnumQualityState.OK)
+                if (int.Parse(input.QualityState) == (int)EnumQualityState.OK)
                 {
                     workPieceInfo.QualityErrorInfo = "";
                 }
@@ -321,7 +321,7 @@
         [HttpPost("updateWorkPieceInfo")]
         public async Task<string> updateWorkPieceInfo([FromBody] UpdateQualityStateInput input)
         {
-            if (input == null || input.WorkPieceIDList.Count == 0  || input.Password == null)
+            if (input == null || input.WorkPieceIDList.Count == 0 || input.Password == null)
             {
                 throw Oops.Oh("淇敼宸ヤ欢淇℃伅澶辫触锛氫紶鍙備笉鑳戒负绌猴紒");
             }
@@ -341,7 +341,7 @@
             {
                 throw Oops.Oh($"淇敼宸ヤ欢淇℃伅澶辫触锛氫紶鍏ュ伐浠剁姸鎬乕{input.WorkPieceState}]涓嶅锛�");
             }
-            if (input.WorkingProcedure.Length!=4|| !input.WorkingProcedure.Contains("OP"))
+            if (input.WorkingProcedure.Length != 4 || !input.WorkingProcedure.Contains("OP"))
             {
                 throw Oops.Oh($"淇敼宸ヤ欢淇℃伅澶辫触锛氫紶鍏ュ伐搴廩{input.WorkingProcedure}]涓嶅锛�");
             }
@@ -358,7 +358,7 @@
                     throw Oops.Oh($"淇敼宸ヤ欢璐ㄩ噺鐘舵�佸け璐ワ細宸ヤ欢{item}涓嶅瓨鍦紒");
                 }
                 string LogAddRemark = "";
-                if (workPieceInfo.QualityState!= int.Parse(input.QualityState))
+                if (workPieceInfo.QualityState != int.Parse(input.QualityState))
                 {
                     LogAddRemark += $"璐ㄩ噺淇℃伅[{workPieceInfo.QualityState ?? 0}]鍒癧{input.QualityState}]";
                     workPieceInfo.QualityState = int.Parse(input.QualityState);
@@ -383,7 +383,7 @@
                 {
                     LogAddRemark += $"宸ヤ欢鐘舵�� [{workPieceInfo.WorkPieceState}]鍒癧{input.WorkPieceState}]";
                     workPieceInfo.WorkPieceState = int.Parse(input.WorkPieceState);
-                    if(workPieceInfo.WorkPieceState==(int)EnumWorkPieceState.FinishedProducts)
+                    if (workPieceInfo.WorkPieceState == (int)EnumWorkPieceState.FinishedProducts)
                     {
                         workPieceInfo.WorkPieceLastOfflineTime = DateTime.Now;
                     }
@@ -420,7 +420,7 @@
             }
             string OP80NewCode = input.OP80NewCode.Trim();
             var workPieceInfo = await _workPieceInfoRep.DetachedEntities
-               .Where(!string.IsNullOrEmpty(OP80NewCode), u => u.OP80NewCode == OP80NewCode||u.WorkPieceID== OP80NewCode)
+               .Where(!string.IsNullOrEmpty(OP80NewCode), u => u.OP80NewCode == OP80NewCode || u.WorkPieceID == OP80NewCode)
                .Select(s => new WorkPieceInfoOutput
                {
                    Id = s.Id,
@@ -440,7 +440,12 @@
                }).FirstOrDefaultAsync();
             if (workPieceInfo == null)
             {
-                throw Oops.Oh($"OP80鎵撳嵃鎴愬搧鐮佹垨宸ヤ欢浜岀淮鐮併�恵OP80NewCode}銆戞病鏈夋壘鍒扮浉鍏冲伐浠朵俊鎭紒");
+                //throw Oops.Oh($"OP80鎵撳嵃鎴愬搧鐮佹垨宸ヤ欢浜岀淮鐮併�恵OP80NewCode}銆戞病鏈夋壘鍒扮浉鍏冲伐浠朵俊鎭紒");
+                workPieceInfo = new WorkPieceInfoOutput
+                {
+                    WorkPieceID = OP80NewCode,
+                    OP80NewCode = OP80NewCode,
+                };
             }
             return workPieceInfo;
         }
@@ -467,13 +472,19 @@
 
             var addOutBoundList = new List<WorkPieceOutbound>();
 
+            var queryWorkPieceIDList = WorkPieceInfoLst.Select(x => x.WorkPieceID).ToList();
+            List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
+
             foreach (var item in WorkPieceInfoLst)
             {
-                WorkPieceOutbound itemModel=await _workPieceOutboundRep.FirstOrDefaultAsync(w=>w.WorkPieceID==item.WorkPieceID);
-                if (itemModel != null) {
-                    itemModel.IsDeleted = true;
-                    itemModel.Remark = itemModel.Remark ?? "" + "浜屾鍙戣揣鑷姩鎾ら攢鍙戣揣";
-                    await _workPieceOutboundRep.UpdateAsync(itemModel);
+                var itemModel = db_itemModelList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID);
+                if (itemModel != null)
+                {
+                    //itemModel.IsDeleted = true;
+                    //itemModel.Remark = itemModel.Remark ?? "" + "浜屾鍙戣揣鑷姩鎾ら攢鍙戣揣";
+                    //await _workPieceOutboundRep.UpdateAsync(itemModel);
+                    var createitme = itemModel.CreatedTime == null ? "" : (((DateTimeOffset)itemModel.CreatedTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+                    throw Oops.Oh($"宸ヤ欢{itemModel.WorkPieceID}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
                 }
                 var outBoundLog = new WorkPieceOutbound
                 {
@@ -491,5 +502,21 @@
             return "鍑哄簱鎴愬姛";
         }
 
+        /// <summary>
+        /// 鍑哄簱缁熻
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost("getOutBoundWorkPieceInfoCount")]
+        public async Task<string> GetOutBoundWorkPieceInfoCount()
+        {
+            DateTimeOffset now = DateTimeOffset.Now; // 鑾峰彇褰撳墠鏃堕棿锛屽寘鎷椂鍖哄亸绉婚噺
+            DateTimeOffset startOfDay = new DateTimeOffset(now.Year, now.Month, now.Day, 0, 0, 0, now.Offset); // 褰撳ぉ寮�濮嬫椂闂�
+            DateTimeOffset endOfDay = new DateTimeOffset(now.Year, now.Month, now.Day, 23, 59, 59, now.Offset); // 褰撳ぉ缁撴潫鏃堕棿
+            List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => w.CreatedTime >= startOfDay && w.CreatedTime <= endOfDay && w.IsDeleted == false).ToListAsync();
+
+            return db_itemModelList.Count().ToString();
+        }
+
     }
 }
diff --git a/iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml b/iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
index 7ff440d..54e4a75 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
+++ b/iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
@@ -362,6 +362,13 @@
             <param name="input"></param>
             <returns></returns>
         </member>
+        <member name="M:iWare.Wms.Application.Service.Pda.PdaService.GetOutBoundWorkPieceInfoCount">
+            <summary>
+            鍑哄簱缁熻
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
         <member name="P:iWare.Wms.Application.Service.System.LowCode.Dto.ContrastLowCode_Database.TableName">
             <summary>
             琛ㄥ悕

--
Gitblit v1.9.3