From 2a19504209e763a7c0e957e4ee265dd419486ef1 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 06 9月 2024 10:21:48 +0800
Subject: [PATCH] 入库优化

---
 iWara.SCADA.Code/iWare.Wms.Core/Enum/WMS/OutboundOperationType.cs                            |   13 ++++++
 iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs |   51 +++++++++++++++++++++++--
 iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs                             |   27 ++++++++++++-
 iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml                             |    7 +++
 iWara.SCADA.Code/iWare.Wms.EntityFramework.Core/dbsettings.json                              |    5 --
 5 files changed, 91 insertions(+), 12 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 619cbf8..699af9d 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
@@ -492,7 +492,7 @@
             }
             if (input.WorkPieceInfoLst.Count < 1)
             {
-                throw Oops.Oh("宸ヤ欢鍑哄簱澶辫触锛氭暟鎹笉鑳戒负绌猴紒");
+                throw Oops.Oh("宸ヤ欢鍏ュ簱澶辫触锛氭暟鎹笉鑳戒负绌猴紒");
             }
 
             List<OutBoundDetailsInput> WorkPieceInfoLst = input.WorkPieceInfoLst;
@@ -504,9 +504,11 @@
 
             List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
 
+            var addOutBoundLogList = new List<WorkPieceOutboundRecord>();
+
             foreach (var item in WorkPieceInfoLst)
             {
-                var itemModel = db_itemModelList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+                var itemModel = db_itemModelList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode && w.IsDeleted == false);
                 if (itemModel != null)
                 {
                     //itemModel.IsDeleted = true;
@@ -526,7 +528,7 @@
                 if (workPiece != null)
                 {
                     workPiece.OutPerson = CurrentUserInfo.Name;
-                    workPiece.OutRemark = "鎾ら攢宸ヤ欢鍑哄簱";
+                    workPiece.OutRemark = "鎾ら攢宸ヤ欢鍏ュ簱";
                     workPiece.OutTime = DateTime.Now;
                     workPiece.IsOut = false;
 
@@ -544,9 +546,28 @@
                 };
                 addOutBoundList.Add(outBoundLog);
 
+                var outBoundLogRecord = new WorkPieceOutboundRecord
+                {
+                    OperationType = OutboundOperationType.鍏ュ簱.ToString(),
+                    WorkPieceID = workPiece?.WorkPieceID,
+                    OP80NewCode = item.OP80NewCode,
+
+                    CreatedUserId = CurrentUserInfo.UserId,
+                    CreatedUserName = CurrentUserInfo.Name,
+
+
+                    //CarNo = input.CarNo,
+                    Remark = "宸ヤ欢鍏ュ簱",
+
+                };
+                addOutBoundLogList.Add(outBoundLogRecord);
+
 
             }
             await _workPieceOutboundRep.InsertAsync(addOutBoundList);
+
+            await _workPieceOutboundRecordRep.InsertAsync(addOutBoundLogList);
+
             return "鍑哄簱鎴愬姛";
         }
 
diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
index a8ce3f3..ba88729 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
@@ -8,6 +8,7 @@
 using Mapster;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.EntityFrameworkCore;
+using SharpYaml;
 using System.Linq.Dynamic.Core;
 
 namespace iWare.Wms.Application
@@ -23,12 +24,15 @@
     {
         private readonly IRepository<WorkPieceOutbound, MasterDbContextLocator> _workPieceOutboundRep;
         private readonly IRepository<WorkPieceInfo, MasterDbContextLocator> _workPieceInfoRep;
+        private readonly IRepository<WorkPieceOutboundRecord, MasterDbContextLocator> _workPieceOutboundRecordRep;
 
         public WorkPieceOutboundService(
+              IRepository<WorkPieceOutboundRecord, MasterDbContextLocator> workPieceOutboundRecordRep,
             IRepository<WorkPieceInfo, MasterDbContextLocator> workPieceInfoRep,
             IRepository<WorkPieceOutbound, MasterDbContextLocator> workPieceOutboundRep
         )
         {
+            _workPieceOutboundRecordRep = workPieceOutboundRecordRep;
             _workPieceInfoRep = workPieceInfoRep;
             _workPieceOutboundRep = workPieceOutboundRep;
         }
@@ -52,6 +56,27 @@
                                      .ToADPagedListAsync(input.PageNo, input.PageSize);
             return workPieceOutbounds;
         }
+
+        /// <summary>
+        /// 鍒嗛〉鏌ヨ宸ヤ欢鍑哄簱鍘嗗彶淇℃伅
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpGet("pageForRecord")]
+        public async Task<PageResult<WorkPieceOutboundRecord>> PageForRecord([FromQuery] WorkPieceOutboundSearch input)
+        {
+            var workPieceOutbounds = await _workPieceOutboundRecordRep.DetachedEntities
+                                     .Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.WorkPieceID.Contains(input.WorkPieceID))
+                                     .Where(!string.IsNullOrEmpty(input.OP80NewCode), u => u.OP80NewCode.Contains(input.OP80NewCode))
+                                     .Where(!string.IsNullOrEmpty(input.WorkPieceOutboundUserName), u => u.CreatedUserName.Contains(input.WorkPieceOutboundUserName))
+                                     .Where(!string.IsNullOrEmpty(input.StartTimeBeginTime.ToString()), u => u.CreatedTime >= input.StartTimeBeginTime)
+                                     .Where(!string.IsNullOrEmpty(input.StartTimeEndTime.ToString()), u => u.CreatedTime <= input.StartTimeEndTime)
+                                     .OrderBy(PageInputOrder.OrderBuilder<WorkPieceOutboundSearch>(input))
+                                     .ProjectToType<WorkPieceOutboundRecord>()
+                                     .ToADPagedListAsync(input.PageNo, input.PageSize);
+            return workPieceOutbounds;
+        }
+
 
         /// <summary>
         /// 澧炲姞宸ヤ欢鍑哄簱淇℃伅
@@ -128,17 +153,33 @@
                 var workPieceOutbound = await _workPieceOutboundRep.FirstOrDefaultAsync(u => u.Id == item.Id);
                 if (workPieceOutbound == null)
                 {
-                    throw Oops.Oh("宸ヤ欢鍑哄簱淇℃伅涓嶅瓨鍦�");
+                    throw Oops.Oh("宸ヤ欢鍏ュ簱淇℃伅涓嶅瓨鍦�");
                 }
-                workPieceOutbound.IsDeleted = true;
-                workPieceOutbound.Remark = workPieceOutbound.Remark ?? "" + "鎾ら攢鍙戣揣";
-                await _workPieceOutboundRep.UpdateAsync(workPieceOutbound);
+                //workPieceOutbound.IsDeleted = true;
+                //workPieceOutbound.Remark = workPieceOutbound.Remark ?? "" + "鎾ら攢鍏ュ簱";
+                //await _workPieceOutboundRep.UpdateAsync(workPieceOutbound);
+                await _workPieceOutboundRep.DeleteAsync(workPieceOutbound);
+
+                var outBoundLog = new WorkPieceOutboundRecord
+                {
+                    OperationType = OutboundOperationType.鎾ら攢鍏ュ簱.ToString(),
+                    WorkPieceID = workPieceOutbound?.WorkPieceID,
+                    OP80NewCode = workPieceOutbound?.OP80NewCode,
+
+                    CreatedUserId = CurrentUserInfo.UserId,
+                    CreatedUserName = CurrentUserInfo.Name,
+
+                    // CarNo = itemModel.CarNo,
+                    Remark = "鎾ら攢鍏ュ簱",
+
+                };
+                await _workPieceOutboundRecordRep.InsertAsync(outBoundLog);
 
                 var workPiece = await _workPieceInfoRep.FirstOrDefaultAsync(u => u.WorkPieceID == workPieceOutbound.WorkPieceID);
                 if (workPiece != null)
                 {
                     workPiece.OutPerson = CurrentUserInfo.Name;
-                    workPiece.OutRemark = "鎾ら攢宸ヤ欢鍑哄簱";
+                    workPiece.OutRemark = "鎾ら攢鍏ュ簱";
                     workPiece.OutTime = DateTime.Now;
                     workPiece.IsOut = false;
 
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 951733f..c3de318 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
+++ b/iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
@@ -15224,6 +15224,13 @@
             <param name="input"></param>
             <returns></returns>
         </member>
+        <member name="M:iWare.Wms.Application.WorkPieceOutboundService.PageForRecord(iWare.Wms.Application.WorkPieceOutboundSearch)">
+            <summary>
+            鍒嗛〉鏌ヨ宸ヤ欢鍑哄簱鍘嗗彶淇℃伅
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
         <member name="M:iWare.Wms.Application.WorkPieceOutboundService.Add(iWare.Wms.Application.AddWorkPieceOutboundInput)">
             <summary>
             澧炲姞宸ヤ欢鍑哄簱淇℃伅
diff --git a/iWara.SCADA.Code/iWare.Wms.Core/Enum/WMS/OutboundOperationType.cs b/iWara.SCADA.Code/iWare.Wms.Core/Enum/WMS/OutboundOperationType.cs
index ba5f7e0..04bf008 100644
--- a/iWara.SCADA.Code/iWare.Wms.Core/Enum/WMS/OutboundOperationType.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Core/Enum/WMS/OutboundOperationType.cs
@@ -31,5 +31,18 @@
         [Description("鎾ら攢鍑哄簱")]
         鎾ら攢鍑哄簱 = 4,
 
+
+        /// <summary>
+        /// 鍏ュ簱
+        /// </summary>
+        [Description("鍏ュ簱")]
+        鍏ュ簱 = 5,
+
+        /// <summary>
+        /// 鎾ら攢鍏ュ簱
+        /// </summary>
+        [Description("鎾ら攢鍏ュ簱")]
+        鎾ら攢鍏ュ簱 = 6,
+
     }
 }
\ No newline at end of file
diff --git a/iWara.SCADA.Code/iWare.Wms.EntityFramework.Core/dbsettings.json b/iWara.SCADA.Code/iWare.Wms.EntityFramework.Core/dbsettings.json
index 34e5ee1..1831657 100644
--- a/iWara.SCADA.Code/iWare.Wms.EntityFramework.Core/dbsettings.json
+++ b/iWara.SCADA.Code/iWare.Wms.EntityFramework.Core/dbsettings.json
@@ -15,10 +15,7 @@
     //"MultiTenantConnection": "Data Source=localhost;Database=Admin.NET_SaaS;User ID=root;Password=123456;pooling=true;port=3306;sslmode=none;CharSet=utf8;"
 
     //MSSQL杩炴帴瀛楃涓�
-    //"DefaultConnection": "Server=.;Database=iWare.WMS;User=sa;Password=123abc.com;MultipleActiveResultSets=True;"
-    //"DefaultConnection": "Server=82.156.32.44;Database=iWare.WMS;User=sa;Password=123abc.com;MultipleActiveResultSets=True;"
-    //"DefaultConnection": "Server=192.168.216.203;Database=iWare.SCADA;User=sa;Password=123abc.com;MultipleActiveResultSets=True;"
-    "DefaultConnection": "Server=.;Database=iWare.SCADA;User=sa;Password=123abc.com;MultipleActiveResultSets=True;"
+    "DefaultConnection": "Server=192.168.216.203;Database=iWare.SCADA;User=sa;Password=123abc.com;MultipleActiveResultSets=True;"
     //"MultiTenantConnection": "Server=localhost;Database=Admin.NET_SaaS;User=sa;Password=123456;MultipleActiveResultSets=True;"
   }
 }
\ No newline at end of file

--
Gitblit v1.9.3