From bdf29324be453a64ac4baab479c3bb2b26a1bd5c Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 17 十二月 2025 11:07:50 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs                  |    5 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db |    0 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db      |    0 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/MaterielCodeInfoService.cs                          |    6 
 项目代码/WIDESEA_WMSClient/src/views/outbound/outPicking.vue                                                |    8 +
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs                        |   99 +++++++++++++------
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/MaterialCodeReturnDTO.cs                             |   66 +++++++++++++
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/ScannedStockDetailDTO.cs                             |    5 +
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs                                |    9 +
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs                               |   90 ++++++++++++++++--
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielCodeInfoService.cs                        |    4 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/OutboundCompleteResponseDTO.cs                       |    5 -
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs        |    2 
 13 files changed, 243 insertions(+), 56 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue"
index 9a11079..8a0384f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/outbound/outPicking.vue"
@@ -200,6 +200,8 @@
             </el-row>
         </div>
 
+        <print-view ref="printView" @parentcall="parentcall"></print-view>
+
         <!-- 纭瀵硅瘽妗� -->
         <el-dialog v-model="confirmDialogVisible" title="鎿嶄綔纭" width="400px" :before-close="handleDialogClose">
             <div class="confirm-content">
@@ -218,7 +220,10 @@
 </template>
 
 <script>
+
+import printView from "@/extension/outbound/extend/printView.vue"
 export default {
+    components: { printView },
     name: 'OutPicking',
     data() {
         return {
@@ -415,6 +420,9 @@
                     operator: this.getUserName()
                 }).then(response => {
                     if (response.status) {
+                        if (response.data.scannedDetail.isUnpacked && response.data.scannedDetail.materialCodes.length > 0) {
+                            this.$refs.printView.open(response.data.scannedDetail.materialCodes);
+                        }
                         this.$message.success('鎷i�夌‘璁ゆ垚鍔�')
                         this.resetMaterialBarcode()
                         // this.loadUnpickedData()
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db"
index 7a53b2c..2451278 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db"
index d55c61d..62c47dc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs"
index 3b96b75..c084617 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs"
@@ -6,6 +6,7 @@
 using Newtonsoft.Json;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Helper;
 using WIDESEA_Core.HttpContextUser;
 using WIDESEA_Core.Util;
@@ -16,14 +17,14 @@
 
 namespace WIDESEA_BasicService.MESOperation
 {
-    public class FeedbackMesService : IFeedbackMesService
+    public class FeedbackMesService : ServiceBase<Dt_MesReturnRecord, IRepository<Dt_MesReturnRecord>>, IFeedbackMesService
     {
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly HttpClientHelper _httpClientHelper;
         private readonly IRepository<Dt_OutboundOrder> _outboundOrderRepository;
         private readonly IBasicService _basicService;
 
-        public FeedbackMesService(IUnitOfWorkManage unitOfWorkManage, HttpClientHelper httpClientHelper, IRepository<Dt_OutboundOrder> outboundOrderRepository, IBasicService basicService)
+        public FeedbackMesService(IRepository<Dt_MesReturnRecord> BaseDal, IUnitOfWorkManage unitOfWorkManage, HttpClientHelper httpClientHelper, IRepository<Dt_OutboundOrder> outboundOrderRepository, IBasicService basicService) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _httpClientHelper = httpClientHelper;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MaterielCodeInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MaterielCodeInfoService.cs"
index e9e64b3..75b800c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MaterielCodeInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MaterielCodeInfoService.cs"
@@ -14,13 +14,13 @@
 
 namespace WIDESEA_BasicService
 {
-    public class MaterielCodeInfoService : ServiceBase<Dt_MaterielCodeInfo, IRepository<Dt_MaterielCodeInfo>>, IMaterielCodeInfoService
+    public class MaterielCodeInfoService : ServiceBase<Dt_MaterialCodeInfo, IRepository<Dt_MaterialCodeInfo>>, IMaterielCodeInfoService
     {
 
-        public MaterielCodeInfoService(IRepository<Dt_MaterielCodeInfo> BaseDal) : base(BaseDal)
+        public MaterielCodeInfoService(IRepository<Dt_MaterialCodeInfo> BaseDal) : base(BaseDal)
         {
         }
 
-        public IRepository<Dt_MaterielCodeInfo> Repository => BaseDal;
+        public IRepository<Dt_MaterialCodeInfo> Repository => BaseDal;
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/MaterialCodeReturnDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/MaterialCodeReturnDTO.cs"
new file mode 100644
index 0000000..651c488
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/MaterialCodeReturnDTO.cs"
@@ -0,0 +1,66 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.CalcOut
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class MaterialCodeReturnDTO
+    {
+        // 鐗╂枡鍙凤紝鐗╂枡鍚嶏紝渚涘簲鍟嗭紝閲囪喘鍗曞彿锛岃鏍硷紝鏁伴噺锛屾壒娆★紝鏉$爜锛屽巶鍖恒�傛棩鏈�
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        public string MaterialCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string MaterialName { get; set; }
+
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鍙�
+        /// </summary>
+        public string SuplierCode { get; set; }
+
+        /// <summary>
+        /// 閲囪喘鍗曞彿
+        /// </summary>
+        public string PruchaseOrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡瑙勬牸
+        /// </summary>
+        public string MaterialSpec { get; set; }
+
+        /// <summary>
+        /// 鎵规
+        /// </summary>
+        public string BatchNo { get; set; }
+
+        /// <summary>
+        /// 鍘傚尯
+        /// </summary>
+        public string FactoryArea { get; set; }
+
+        /// <summary>
+        /// 鏃ユ湡
+        /// </summary>
+        public string Date { get; set; }
+
+        /// <summary>
+        /// 鏉$爜
+        /// </summary>
+        public string Barcode { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public decimal Quantity { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/OutboundCompleteResponseDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/OutboundCompleteResponseDTO.cs"
index a178fe5..53293ee 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/OutboundCompleteResponseDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/OutboundCompleteResponseDTO.cs"
@@ -31,10 +31,5 @@
         /// 鏇存柊鍚庣殑鍑哄簱鍗曟槑缁嗕俊鎭�
         /// </summary>
         public List<Dt_OutboundOrderDetail> UpdatedDetails { get; set; }
-
-        /// <summary>
-        /// 閲嶆柊鐢熸垚鐨勬潯鐮侊紙鎷嗗寘鏃讹級
-        /// </summary>
-        public string NewBarcode { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/ScannedStockDetailDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/ScannedStockDetailDTO.cs"
index b417992..6e4384c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/ScannedStockDetailDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_DTO/CalcOut/ScannedStockDetailDTO.cs"
@@ -60,5 +60,10 @@
         /// 鏄惁鎷嗗寘
         /// </summary>
         public bool IsUnpacked { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public List<MaterialCodeReturnDTO> MaterialCodes { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielCodeInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielCodeInfoService.cs"
index 7db7943..921c9e8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielCodeInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielCodeInfoService.cs"
@@ -9,8 +9,8 @@
 
 namespace WIDESEA_IBasicService
 {
-    public interface IMaterielCodeInfoService : IService<Dt_MaterielCodeInfo>
+    public interface IMaterielCodeInfoService : IService<Dt_MaterialCodeInfo>
     {
-        public IRepository<Dt_MaterielCodeInfo> Repository { get; }
+        public IRepository<Dt_MaterialCodeInfo> Repository { get; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs"
index 37610d3..5800b3b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs"
@@ -12,8 +12,8 @@
     /// <summary>
     /// 鐗╂枡鐮佷俊鎭�
     /// </summary>
-    [SugarTable(nameof(Dt_MaterielCodeInfo), "鐗╂枡鐮佷俊鎭�")]
-    public class Dt_MaterielCodeInfo : BaseEntity
+    [SugarTable(nameof(Dt_MaterialCodeInfo), "鐗╂枡鐮佷俊鎭�")]
+    public class Dt_MaterialCodeInfo : BaseEntity
     {
         /// <summary>
         /// 涓婚敭
@@ -25,46 +25,85 @@
         /// 鐗╂枡缂栧彿
         /// </summary>
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
-        public string MaterielCode { get; set; }
+        public string MaterialCode { get; set; }
 
         /// <summary>
-        /// 浠撳簱涓婚敭
+        /// 鐗╂枡鍚嶇О
         /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱缂栧彿")]
-        public int WarehouseId { get; set; }
+        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "鐗╂枡鍚嶇О")]
+        public string? MaterialName { get; set; }
 
         /// <summary>
-        /// 鎵规鍙�
+        /// 渚涘簲鍟嗙紪鍙�
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鎵规鍙�")]
-        public string LotNo { get; set; }
-
-        /// <summary>
-        /// 鐢熶骇鏃ユ湡
-        /// </summary>
-        [ImporterHeader(Name = "鐢熶骇鏃ユ湡")]
-        [ExporterHeader(DisplayName = "鐢熶骇鏃ユ湡")]
-        [SugarColumn(IsNullable = false, IsOnlyIgnoreUpdate = true, ColumnDescription = "鐢熶骇鏃ユ湡")]
-        public DateTime ProductionDate {  get; set; }
-
-        /// <summary>
-        /// 鏈夋晥鏈�
-        /// </summary>
-        [ImporterHeader(Name = "鏈夋晥鏈�")]
-        [ExporterHeader(DisplayName = "鏈夋晥鏈�")]
-        [SugarColumn(IsNullable = false, IsOnlyIgnoreUpdate = true, ColumnDescription = "鏈夋晥鏈�")]
-        public DateTime EffectiveDate { get; set; }
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "渚涘簲鍟嗙紪鍙�")]
+        public string? SuplierCode { get; set; }
 
         /// <summary>
         /// 閲囪喘鍗曞彿
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "閲囪喘鍗曞彿")]
-        public string PurchaseOrderNo { get; set; }
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閲囪喘鍗曞彿")]
+        public string? PruchaseOrderNo { get; set; }
 
         /// <summary>
-        /// 鏁伴噺
+        /// 鐗╂枡瑙勬牸
         /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "鏁伴噺")]
-        public float Quantity { get; set; }
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "鐗╂枡瑙勬牸")]
+        public string? MaterialSpec { get; set; }
+
+        /// <summary>
+        /// 鎵规
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎵规")]
+        public string? BatchNo { get; set; }
+
+        /// <summary>
+        /// 鍘傚尯
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍘傚尯")]
+        public string? FactoryArea { get; set; }
+
+        /// <summary>
+        /// 鏃ユ湡
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡缂栧彿")]
+        public string Date { get; set; }
+
+        /// <summary>
+        /// 鏂版潯鐮�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鏂版潯鐮�")]
+        public string NewBarcode { get; set; }
+
+        /// <summary>
+        /// 鍘熸潯鐮�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍘熸潯鐮�")]
+        public string OldBarcode {  get; set; }
+
+        /// <summary>
+        /// 鍘熸暟閲�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍘熸暟閲�")]
+        public decimal OriginalQuantity {  get; set; }
+
+        /// <summary>
+        /// 鏂版暟閲�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏂版暟閲�")]
+        public decimal AfterQuantity {  get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍗曚綅")]
+        public string Unit {  get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "澶囨敞")]
+        public string? Remark {  get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs"
index 5f48f16..aa37561 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs"
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json;
+锘縰sing AutoMapper;
+using Newtonsoft.Json;
 using Newtonsoft.Json.Serialization;
 using SqlSugar;
 using WIDESEA_Common.LocationEnum;
@@ -21,7 +22,7 @@
 {
     public partial class OutboundService : IOutboundService
     {
-
+        private readonly IMapper _mapper;
         public IUnitOfWorkManage _unitOfWorkManage { get; }
 
         public IOutboundOrderDetailService OutboundOrderDetailService { get; }
@@ -42,9 +43,11 @@
         private readonly IRepository<Dt_LocationInfo> _locationInfoRepository;
         private readonly IRepository<Dt_StockQuantityChangeRecord> _stockChangeRepository;
         private readonly IRepository<Dt_StockInfoDetail_Hty> _stockDetailHistoryRepository;
+        private readonly IFeedbackMesService _feedbackMesService;
 
-        public OutboundService(IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> detailRepository, IRepository<Dt_OutboundOrder> outboundRepository, IRepository<Dt_OutStockLockInfo> outboundLockInfoRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_StockQuantityChangeRecord> stockChangeRepository, IRepository<Dt_StockInfoDetail_Hty> stockDetailHistoryRepository, IBasicService basicService, IOutboundOrderDetailService outboundOrderDetailService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService)
+        public OutboundService(IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> detailRepository, IRepository<Dt_OutboundOrder> outboundRepository, IRepository<Dt_OutStockLockInfo> outboundLockInfoRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_StockQuantityChangeRecord> stockChangeRepository, IRepository<Dt_StockInfoDetail_Hty> stockDetailHistoryRepository, IBasicService basicService, IOutboundOrderDetailService outboundOrderDetailService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService, IFeedbackMesService feedbackMesService)
         {
+            _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
             Db = _unitOfWorkManage.GetDbClient();
             OutboundOrderDetailService = outboundOrderDetailService;
@@ -59,8 +62,10 @@
             _stockChangeRepository = stockChangeRepository;
             _stockDetailHistoryRepository = stockDetailHistoryRepository;
             _basicService = basicService;
+            _feedbackMesService = feedbackMesService;
         }
 
+        #region 鍑哄簱鍒嗛厤
         /// <summary>
         /// 鍒嗘嫞鍑哄簱鎿嶄綔
         /// </summary>
@@ -783,6 +788,7 @@
                 return false;
             }
         }
+        #endregion
 
 
         /// <summary>
@@ -888,7 +894,7 @@
 
                 // 8. 鍒ゆ柇鏄惁闇�瑕佹媶鍖咃紙褰撳嚭搴撴暟閲忓皬浜庡簱瀛樻暟閲忔椂闇�瑕佹媶鍖咃級
                 bool isUnpacked = actualOutboundQuantity < stockDetail.StockQuantity;
-                string newBarcode = string.Empty;
+                List<MaterialCodeReturnDTO> returnDTOs = new List<MaterialCodeReturnDTO>();
 
                 // 9. 寮�鍚簨鍔�
                 _unitOfWorkManage.BeginTran();
@@ -899,7 +905,7 @@
                     // 鏍规嵁鏄惁鎷嗗寘鎵ц涓嶅悓鐨勬搷浣�
                     if (isUnpacked)
                     {
-                        newBarcode = PerformUnpackOperation(stockDetail, stockInfo, actualOutboundQuantity, request, beforeQuantity, lockInfo.TaskNum.GetValueOrDefault());
+                        returnDTOs = PerformUnpackOperation(stockDetail, stockInfo, actualOutboundQuantity, request, beforeQuantity, lockInfo.TaskNum.GetValueOrDefault());
                     }
                     else
                     {
@@ -993,14 +999,14 @@
                         BeforeQuantity = beforeQuantity,
                         AfterQuantity = isUnpacked ? actualOutboundQuantity : 0,
                         ChangeQuantity = -actualOutboundQuantity,
-                        IsUnpacked = isUnpacked
+                        IsUnpacked = isUnpacked,
+                        MaterialCodes = returnDTOs
                     };
 
                     response.Success = true;
-                    response.Message = isUnpacked ? $"鎷嗗寘鍑哄簱瀹屾垚锛屽凡鐢熸垚鏂版潯鐮侊細{newBarcode}" : "鍑哄簱瀹屾垚";
+                    response.Message = "鍑哄簱瀹屾垚";
                     response.ScannedDetail = scannedDetail;
                     response.UpdatedDetails = updateDetails;
-                    response.NewBarcode = newBarcode;
 
                     // 妫�鏌ュ嚭搴撳崟鏄惁瀹屾垚
                     if (CheckOutboundOrderCompleted(request.OrderNo))
@@ -1074,10 +1080,16 @@
         /// <param name="beforeQuantity"></param>
         /// <param name="taskNum"></param>
         /// <returns></returns>
-        private string PerformUnpackOperation(Dt_StockInfoDetail stockDetail, Dt_StockInfo stockInfo,
+        private List<MaterialCodeReturnDTO> PerformUnpackOperation(Dt_StockInfoDetail stockDetail, Dt_StockInfo stockInfo,
             decimal actualOutboundQuantity, OutboundCompleteRequestDTO request, decimal beforeQuantity, int taskNum)
         {
             string newBarcode = GenerateNewBarcode();
+
+            string remark = $"鎷嗗寘璁板綍锛屽師鏉$爜锛歿request.Barcode}锛屽師鏁伴噺锛歿stockDetail.StockQuantity}锛屽嚭搴撴潯鐮侊細{newBarcode}锛� 鍑哄簱鏁伴噺锛歿actualOutboundQuantity}锛屽洖搴撴潯鐮侊細{request.Barcode}锛屽洖搴撴暟閲忥細{stockDetail.StockQuantity - actualOutboundQuantity},鎿嶄綔鑰咃細{request.Operator}";
+
+            List<Dt_MaterialCodeInfo> materialCodeInfos = CreateMaterialCodeInfos(stockDetail, newBarcode, actualOutboundQuantity, remark);
+
+            List<MaterialCodeReturnDTO> returnDTOs = _mapper.Map<List<MaterialCodeReturnDTO>>(materialCodeInfos);
 
             // 淇濆瓨鍘熷搴撳瓨鏄庣粏鍒板巻鍙茶褰�
             Dt_StockInfoDetail_Hty originalHistoryRecord = new Dt_StockInfoDetail_Hty
@@ -1138,7 +1150,7 @@
             };
             _stockChangeRepository.AddData(unpackChangeRecord);
 
-            return newBarcode;
+            return returnDTOs;
         }
 
         /// <summary>
@@ -1214,6 +1226,64 @@
         }
 
         /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="stockDetail"></param>
+        /// <param name="newBarcode"></param>
+        /// <param name="splitQuantity"></param>
+        /// <param name="afterQuantity"></param>
+        /// <param name="remark"></param>
+        /// <returns></returns>
+        private List<Dt_MaterialCodeInfo> CreateMaterialCodeInfos(Dt_StockInfoDetail stockDetail, string newBarcode, decimal splitQuantity, string remark)
+        {
+            List<Dt_MaterialCodeInfo> materialCodeInfos = new List<Dt_MaterialCodeInfo>();
+
+            Dt_MaterielInfo? materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == stockDetail.MaterielCode);
+
+            Dt_MaterialCodeInfo outMaterialCodeInfo = new Dt_MaterialCodeInfo()
+            {
+                AfterQuantity = splitQuantity,
+                BatchNo = stockDetail.BatchNo,
+                FactoryArea = stockDetail.FactoryArea,
+                MaterialName = materielInfo?.MaterielName ?? stockDetail.MaterielName,
+                MaterialSpec = materielInfo?.MaterielSpec ?? "",
+                MaterialCode = stockDetail.MaterielCode,
+                NewBarcode = newBarcode,
+                OldBarcode = stockDetail.Barcode,
+                OriginalQuantity = stockDetail.StockQuantity,
+                PruchaseOrderNo = stockDetail.OrderNo,
+                SuplierCode = stockDetail.SupplyCode,
+                Unit = stockDetail.Unit,
+                Date = DateTime.Now.ToString("yyyy-MM-dd"),
+                Remark = remark
+            };
+            materialCodeInfos.Add(outMaterialCodeInfo);
+
+            Dt_MaterialCodeInfo returnMaterialCodeInfo = new Dt_MaterialCodeInfo()
+            {
+                AfterQuantity = stockDetail.StockQuantity - splitQuantity,
+                BatchNo = stockDetail.BatchNo,
+                FactoryArea = stockDetail.FactoryArea,
+                MaterialName = materielInfo?.MaterielName ?? stockDetail.MaterielName,
+                MaterialSpec = materielInfo?.MaterielSpec ?? "",
+                MaterialCode = stockDetail.MaterielCode,
+                NewBarcode = stockDetail.Barcode,
+                OldBarcode = stockDetail.Barcode,
+                OriginalQuantity = stockDetail.StockQuantity,
+                PruchaseOrderNo = stockDetail.OrderNo,
+                SuplierCode = stockDetail.SupplyCode,
+                Unit = stockDetail.Unit,
+                Date = DateTime.Now.ToString("yyyy-MM-dd"),
+                Remark = remark
+            };
+
+            materialCodeInfos.Add(returnMaterialCodeInfo);
+
+            _basicService.MaterielCodeInfoService.Repository.AddData(materialCodeInfos);
+            return materialCodeInfos;
+        }
+
+        /// <summary>
         /// 鏇存柊璇ユ墭鐩樿鐗╂枡鐨勬墍鏈夐攣瀹氳褰曠殑绱宸插嚭搴撴暟閲�
         /// </summary>
         /// <param name="stockId">搴撳瓨ID</param>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs"
index 529ed7b..486dfcc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/MaterielCodeInfoController.cs"
@@ -8,7 +8,7 @@
 {
     [Route("api/MaterielCodeInfo")]
     [ApiController]
-    public class MaterielCodeInfoController : ApiBaseController<IMaterielCodeInfoService, Dt_MaterielCodeInfo>
+    public class MaterielCodeInfoController : ApiBaseController<IMaterielCodeInfoService, Dt_MaterialCodeInfo>
     {
         public MaterielCodeInfoController(IMaterielCodeInfoService service) : base(service)
         {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs"
index 565c922..698e57b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs"
@@ -1,14 +1,15 @@
-锘縰sing Autofac.Builder;
-using AutoMapper;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Autofac.Builder;
+using AutoMapper;
 using WIDESEA_Common.OrderEnum;
 using WIDESEA_Core.Helper;
 using WIDESEA_Core.HttpContextUser;
 using WIDESEA_DTO;
+using WIDESEA_DTO.CalcOut;
 using WIDESEA_DTO.Inbound;
 using WIDESEA_DTO.Outbound;
 using WIDESEA_DTO.System;
@@ -38,6 +39,8 @@
             CreateMap<Dt_Task, Dt_Task_Hty>()
          .ForMember(dest => dest.SourceId, opt => opt.Ignore()) // 鎵嬪姩濉厖锛屽拷鐣ユ槧灏�
          .ForMember(dest => dest.OperateType, opt => opt.Ignore()); // 鎵嬪姩濉厖锛屽拷鐣ユ槧灏�
+
+            CreateMap<Dt_MaterialCodeInfo, MaterialCodeReturnDTO>().ForMember(a => a.Quantity, b => b.MapFrom(c => c.AfterQuantity)).ForMember(a => a.Barcode, b => b.MapFrom(c => c.NewBarcode));
         }
     }
 }

--
Gitblit v1.9.3