From 661e24b717604dfc5c0f1c6385931943c2a9192e Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期六, 02 八月 2025 18:04:21 +0800
Subject: [PATCH] 代码提交

---
 StandardPda/MES.Service/Modes/MesItemQtrrDetail.cs                        |  118 ++
 StandardPda/MES.Service/Modes/MesItemQtDatall.cs                          |  122 ++
 StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs      |  113 ++
 StandardPda/MESApplication/Controllers/Warehouse/MesItemQtrkController.cs |  214 ++++
 StandardPda/MESApplication/Controllers/Warehouse/MesItemQtController.cs   |  216 ++++
 StandardPda/MES.Service/Dto/service/MesMiddleBox.cs                       |   43 
 StandardPda/MES.Service/service/Warehouse/MesItemQtManager.cs             |  430 ++++++++
 StandardPda/MES.Service/Modes/MesItemQtrk.cs                              |  162 +++
 StandardPda/MES.Service/Dto/service/MesItemQtFrom.cs                      |  193 +++
 StandardPda/MES.Service/Dto/service/MesItemQtRKList.cs                    |  103 ++
 StandardPda/MES.Service/Dto/service/AsnInfo.cs                            |   38 
 StandardPda/MES.Service/Dto/service/MesItemQtDto.cs                       |    9 
 StandardPda/MES.Service/service/Warehouse/MesItemQtrkManager.cs           |  424 ++++++++
 StandardPda/MES.Service/Dto/service/MesItemQtRKFrom.cs                    |  188 +++
 StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs                |  281 +++++
 StandardPda/MES.Service/Dto/service/MesPalletBinding.cs                   |   50 
 StandardPda/MES.Service/Dto/service/MesItemQtRKDto.cs                     |    9 
 StandardPda/MES.Service/DB/OracleSQLHelper.cs                             |   19 
 StandardPda/MES.Service/Dto/service/MesItemQtList.cs                      |   99 +
 StandardPda/MES.Service/Modes/MesItemQt.cs                                |  171 +++
 20 files changed, 2,988 insertions(+), 14 deletions(-)

diff --git a/StandardPda/MES.Service/DB/OracleSQLHelper.cs b/StandardPda/MES.Service/DB/OracleSQLHelper.cs
index 9a36dba..ae4fccc 100644
--- a/StandardPda/MES.Service/DB/OracleSQLHelper.cs
+++ b/StandardPda/MES.Service/DB/OracleSQLHelper.cs
@@ -228,4 +228,23 @@
     //     }
     //     return result;
     // }
+    // 鎵撳紑杩炴帴骞跺紑鍚簨鍔�
+    public (OracleConnection, OracleTransaction) BeginTransaction()
+    {
+        var connection = new OracleConnection(_connectionString);
+        connection.Open();
+        var transaction = connection.BeginTransaction();
+        return (connection, transaction);
+    }
+
+    // 鍏抽棴杩炴帴锛堟彁浜ゆ垨鍥炴粴鍚庣敤锛�
+    public void CloseConnection(OracleConnection connection)
+    {
+        if (connection != null && connection.State != ConnectionState.Closed)
+        {
+            connection.Close();
+            connection.Dispose();
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Dto/service/AsnInfo.cs b/StandardPda/MES.Service/Dto/service/AsnInfo.cs
index f21dd93..decf16a 100644
--- a/StandardPda/MES.Service/Dto/service/AsnInfo.cs
+++ b/StandardPda/MES.Service/Dto/service/AsnInfo.cs
@@ -19,6 +19,44 @@
         /// </summary>
         public string snState { get; set; }
 
+        /// <summary>
+        /// 浜ф祴鐧婚檰鍙�
+        /// </summary>
+        public string loginId { get; set; }
+        /// <summary>
+        /// 澶辫触椤圭洰
+        /// </summary>
+        public List<CcFailItems> failItems { get; set; }
+
 
     }
+    /// <summary>
+    /// 浜ф祴SN澶辫触椤规槑缁嗚〃
+    /// </summary>
+    public class CcFailItems
+    {
+       
+        /// <summary>
+        /// 涓嶈壇闂
+        /// </summary>
+        public string DefectIssue { get; set; }
+
+        /// <summary>
+        /// 鍒濇鍘熷洜
+        /// </summary>
+        public string RootCause { get; set; }
+
+        /// <summary>
+        /// 缁翠慨鏂规/鏂规硶
+        /// </summary>
+        public string RepairMethod { get; set; }
+
+        /// <summary>
+        /// 涓嶈壇鐗╂枡澶勭悊
+        /// </summary>
+        public string MaterialHandling { get; set; }
+
+      
+    }
+
 }
diff --git a/StandardPda/MES.Service/Dto/service/MesItemQtDto.cs b/StandardPda/MES.Service/Dto/service/MesItemQtDto.cs
new file mode 100644
index 0000000..9c018db
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesItemQtDto.cs
@@ -0,0 +1,9 @@
+锘縩amespace MES.Service.Dto.service
+{
+    public class MesItemQtDto
+    {
+        public MesItemQtFrom from { get; set; }
+
+        public List<MesItemQtList> items { get; set; }
+    }
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesItemQtFrom.cs b/StandardPda/MES.Service/Dto/service/MesItemQtFrom.cs
new file mode 100644
index 0000000..54809b1
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesItemQtFrom.cs
@@ -0,0 +1,193 @@
+锘縩amespace MES.Service.Dto.service
+{
+    public class MesItemQtFrom
+    {
+
+        public string Type { get; set; }
+        /// <summary>
+        /// 鐢宠鍗曞彿
+        /// </summary>
+        public string ApplyNumber { get; set; }
+
+        /// <summary>
+        /// 鐢宠鏃ユ湡
+        /// </summary>
+        public DateTime? ApplyDate { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳鏃ユ湡
+        /// </summary>
+        public DateTime? AuditDate { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        public string DocumentType { get; set; }
+
+        /// <summary>
+        /// 涓氬姟绫诲瀷
+        /// </summary>
+        public string BusinessType { get; set; }
+
+        /// <summary>
+        /// 鍒跺崟浜�
+        /// </summary>
+        public string CreatedBy { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇宸ュ崟
+        /// </summary>
+        public string WorkOrder { get; set; }
+
+        /// <summary>
+        /// 鍙戞枡浠撳簱
+        /// </summary>
+        public string FromWarehouse { get; set; }
+
+        /// <summary>
+        /// 鐢宠閮ㄩ棬
+        /// </summary>
+        public string ApplyDept { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱绫诲瀷
+        /// </summary>
+        public string StockOutType { get; set; }
+
+        /// <summary>
+        /// 浠撳簱缂栫爜
+        /// </summary>
+        public string WarehouseCode { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬缂栫爜
+        /// </summary>
+        public string DeptCode { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鏁伴噺
+        /// </summary>
+        public decimal Quantity { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳浜�
+        /// </summary>
+        public string Auditor { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍗曞彿
+        /// </summary>
+        public string TaskNumber { get; set; }
+
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鐮�
+        /// </summary>
+        public string SupplierCode { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鏂瑰悜锛堥��璐э紝鏅�氾級
+        /// </summary>
+        public string Direction { get; set; }
+
+        /// <summary>
+        /// 璐т富绫诲瀷
+        /// </summary>
+        public string OwnerType { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鍘熷洜
+        /// </summary>
+        public string Reason { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛缂栫爜
+        /// </summary>
+        public string CustomerCode { get; set; }
+
+        /// <summary>
+        /// 棰嗘枡浜�
+        /// </summary>
+        public string Receiver { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬
+        /// </summary>
+        public string Department { get; set; }
+
+        /// <summary>
+        /// 搴撶鍛�
+        /// </summary>
+        public string StockKeeper { get; set; }
+
+        /// <summary>
+        /// 鏉ユ簮绫诲埆
+        /// </summary>
+        public string SourceType { get; set; }
+
+        /// <summary>
+        /// 鏉ユ簮鍗曟嵁
+        /// </summary>
+        public string SourceDocument { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鐩稿叧
+        /// </summary>
+        public string ProductionRelated { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇绾挎棩璁″垝
+        /// </summary>
+        public string ProductionLine { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇娲诲姩
+        /// </summary>
+        public string ProductionActivity { get; set; }
+
+        /// <summary>
+        /// 浜ф垚鍝�
+        /// </summary>
+        public string FinishedGoods { get; set; }
+
+        /// <summary>
+        /// 閫嗗悜鐧昏处
+        /// </summary>
+        public string ReversePosting { get; set; }
+
+        /// <summary>
+        /// 璁拌处鏈熼棿
+        /// </summary>
+        public string AccountingPeriod { get; set; }
+
+        /// <summary>
+        /// 鍛樺伐
+        /// </summary>
+        public string Employee { get; set; }
+
+        /// <summary>
+        /// 鍋囬��鏂�
+        /// </summary>
+        public string FalseReturn { get; set; }
+
+        /// <summary>
+        /// 椤圭洰
+        /// </summary>
+        public string ProjectCode { get; set; }
+
+        /// <summary>
+        /// 浠诲姟
+        /// </summary>
+        public string TaskCode { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public string Status { get; set; }
+
+        /// <summary>
+        /// 璐т富缁勭粐
+        /// </summary>
+        public string OwnerOrganization { get; set; }
+
+    }
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesItemQtList.cs b/StandardPda/MES.Service/Dto/service/MesItemQtList.cs
new file mode 100644
index 0000000..278ef10
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesItemQtList.cs
@@ -0,0 +1,99 @@
+锘縩amespace MES.Service.Dto.service
+{
+    public class MesItemQtList
+    {
+        
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        public string ItemId { get; set; }
+
+        /// <summary>
+        /// 璁″垝鏁伴噺
+        /// </summary>
+        public decimal PlannedQuantity { get; set; }
+
+        /// <summary>
+        /// 鐢宠鏁伴噺
+        /// </summary>
+        public decimal AppliedQuantity { get; set; }
+
+
+
+        /// <summary>
+        /// 澶囨敞璇存槑
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 琛屽彿(鐗╂枡椤哄簭)
+        /// </summary>
+        public int? LineNumber { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鐩稿叧
+        /// </summary>
+        public string ProductionRelated { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍绫诲瀷
+        /// </summary>
+        public string StorageType { get; set; }
+
+        /// <summary>
+        /// 璐т富缁勭粐
+        /// </summary>
+        public string OwnerOrganization { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍鍦扮偣
+        /// </summary>
+        public string StorageLocation { get; set; }
+
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鐮�
+        /// </summary>
+        public string SupplierCode { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛缂栫爜
+        /// </summary>
+        public string CustomerCode { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈椤圭洰缂栫爜
+        /// </summary>
+        public string ProjectCode { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈浠诲姟缂栫爜
+        /// </summary>
+        public string TaskCode { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇璁㈠崟鍙�
+        /// </summary>
+        public string ProductionOrder { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇绾挎棩璁″垝缂栧彿
+        /// </summary>
+        public string DailyPlan { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇娲诲姩
+        /// </summary>
+        public string ProductionActivity { get; set; }
+
+        /// <summary>
+        /// 浜ф垚鍝佺紪鐮�
+        /// </summary>
+        public string FinishedProduct { get; set; }
+
+        /// <summary>
+        /// 棰嗘枡鐢ㄩ��
+        /// </summary>
+        public string PickingUsage { get; set; }
+    }
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesItemQtRKDto.cs b/StandardPda/MES.Service/Dto/service/MesItemQtRKDto.cs
new file mode 100644
index 0000000..e9e82e8
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesItemQtRKDto.cs
@@ -0,0 +1,9 @@
+锘縩amespace MES.Service.Dto.service
+{
+    public class MesItemQtRKDto
+    {
+        public MesItemQtRKFrom from { get; set; }
+
+        public List<MesItemQtRKList> items { get; set; }
+    }
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesItemQtRKFrom.cs b/StandardPda/MES.Service/Dto/service/MesItemQtRKFrom.cs
new file mode 100644
index 0000000..f78ba74
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesItemQtRKFrom.cs
@@ -0,0 +1,188 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.Dto.service
+{
+    public class MesItemQtRKFrom
+    {
+        public string Type { get; set; }
+
+        /// <summary>
+        /// 鐢宠鍗曞彿
+        /// </summary>
+        public string ApplyNumber { get; set; }
+
+        /// <summary>
+        /// 鐢宠鏃ユ湡
+        /// </summary>
+        public DateTime? ApplyDate { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳鏃ユ湡
+        /// </summary>
+        public DateTime? AuditDate { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        public string DocumentType { get; set; }
+
+        /// <summary>
+        /// 鍏ュ簱绫诲瀷
+        /// </summary>
+        public string StockInType { get; set; }
+
+        /// <summary>
+        /// 鍒跺崟浜�
+        /// </summary>
+        public string CreatedBy { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇宸ュ崟
+        /// </summary>
+        public string WorkOrder { get; set; }
+
+        /// <summary>
+        /// 鍙戞枡浠撳簱
+        /// </summary>
+        public string FromWarehouse { get; set; }
+
+        /// <summary>
+        /// 鐢宠閮ㄩ棬
+        /// </summary>
+        public string ApplyDept { get; set; }
+
+        /// <summary>
+        /// 鍏ュ簱鍘熷洜
+        /// </summary>
+        public string Reason { get; set; }
+
+        /// <summary>
+        /// 浠撳簱缂栫爜
+        /// </summary>
+        public string WarehouseCode { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬缂栫爜
+        /// </summary>
+        public string DeptCode { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳浜�
+        /// </summary>
+        public string Auditor { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍗曞彿
+        /// </summary>
+        public string TaskNumber { get; set; }
+
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鐮�
+        /// </summary>
+        public string SupplierCode { get; set; }
+
+        /// <summary>
+        /// 鍏ュ簱鏂瑰悜锛堥��璐э紝鏅�氾級
+        /// </summary>
+        public string Direction { get; set; }
+
+        /// <summary>
+        /// 璐т富绫诲瀷(缁勭粐銆佷緵搴斿晢銆佸鎴�)
+        /// </summary>
+        public string OwnerType { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛
+        /// </summary>
+        public string CustomerCode { get; set; }
+
+        /// <summary>
+        /// 鍏ュ簱浜�
+        /// </summary>
+        public string Receiver { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬
+        /// </summary>
+        public string Department { get; set; }
+
+        /// <summary>
+        /// 搴撶鍛�
+        /// </summary>
+        public string StockKeeper { get; set; }
+
+        /// <summary>
+        /// 鏉ユ簮绫诲埆
+        /// </summary>
+        public string SourceType { get; set; }
+
+        /// <summary>
+        /// 鏉ユ簮鍗曟嵁
+        /// </summary>
+        public string SourceDocument { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鐩稿叧
+        /// </summary>
+        public string ProductionRelated { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇绾挎棩璁″垝
+        /// </summary>
+        public string ProductionLine { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇娲诲姩
+        /// </summary>
+        public string ProductionActivity { get; set; }
+
+        /// <summary>
+        /// 浜ф垚鍝�
+        /// </summary>
+        public string FinishedGoods { get; set; }
+
+        /// <summary>
+        /// 閫嗗悜鐧昏处
+        /// </summary>
+        public string ReversePosting { get; set; }
+
+        /// <summary>
+        /// 璁拌处鏈熼棿
+        /// </summary>
+        public string AccountingPeriod { get; set; }
+
+        /// <summary>
+        /// 鍛樺伐
+        /// </summary>
+        public string Employee { get; set; }
+
+        /// <summary>
+        /// 鍋囬��鏂�
+        /// </summary>
+        public string FalseReturn { get; set; }
+
+        /// <summary>
+        /// 椤圭洰
+        /// </summary>
+        public string ProjectCode { get; set; }
+
+        /// <summary>
+        /// 浠诲姟
+        /// </summary>
+        public string TaskCode { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public string Status { get; set; }
+
+        /// <summary>
+        /// 璐т富缁勭粐
+        /// </summary>
+        public string OwnerOrganization { get; set; }
+    }
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesItemQtRKList.cs b/StandardPda/MES.Service/Dto/service/MesItemQtRKList.cs
new file mode 100644
index 0000000..f98b441
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesItemQtRKList.cs
@@ -0,0 +1,103 @@
+锘縩amespace MES.Service.Dto.service
+{
+    public class MesItemQtRKList
+    {
+      
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        public string ItemId { get; set; }
+
+        /// <summary>
+        /// 璁″垝鏁伴噺
+        /// </summary>
+        public decimal PlannedQuantity { get; set; }
+
+        /// <summary>
+        /// 鐢宠鏁伴噺
+        /// </summary>
+        public decimal AppliedQuantity { get; set; }
+
+        /// <summary>
+        /// 宸插叆搴撴暟閲忥紙榛樿鍊硷細0锛�
+        /// </summary>
+        public decimal ReceivedQuantity { get; set; } = 0;
+
+      
+        /// <summary>
+        /// 澶囨敞璇存槑
+        /// </summary>
+        public string Remark { get; set; }
+
+   
+
+        /// <summary>
+        /// 琛屽彿(鐗╂枡椤哄簭)
+        /// </summary>
+        public int? LineNumber { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鐩稿叧
+        /// </summary>
+        public string ProductionRelated { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍绫诲瀷
+        /// </summary>
+        public string StorageType { get; set; }
+
+        /// <summary>
+        /// 璐т富缁勭粐
+        /// </summary>
+        public string OwnerOrganization { get; set; }
+
+        /// <summary>
+        /// 瀛樺偍鍦扮偣
+        /// </summary>
+        public string StorageLocation { get; set; }
+
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鐮�
+        /// </summary>
+        public string SupplierCode { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛缂栫爜
+        /// </summary>
+        public string CustomerCode { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈椤圭洰缂栫爜
+        /// </summary>
+        public string ProjectCode { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈浠诲姟缂栫爜
+        /// </summary>
+        public string TaskCode { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇璁㈠崟鍙�
+        /// </summary>
+        public string ProductionOrder { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇绾挎棩璁″垝缂栧彿
+        /// </summary>
+        public string DailyPlan { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇娲诲姩
+        /// </summary>
+        public string ProductionActivity { get; set; }
+
+        /// <summary>
+        /// 浜ф垚鍝佺紪鐮�
+        /// </summary>
+        public string FinishedProduct { get; set; }
+
+
+
+    }
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesMiddleBox.cs b/StandardPda/MES.Service/Dto/service/MesMiddleBox.cs
new file mode 100644
index 0000000..0f00368
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesMiddleBox.cs
@@ -0,0 +1,43 @@
+锘縩amespace MES.Service.Dto.service
+{
+    /// <summary>
+    /// 涓鐮佽〃
+    /// </summary>
+    public class MesMiddleBox
+    {
+
+        /// <summary>
+        /// 绫诲瀷锛堟搷浣滐細A缁戝畾锛孎瑙g粦锛�
+        /// </summary>
+        public string type { get; set; }
+        /// <summary>
+        /// 涓鐮�
+        /// </summary>
+        public string MediumBoxCode { get; set; }
+
+        /// <summary>
+        /// 鐧诲綍鍙�
+        /// </summary>
+        public string LoginId { get; set; }
+        /// <summary>
+        /// sn鍒楄〃
+        /// </summary>
+       public List<snList> SnList { get; set; }
+
+        public class snList
+        {
+            /// <summary>
+            /// SN鍙�
+            /// </summary>
+            public string SnNo { get; set; }
+
+            /// <summary>
+            /// 宸ュ崟鍗曞彿
+            /// </summary>
+            public string TicketNo { get; set; }
+        }
+
+    }
+
+  
+}
diff --git a/StandardPda/MES.Service/Dto/service/MesPalletBinding.cs b/StandardPda/MES.Service/Dto/service/MesPalletBinding.cs
new file mode 100644
index 0000000..1ff16dc
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/MesPalletBinding.cs
@@ -0,0 +1,50 @@
+锘縩amespace MES.Service.Dto.service
+{
+    /// <summary>
+    /// 鏍堟澘缁戝畾琛�
+    /// </summary>
+    public class MesPalletBinding
+    {
+
+        /// <summary>
+        /// 鎿嶄綔锛欰缁戝畾锛孎瑙g粦
+        /// </summary>
+        public string Type { get; set; }
+        /// <summary>
+        /// 鏍堟澘鐮�
+        /// </summary>
+        public string StackCode { get; set; }
+
+        /// <summary>
+        /// 鐧诲綍鍙�
+        /// </summary>
+        public string LoginId { get; set; }
+
+        /// <summary>
+        /// sn鍒楄〃
+        /// </summary>
+        public List<snList1> SnList { get; set; }
+        public class snList1
+        {
+            /// <summary>
+            /// SN鍙�
+            /// </summary>
+            public string SnNo { get; set; }
+
+            /// <summary>
+            /// 宸ュ崟鍗曞彿
+            /// </summary>
+            public string TicketNo { get; set; }
+
+            /// <summary>
+            /// 涓鐮�
+            /// </summary>
+            public string MediumBoxCode { get; set; }
+        }
+
+
+    }
+
+  
+
+}
diff --git a/StandardPda/MES.Service/Modes/MesItemQt.cs b/StandardPda/MES.Service/Modes/MesItemQt.cs
new file mode 100644
index 0000000..e3edbac
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/MesItemQt.cs
@@ -0,0 +1,171 @@
+锘縰sing SqlSugar;
+using System;
+using System.ComponentModel;
+
+namespace MES.Service.Modes
+{
+    [SugarTable("MES_ITEM_QT")]
+    public class MesItemQt
+    {
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        [Description("ID")]
+        public decimal Id { get; set; }
+
+        [SugarColumn(ColumnName = "QTCK" )]
+        [Description("鐢宠鍗曞彿")]
+        public string Qtck { get; set; }
+
+        [SugarColumn(ColumnName = "QT001")]
+        [Description("鐢宠鏃ユ湡")]
+        public DateTime? Qt001 { get; set; }
+
+        [SugarColumn(ColumnName = "QT002")]
+        [Description("瀹℃牳鏃ユ湡")]
+        public DateTime? Qt002 { get; set; }
+
+        [SugarColumn(ColumnName = "QT003")]
+        [Description("鍗曟嵁绫诲瀷")]
+        public string Qt003 { get; set; }
+
+        [SugarColumn(ColumnName = "QT004")]
+        [Description("涓氬姟绫诲瀷")]
+        public string Qt004 { get; set; }
+
+        [SugarColumn(ColumnName = "QT005")]
+        [Description("鍒跺崟浜�")]
+        public string Qt005 { get; set; }
+
+        [SugarColumn(ColumnName = "QT006")]
+        [Description("鐢熶骇宸ュ崟")]
+        public string Qt006 { get; set; }
+
+        [SugarColumn(ColumnName = "QT008")]
+        [Description("鍙戞枡浠撳簱")]
+        public string Qt008 { get; set; }
+
+        [SugarColumn(ColumnName = "QT009")]
+        [Description("鐢宠閮ㄩ棬")]
+        public string Qt009 { get; set; }
+
+        [SugarColumn(ColumnName = "QT010")]
+        [Description("鍑哄簱绫诲瀷")]
+        public string Qt010 { get; set; }
+
+        [SugarColumn(ColumnName = "QT011")]
+        [Description("浠撳簱缂栫爜")]
+        public string Qt011 { get; set; }
+
+        [SugarColumn(ColumnName = "QT012")]
+        [Description("閮ㄩ棬缂栫爜")]
+        public string Qt012 { get; set; }
+
+        [SugarColumn(ColumnName = "QT013")]
+        [Description("鏁伴噺")]
+        public decimal? Qt013 { get; set; }
+
+        [SugarColumn(ColumnName = "QT014", DefaultValue = "0")]
+        [Description("瀹岀粨鏍囪瘑")]
+        public decimal Qt014 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QT015", DefaultValue = "0")]
+        [Description("瀹℃牳鐘舵��")]
+        public decimal Qt015 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QT016")]
+        [Description("瀹℃牳浜�")]
+        public string Qt016 { get; set; }
+
+        [SugarColumn(ColumnName = "QT017")]
+        [Description("浠诲姟鍗曞彿")]
+        public string Qt017 { get; set; }
+
+        [SugarColumn(ColumnName = "QT018")]
+        [Description("渚涘簲鍟嗙紪鐮�")]
+        public string Qt018 { get; set; }
+
+        [SugarColumn(ColumnName = "QT019")]
+        [Description("鍑哄簱鏂瑰悜(閫�璐э紝鏅��)")]
+        public string Qt019 { get; set; }
+
+        [SugarColumn(ColumnName = "QT020")]
+        [Description("璐т富绫诲瀷")]
+        public string Qt020 { get; set; }
+        [SugarColumn(ColumnName = "CUSTOMER_CODE")]
+        [Description("瀹㈡埛")]
+        public string CustomerCode { get; set; }
+
+        [SugarColumn(ColumnName = "REMARK")]
+        [Description("鍑哄簱鍘熷洜")]
+        public string Remark { get; set; }
+
+        [SugarColumn(ColumnName = "QT021")]
+        [Description("瀹㈡埛缂栫爜")]
+        public string Qt021 { get; set; }
+        [SugarColumn(ColumnName = "DEPARTMENT")]
+        [Description("閮ㄩ棬")]
+        public string Department { get; set; }
+
+        [SugarColumn(ColumnName = "STOCK_KEEPER")]
+        [Description("搴撶鍛�")]
+        public string StockKeeper { get; set; }
+
+        [SugarColumn(ColumnName = "SOURCE_TYPE")]
+        [Description("鏉ユ簮绫诲埆")]
+        public string SourceType { get; set; }
+
+        [SugarColumn(ColumnName = "SOURCE_DOCUMENT")]
+        [Description("鏉ユ簮鍗曟嵁")]
+        public string SourceDocument { get; set; }
+
+        [SugarColumn(ColumnName = "PRODUCTION_RELATED")]
+        [Description("鐢熶骇鐩稿叧")]
+        public string ProductionRelated { get; set; }
+
+        [SugarColumn(ColumnName = "PRODUCTION_LINE")]
+        [Description("鐢熶骇绾挎棩璁″垝")]
+        public string ProductionLine { get; set; }
+
+        [SugarColumn(ColumnName = "PRODUCTION_ACTIVITY")]
+        [Description("鐢熶骇娲诲姩")]
+        public string ProductionActivity { get; set; }
+
+        [SugarColumn(ColumnName = "FINISHED_GOODS")]
+        [Description("浜ф垚鍝�")]
+        public string FinishedGoods { get; set; }
+
+        [SugarColumn(ColumnName = "REVERSE_POSTING")]
+        [Description("閫嗗悜鐧昏处")]
+        public string ReversePosting { get; set; }
+
+        [SugarColumn(ColumnName = "ACCOUNTING_PERIOD")]
+        [Description("璁拌处鏈熼棿")]
+        public string AccountingPeriod { get; set; }
+
+        [SugarColumn(ColumnName = "EMPLOYEE")]
+        [Description("鍛樺伐")]
+        public string Employee { get; set; }
+
+        [SugarColumn(ColumnName = "FALSE_RETURN")]
+        [Description("鍋囬��鏂�")]
+        public string FalseReturn { get; set; }
+
+        [SugarColumn(ColumnName = "PROJECT_CODE")]
+        [Description("椤圭洰")]
+        public string ProjectCode { get; set; }
+
+        [SugarColumn(ColumnName = "TASK_CODE")]
+        [Description("浠诲姟")]
+        public string TaskCode { get; set; }
+
+        [SugarColumn(ColumnName = "STATUS")]
+        [Description("鐘舵��")]
+        public string Status { get; set; }
+
+        [SugarColumn(ColumnName = "OWNER_ORGANIZATION")]
+        [Description("璐т富缁勭粐")]
+        public string OwnerOrganization { get; set; }
+        [SugarColumn(ColumnName = "RECEIVER")]
+        [Description("鍑哄簱浜�")]
+        public string Receiver { get; set; }
+    }
+}
diff --git a/StandardPda/MES.Service/Modes/MesItemQtDatall.cs b/StandardPda/MES.Service/Modes/MesItemQtDatall.cs
new file mode 100644
index 0000000..a9e9f10
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/MesItemQtDatall.cs
@@ -0,0 +1,122 @@
+锘縰sing SqlSugar;
+using System.ComponentModel;
+
+namespace MES.Service.Modes
+{
+    [SugarTable("MES_ITEM_QT_DATALL")]
+    public class MesItemQtDatall
+    {
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_QTCKD")]
+        [Description("ID")]
+        public decimal Id { get; set; }
+
+        [SugarColumn(ColumnName = "MID")]
+        [Description("MID")]
+        public decimal Mid { get; set; }
+
+        [SugarColumn(ColumnName = "QD001")]
+        [Description("宸ュ崟鍙�")]
+        public string Qd001 { get; set; }
+
+        [SugarColumn(ColumnName = "QD002")]
+        [Description("鐗╂枡缂栧彿")]
+        public string Qd002 { get; set; }
+
+        [SugarColumn(ColumnName = "QD003")]
+        [Description("鐗╂枡鍚嶇О")]
+        public string Qd003 { get; set; }
+
+        [SugarColumn(ColumnName = "QD004")]
+        [Description("瑙勬牸鍨嬪彿")]
+        public string Qd004 { get; set; }
+
+        [SugarColumn(ColumnName = "QD005")]
+        [Description("棰滆壊")]
+        public string Qd005 { get; set; }
+
+        [SugarColumn(ColumnName = "QD006")]
+        [Description("璁″垝鏁伴噺")]
+        public decimal? Qd006 { get; set; }
+
+        [SugarColumn(ColumnName = "QD007")]
+        [Description("鐢宠鏁伴噺")]
+        public decimal? Qd007 { get; set; }
+
+        [SugarColumn(ColumnName = "QD008", DefaultValue = "0")]
+        [Description("宸查鏁伴噺")]
+        public decimal Qd008 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QD009")]
+        [Description("鍗曚綅")]
+        public string Qd009 { get; set; }
+
+        [SugarColumn(ColumnName = "QD010")]
+        [Description("澶囨敞")]
+        public string Qd010 { get; set; }
+
+        [SugarColumn(ColumnName = "QD011", DefaultValue = "0")]
+        [Description("瀹岀粨鏍囪瘑")]
+        public decimal Qd011 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QD012")]
+        [Description("鐗╂枡鍐呯爜")]
+        public decimal? Qd012 { get; set; }
+
+        /* 鏂板瀛楁 */
+
+        [SugarColumn(ColumnName = "LINE_NUMBER")]
+        [Description("琛屽彿(鐗╂枡椤哄簭)")]
+        public int? LineNumber { get; set; }
+
+        [SugarColumn(ColumnName = "PRODUCTION_RELATED")]
+        [Description("鐢熶骇鐩稿叧")]
+        public string ProductionRelated { get; set; }
+
+        [SugarColumn(ColumnName = "STORAGE_TYPE")]
+        [Description("瀛樺偍绫诲瀷")]
+        public string StorageType { get; set; }
+
+        [SugarColumn(ColumnName = "OWNER_ORGANIZATION")]
+        [Description("璐т富缁勭粐")]
+        public string OwnerOrganization { get; set; }
+
+        [SugarColumn(ColumnName = "STORAGE_LOCATION")]
+        [Description("瀛樺偍鍦扮偣")]
+        public string StorageLocation { get; set; }
+
+        [SugarColumn(ColumnName = "SUPPLIER_CODE")]
+        [Description("渚涘簲鍟嗙紪鐮�")]
+        public string SupplierCode { get; set; }
+
+        [SugarColumn(ColumnName = "CUSTOMER_CODE")]
+        [Description("瀹㈡埛缂栫爜")]
+        public string CustomerCode { get; set; }
+
+        [SugarColumn(ColumnName = "PROJECT_CODE")]
+        [Description("鍏宠仈椤圭洰缂栫爜")]
+        public string ProjectCode { get; set; }
+
+        [SugarColumn(ColumnName = "TASK_CODE")]
+        [Description("鍏宠仈浠诲姟缂栫爜")]
+        public string TaskCode { get; set; }
+
+        [SugarColumn(ColumnName = "PRODUCTION_ORDER")]
+        [Description("鐢熶骇璁㈠崟鍙�")]
+        public string ProductionOrder { get; set; }
+
+        [SugarColumn(ColumnName = "DAILY_PLAN")]
+        [Description("鐢熶骇绾挎棩璁″垝缂栧彿")]
+        public string DailyPlan { get; set; }
+
+        [SugarColumn(ColumnName = "PRODUCTION_ACTIVITY")]
+        [Description("鐢熶骇娲诲姩")]
+        public string ProductionActivity { get; set; }
+
+        [SugarColumn(ColumnName = "FINISHED_PRODUCT")]
+        [Description("浜ф垚鍝佺紪鐮�")]
+        public string FinishedProduct { get; set; }
+        [SugarColumn(ColumnName = "PICKING_USAGE")]
+        [Description("棰嗘枡鐢ㄩ��")]
+        public string PickingUsage { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/MesItemQtrk.cs b/StandardPda/MES.Service/Modes/MesItemQtrk.cs
new file mode 100644
index 0000000..4b3fab0
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/MesItemQtrk.cs
@@ -0,0 +1,162 @@
+锘縰sing SqlSugar;
+using System;
+using System.ComponentModel;
+
+namespace MES.Service.Modes;
+
+
+    [SugarTable("MES_ITEM_QTRK")]
+    public class MesItemQtrk
+    {
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        [Description("ID")]
+        public decimal Id { get; set; }
+
+        [SugarColumn(ColumnName = "QTCK")]
+        [Description("鐢宠鍗曞彿")]
+        public string Qtck { get; set; }
+
+        [SugarColumn(ColumnName = "QT001")]
+        [Description("鐢宠鏃ユ湡")]
+        public DateTime? Qt001 { get; set; }
+
+        [SugarColumn(ColumnName = "QT002")]
+        [Description("瀹℃牳鏃ユ湡")]
+        public DateTime? Qt002 { get; set; }
+
+        [SugarColumn(ColumnName = "QT003")]
+        [Description("鍗曟嵁绫诲瀷")]
+        public string Qt003 { get; set; }
+
+        [SugarColumn(ColumnName = "QT004")]
+        [Description("鍏ュ簱绫诲瀷")]
+        public string Qt004 { get; set; }
+
+        [SugarColumn(ColumnName = "QT005")]
+        [Description("鍒跺崟浜�")]
+        public string Qt005 { get; set; }
+
+        [SugarColumn(ColumnName = "QT006")]
+        [Description("鐢熶骇宸ュ崟")]
+        public string Qt006 { get; set; }
+
+        [SugarColumn(ColumnName = "QT008")]
+        [Description("鍙戞枡浠撳簱")]
+        public string Qt008 { get; set; }
+
+        [SugarColumn(ColumnName = "QT009")]
+        [Description("鐢宠閮ㄩ棬")]
+        public string Qt009 { get; set; }
+
+        [SugarColumn(ColumnName = "QT010", Length = 300)]
+        [Description("鍏ュ簱鍘熷洜")]
+        public string Qt010 { get; set; }
+
+        [SugarColumn(ColumnName = "QT011")]
+        [Description("浠撳簱缂栫爜")]
+        public string Qt011 { get; set; }
+
+        [SugarColumn(ColumnName = "QT012")]
+        [Description("閮ㄩ棬缂栫爜")]
+        public string Qt012 { get; set; }
+
+
+        [SugarColumn(ColumnName = "QT014", DefaultValue = "0")]
+        [Description("瀹岀粨鏍囪瘑")]
+        public decimal Qt014 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QT015", DefaultValue = "0")]
+        [Description("瀹℃牳鐘舵��")]
+        public decimal Qt015 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QT016")]
+        [Description("瀹℃牳浜�")]
+        public string Qt016 { get; set; }
+
+        [SugarColumn(ColumnName = "QT017")]
+        [Description("浠诲姟鍗曞彿")]
+        public string Qt017 { get; set; }
+
+        [SugarColumn(ColumnName = "QT018", Length = 50)]
+        [Description("渚涘簲鍟嗙紪鐮�")]
+        public string Qt018 { get; set; }
+
+        [SugarColumn(ColumnName = "QT019", Length = 50)]
+        [Description("鍏ュ簱鏂瑰悜(閫�璐э紝鏅��)")]
+        public string Qt019 { get; set; }
+
+        [SugarColumn(ColumnName = "QT020", Length = 50)]
+        [Description("璐т富绫诲瀷")]
+        public string Qt020 { get; set; }
+    [SugarColumn(ColumnName = "CUSTOMER_CODE")]
+    [Description("瀹㈡埛")]
+    public string CustomerCode { get; set; }
+
+    [SugarColumn(ColumnName = "RECEIVER")]
+    [Description("鍏ュ簱浜�")]
+    public string Receiver { get; set; }
+
+    [SugarColumn(ColumnName = "DEPARTMENT")]
+    [Description("閮ㄩ棬")]
+    public string Department { get; set; }
+
+    [SugarColumn(ColumnName = "STOCK_KEEPER")]
+    [Description("搴撶鍛�")]
+    public string StockKeeper { get; set; }
+
+    [SugarColumn(ColumnName = "SOURCE_TYPE")]
+    [Description("鏉ユ簮绫诲埆")]
+    public string SourceType { get; set; }
+
+    [SugarColumn(ColumnName = "SOURCE_DOCUMENT")]
+    [Description("鏉ユ簮鍗曟嵁")]
+    public string SourceDocument { get; set; }
+
+    [SugarColumn(ColumnName = "PRODUCTION_RELATED")]
+    [Description("鐢熶骇鐩稿叧")]
+    public string ProductionRelated { get; set; }
+
+    [SugarColumn(ColumnName = "PRODUCTION_LINE")]
+    [Description("鐢熶骇绾挎棩璁″垝")]
+    public string ProductionLine { get; set; }
+
+    [SugarColumn(ColumnName = "PRODUCTION_ACTIVITY")]
+    [Description("鐢熶骇娲诲姩")]
+    public string ProductionActivity { get; set; }
+
+    [SugarColumn(ColumnName = "FINISHED_GOODS")]
+    [Description("浜ф垚鍝�")]
+    public string FinishedGoods { get; set; }
+
+    [SugarColumn(ColumnName = "REVERSE_POSTING")]
+    [Description("閫嗗悜鐧昏处")]
+    public string ReversePosting { get; set; }
+
+    [SugarColumn(ColumnName = "ACCOUNTING_PERIOD")]
+    [Description("璁拌处鏈熼棿")]
+    public string AccountingPeriod { get; set; }
+
+    [SugarColumn(ColumnName = "EMPLOYEE")]
+    [Description("鍛樺伐")]
+    public string Employee { get; set; }
+
+    [SugarColumn(ColumnName = "FALSE_RETURN")]
+    [Description("鍋囬��鏂�")]
+    public string FalseReturn { get; set; }
+
+    [SugarColumn(ColumnName = "PROJECT_CODE")]
+    [Description("椤圭洰")]
+    public string ProjectCode { get; set; }
+
+    [SugarColumn(ColumnName = "TASK_CODE")]
+    [Description("浠诲姟")]
+    public string TaskCode { get; set; }
+
+    [SugarColumn(ColumnName = "STATUS")]
+    [Description("鐘舵��")]
+    public string Status { get; set; }
+
+    [SugarColumn(ColumnName = "OWNER_ORGANIZATION")]
+    [Description("璐т富缁勭粐")]
+    public string OwnerOrganization { get; set; }
+}
diff --git a/StandardPda/MES.Service/Modes/MesItemQtrrDetail.cs b/StandardPda/MES.Service/Modes/MesItemQtrrDetail.cs
new file mode 100644
index 0000000..846a164
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/MesItemQtrrDetail.cs
@@ -0,0 +1,118 @@
+锘縰sing SqlSugar;
+using System.ComponentModel;
+
+namespace MES.Service.Modes;
+
+[SugarTable("MES_ITEM_QTRR_DETAIL")]
+    public class MesItemQtrrDetail
+    {
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_QTRKD")]
+        [Description("ID")]
+        public decimal Id { get; set; }
+
+        [SugarColumn(ColumnName = "MID")]
+        [Description("MID")]
+        public decimal Mid { get; set; }
+
+        [SugarColumn(ColumnName = "QD001")]
+        [Description("宸ュ崟鍙�")]
+        public string Qd001 { get; set; }
+
+        [SugarColumn(ColumnName = "QD002")]
+        [Description("鐗╂枡缂栧彿")]
+        public string Qd002 { get; set; }
+
+        [SugarColumn(ColumnName = "QD003")]
+        [Description("鐗╂枡鍚嶇О")]
+        public string Qd003 { get; set; }
+
+        [SugarColumn(ColumnName = "QD004")]
+        [Description("瑙勬牸鍨嬪彿")]
+        public string Qd004 { get; set; }
+
+        [SugarColumn(ColumnName = "QD005")]
+        [Description("棰滆壊")]
+        public string Qd005 { get; set; }
+
+        [SugarColumn(ColumnName = "QD006")]
+        [Description("璁″垝鏁伴噺")]
+        public decimal? Qd006 { get; set; }
+
+        [SugarColumn(ColumnName = "QD007")]
+        [Description("鐢宠鏁伴噺")]
+        public decimal? Qd007 { get; set; }
+
+        [SugarColumn(ColumnName = "QD008", DefaultValue = "0")]
+        [Description("宸插叆鏁伴噺")]
+        public decimal Qd008 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QD009", Length = 30)]
+        [Description("鍗曚綅")]
+        public string Qd009 { get; set; }
+
+        [SugarColumn(ColumnName = "QD010", Length = 500)]
+        [Description("澶囨敞")]
+        public string Qd010 { get; set; }
+
+        [SugarColumn(ColumnName = "QD011", DefaultValue = "0")]
+        [Description("瀹岀粨鏍囪瘑")]
+        public decimal Qd011 { get; set; } = 0;
+
+        [SugarColumn(ColumnName = "QD012")]
+        [Description("鐗╂枡鍐呯爜")]
+        public decimal? Qd012 { get; set; }
+
+    /* 鏂板瀛楁 */
+
+    [SugarColumn(ColumnName = "LINE_NUMBER")]
+    [Description("琛屽彿(鐗╂枡椤哄簭)")]
+    public int? LineNumber { get; set; }
+
+    [SugarColumn(ColumnName = "PRODUCTION_RELATED")]
+    [Description("鐢熶骇鐩稿叧")]
+    public string ProductionRelated { get; set; }
+
+    [SugarColumn(ColumnName = "STORAGE_TYPE")]
+    [Description("瀛樺偍绫诲瀷")]
+    public string StorageType { get; set; }
+
+    [SugarColumn(ColumnName = "OWNER_ORGANIZATION")]
+    [Description("璐т富缁勭粐")]
+    public string OwnerOrganization { get; set; }
+
+    [SugarColumn(ColumnName = "STORAGE_LOCATION")]
+    [Description("瀛樺偍鍦扮偣")]
+    public string StorageLocation { get; set; }
+
+    [SugarColumn(ColumnName = "SUPPLIER_CODE")]
+    [Description("渚涘簲鍟嗙紪鐮�")]
+    public string SupplierCode { get; set; }
+
+    [SugarColumn(ColumnName = "CUSTOMER_CODE")]
+    [Description("瀹㈡埛缂栫爜")]
+    public string CustomerCode { get; set; }
+
+    [SugarColumn(ColumnName = "PROJECT_CODE")]
+    [Description("鍏宠仈椤圭洰缂栫爜")]
+    public string ProjectCode { get; set; }
+
+    [SugarColumn(ColumnName = "TASK_CODE")]
+    [Description("鍏宠仈浠诲姟缂栫爜")]
+    public string TaskCode { get; set; }
+
+    [SugarColumn(ColumnName = "PRODUCTION_ORDER")]
+    [Description("鐢熶骇璁㈠崟鍙�")]
+    public string ProductionOrder { get; set; }
+
+    [SugarColumn(ColumnName = "DAILY_PLAN")]
+    [Description("鐢熶骇绾挎棩璁″垝缂栧彿")]
+    public string DailyPlan { get; set; }
+
+    [SugarColumn(ColumnName = "PRODUCTION_ACTIVITY")]
+    [Description("鐢熶骇娲诲姩")]
+    public string ProductionActivity { get; set; }
+
+    [SugarColumn(ColumnName = "FINISHED_PRODUCT")]
+    [Description("浜ф垚鍝佺紪鐮�")]
+    public string FinishedProduct { get; set; }
+}
diff --git a/StandardPda/MES.Service/service/Warehouse/MesItemQtManager.cs b/StandardPda/MES.Service/service/Warehouse/MesItemQtManager.cs
new file mode 100644
index 0000000..958c3ec
--- /dev/null
+++ b/StandardPda/MES.Service/service/Warehouse/MesItemQtManager.cs
@@ -0,0 +1,430 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.service.Warehouse
+{
+    public class MesItemQtManager:Repository<MesItemQt>
+    {
+        public bool MiscellaneousIssues(MesItemQtDto mesItemQtDto)
+        {
+            var itemQtFrom = mesItemQtDto.from;
+            var itemQtLists = mesItemQtDto.items;
+
+            // 鏍规嵁AsnNo鍜孧esNo瀵规槑缁嗚繘琛屽垎缁�
+            //var groupedItems = itemOutLists
+            //    .GroupBy(item => new { item.AsnNo, item.MesNo, item.SqNo })
+            //    .ToList();
+
+            bool result = true;
+            //foreach (var group in itemQtRKLists)
+            //{
+            //if (group.Key.AsnNo == null)
+            //{
+            //    throw new NotImplementedException("AsnNo涓嶈兘涓虹┖");
+            //}
+
+            //if (group.Key.MesNo == null)
+            //{
+            //    throw new NotImplementedException("鍏ュ簱鍗曞崟鍙蜂笉鑳戒负绌�");
+            //}
+
+            //if (group.Key.SqNo == null)
+            //{
+            //    throw new NotImplementedException("閫�璐х敵璇峰崟琛屽彿涓嶈兘涓虹┖");
+            //}
+
+            // 鍒涘缓涓�涓复鏃剁殑itemOutFrom瀵硅薄锛屼娇鐢ㄥ垎缁勭殑Key浣滀负涓昏灞炴��
+            //var tempItemOutFrom = new ItemOutFrom
+            //{
+            //    AsnNo = group.Key.AsnNo,
+            //    MesNo = group.Key.MesNo,
+            //    SqNo = group.Key.SqNo,
+            //    // 缁ф壙鍘熷itemOutFrom鐨勫叾浠栧睘鎬�
+            //    RtnNo = itemOutFrom.RtnNo,
+            //    Type = itemOutFrom.Type,
+            //    CreateBy = itemOutFrom.CreateBy,
+            //    FMRMODE = itemOutFrom.FMRMODE,
+            //    DepotId = itemOutFrom.DepotId,
+            //    SupperId = itemOutFrom.SupperId
+            //};
+
+            // 鏍规嵁Type鎵ц涓嶅悓鐨勯�昏緫
+            switch (itemQtFrom.Type)
+            {
+                case "1":
+                    {
+                        var mesInvItemOuts = Db.Queryable<MesItemQt>()
+                            .Where(s => s.Qtck == itemQtFrom.ApplyNumber
+
+                            )
+                            .Count();
+
+                        if (mesInvItemOuts > 0)
+                        {
+                            throw new NotImplementedException(
+                                itemQtFrom.ApplyNumber +
+                                "鐨勬潅鍙戠敵璇峰崟宸茬粡瀛樺湪");
+                        }
+
+                        // 涓哄綋鍓嶅垎缁勪繚瀛樻暟鎹�
+                        var groupResult = Save(itemQtFrom, itemQtLists);
+                        if (!groupResult)
+                        {
+                            result = false;
+                        }
+
+                        break;
+                    }
+                case "4":
+                    var removeResult = Remove(itemQtFrom);
+                    if (!removeResult)
+                    {
+                        result = false;
+                    }
+
+                    break;
+                default:
+                    result = false;
+                    break;
+            }
+            //}
+
+            return result;
+        }
+
+
+        private bool Save(MesItemQtFrom from, List<MesItemQtList> items)
+        {
+            //var mesInvItemIns = Db.Queryable<MesInvItemIns>()
+            //    .Where(s => s.BillTypeId == 100
+            //                && s.TransctionNo == "101"
+            //                && s.BillNo == from.MesNo
+            //    ).First();
+
+            //if (mesInvItemIns == null)
+            //{
+            //    throw new NotImplementedException("閲囪喘鍏ュ簱涓嶅瓨鍦�");
+            //}
+
+
+            string SuppNo = "";
+            if (from.SupplierCode != "" && from.SupplierCode != null)
+            {
+                var mesLinkU9 = Db.Queryable<MesLinkU9>()
+              .Where(s => s.TableType == "MES_SUPPLIER"
+                          && s.U9Id == from.SupplierCode).First();
+
+                if (mesLinkU9 == null)
+                {
+                    throw new NotImplementedException("渚涘簲鍟咺D涓嶅瓨鍦ㄦ垨鏈悓姝ヤ簬U9");
+                }
+
+                var mesSupplier = Db.Queryable<MesSupplier>()
+                    .Where(s => s.Id == Decimal.Parse(mesLinkU9.MesId))
+                    .First();
+                if (mesSupplier == null)
+                {
+                    throw new NotImplementedException("[" + from.SupplierCode +
+                                                      "]渚涘簲鍟嗕笉瀛樺湪锛岃鍚屾缁橫ES");
+                }
+                SuppNo = mesSupplier.SuppNo;
+            }
+            var mesDepots = Db.Queryable<MesDepots>()
+                .Where(s => s.DepotId == Decimal.Parse(from.FromWarehouse)).First();
+
+            if (mesDepots == null)
+            {
+                throw new NotImplementedException("[" + from.FromWarehouse +
+                                                  "]浠撳簱涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+            }
+
+            var sysDepartment = Db.Queryable<SysDepartment>()
+              .Where(s => s.Departmentid == Decimal.Parse(from.ApplyDept)).First();
+
+            if (sysDepartment == null)
+            {
+                throw new NotImplementedException("[" + from.ApplyDept +
+                                                  "]閮ㄩ棬涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+            }
+
+
+            var nextSequenceValue =
+                Db.Ado.SqlQuery<decimal>("SELECT SEQ_QTCK.NEXTVAL FROM DUAL")
+                    .First();
+
+            // var billCode =
+            //     Db.Ado.SqlQuery<string>(
+            //             "SELECT GETBILLCODE1('1000', '1000', 'TLSQ') FROM DUAL")
+            //         .First();
+            //var billCode = from.RtnNo;
+
+            // 鍒涘缓鏉傚彂鐢宠鍗曡褰�
+            var MesItemQtrk = new MesItemQt
+            {
+                Id = nextSequenceValue,
+                Qtck = from.ApplyNumber,
+                Qt001 = from.Equals(null) ? DateTime.Now : from.ApplyDate,
+                Qt002 = from.Equals(null) ? DateTime.Now : from.AuditDate,
+                Qt003 = from.DocumentType,
+                Qt004 = from.StockOutType,
+                Qt005 = from.CreatedBy,
+                Qt006 = from.WorkOrder,
+                Qt009 = sysDepartment.Departmentname,
+                Qt012 = sysDepartment.Departmentcode,
+                Qt010 = from.Reason,
+                Qt011 = mesDepots.DepotCode,
+                Qt008 = mesDepots.DepotName,
+
+                Qt015 = 1,
+                Qt016 = from.Auditor,
+                Qt017 = from.TaskNumber,
+                Qt018 = SuppNo,
+                Qt019 = from.Direction,
+                Qt020 = from.OwnerType,
+                CustomerCode = from.CustomerCode,
+                Receiver = from.Receiver,
+                Department = from.Department,
+                StockKeeper = from.StockKeeper,
+                SourceType = from.SourceType,
+                SourceDocument = from.SourceDocument,
+                ProductionRelated = from.ProductionRelated,
+                ProductionLine = from.ProductionLine,
+                ProductionActivity = from.ProductionActivity,
+                FinishedGoods = from.FinishedGoods,
+                ReversePosting = from.ReversePosting,
+                AccountingPeriod = from.AccountingPeriod,
+                Employee = from.Employee,
+                FalseReturn = from.FalseReturn,
+                ProjectCode = from.ProjectCode,
+                TaskCode = from.TaskCode,
+                Status = from.Status,
+                OwnerOrganization = from.OwnerOrganization
+
+
+            };
+
+            // 鍒涘缓鏉傚彂鐢宠鍗曡璁板綍
+            var mesItemQtDetail = new List<MesItemQtDatall>();
+
+            foreach (var ItemQtRKList in items)
+            {
+                // 妫�鏌ュ繀瑕佸瓧娈垫槸鍚︿负绌�
+                //if (string.IsNullOrEmpty(itemOutList.SrcDocNo))
+                //{
+                //    throw new NotImplementedException("閲囪喘璁㈠崟鍙蜂笉鑳戒负绌�");
+                //}
+
+
+
+                //var mesRohInData = Db.Queryable<MesRohInData>()
+                //    .Where(s => s.BillNo == itemOutList.SrcDocNo
+                //                && s.OrderLineId == itemOutList.SrcDocLineNo)
+                //    .First();
+
+                //if (mesRohInData == null)
+                //{
+                //    throw new NotImplementedException("閲囪喘璁㈠崟涓嶅瓨鍦�");
+                //}
+
+                //var deliveryDetail = Db.Queryable<DeliveryDetail>()
+                //    .Where(a => a.Zzasn == from.AsnNo
+                //                && Int32.Parse(a.ZzitemId) ==
+                //                Int32.Parse(itemOutList.AsnLineNo))
+                //    .Count();
+
+                //if (deliveryDetail <= 0)
+                //{
+                //    throw new NotImplementedException("[" + from.AsnNo + "]鐨勬槑缁嗚[" +
+                //                                      itemOutList.AsnLineNo +
+                //                                      "]涓嶅瓨鍦�");
+                //}
+
+                var itemIdLinkU9 = Db.Queryable<MesLinkU9>()
+                    .Where(s => s.TableType == "MES_ITEMS"
+                                && s.U9Id == ItemQtRKList.ItemId).First();
+
+                if (itemIdLinkU9 == null)
+                {
+                    throw new NotImplementedException("鐗╂枡ID涓嶅瓨鍦ㄦ垨鏈悓姝ヤ簬U9");
+                }
+
+                var mesItems = Db.Queryable<MesItems>()
+                    .Where(s => s.Id == Decimal.Parse(itemIdLinkU9.MesId))
+                    .First();
+
+                if (mesItems == null)
+                {
+                    throw new NotImplementedException("[" + ItemQtRKList.ItemId +
+                                                      "]鐗╂枡涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+                }
+                var mesDepot = "";
+                if (ItemQtRKList.StorageLocation != null && ItemQtRKList.StorageLocation != null)
+                {
+                    mesDepots = Db.Queryable<MesDepots>()
+                   .Where(s => s.DepotId == Decimal.Parse(ItemQtRKList.StorageLocation)).First();
+                    if (mesDepots == null)
+                    {
+                        throw new NotImplementedException("[" + ItemQtRKList.StorageLocation +
+                                                          "]浠撳簱涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+                    }
+                    mesDepot = mesDepots.DepotCode;
+                }
+                string supplierCode = "";
+                if (ItemQtRKList.SupplierCode != null && ItemQtRKList.SupplierCode != "")
+                {
+                    var mesLinkU9 = Db.Queryable<MesLinkU9>()
+   .Where(s => s.TableType == "MES_SUPPLIER"
+               && s.U9Id == ItemQtRKList.SupplierCode).First();
+
+                    if (mesLinkU9 == null)
+                    {
+                        throw new NotImplementedException("[" + ItemQtRKList.SupplierCode +
+                                                          "]渚涘簲鍟嗕笉瀛樺湪锛岃鍚屾缁橫ES");
+                    }
+                    var mesSupplier = Db.Queryable<MesSupplier>()
+        .Where(s => s.Id == Decimal.Parse(mesLinkU9.MesId))
+        .First();
+                    if (mesSupplier == null)
+                    {
+                        throw new NotImplementedException("[" + ItemQtRKList.SupplierCode +
+                                                          "]渚涘簲鍟嗕笉瀛樺湪锛岃鍚屾缁橫ES");
+                    }
+                    supplierCode = mesSupplier.SuppNo;
+                }
+
+
+                //var mesInvItemInCItems = Db.Queryable<MesInvItemInCItems>()
+                //    .Where(s => s.ItemInId == mesInvItemIns.Id
+                //                && s.ItemNo == mesItems.ItemNo
+                //                && s.Ebeln == itemOutList.SrcDocNo
+                //                && s.EbelnLineNo ==
+                //                Decimal.Parse(itemOutList.SrcDocLineNo)
+                //                && s.SuppNo == mesSupplier.SuppNo
+                //                && Convert.ToInt32(s.ZzitemId) ==
+                //                Convert.ToInt32(itemOutList.AsnLineNo)).First();
+
+                //if (mesInvItemInCItems == null)
+                //{
+                //    throw new NotImplementedException("娌℃湁瀵瑰簲鐨勫叆搴撴槑缁�");
+                //}
+
+
+                // 纭繚CbillNo涓嶄负绌�
+                if (ItemQtRKList.AppliedQuantity <= 0 || ItemQtRKList.AppliedQuantity == null)
+                {
+                    throw new NotImplementedException("鐢宠鏁伴噺涓嶈兘涓�0鎴朜ULL鍊硷紒");
+                }
+
+                mesItemQtDetail.Add(new MesItemQtDatall
+                {
+                    Mid = nextSequenceValue,
+                    Qd002 = mesItems.ItemNo,
+                    Qd003 = mesItems.ItemName,
+                    Qd004 = mesItems.ItemModel,
+                    Qd005 = mesItems.ColorName,
+                    Qd006 = ItemQtRKList.PlannedQuantity,
+                    Qd007 = ItemQtRKList.AppliedQuantity,
+                    Qd008 = 0, // 宸插叆鏁伴噺榛樿涓�0
+                    Qd009 = mesItems.ItemUnit,
+                    Qd010 = ItemQtRKList.Remark,
+                    Qd012 = mesItems.Id, // 鐗╂枡鍐呯爜
+                    LineNumber = ItemQtRKList.LineNumber,
+                    ProductionRelated = ItemQtRKList.ProductionRelated,
+                    StorageType = ItemQtRKList.StorageType,
+                    OwnerOrganization = ItemQtRKList.OwnerOrganization,
+                    StorageLocation = mesDepot,
+                    SupplierCode = supplierCode,
+                    CustomerCode = ItemQtRKList.CustomerCode,
+                    ProjectCode = ItemQtRKList.ProjectCode,
+                    TaskCode = ItemQtRKList.TaskCode,
+                    ProductionOrder = ItemQtRKList.ProductionOrder,
+                    DailyPlan = ItemQtRKList.DailyPlan,
+                    ProductionActivity = ItemQtRKList.ProductionActivity,
+                    FinishedProduct = ItemQtRKList.FinishedProduct,
+                    PickingUsage= ItemQtRKList.PickingUsage
+
+
+                });
+            }
+
+            var outItemCommand = Db.Insertable(mesItemQtDetail)
+                .PageSize(1).IgnoreColumnsNull().ExecuteCommand();
+            if (outItemCommand <= 0)
+            {
+                throw new Exception("鍒涘缓鏉傚彂鍗曞瓙琛ㄥけ璐�");
+            }
+
+            // 鎻掑叆閲囪喘閫�鏂欏崟璁板綍
+            var insertResult = Db.Insertable(MesItemQtrk).IgnoreColumns(true)
+                .ExecuteCommand();
+            if (insertResult <= 0)
+            {
+                throw new Exception("鍒涘缓鏉傚彂鍗曞け璐�");
+            }
+
+            return outItemCommand + insertResult >= 2;
+        }
+
+        private bool Remove(MesItemQtFrom from)
+        {
+            // 鏌ユ壘瑕佸垹闄ょ殑鏉傚彂鍗�
+            var mesItemQtrk = Db.Queryable<MesItemQt>()
+                .Where(s => s.Qtck == from.ApplyNumber
+                           ).ToList();
+
+            if (mesItemQtrk == null || mesItemQtrk.Count == 0)
+            {
+                throw new NotImplementedException("鎵句笉鍒板搴旂殑鏉傚彂鍗�: " + from.ApplyNumber);
+            }
+
+            // 妫�鏌ユ槸鍚︽湁宸插鏍哥殑鍗曟嵁锛屽鏋滃瓨鍦ㄥ凡瀹℃牳(Status=1)鍒欎笉鍏佽鍒犻櫎
+            //if (mesInvItemOuts.Any(item => item.Status == 1))
+            //{
+            //    throw new NotImplementedException("瀛樺湪宸插鏍哥殑閲囪喘閫�鏂欏崟锛屼笉鍏佽鍒犻櫎");
+            //}
+
+            // 鍒犻櫎鎵�鏈夌浉鍏冲崟鎹�
+            foreach (var itemRK in mesItemQtrk)
+            {
+                // 鏌ユ壘瑕佸垹闄ょ殑鏉傚彂鍗曟槑缁�
+                var mesInvItemOutItems = Db.Queryable<MesItemQtDatall>()
+                    .Where(s => s.Mid == itemRK.Id)
+                    .ToList();
+
+                if (mesInvItemOutItems == null || mesInvItemOutItems.Count == 0)
+                {
+                    throw new NotImplementedException(
+                        $"鎵句笉鍒版潅鍙戝崟[{from.ApplyNumber}]瀵瑰簲鐨勬槑缁�");
+                }
+
+                // 鍒犻櫎鏉傚彂鍗曟槑缁�
+                var deleteItemsResult = Db.Deleteable<MesItemQtDatall>()
+                    .Where(s => s.Mid == itemRK.Id)
+                    .ExecuteCommand();
+
+                if (deleteItemsResult <= 0)
+                {
+                    throw new Exception($"鎵句笉鍒版潅鍙戝崟[ {from.ApplyNumber}]鏄庣粏锛屽垹闄ゅけ璐�");
+                }
+
+                // 鍒犻櫎鏉傚彂鍗�
+                var deleteResult = Db.Deleteable<MesItemQt>()
+                    .Where(s => s.Id == itemRK.Id)
+                    .ExecuteCommand();
+
+                if (deleteResult <= 0)
+                {
+                    throw new Exception($"鍒犻櫎鏉傚彂鍗昜{from.ApplyNumber}]澶辫触");
+                }
+            }
+
+            return true;
+        }
+    }
+}
diff --git a/StandardPda/MES.Service/service/Warehouse/MesItemQtrkManager.cs b/StandardPda/MES.Service/service/Warehouse/MesItemQtrkManager.cs
new file mode 100644
index 0000000..268fe67
--- /dev/null
+++ b/StandardPda/MES.Service/service/Warehouse/MesItemQtrkManager.cs
@@ -0,0 +1,424 @@
+锘縰sing Masuit.Tools;
+using MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.service.Warehouse
+{
+    public class MesItemQtrkManager : Repository<MesItemQtrk>
+    {
+        public bool MiscellaneousReceipts(MesItemQtRKDto mesItemQtRKDto)
+        {
+            var itemQtRKFrom = mesItemQtRKDto.from;
+            var itemQtRKLists = mesItemQtRKDto.items;
+
+            // 鏍规嵁AsnNo鍜孧esNo瀵规槑缁嗚繘琛屽垎缁�
+            //var groupedItems = itemOutLists
+            //    .GroupBy(item => new { item.AsnNo, item.MesNo, item.SqNo })
+            //    .ToList();
+
+            bool result = true;
+            //foreach (var group in itemQtRKLists)
+            //{
+                //if (group.Key.AsnNo == null)
+                //{
+                //    throw new NotImplementedException("AsnNo涓嶈兘涓虹┖");
+                //}
+
+                //if (group.Key.MesNo == null)
+                //{
+                //    throw new NotImplementedException("鍏ュ簱鍗曞崟鍙蜂笉鑳戒负绌�");
+                //}
+
+                //if (group.Key.SqNo == null)
+                //{
+                //    throw new NotImplementedException("閫�璐х敵璇峰崟琛屽彿涓嶈兘涓虹┖");
+                //}
+
+                // 鍒涘缓涓�涓复鏃剁殑itemOutFrom瀵硅薄锛屼娇鐢ㄥ垎缁勭殑Key浣滀负涓昏灞炴��
+                //var tempItemOutFrom = new ItemOutFrom
+                //{
+                //    AsnNo = group.Key.AsnNo,
+                //    MesNo = group.Key.MesNo,
+                //    SqNo = group.Key.SqNo,
+                //    // 缁ф壙鍘熷itemOutFrom鐨勫叾浠栧睘鎬�
+                //    RtnNo = itemOutFrom.RtnNo,
+                //    Type = itemOutFrom.Type,
+                //    CreateBy = itemOutFrom.CreateBy,
+                //    FMRMODE = itemOutFrom.FMRMODE,
+                //    DepotId = itemOutFrom.DepotId,
+                //    SupperId = itemOutFrom.SupperId
+                //};
+
+                // 鏍规嵁Type鎵ц涓嶅悓鐨勯�昏緫
+                switch (itemQtRKFrom.Type)
+                {
+                    case "1":
+                        {
+                            var mesInvItemOuts = Db.Queryable<MesItemQtrk>()
+                                .Where(s => s.Qtck == itemQtRKFrom.ApplyNumber
+
+                                )
+                                .Count();
+
+                            if (mesInvItemOuts > 0)
+                            {
+                                throw new NotImplementedException(
+                                    itemQtRKFrom.ApplyNumber +
+                                    "鐨勬潅鏀剁敵璇峰崟宸茬粡瀛樺湪");
+                            }
+
+                            // 涓哄綋鍓嶅垎缁勪繚瀛樻暟鎹�
+                            var groupResult = Save(itemQtRKFrom, itemQtRKLists);
+                            if (!groupResult)
+                            {
+                                result = false;
+                            }
+
+                            break;
+                        }
+                    case "4":
+                        var removeResult = Remove(itemQtRKFrom);
+                        if (!removeResult)
+                        {
+                            result = false;
+                        }
+
+                        break;
+                    default:
+                        result = false;
+                        break;
+                }
+            //}
+
+            return result;
+        }
+
+
+        private bool Save(MesItemQtRKFrom from, List<MesItemQtRKList> items)
+        {
+            //var mesInvItemIns = Db.Queryable<MesInvItemIns>()
+            //    .Where(s => s.BillTypeId == 100
+            //                && s.TransctionNo == "101"
+            //                && s.BillNo == from.MesNo
+            //    ).First();
+
+            //if (mesInvItemIns == null)
+            //{
+            //    throw new NotImplementedException("閲囪喘鍏ュ簱涓嶅瓨鍦�");
+            //}
+
+           
+            string SuppNo = "";
+            if (from.SupplierCode!="" && from.SupplierCode!=null)
+            {
+                var mesLinkU9 = Db.Queryable<MesLinkU9>()
+              .Where(s => s.TableType == "MES_SUPPLIER"
+                          && s.U9Id == from.SupplierCode).First();
+
+                if (mesLinkU9 == null)
+                {
+                    throw new NotImplementedException("渚涘簲鍟咺D涓嶅瓨鍦ㄦ垨鏈悓姝ヤ簬U9");
+                }
+
+                var mesSupplier = Db.Queryable<MesSupplier>()
+                    .Where(s => s.Id == Decimal.Parse(mesLinkU9.MesId))
+                    .First();
+                if (mesSupplier == null)
+                {
+                    throw new NotImplementedException("[" + from.SupplierCode +
+                                                      "]渚涘簲鍟嗕笉瀛樺湪锛岃鍚屾缁橫ES");
+                }
+                SuppNo= mesSupplier.SuppNo;
+            }
+            var mesDepots = Db.Queryable<MesDepots>()
+                .Where(s => s.DepotId == Decimal.Parse(from.FromWarehouse)).First();
+
+            if (mesDepots == null)
+            {
+                throw new NotImplementedException("[" + from.FromWarehouse +
+                                                  "]浠撳簱涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+            }
+
+            var sysDepartment = Db.Queryable<SysDepartment>()
+              .Where(s => s.Departmentid == Decimal.Parse(from.ApplyDept)).First();
+
+            if (sysDepartment == null)
+            {
+                throw new NotImplementedException("[" + from.ApplyDept +
+                                                  "]閮ㄩ棬涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+            }
+
+
+            var nextSequenceValue =
+                Db.Ado.SqlQuery<decimal>("SELECT SEQ_QTRK.NEXTVAL FROM DUAL")
+                    .First();
+
+            // var billCode =
+            //     Db.Ado.SqlQuery<string>(
+            //             "SELECT GETBILLCODE1('1000', '1000', 'TLSQ') FROM DUAL")
+            //         .First();
+            //var billCode = from.RtnNo;
+
+            // 鍒涘缓鏉傛敹鐢宠鍗曡褰�
+            var MesItemQtrk = new MesItemQtrk
+            {
+                Id = nextSequenceValue,
+                Qtck= from.ApplyNumber,
+                Qt001= from.Equals(null) ? DateTime.Now : from.ApplyDate,
+                Qt002= from.Equals(null) ? DateTime.Now : from.AuditDate,
+                Qt003= from.DocumentType,
+                Qt004= from.StockInType,
+                Qt005= from.CreatedBy,
+                Qt006= from.WorkOrder,
+                Qt009= sysDepartment.Departmentname,
+                Qt012 = sysDepartment.Departmentcode,
+                Qt010 = from.Reason,
+                Qt011= mesDepots.DepotCode,
+                Qt008 = mesDepots.DepotName,
+                 
+                Qt015= 1,
+                Qt016= from.Auditor,
+                Qt017= from.TaskNumber,
+                Qt018= SuppNo,
+                Qt019= from.Direction,
+                Qt020= from.OwnerType,
+                CustomerCode= from.CustomerCode,
+                Receiver= from.Receiver,
+                Department = from.Department,
+                StockKeeper=from.StockKeeper,
+                SourceType = from.SourceType,
+                SourceDocument = from.SourceDocument,
+                ProductionRelated = from.ProductionRelated,
+                ProductionLine = from.ProductionLine,
+                ProductionActivity = from.ProductionActivity,
+                FinishedGoods = from.FinishedGoods,
+                ReversePosting = from.ReversePosting,
+                AccountingPeriod= from.AccountingPeriod,
+                Employee= from.Employee,
+                FalseReturn = from.FalseReturn,
+                ProjectCode = from.ProjectCode,
+                TaskCode = from.TaskCode,
+                Status=from.Status,
+                OwnerOrganization= from.OwnerOrganization
+
+
+            };
+
+            // 鍒涘缓鏉傛敹鐢宠鍗曡璁板綍
+            var mesItemQtrrDetail = new List<MesItemQtrrDetail>();
+
+            foreach (var ItemQtRKList in items)
+            {
+                // 妫�鏌ュ繀瑕佸瓧娈垫槸鍚︿负绌�
+                //if (string.IsNullOrEmpty(itemOutList.SrcDocNo))
+                //{
+                //    throw new NotImplementedException("閲囪喘璁㈠崟鍙蜂笉鑳戒负绌�");
+                //}
+
+               
+
+                //var mesRohInData = Db.Queryable<MesRohInData>()
+                //    .Where(s => s.BillNo == itemOutList.SrcDocNo
+                //                && s.OrderLineId == itemOutList.SrcDocLineNo)
+                //    .First();
+
+                //if (mesRohInData == null)
+                //{
+                //    throw new NotImplementedException("閲囪喘璁㈠崟涓嶅瓨鍦�");
+                //}
+
+                //var deliveryDetail = Db.Queryable<DeliveryDetail>()
+                //    .Where(a => a.Zzasn == from.AsnNo
+                //                && Int32.Parse(a.ZzitemId) ==
+                //                Int32.Parse(itemOutList.AsnLineNo))
+                //    .Count();
+
+                //if (deliveryDetail <= 0)
+                //{
+                //    throw new NotImplementedException("[" + from.AsnNo + "]鐨勬槑缁嗚[" +
+                //                                      itemOutList.AsnLineNo +
+                //                                      "]涓嶅瓨鍦�");
+                //}
+
+                var itemIdLinkU9 = Db.Queryable<MesLinkU9>()
+                    .Where(s => s.TableType == "MES_ITEMS"
+                                && s.U9Id == ItemQtRKList.ItemId).First();
+
+                if (itemIdLinkU9 == null)
+                {
+                    throw new NotImplementedException("鐗╂枡ID涓嶅瓨鍦ㄦ垨鏈悓姝ヤ簬U9");
+                }
+
+                var mesItems = Db.Queryable<MesItems>()
+                    .Where(s => s.Id == Decimal.Parse(itemIdLinkU9.MesId))
+                    .First();
+
+                if (mesItems == null)
+                {
+                    throw new NotImplementedException("[" + ItemQtRKList.ItemId +
+                                                      "]鐗╂枡涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+                }
+                var mesDepot = "";
+                if (ItemQtRKList.StorageLocation != null && ItemQtRKList.StorageLocation!=null)
+                {
+                     mesDepots = Db.Queryable<MesDepots>()
+                    .Where(s => s.DepotId == Decimal.Parse(ItemQtRKList.StorageLocation)).First();
+                    if (mesDepots == null)
+                    {
+                        throw new NotImplementedException("[" + ItemQtRKList.StorageLocation +
+                                                          "]浠撳簱涓嶅瓨鍦紝璇峰悓姝ョ粰MES");
+                    }
+                    mesDepot = mesDepots.DepotCode;
+                }
+                string supplierCode = "";
+                if (ItemQtRKList.SupplierCode!=null && ItemQtRKList.SupplierCode != "")
+                {
+                    var mesLinkU9 = Db.Queryable<MesLinkU9>()
+   .Where(s => s.TableType == "MES_SUPPLIER"
+               && s.U9Id == ItemQtRKList.SupplierCode).First();
+
+                    var mesSupplier = Db.Queryable<MesSupplier>()
+        .Where(s => s.Id == Decimal.Parse(mesLinkU9.MesId))
+        .First();
+                    if (mesSupplier == null)
+                    {
+                        throw new NotImplementedException("[" + ItemQtRKList.SupplierCode +
+                                                          "]渚涘簲鍟嗕笉瀛樺湪锛岃鍚屾缁橫ES");
+                    }
+                    supplierCode = mesSupplier.SuppNo;
+                }
+               
+
+                //var mesInvItemInCItems = Db.Queryable<MesInvItemInCItems>()
+                //    .Where(s => s.ItemInId == mesInvItemIns.Id
+                //                && s.ItemNo == mesItems.ItemNo
+                //                && s.Ebeln == itemOutList.SrcDocNo
+                //                && s.EbelnLineNo ==
+                //                Decimal.Parse(itemOutList.SrcDocLineNo)
+                //                && s.SuppNo == mesSupplier.SuppNo
+                //                && Convert.ToInt32(s.ZzitemId) ==
+                //                Convert.ToInt32(itemOutList.AsnLineNo)).First();
+
+                //if (mesInvItemInCItems == null)
+                //{
+                //    throw new NotImplementedException("娌℃湁瀵瑰簲鐨勫叆搴撴槑缁�");
+                //}
+
+
+                // 纭繚CbillNo涓嶄负绌�
+                if (ItemQtRKList.AppliedQuantity<=0 || ItemQtRKList.AppliedQuantity==null)
+                {
+                    throw new NotImplementedException("鐢宠鏁伴噺涓嶈兘涓�0鎴朜ULL鍊硷紒");
+                }
+
+                mesItemQtrrDetail.Add(new MesItemQtrrDetail
+                {
+                    Mid = nextSequenceValue,
+                    Qd002= mesItems.ItemNo,
+                    Qd003= mesItems.ItemName,
+                    Qd004= mesItems.ItemModel,
+                    Qd005= mesItems.ColorName,
+                    Qd006= ItemQtRKList.PlannedQuantity,
+                    Qd007= ItemQtRKList.AppliedQuantity,
+                    Qd008=0, // 宸插叆鏁伴噺榛樿涓�0
+                    Qd009= mesItems.ItemUnit,
+                    Qd010= ItemQtRKList.Remark,
+                    Qd012= mesItems.Id, // 鐗╂枡鍐呯爜
+                    LineNumber= ItemQtRKList.LineNumber,
+                    ProductionRelated= ItemQtRKList.ProductionRelated,
+                    StorageType= ItemQtRKList.StorageType,
+                    OwnerOrganization = ItemQtRKList.OwnerOrganization,
+                    StorageLocation= mesDepot,
+                    SupplierCode= supplierCode,
+                    CustomerCode = ItemQtRKList.CustomerCode,
+                    ProjectCode = ItemQtRKList.ProjectCode,
+                    TaskCode = ItemQtRKList.TaskCode,
+                    ProductionOrder = ItemQtRKList.ProductionOrder,
+                    DailyPlan = ItemQtRKList.DailyPlan,
+                    ProductionActivity = ItemQtRKList.ProductionActivity,
+                    FinishedProduct = ItemQtRKList.FinishedProduct
+                        
+                });
+            }
+
+            var outItemCommand = Db.Insertable(mesItemQtrrDetail)
+                .PageSize(1).IgnoreColumnsNull().ExecuteCommand();
+            if (outItemCommand <= 0)
+            {
+                throw new Exception("鍒涘缓鏉傛敹鍗曞瓙琛ㄥけ璐�");
+            }
+
+            // 鎻掑叆閲囪喘閫�鏂欏崟璁板綍
+            var insertResult = Db.Insertable(MesItemQtrk).IgnoreColumns(true)
+                .ExecuteCommand();
+            if (insertResult <= 0)
+            {
+                throw new Exception("鍒涘缓鏉傛敹鍗曞け璐�");
+            }
+
+            return outItemCommand + insertResult >= 2;
+        }
+
+        private bool Remove(MesItemQtRKFrom from)
+        {
+            // 鏌ユ壘瑕佸垹闄ょ殑鏉傛敹鍗�
+            var mesItemQtrk = Db.Queryable<MesItemQtrk>()
+                .Where(s => s.Qtck == from.ApplyNumber
+                           ).ToList();
+
+            if (mesItemQtrk == null || mesItemQtrk.Count == 0)
+            {
+                throw new NotImplementedException("鎵句笉鍒板搴旂殑鏉傛敹鍗�: " + from.ApplyNumber);
+            }
+
+            // 妫�鏌ユ槸鍚︽湁宸插鏍哥殑鍗曟嵁锛屽鏋滃瓨鍦ㄥ凡瀹℃牳(Status=1)鍒欎笉鍏佽鍒犻櫎
+            //if (mesInvItemOuts.Any(item => item.Status == 1))
+            //{
+            //    throw new NotImplementedException("瀛樺湪宸插鏍哥殑閲囪喘閫�鏂欏崟锛屼笉鍏佽鍒犻櫎");
+            //}
+
+            // 鍒犻櫎鎵�鏈夌浉鍏冲崟鎹�
+            foreach (var itemRK in mesItemQtrk)
+            {
+                // 鏌ユ壘瑕佸垹闄ょ殑鏉傛敹鍗曟槑缁�
+                var mesInvItemOutItems = Db.Queryable<MesItemQtrrDetail>()
+                    .Where(s => s.Mid == itemRK.Id)
+                    .ToList();
+
+                if (mesInvItemOutItems == null || mesInvItemOutItems.Count == 0)
+                {
+                    throw new NotImplementedException(
+                        $"鎵句笉鍒版潅鏀跺崟[{from.ApplyNumber}]瀵瑰簲鐨勬槑缁�");
+                }
+
+                // 鍒犻櫎鏉傛敹鍗曟槑缁�
+                var deleteItemsResult = Db.Deleteable<MesItemQtrrDetail>()
+                    .Where(s => s.Mid == itemRK.Id)
+                    .ExecuteCommand();
+
+                if (deleteItemsResult <= 0)
+                {
+                    throw new Exception($"鎵句笉鍒版潅鏀跺崟[ {from.ApplyNumber}]鏄庣粏锛屽垹闄ゅけ璐�");
+                }
+
+                // 鍒犻櫎鏉傛敹鍗�
+                var deleteResult = Db.Deleteable<MesItemQtrk>()
+                    .Where(s => s.Id == itemRK.Id)
+                    .ExecuteCommand();
+
+                if (deleteResult <= 0)
+                {
+                    throw new Exception($"鍒犻櫎鏉傛敹鍗昜{from.ApplyNumber}]澶辫触");
+                }
+            }
+
+            return true;
+        }
+    }
+}
diff --git a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
index edc8bea..b0d1277 100644
--- a/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/WomdaaManager.cs
@@ -2,12 +2,13 @@
 using MES.Service.DB;
 using MES.Service.Dto.service;
 using MES.Service.Modes;
+using MES.Service.service.BasicData;
 using System;
 using System.Collections.Generic;
+using System.Data;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using System.Data;
 
 namespace MES.Service.service.Warehouse
 {
@@ -22,11 +23,11 @@
         {
             OracleSQLHelper SQLHelper = new();
             //鏌ュ伐鍗曚俊鎭�
-            var sql1 = @"select DAA001 tickeNo,s.ITEM_NO itemNo,s.ITEM_NAME itemName,s.ITEM_MODEL itemModel,DAA008 plannedNum from MESLINE_LIKE_CCLOGIN A 
-                        join MES_LINE b on A.LINEID=b.ID
-                        left join WOMDAA C on C.DAA015=B.LINE_NO
-                        left join mes_items s on s.id = C.daa002
-                        where LOGINID='" + id + "' and DAA018='宸插紑宸�'  order by DAA016 asc";
+            //var sql1 = @"select DAA001 tickeNo,s.ITEM_NO itemNo,s.ITEM_NAME itemName,s.ITEM_MODEL itemModel,DAA008 plannedNum from MESLINE_LIKE_CCLOGIN A 
+            //            join MES_LINE b on A.LINEID=b.ID
+            //            left join WOMDAA C on C.DAA015=B.LINE_NO
+            //            left join mes_items s on s.id = C.daa002
+            //            where LOGINID='" + id + "' and DAA018='宸插紑宸�'  order by DAA016 asc";
 
             //鏀逛负鎸夌珯浣嶅彿鍙嶆煡浜х嚎锛屽啀閫氳繃浜х嚎鏌ュ嚭宸ュ崟淇℃伅
             //var sql1 = @"select DAA001 tickeNo,s.ITEM_NO itemNo,s.ITEM_NAME itemName,s.ITEM_MODEL itemModel,DAA008 plannedNum from MESLINE_LIKE_CCLOGIN A
@@ -34,8 +35,16 @@
             //            join MES_LINE b on A.LINEID=b.ID
             //            left join WOMDAA C on C.DAA015=B.LINE_NO
             //            left join mes_items s on s.id = C.daa002
-            //           where WORKSNO='" + id+ "' and DAA018='宸插紑宸�'  order by DAA016 asc";
+            //           where WORKSNO='" + id + "' and DAA018='宸插紑宸�'  order by DAA016 asc";
 
+
+            //鍙栫洿鎺ュ叧鑱旂嚎浣撶殑浜ф祴鐧诲綍鍙锋暟鎹紝鍘诲彇鑾峰彇宸ュ崟
+            var sql1 = "select DAA001 tickeNo,s.ITEM_NO itemNo,s.ITEM_NAME itemName,s.ITEM_MODEL itemModel,DAA008 plannedNum from " +
+                "MESLINE_LIKE_CCLOGIN_WORKS A1" +
+                "                        join MES_LINE b on A1.LOGINID=b.ID" +
+                "                        left join WOMDAA C on C.DAA015=B.LINE_NO" +
+                "                        left join mes_items s on s.id = C.daa002" +
+                "                       where WORKSNO='" + id + "' and DAA018='宸插紑宸�'  order by DAA016 asc";
             return SQLHelper.ExecuteQuery(sql1);
         }
 
@@ -45,19 +54,265 @@
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
+        //public bool AddAsnInfo(AsnInfo asnInfo)
+        //{
+        //    OracleSQLHelper SQLHelper = new();
+        //    //璁板綍浜ф祴杩囩珯淇℃伅
+        //    var sql1 = @"INSERT  INTO MES_SN_STATUS_DETAILS (ID,TICKET_NO,SN_NO,WORKSTATION_NO,SN_STATE,LOGIN_ID) VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,'" + asnInfo.tickeNo+ "','"+ asnInfo.snNo+ "','"+ asnInfo.workstationNo+ "','"+ asnInfo.snState+ "','"+asnInfo.loginId+"')";
+        //    bool result = true;
+        //    int i= SQLHelper.ExecuteNonQuery(sql1);
+        //    //涓昏〃淇℃伅鎻掑叆鎴愬姛锛岀户缁彃鍏ラ」鐩�
+        //    if (i > 0) {
+        //        //鍒ゆ柇椤圭洰鏄惁涓虹┖锛屼负绌轰笉鎻掑叆
+        //        if (asnInfo.failItems.Count>0)
+        //        {
+        //            //鎻掑叆閫昏緫
+
+        //        }
+        //        else
+        //        {
+        //            result = true;
+        //        }
+
+
+        //    } else { result = false; }
+
+        //    return result;
+        //}
         public bool AddAsnInfo(AsnInfo asnInfo)
         {
-            OracleSQLHelper SQLHelper = new();
-            //璁板綍浜ф祴杩囩珯淇℃伅
-            var sql1 = @"INSERT  INTO MES_SN_STATUS_DETAILS (ID,TICKET_NO,SN_NO,WORKSTATION_NO,SN_STATE) VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,'"+ asnInfo.tickeNo+ "','"+ asnInfo.snNo+ "','"+ asnInfo.workstationNo+ "','"+ asnInfo.snState+ "')";
+            var sqlHelper = new OracleSQLHelper();
             bool result = true;
-            int i= SQLHelper.ExecuteNonQuery(sql1);
-            if (i > 0) {result = true;} else { result = false; }
-            
+            //
+            var (connection, transaction) = sqlHelper.BeginTransaction();
+
+            try
+            {
+                // 涓昏〃鎻掑叆
+                var sql1 = $@"INSERT INTO MES_SN_STATUS_DETAILS
+                     (ID, TICKET_NO, SN_NO, WORKSTATION_NO, SN_STATE, LOGIN_ID)
+                     VALUES (SEQ_MES_SN_STATUS_DETAILS_ID.NEXTVAL,
+                             '{asnInfo.tickeNo}',
+                             '{asnInfo.snNo}',
+                             '{asnInfo.workstationNo}',
+                             '{asnInfo.snState}',
+                             '{asnInfo.loginId}')";
+
+                int i = sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql1);
+
+                if (i > 0 && asnInfo.failItems?.Count > 0)
+                {
+                    foreach (var item in asnInfo.failItems)
+                    {
+                        var sql2 = $@"INSERT INTO CC_FAIL_ITEMS
+                             (ID, MID, DEFECT_ISSUE, ROOT_CAUSE, REPAIR_METHOD, MATERIAL_HANDLING, CREATE_DATE, CREATED_BY)
+                             VALUES (SEQ_CC_FAIL_ITEMS.NEXTVAL,
+                                     SEQ_MES_SN_STATUS_DETAILS_ID.CURRVAL,
+                                     '{item.DefectIssue}',
+                                     '{item.RootCause}',
+                                     '{item.RepairMethod}',
+                                     '{item.MaterialHandling}',
+                                     SYSDATE,
+                                     '{asnInfo.loginId}')";
+
+                        sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                    }
+                }
+
+                // 鍏ㄩ儴鎴愬姛鎻愪氦
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                result = false;
+                throw; // 寤鸿璁板綍鏃ュ織
+            }
+            finally
+            {
+                sqlHelper.CloseConnection(connection);
+            }
+
             return result;
         }
 
+        /// <summary>
+        /// 璁剧疆涓鐮�
+        /// </summary>
+        /// <param name="mesMiddleBox"></param>
+        /// <returns></returns>
+        public string[] SetMediumBoxCode(MesMiddleBox mesMiddleBox)
+        {
+            var sqlHelper = new OracleSQLHelper();
+            string[] msg= new string[2];
+            msg[0] = "true";
+            //
+            var (connection, transaction) = sqlHelper.BeginTransaction();
 
+            try
+            {
+                if (mesMiddleBox.type.ToUpper() =="A") {
+                    if (mesMiddleBox.SnList.Count > 0)
+                    {
+                        string sql1 = "select count(*) count  from MES_MIDDLE_BOX where MEDIUMBOXCODE='"+ mesMiddleBox.MediumBoxCode + "'";
+                        DataTable data= sqlHelper.ExecuteQuery(sql1);
+                        if (data.Rows[0]["COUNT"].ToString() != "0") {
+                            msg[0] = "false";
+                            msg[1] = "璇ヤ腑绠辩爜宸茬粡缁戝畾SN鏁版嵁锛屽闇�鍐嶆缁戝畾璇峰厛瑙g粦锛佷腑绠辩爜锛�" + mesMiddleBox.MediumBoxCode;
+                            transaction.Rollback();
+                           
+                            return msg;
+                        }
+                        foreach (var item in mesMiddleBox.SnList)
+                        {
+                            var sql2 = $@"INSERT INTO MES_MIDDLE_BOX
+                                    (
+                                        ID,
+                                        MEDIUMBOXCODE,
+                                        LOGIN_ID,
+                                        SN_NO,
+                                        TICKET_NO,
+                                        CREATE_DATE,
+                                        CREATED_BY
+                                    )
+                                    VALUES
+                                    (
+                                        SEQ_MES_MIDDLE_BOX_ID.NEXTVAL, -- 搴忓垪鐢熸垚涓婚敭
+                                        '{mesMiddleBox.MediumBoxCode.ToString()}',                 -- 涓鐮�
+                                        '{mesMiddleBox.LoginId}',                       -- 鐧诲綍鍙�
+                                        '{item.SnNo}',                          -- SN鍙�
+                                        '{item.TicketNo}',                      -- 宸ュ崟鍗曞彿
+                                        SYSDATE,                         -- 鍒涘缓鏃堕棿
+                                        '{mesMiddleBox.LoginId}'                       -- 鍒涘缓浜�
+                                    )
+                                    ";
+
+                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                        }
+                    }
+                    else
+                    {
+                        msg[0] = "false";
+                    }
+                } else if(mesMiddleBox.type.ToUpper() == "F") {
+                    //瑙g粦锛屾牴鎹腑绠辩爜鍏ㄩ儴鍒犻櫎
+                    var sql2 = $@"delete MES_MIDDLE_BOX where MEDIUMBOXCODE='{mesMiddleBox.MediumBoxCode}'";
+
+                    sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                }
+                else
+                {
+                    msg[1] = "SN鏄庣粏涓虹┖锛岃纭锛�";
+                    msg[0] = "false";
+                }
+               
+
+                // 鍏ㄩ儴鎴愬姛鎻愪氦
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                msg[0] = "false";
+                msg[1] = ex.Message;
+                throw; // 寤鸿璁板綍鏃ュ織
+            }
+            finally
+            {
+                sqlHelper.CloseConnection(connection);
+            }
+
+            return msg;
+        }
+
+
+        public string[] SetStackCode(MesPalletBinding mesPalletBinding)
+        {
+            var sqlHelper = new OracleSQLHelper();
+            string[] msg = new string[2];
+            msg[0] = "true";
+            //
+            var (connection, transaction) = sqlHelper.BeginTransaction();
+
+            try
+            {
+                //缁戝畾
+                if (mesPalletBinding.Type.ToUpper() == "A") {
+                    if (mesPalletBinding.SnList.Count > 0)
+                    {
+                        string sql1 = "select count(*) count  from MES_PALLET_BINDING where STACKCODE='" + mesPalletBinding.StackCode + "'";
+                        DataTable data = sqlHelper.ExecuteQuery(sql1);
+                        if (data.Rows[0]["COUNT"].ToString() != "0")
+                        {
+                            msg[0] = "false";
+                            msg[1] = "璇ユ爤鏉跨爜宸茬粡缁戝畾SN鏁版嵁锛屽闇�鍐嶆缁戝畾璇峰厛瑙g粦锛佹爤鏉跨爜锛�" + mesPalletBinding.StackCode;
+                            transaction.Rollback();
+
+                            return msg;
+                        }
+                        foreach (var item in mesPalletBinding.SnList)
+                        {
+                            var sql2 = $@"INSERT INTO MES_PALLET_BINDING
+                            (
+                                ID,
+                                STACKCODE,
+                                LOGIN_ID,
+                                SN_NO,
+                                TICKET_NO,
+                                MEDIUMBOXCODE,
+                                CREATE_DATE,
+                                CREATED_BY
+                            )
+                            VALUES
+                            (
+                                SEQ_MES_PALLET_BINDING_ID.NEXTVAL, -- 搴忓垪鐢熸垚涓婚敭
+                                '{mesPalletBinding.StackCode}',                        -- 鏍堟澘鐮�
+                                '{mesPalletBinding.LoginId}',                          -- 鐧诲綍鍙�
+                                '{item.SnNo}',                             -- SN鍙�
+                                '{item.TicketNo}',                         -- 宸ュ崟鍗曞彿
+                                '{item.MediumBoxCode}',                     -- 涓鐮�
+                                SYSDATE,                            -- 鍒涘缓鏃堕棿
+                                '{mesPalletBinding.LoginId}'                          -- 鍒涘缓浜�
+                            )
+
+                                    ";
+
+                            sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                        }
+                    }
+                    else
+                    {
+                        msg[1] = "SN鏄庣粏涓虹┖锛岃纭锛�";
+                        msg[0] = "false";
+                    }
+                }
+                //瑙g粦
+                else if(mesPalletBinding.Type.ToUpper() == "F")
+                {
+                    //瑙g粦锛屾牴鎹腑绠辩爜鍏ㄩ儴鍒犻櫎
+                    var sql2 = $@"delete MES_PALLET_BINDING where STACKCODE='" + mesPalletBinding.StackCode + "'";
+
+                    sqlHelper.ExecuteNonQueryWithTransaction(connection, transaction, sql2);
+                }
+                
+
+                // 鍏ㄩ儴鎴愬姛鎻愪氦
+                transaction.Commit();
+            }
+            catch (Exception ex)
+            {
+                transaction.Rollback();
+                msg[0] = "false";
+                msg[1] = ex.Message;
+                throw; // 寤鸿璁板綍鏃ュ織
+            }
+            finally
+            {
+                sqlHelper.CloseConnection(connection);
+            }
+
+            return msg;
+        }
 
     }
 }
diff --git a/StandardPda/MESApplication/Controllers/Warehouse/MesItemQtController.cs b/StandardPda/MESApplication/Controllers/Warehouse/MesItemQtController.cs
new file mode 100644
index 0000000..32d28c1
--- /dev/null
+++ b/StandardPda/MESApplication/Controllers/Warehouse/MesItemQtController.cs
@@ -0,0 +1,216 @@
+锘縰sing MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.service;
+using MES.Service.service.BasicData;
+using MES.Service.service.Warehouse;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+using System.Dynamic;
+
+// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
+
+namespace MESApplication.Controllers.Warehouse
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class MesItemQtController : ControllerBase
+    {
+        private readonly MesItemQtManager m = new();
+
+        private readonly MessageCenterManager _manager = new();
+
+        private readonly string METHOD = "POST";
+
+        private readonly string TableName = "MesItemQt";
+
+        private readonly string URL = "http://localhost:10054/api/MesItemQt/";
+
+        /// <summary>
+        ///     鍏朵粬鍑哄簱鐢宠鍗曪紙鏉傚彂锛�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("MiscellaneousIssues")]
+        public ResponseResult MiscellaneousIssues(MesItemQtDto oItemOut)
+        {
+            var entity = new MessageCenter();
+            entity.TableName = TableName;
+            entity.Url = URL + "MiscellaneousIssues";
+            entity.Method = METHOD;
+            entity.Data = Newtonsoft.Json.JsonConvert.SerializeObject(oItemOut);
+            entity.Status = 1;
+            entity.CreateBy = "PL017";
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                var result = m.MiscellaneousIssues(oItemOut);
+                resultInfos.tbBillList = result;
+
+                entity.Result = 0;
+                if (result) entity.Result = 1;
+                entity.DealWith = 1;
+                _manager.save(entity);
+
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                entity.Result = 0;
+                entity.DealWith = 0;
+                entity.ResultData = ex.Message;
+                _manager.save(entity);
+
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     鑾峰彇鎵�鏈�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("GetList")]
+        public ResponseResult GetList()
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.GetList();
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+
+        /// <summary>
+        ///     鏍规嵁涓婚敭鑾峰彇
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("GetById")]
+        public ResponseResult GetById(int id)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.GetById(id);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     鏍规嵁涓婚敭鍒犻櫎
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("DeleteByIds")]
+        public ResponseResult DeleteByIds([FromBody] object[] ids)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.DeleteByIds(ids);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     娣诲姞
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("Insert")]
+        public ResponseResult Add([FromBody] MesItemQt data)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.Insert(data);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     娣诲姞杩斿洖鑷
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("InsertReturnIdentity")]
+        public ResponseResult InsertReturnIdentity([FromBody] MesItemQt data)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.InsertReturnIdentity(data);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     淇敼
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("Update")]
+        public ResponseResult Update([FromBody] MesItemQt data)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.Update(data);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+    }
+}
diff --git a/StandardPda/MESApplication/Controllers/Warehouse/MesItemQtrkController.cs b/StandardPda/MESApplication/Controllers/Warehouse/MesItemQtrkController.cs
new file mode 100644
index 0000000..836e7d6
--- /dev/null
+++ b/StandardPda/MESApplication/Controllers/Warehouse/MesItemQtrkController.cs
@@ -0,0 +1,214 @@
+锘縰sing MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.service;
+using MES.Service.service.Warehouse;
+using MES.Service.util;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System.Dynamic;
+
+namespace MESApplication.Controllers.Warehouse
+{
+    [Route("api/[controller]")]
+    [ApiController]
+       public class MesItemQtrkController : ControllerBase
+    {
+        private readonly MesItemQtrkManager m = new();
+
+        private readonly MessageCenterManager _manager = new();
+
+        private readonly string METHOD = "POST";
+
+        private readonly string TableName = "MesItemQtrk";
+
+        private readonly string URL = "http://localhost:10054/api/MesItemQtrk/";
+
+        /// <summary>
+        ///     鍏朵粬鍏ュ簱鐢宠鍗曪紙鏉傛敹锛�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("MiscellaneousReceipts")]
+        public ResponseResult MiscellaneousReceipts(MesItemQtRKDto mesItemQtRKDto)
+        {
+            var entity = new MessageCenter();
+            entity.TableName = TableName;
+            entity.Url = URL + "MiscellaneousReceipts";
+            entity.Method = METHOD;
+            entity.Data = Newtonsoft.Json.JsonConvert.SerializeObject(mesItemQtRKDto);
+            entity.Status = 1;
+            entity.CreateBy = "PL017";
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                var result = m.MiscellaneousReceipts(mesItemQtRKDto);
+                resultInfos.tbBillList = result;
+
+                entity.Result = 0;
+                if (result) entity.Result = 1;
+                entity.DealWith = 1;
+                _manager.save(entity);
+
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                entity.Result = 0;
+                entity.DealWith = 0;
+                entity.ResultData = ex.Message;
+                _manager.save(entity);
+
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     鑾峰彇鎵�鏈�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("GetList")]
+        public ResponseResult GetList()
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.GetList();
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+
+        /// <summary>
+        ///     鏍规嵁涓婚敭鑾峰彇
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("GetById")]
+        public ResponseResult GetById(int id)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.GetById(id);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     鏍规嵁涓婚敭鍒犻櫎
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("DeleteByIds")]
+        public ResponseResult DeleteByIds([FromBody] object[] ids)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.DeleteByIds(ids);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     娣诲姞
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("Insert")]
+        public ResponseResult Add([FromBody] MesItemQtrk data)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.Insert(data);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     娣诲姞杩斿洖鑷
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("InsertReturnIdentity")]
+        public ResponseResult InsertReturnIdentity([FromBody] MesItemQtrk data)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.InsertReturnIdentity(data);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///     淇敼
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("Update")]
+        public ResponseResult Update([FromBody] MesItemQtrk data)
+        {
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                resultInfos.tbBillList = m.Update(data);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "OK",
+                    data = resultInfos
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+    }
+}
diff --git a/StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs b/StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs
index b0c5720..dfdcdd9 100644
--- a/StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs
+++ b/StandardPda/MESApplication/Controllers/Warehouse/womdaaController.cs
@@ -1,4 +1,5 @@
-锘縰sing MES.Service.Dto.service;
+锘縰sing AngleSharp.Text;
+using MES.Service.Dto.service;
 using MES.Service.Modes;
 using MES.Service.service;
 using MES.Service.service.Warehouse;
@@ -111,6 +112,116 @@
             }
         }
 
+        /// <summary>
+        ///璁剧疆涓鐮�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("SetMediumBoxCode")]
+        public ResponseResult SetMediumBoxCode(MesMiddleBox MesMiddleBox)
+        {
+            var entity = new MessageCenter();
+            entity.TableName = TableName;
+            entity.Url = URL + "SetMediumBoxCode";
+            entity.Method = METHOD;
+            entity.Data = Newtonsoft.Json.JsonConvert.SerializeObject(MesMiddleBox);
+            entity.Status = 1;
+            entity.CreateBy = "PL017";
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                var result = m.SetMediumBoxCode(MesMiddleBox);
+                resultInfos.tbBillList = result;
+
+                entity.Result = 0;
+                if (result[0].ToBoolean()) entity.Result = 1;
+                entity.DealWith = 1;
+                _manager.save(entity);
+
+                if (result[0].ToBoolean())
+                {
+                    return new ResponseResult
+                    {
+                        status = 0,
+                        message = "OK",
+                        data = resultInfos
+                    };
+                }
+                else {
+                    return new ResponseResult
+                    {
+                        status = 1,
+                        message = result[1],
+                        data = resultInfos
+                    };
+                }
+               
+            }
+            catch (Exception ex)
+            {
+                entity.Result = 0;
+                entity.DealWith = 0;
+                entity.ResultData = ex.Message;
+                _manager.save(entity);
+
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
+        /// <summary>
+        ///璁剧疆鏍堟澘鐮�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("SetStackCode")]
+        public ResponseResult SetStackCode(MesPalletBinding mesPalletBinding)
+        {
+            var entity = new MessageCenter();
+            entity.TableName = TableName;
+            entity.Url = URL + "SetStackCode";
+            entity.Method = METHOD;
+            entity.Data = Newtonsoft.Json.JsonConvert.SerializeObject(mesPalletBinding);
+            entity.Status = 1;
+            entity.CreateBy = "PL017";
+            try
+            {
+                dynamic resultInfos = new ExpandoObject();
+                var result = m.SetStackCode(mesPalletBinding);
+                resultInfos.tbBillList = result;
+
+                entity.Result = 0;
+                if (result[0].ToBoolean()) entity.Result = 1;
+                entity.DealWith = 1;
+                _manager.save(entity);
+
+                if (result[0].ToBoolean())
+                {
+                    return new ResponseResult
+                    {
+                        status = 0,
+                        message = "OK",
+                        data = resultInfos
+                    };
+                }
+                else
+                {
+                    return new ResponseResult
+                    {
+                        status = 1,
+                        message = result[1],
+                        data = resultInfos
+                    };
+                }
+            }
+            catch (Exception ex)
+            {
+                entity.Result = 0;
+                entity.DealWith = 0;
+                entity.ResultData = ex.Message;
+                _manager.save(entity);
+
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+
 
     }
 }

--
Gitblit v1.9.3