From ded9c653b4bd5f45cb23124068687135c29e6915 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 12 一月 2026 15:06:11 +0800
Subject: [PATCH] 多个功能优化,逻辑修改等

---
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/桁架/TrussDixieCupJob.cs                        |  118 +++
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs       |   14 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_PackType.cs                |    8 
 项目资料/通信协议/纸杯&纸箱上料桁架通讯协议.xlsx                                                        |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackaxisService.cs                |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfo_HtyService.cs            |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPB.cs                    |    9 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackinfoController.cs   |   32 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs                     |    8 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs               |   33 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs                 |  179 +++
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo.cs                |   73 +
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs                      |    6 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs              |  232 +++++
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackaxisService.cs                  |   17 
 项目代码/WCS/WCSServices/WIDESEAWCS_Common/StationOccupiedEnum.cs                       |    1 
 项目资料/通信协议/纸杯纸箱上料桁架通讯协议-251118.xlsx                                                  |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTaskRepository.cs      |   15 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackDetailService.cs         |   27 
 项目代码/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs                       |    3 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs             |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackinfoRepository.cs            |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackDetail.cs       |   33 
 项目代码/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs                     |   14 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfoService.cs                |   22 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackaxisRepository.cs          |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTask_HtyService.cs        |   17 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackInfoRepository.cs     |   18 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackinfoService.cs                  |   61 +
 项目代码/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs                        |   14 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs   |    7 
 项目代码/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/SequenceEnum.cs                     |   13 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo_Hty.cs            |   18 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackaxisRepository.cs            |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTask_HtyService.cs          |   25 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/ApartPlate.cs                   |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/桁架/TrussCartonJob.cs                          |    3 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackInfoService.cs           |   27 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTask_HtyRepository.cs    |   18 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/StackPlate.cs                   |    4 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs                |    9 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESIssueCache.cs           |   80 ++
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackInfoService.cs         |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packaxis.cs                |   10 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs    |   24 
 项目资料/通信协议/龙利得机器人IO通讯表20250712.xlsx                                                  |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs             |  164 ++-
 项目代码/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs           |    6 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs                      |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTask_HtyRepository.cs  |    5 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPH.cs                    |  206 +++-
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs                  |   10 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackDetailRepository.cs   |   18 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_PackaxisTask.cs            |   30 
 项目代码/WMS/WMSServices/WIDESEA_Common/CommonEnum/StationAreaEnum.cs                   |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_DTO/PackInfo/MESProPackInfoDTO.cs                   |   54 +
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackInfoRepository.cs   |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/DBNames/TrussDBName.cs                        |  140 +++
 项目代码/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs             |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoService/Packinfo_HtyService.cs              |   27 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/码垛/MDJob_CP.cs                                |  217 +++--
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfoRepository.cs          |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTaskRepository.cs        |   27 
 项目代码/WCS/WCSServices/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj                           |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs                      |    3 
 项目代码/WCS/WCSClient/src/api/http.js                                                  |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackDetailRepository.cs |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Packinfo_HtyRepository.cs        |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackTypeRepository.cs            |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/PackaxisTaskController.cs   |   28 
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTaskService.cs            |   20 
 项目资料/接口协议/龙利得MES接口.xlsx                                                             |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackInfo.cs         |   86 ++
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackTypeRepository.cs          |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfo_HtyRepository.cs      |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackDetailService.cs       |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs                 |   10 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj                       |    7 
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs                    |    6 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs              |    7 
 80 files changed, 1,967 insertions(+), 364 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js"
index 8928488..d9bd114 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/api/http.js"
@@ -12,8 +12,8 @@
 let loadingInstance;
 let loadingStatus = false;
 if (process.env.NODE_ENV == 'development') {
-    // axios.defaults.baseURL = 'http://127.0.0.1:9291/';
-    axios.defaults.baseURL = 'http://192.168.35.3:9281/';
+    axios.defaults.baseURL = 'http://127.0.0.1:9291/';
+    // axios.defaults.baseURL = 'http://192.168.35.3:9281/';
 }
 else if (process.env.NODE_ENV == 'debug') {
     axios.defaults.baseURL = 'http://127.0.0.1:8098/';
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/StationOccupiedEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/StationOccupiedEnum.cs"
index fb9f974..0aa651e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/StationOccupiedEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/StationOccupiedEnum.cs"
@@ -8,7 +8,6 @@
 {
     public enum StationOccupiedEnum
     {
-
         None,
         Sure
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/SequenceEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/SequenceEnum.cs"
new file mode 100644
index 0000000..d6e79e0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/SequenceEnum.cs"
@@ -0,0 +1,13 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public enum SequenceEnum
+    {
+        SeqPackTaskNum
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index 97179eb..9c78130 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -130,6 +130,12 @@
         InPick = 530,
 
         /// <summary>
+        /// 绌烘墭鍥炲彔鐩�
+        /// </summary>
+        [Description("绌烘墭鍥炲彔鐩�")]
+        EmptyPaletteBack = 535,
+
+        /// <summary>
         /// 鎴愬搧鍏ュ簱
         /// </summary>
         [Description("鎴愬搧鍏ュ簱")]
@@ -175,7 +181,7 @@
         /// 绾稿紶娣嬭啘浣欐枡閫�搴�
         /// </summary>
         [Description("绾稿紶娣嬭啘浣欐枡閫�搴�")]
-        PaperFilmYLBackInbound = 725,
+        PaperLMYLBackInbound = 725,
 
         /// <summary>
         /// 绾歌浣欐枡閫�搴�
@@ -196,6 +202,12 @@
         PaperOldYLBackInbound = 740,
 
         /// <summary>
+        /// 鏃犵汉甯冭浣欐枡閫�搴�
+        /// </summary>
+        [Description("鏃犵汉甯冭浣欐枡閫�搴�")]
+        WFBBackInbound = 745,
+
+        /// <summary>
         /// 宸烽亾鍐呯Щ搴�
         /// </summary>
         [Description("宸烽亾鍐呯Щ搴�")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/PackInfo/MESProPackInfoDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/PackInfo/MESProPackInfoDTO.cs"
new file mode 100644
index 0000000..397084b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/PackInfo/MESProPackInfoDTO.cs"
@@ -0,0 +1,54 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.PackInfo
+{
+    /// <summary>
+    /// MES鎴愬搧鍏ュ簱鎺ユ敹瀹炰綋
+    /// </summary>
+    public class MESProPackInfoDTO
+    {
+        /// <summary>
+        /// 鐗╂枡鏉$爜
+        /// </summary>
+        public string BarCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary
+        public string MaterialCode { get; set; }
+
+        /// <summary>
+        /// 宸ュ崟鍙�
+        /// </summary>
+        public string ProductOrderNo { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜(鏈哄彴)
+        /// </summary>
+        public string MakeCode { get; set; }
+
+        /// <summary>
+        /// 绠遍暱
+        /// </summary>
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 绠卞
+        /// </summary>
+        public decimal Width { get; set; }
+
+        /// <summary>
+        /// 绠遍珮
+        /// </summary>
+        public decimal Height { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public int MESProInStatus { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj"
index 677b3e7..01765a3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj"
@@ -10,8 +10,4 @@
 	  <ProjectReference Include="..\WIDESEAWCS_Model\WIDESEAWCS_Model.csproj" />
 	</ItemGroup>
 
-	<ItemGroup>
-	  <Folder Include="BasicInfo\" />
-	</ItemGroup>
-
 </Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackTypeRepository.cs"
similarity index 77%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackTypeRepository.cs"
index 149194f..4e89a97 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackTypeRepository.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_IPackInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IPackTypeRepository : IRepository<Dt_PackType>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackaxisRepository.cs"
similarity index 77%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackaxisRepository.cs"
index 149194f..7904298 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackaxisRepository.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_IPackInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IPackaxisRepository : IRepository<Dt_Packaxis>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfoRepository.cs"
similarity index 77%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfoRepository.cs"
index 149194f..da27202 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfoRepository.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_IPackInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IPackinfoRepository : IRepository<Dt_Packinfo>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfo_HtyRepository.cs"
similarity index 76%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfo_HtyRepository.cs"
index 149194f..c642172 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IPackinfo_HtyRepository.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_IPackInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IPackinfo_HtyRepository : IRepository<Dt_Packinfo_Hty>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackDetailRepository.cs"
similarity index 74%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackDetailRepository.cs"
index 149194f..37c7335 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackDetailRepository.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_IPackInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IStationPackDetailRepository : IRepository<Dt_StationPackDetail>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackInfoRepository.cs"
similarity index 74%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackInfoRepository.cs"
index 149194f..260460e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IStationPackInfoRepository.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_IPackInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IStationPackInfoRepository : IRepository<Dt_StationPackInfo>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackaxisService.cs"
similarity index 66%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackaxisService.cs"
index d91b749..f9e47eb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackaxisService.cs"
@@ -6,9 +6,9 @@
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_PackInfoService
+namespace WIDESEAWCS_IPackInfoService
 {
-    public interface IDt_PackaxisService : IService<Dt_Packaxis>
+    public interface IPackaxisService : IService<Dt_Packaxis>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfoService.cs"
new file mode 100644
index 0000000..068412c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfoService.cs"
@@ -0,0 +1,22 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.PackInfo;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IPackInfoService
+{
+    public interface IPackinfoService : IService<Dt_Packinfo>
+    {
+        /// <summary>
+        /// 鎺ユ敹MES鎴愬搧鐮佸灈
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ReceivePackaxisTask(List<MESProPackInfoDTO> mESProPackInfoDTOs);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfo_HtyService.cs"
similarity index 65%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfo_HtyService.cs"
index d91b749..52d63f3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IPackinfo_HtyService.cs"
@@ -6,9 +6,9 @@
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_PackInfoService
+namespace WIDESEAWCS_IPackInfoService
 {
-    public interface IDt_PackaxisService : IService<Dt_Packaxis>
+    public interface IPackinfo_HtyService : IService<Dt_Packinfo_Hty>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackDetailService.cs"
similarity index 63%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackDetailService.cs"
index d91b749..aa122b3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackDetailService.cs"
@@ -6,9 +6,9 @@
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_PackInfoService
+namespace WIDESEAWCS_IPackInfoService
 {
-    public interface IDt_PackaxisService : IService<Dt_Packaxis>
+    public interface IStationPackDetailService : IService<Dt_StationPackDetail>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackInfoService.cs"
similarity index 64%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackInfoService.cs"
index d91b749..97fae7e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IDt_PackaxisService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoService/IStationPackInfoService.cs"
@@ -6,9 +6,9 @@
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_PackInfoService
+namespace WIDESEAWCS_IPackInfoService
 {
-    public interface IDt_PackaxisService : IService<Dt_Packaxis>
+    public interface IStationPackInfoService : IService<Dt_StationPackInfo>
     {
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTaskRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTaskRepository.cs"
new file mode 100644
index 0000000..cde3ca2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTaskRepository.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoRepository
+{
+    public interface IPackaxisTaskRepository : IRepository<Dt_PackaxisTask>
+    {
+        int GetTaskNum(string sequenceName);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTask_HtyRepository.cs"
similarity index 61%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTask_HtyRepository.cs"
index 149194f..98fa5f8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_IPackInfoRepository/IDt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoRepository/IPackaxisTask_HtyRepository.cs"
@@ -6,9 +6,10 @@
 using WIDESEAWCS_Core.BaseRepository;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_IPackInfoRepository
+namespace WIDESEAWCS_ITaskInfoRepository
 {
-    public interface IDt_PackaxisRepository : IRepository<Dt_Packaxis>
+    public interface IPackaxisTask_HtyRepository : IRepository<Dt_PackaxisTask_Hty>
     {
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTaskService.cs"
new file mode 100644
index 0000000..253b416
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTaskService.cs"
@@ -0,0 +1,20 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IPackaxisTaskService : IService<Dt_PackaxisTask>
+    {
+        WebResponseContent ReqPackTask(string barCode, string deviceCode);
+        WebResponseContent TaskCompleted(int taskNum=0,Dt_PackaxisTask? packaxisTask=null);
+        WebResponseContent BoxingInBound(string stationCode);
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTask_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTask_HtyService.cs"
new file mode 100644
index 0000000..7b6ecb2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTask_HtyService.cs"
@@ -0,0 +1,17 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IPackaxisTask_HtyService : IService<Dt_PackaxisTask_Hty>
+    {
+
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 6d7ed31..3051118 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -224,12 +224,6 @@
         /// <param name="agvFinishDTO"></param>
         /// <returns></returns>
         WebResponseContent AGVFinish(AgvFinishDTO agvFinishDTO);
-        /// <summary>
-        /// AGV浠诲姟鐘舵�佸埛鏂�
-        /// </summary>
-        /// <param name="agvUpdateModel"></param>
-        /// <returns></returns>
-        AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel);
 
         /// <summary>
         /// 鏇存柊浠诲姟淇℃伅鍙婃坊鍔犱换鍔℃槑缁嗚褰�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_PackType.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_PackType.cs"
index ae986ce..d5a9479 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_PackType.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_PackType.cs"
@@ -20,19 +20,19 @@
         /// <summary>
         /// 鐮佸灈鍨涘瀷闀垮害
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "鐮佸灈鍨涘瀷闀垮害")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鍨涘瀷闀垮害")]
         public int PackLength { get; set; }
 
         /// <summary>
         /// 鐮佸灈鍨涘瀷瀹藉害
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐮佸灈鍨涘瀷瀹藉害")]
-        public string PackWidth { get; set; }
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鍨涘瀷瀹藉害")]
+        public int PackWidth { get; set; }
 
         /// <summary>
         /// 鐮佸灈鍨涘瀷楂樺害
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "鐮佸灈鍨涘瀷楂樺害")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鍨涘瀷楂樺害")]
         public int PackHeight { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packaxis.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packaxis.cs"
index 9c53d8a..7c05350 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packaxis.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packaxis.cs"
@@ -8,7 +8,7 @@
 
 namespace WIDESEAWCS_Model.Models
 {
-    [SugarTable(nameof(Dt_Packaxis), "鐮佸灈鍧愭爣")]
+    [SugarTable(nameof(Dt_Packaxis), "鐮佸灈鍧愭爣琛�")]
     public class Dt_Packaxis : BaseEntity
     {
         /// <summary>
@@ -26,14 +26,14 @@
         /// <summary>
         /// 绔欏彴缂栧彿
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "绔欏彴缂栧彿")]
-        public int StationCode { get; set; }
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "绔欏彴缂栧彿")]
+        public string StationCode { get; set; }
 
         /// <summary>
         /// 鍨涘瀷
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鍨涘瀷")]
-        public string PackType { get; set; }
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍨涘瀷")]
+        public int PackType { get; set; }
 
         /// <summary>
         /// 鐮佸灈鏁伴噺
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo.cs"
new file mode 100644
index 0000000..ef1aeb3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo.cs"
@@ -0,0 +1,73 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_Packinfo), "寰呯爜鍨涗俊鎭〃")]
+    public class Dt_Packinfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int id { get; set; }
+
+        /// <summary>
+        /// 绠辩爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绠辩爜")]
+        public string BarCode { get; set; }
+
+        /// <summary>
+        /// 鍨涘瀷
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍨涘瀷")]
+        public int PackType { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈宸ュ崟鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐮佸灈宸ュ崟鍙�")]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐮佸灈鐗╂枡缂栧彿")]
+        public string MaterialCode { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜(鏈哄彴)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍔犲伐涓績缂栫爜(鏈哄彴)")]
+        public string MakeCode { get; set; }
+        /// <summary>
+        /// 鐮佸灈鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鐘舵��")]
+        public int PackStatus { get; set; }
+        /// <summary>
+        /// 绠遍暱
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "绠遍暱")]
+        public int Length { get; set; }
+
+        /// <summary>
+        /// 绠卞
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "绠卞")]
+        public int Width { get; set; }
+
+        /// <summary>
+        /// 绠遍珮
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "绠遍珮")]
+        public int Height { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo_Hty.cs"
new file mode 100644
index 0000000..038bdae
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_Packinfo_Hty.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class Dt_Packinfo_Hty : Dt_Packinfo, IBaseHistoryEntity
+    {
+        public int SourceId { get; set; }
+
+        public string OperateType { get; set; }
+
+        public DateTime InsertTime { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackDetail.cs"
new file mode 100644
index 0000000..23af30d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackDetail.cs"
@@ -0,0 +1,33 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_StationPackDetail), "鐮佸灈宸ヤ綅鎵ц鏄庣粏琛�")]
+    public class Dt_StationPackDetail : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int id { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈宸ヤ綅鎵цId
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈宸ヤ綅鎵цId")]
+        public int StationPackId { get; set; }
+
+        /// <summary>
+        /// 绠辩爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绠辩爜")]
+        public string BoxCode { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackInfo.cs"
new file mode 100644
index 0000000..ea0f089
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/PackInfo/Dt_StationPackInfo.cs"
@@ -0,0 +1,86 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_StationPackInfo), "鐮佸灈宸ヤ綅鎵ц淇℃伅琛�")]
+    public class Dt_StationPackInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int id { get; set; }
+
+        /// <summary>
+        /// 绔欏彴缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绔欏彴缂栧彿")]
+        public string StationCode { get; set; }
+
+        /// <summary>
+        /// 杈撻�佸彛缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "杈撻�佸彛缂栧彿")]
+        public string LineCode { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈鏈烘鎵嬬紪鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐮佸灈鏈烘鎵嬬紪鍙�")]
+        public string CraneCode { get; set; }
+        /// <summary>
+        /// 鍨涘瀷
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍨涘瀷")]
+        public int PackType { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈宸ュ崟鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐮佸灈宸ュ崟鍙�")]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐮佸灈鐗╂枡缂栧彿")]
+        public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜(鏈哄彴)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍔犲伐涓績缂栫爜(鏈哄彴)")]
+        public string MakeCode { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈缁撴墭鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈缁撴墭鏁伴噺")]
+        public int PackNum { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈宸插垎閰嶆暟閲�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈宸插垎閰嶆暟閲�")]
+        public int AssignNum { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈鎵ц涓暟閲�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鎵ц涓暟閲�")]
+        public int ExecutingNum { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈宸插畬鎴愭暟閲�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈宸插畬鎴愭暟閲�")]
+        public int OverNum { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_PackaxisTask.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_PackaxisTask.cs"
index da3214c..e3540f8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_PackaxisTask.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_PackaxisTask.cs"
@@ -22,6 +22,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core.Attributes;
 using WIDESEAWCS_Core.DB.Models;
 
@@ -43,7 +44,7 @@
         /// </summary>
         [ImporterHeader(Name = "鐮佸灈浠诲姟鍙�")]
         [ExporterHeader(DisplayName = "鐮佸灈浠诲姟鍙�")]
-        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈浠诲姟鍙�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈浠诲姟鍙�"), Sequence(nameof(SequenceEnum.SeqPackTaskNum), 100000000)]
         public int PackTaskNum { get; set; }
 
         /// <summary>
@@ -52,7 +53,7 @@
         [ImporterHeader(Name = "绠辩爜")]
         [ExporterHeader(DisplayName = "绠辩爜")]
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绠辩爜")]
-        public string BoxCode { get; set; }
+        public string BarCode { get; set; }
 
         /// <summary>
         /// 璁惧缂栧彿
@@ -109,11 +110,11 @@
         public string NextAddress { get; set; }
 
         /// <summary>
-        /// 绠辩被鍨�
+        /// 鍨涘瀷
         /// </summary>
-        [ImporterHeader(Name = "绠辩被鍨�")]
-        [ExporterHeader(DisplayName = "绠辩被鍨�")]
-        [SugarColumn(IsNullable = false, ColumnDescription = "绠辩被鍨�")]
+        [ImporterHeader(Name = "鍨涘瀷")]
+        [ExporterHeader(DisplayName = "鍨涘瀷")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍨涘瀷")]
         public int PackType { get; set; }
 
         /// <summary>
@@ -123,5 +124,22 @@
         [ExporterHeader(DisplayName = "浠诲姟涓嬪彂鏃堕棿")]
         [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟涓嬪彂鏃堕棿")]
         public DateTime? Dispatchertime { get; set; }
+        /// <summary>
+        /// 鐮佸灈鍨涘瀷闀垮害
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鍨涘瀷闀垮害")]
+        public int PackLength { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈鍨涘瀷瀹藉害
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鍨涘瀷瀹藉害")]
+        public int PackWidth { get; set; }
+
+        /// <summary>
+        /// 鐮佸灈鍨涘瀷楂樺害
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐮佸灈鍨涘瀷楂樺害")]
+        public int PackHeight { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackTypeRepository.cs"
similarity index 61%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackTypeRepository.cs"
index fcd0201..c8eb0b2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackTypeRepository.cs"
@@ -9,9 +9,9 @@
 
 namespace WIDESEAWCS_PackInfoRepository
 {
-    public class Dt_PackaxisRepository : RepositoryBase<Dt_Packaxis>, IDt_PackaxisRepository
+    public class PackTypeRepository : RepositoryBase<Dt_PackType>, IPackTypeRepository
     {
-        public Dt_PackaxisRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        public PackTypeRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackaxisRepository.cs"
similarity index 61%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackaxisRepository.cs"
index fcd0201..5480f6e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackaxisRepository.cs"
@@ -9,9 +9,9 @@
 
 namespace WIDESEAWCS_PackInfoRepository
 {
-    public class Dt_PackaxisRepository : RepositoryBase<Dt_Packaxis>, IDt_PackaxisRepository
+    public class PackaxisRepository : RepositoryBase<Dt_Packaxis>, IPackaxisRepository
     {
-        public Dt_PackaxisRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        public PackaxisRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackinfoRepository.cs"
similarity index 61%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackinfoRepository.cs"
index fcd0201..ccf8914 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/PackinfoRepository.cs"
@@ -9,9 +9,9 @@
 
 namespace WIDESEAWCS_PackInfoRepository
 {
-    public class Dt_PackaxisRepository : RepositoryBase<Dt_Packaxis>, IDt_PackaxisRepository
+    public class PackinfoRepository : RepositoryBase<Dt_Packinfo>, IPackinfoRepository
     {
-        public Dt_PackaxisRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        public PackinfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Packinfo_HtyRepository.cs"
similarity index 60%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Packinfo_HtyRepository.cs"
index fcd0201..671726e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Dt_PackaxisRepository.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/Packinfo_HtyRepository.cs"
@@ -9,9 +9,9 @@
 
 namespace WIDESEAWCS_PackInfoRepository
 {
-    public class Dt_PackaxisRepository : RepositoryBase<Dt_Packaxis>, IDt_PackaxisRepository
+    public class Packinfo_HtyRepository : RepositoryBase<Dt_Packinfo_Hty>, IPackinfo_HtyRepository
     {
-        public Dt_PackaxisRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        public Packinfo_HtyRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackDetailRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackDetailRepository.cs"
new file mode 100644
index 0000000..e28d7da
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackDetailRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_PackInfoRepository
+{
+    public class StationPackDetailRepository : RepositoryBase<Dt_StationPackDetail>, IStationPackDetailRepository
+    {
+        public StationPackDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackInfoRepository.cs"
new file mode 100644
index 0000000..b554618
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoRepository/StationPackInfoRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_PackInfoRepository
+{
+    public class StationPackInfoRepository : RepositoryBase<Dt_StationPackInfo>, IStationPackInfoRepository
+    {
+        public StationPackInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackaxisService.cs"
similarity index 90%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackaxisService.cs"
index 0088e12..47edd25 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Dt_PackaxisService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackaxisService.cs"
@@ -11,17 +11,16 @@
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_IPackInfoRepository;
-using WIDESEAWCS_PackInfoRepository;
-using Magicodes.ExporterAndImporter.Core.Models;
-using Magicodes.ExporterAndImporter.Excel;
 using WIDESEAWCS_Common.Utilities;
 using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IPackInfoService;
 
 namespace WIDESEAWCS_PackInfoService
 {
-    public class Dt_PackaxisService : ServiceBase<Dt_Packaxis, IDt_PackaxisRepository>, IDt_PackaxisService
+    public class PackaxisService : ServiceBase<Dt_Packaxis, IPackaxisRepository>, IPackaxisService
     {
-        public Dt_PackaxisService(IDt_PackaxisRepository BaseDal) : base(BaseDal)
+        public PackaxisService(IPackaxisRepository BaseDal) : base(BaseDal)
         {
         }
         public override WebResponseContent Import(List<IFormFile> files)
@@ -71,7 +70,7 @@
                     string id = row["id"]?.ToString() ?? string.Empty;
                     string DeviceCode = row["DeviceCode"]?.ToString() ?? string.Empty;
                     string StationCode = row["StationCode"]?.ToString() ?? string.Empty;
-                    string PackType = row["PackType"]?.ToString() ?? string.Empty;
+                    int PackType = row["PackType"].ObjToInt();
                     string PackNum = row["PackNum"]?.ToString() ?? string.Empty;
                     string AxisX = row["AxisX"]?.ToString() ?? string.Empty;
                     string AxisXCount = row["AxisXCount"]?.ToString() ?? string.Empty;
@@ -82,13 +81,13 @@
                     string AxisZ = row["AxisZ"]?.ToString() ?? string.Empty;
                     string AxisZCount = row["AxisZCount"]?.ToString() ?? string.Empty;
                     string AxisZSpacing = row["AxisZSpacing"]?.ToString() ?? string.Empty;
-                    var axis = BaseDal.QueryFirst(x => x.DeviceCode == DeviceCode && x.StationCode == Convert.ToInt32(StationCode) && x.PackType == PackType);
+                    var axis = BaseDal.QueryFirst(x => x.DeviceCode == DeviceCode && x.StationCode == StationCode && x.PackType == PackType);
                     if(axis == null)
                     {
                         Dt_Packaxis packaxis = new Dt_Packaxis()
                         {
                             DeviceCode = DeviceCode,
-                            StationCode = Convert.ToInt32(StationCode),
+                            StationCode = StationCode,
                             PackType = PackType,
                             PackNum = Convert.ToInt32(PackNum),
                             AxisX = Convert.ToInt32(AxisX),
@@ -108,7 +107,7 @@
                     else
                     {
                         axis.DeviceCode = DeviceCode;
-                        axis.StationCode = Convert.ToInt32(StationCode);
+                        axis.StationCode = StationCode;
                         axis.PackType = PackType;
                         axis.PackNum = Convert.ToInt32(PackNum);
                         axis.AxisX = Convert.ToInt32(AxisX);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackinfoService.cs"
new file mode 100644
index 0000000..4e7e336
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/PackinfoService.cs"
@@ -0,0 +1,61 @@
+锘縰sing Magicodes.ExporterAndImporter.Excel.Utility;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_Common.Utilities;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IPackInfoService;
+using WIDESEAWCS_DTO.PackInfo;
+using AutoMapper;
+
+namespace WIDESEAWCS_PackInfoService
+{
+    public class PackinfoService : ServiceBase<Dt_Packinfo, IPackinfoRepository>, IPackinfoService
+    {
+        private readonly IMapper _mapper;
+        private readonly IPackTypeRepository _typeRepository;
+        public PackinfoService(IPackinfoRepository BaseDal,IMapper mapper, IPackTypeRepository typeRepository) : base(BaseDal)
+        {
+            _mapper = mapper;
+            _typeRepository = typeRepository;
+        }
+        /// <summary>
+        /// 鎺ユ敹MES鎴愬搧鐮佸灈
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent ReceivePackaxisTask(List<MESProPackInfoDTO> mESProPackInfoDTOs)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                List<Dt_PackType> packTypes = _typeRepository.QueryData();
+                List<Dt_Packinfo> packinfos = new List<Dt_Packinfo>();
+                foreach (var item in mESProPackInfoDTOs)
+                {
+                    Dt_PackType? packType = packTypes.FirstOrDefault(x=>x.PackWidth==item.Width && x.PackLength==item.Length && x.PackHeight==item.Height);
+                    if (packType == null) throw new Exception($"鏈壘鍒版潯鐮亄item.BarCode},{item.Length}*{item.Width}*{item.Height}鐮佸灈閰嶇疆");
+                    Dt_Packinfo packinfo = _mapper.Map<Dt_Packinfo>(item);
+                    packinfo.PackType = packType.id;
+                    packinfos.Add(packinfo);
+                }
+                BaseDal.AddData(packinfos);
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Packinfo_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Packinfo_HtyService.cs"
new file mode 100644
index 0000000..e686340
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/Packinfo_HtyService.cs"
@@ -0,0 +1,27 @@
+锘縰sing Magicodes.ExporterAndImporter.Excel.Utility;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_Common.Utilities;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IPackInfoService;
+
+namespace WIDESEAWCS_PackInfoService
+{
+    public class Packinfo_HtyService : ServiceBase<Dt_Packinfo_Hty, IPackinfo_HtyRepository>, IPackinfo_HtyService
+    {
+        public Packinfo_HtyService(IPackinfo_HtyRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackDetailService.cs"
new file mode 100644
index 0000000..dc34b37
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackDetailService.cs"
@@ -0,0 +1,27 @@
+锘縰sing Magicodes.ExporterAndImporter.Excel.Utility;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_Common.Utilities;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IPackInfoService;
+
+namespace WIDESEAWCS_PackInfoService
+{
+    public class StationPackDetailService : ServiceBase<Dt_StationPackDetail, IStationPackDetailRepository>, IStationPackDetailService
+    {
+        public StationPackDetailService(IStationPackDetailRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackInfoService.cs"
new file mode 100644
index 0000000..9725881
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_PackInfoService/StationPackInfoService.cs"
@@ -0,0 +1,27 @@
+锘縰sing Magicodes.ExporterAndImporter.Excel.Utility;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_Common.Utilities;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IPackInfoService;
+
+namespace WIDESEAWCS_PackInfoService
+{
+    public class StationPackInfoService : ServiceBase<Dt_StationPackInfo, IStationPackInfoRepository>, IStationPackInfoService
+    {
+        public StationPackInfoService(IStationPackInfoRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index 68f68b3..47afbcf 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -244,7 +244,7 @@
                         }
                         else
                         {
-                            if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt())
+                            if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt() || task.TaskType == TaskTypeEnum.EmptyPaletteBack.ObjToInt())
                             {
                                 var content = TakeFinish(task.CurrentAddress);
                                 if (!content.Status)
@@ -346,7 +346,7 @@
                     MESResponse response = _taskService.MESAvgArriveNotice(requestAGVArriveDTO).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌杩斿洖淇℃伅");
                     if (!response.Result)
                     {
-                        throw new Exception($"璋冪敤MES灏忚溅鍏佽鏀捐揣鎶ラ敊,MES杩斿洖淇℃伅"+ Regex.Replace(response.Msg, @"\\u([0-9a-fA-F]{4})", match => {
+                        throw new Exception($"璋冪敤MES灏忚溅鍏佽鏀捐揣鎶ラ敊,MES杩斿洖淇℃伅"+ Regex.Replace(response.Msg, @"\\u([0-9a-fA-F]{4})", match =>{
                             return ((char)Convert.ToInt32(match.Groups[1].Value, 16)).ToString();
                         }));
                     }
@@ -435,23 +435,24 @@
                             return content.Error("绂佹鏀炬枡");
                         }
                     }
-                    else if (device.DeviceCode.Contains("TrussCarton"))//妗佹灦
+                    else if (device.DeviceCode.Contains("TrussDixieCup"))//妗佹灦
                     {
-                        bool RequestPut = otherDevice.GetValue<W_TrussCartonDB, bool>(GetCartonRequest(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
-                        if (!RequestPut)
-                        {
-                            otherDevice.SetValue(GetCartonRequest(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
-                            Thread.Sleep(1000);
-                        }
-                        bool AllowFinish = otherDevice.GetValue<R_TrussCartonDB, bool>(GetCarton(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
-                        if (AllowFinish)
-                        {
-                            content.OK("鍏佽鏀炬枡");
-                        }
-                        else
-                        {
-                            return content.Error("绂佹鏀炬枡");
-                        }
+
+                            bool RequestPut = otherDevice.GetValue<W_TrussDixieCupDB, bool>(GetTrussDixieCupOutReq(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
+                            if (!RequestPut)
+                            {
+                                otherDevice.SetValue(GetTrussDixieCupOutReq(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
+                                Thread.Sleep(1000);
+                            }
+                            bool AllowFinish = otherDevice.GetValue<R_TrussDixieCupDB, bool>(GetDixieCupPutOut(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
+                            if (AllowFinish)
+                            {
+                                content.OK("鍏佽鏀炬枡");
+                            }
+                            else
+                            {
+                                return content.Error("绂佹鏀炬枡");
+                            }
                     }
                 }
                 return content;
@@ -500,9 +501,9 @@
                     {
                         otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode);
                     }
-                    else if (device.DeviceCode.Contains("TrussCarton"))//绾哥妗佹灦
+                    else if (device.DeviceCode.Contains("TrussDixieCup"))//绾告澂妗佹灦
                     {
-                        otherDevice.SetValue(GetCartonPut(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
+                        otherDevice.SetValue(GetTrussDixieCupPuted(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                     }
                 }
                 return WebResponseContent.Instance.OK();
@@ -515,45 +516,75 @@
         /// <summary>
         /// 鑾峰彇妗佹灦鏀炬枡淇″彿
         /// </summary>
-        private W_TrussCartonDB GetCartonPut(string StationCode)
+        private W_TrussDixieCupDB GetTrussDixieCupPuted(string StationCode)
         {
             switch (StationCode)
             {
                 case "1":
-                    return W_TrussCartonDB.W_CartonPut1;
+                    return W_TrussDixieCupDB.W_DixieCupPuted1;
                 case "2":
-                    return W_TrussCartonDB.W_CartonPut2;
+                    return W_TrussDixieCupDB.W_DixieCupPuted2;
                 case "3":
-                    return W_TrussCartonDB.W_CartonPut3;
+                    return W_TrussDixieCupDB.W_DixieCupPuted3;
                 case "4":
-                    return W_TrussCartonDB.W_CartonPut4;
-                case "5":
-                    return W_TrussCartonDB.W_CartonPut5;
-                case "6":
-                    return W_TrussCartonDB.W_CartonPut6;
+                    return W_TrussDixieCupDB.W_DixieCupPuted4;
                 default:
                     throw new Exception("鏈畾涔夊伐浣�");
             }
         }
         /// <summary>
-        /// 鑾峰彇妗佹灦璇锋眰淇″彿
+        /// 鑾峰彇妗佹灦鍙栨枡鏂欎俊鍙�
         /// </summary>
-        private W_TrussCartonDB GetCartonRequest(string StationCode)
+        private W_TrussDixieCupDB GetTrussDixieCupTaked(string StationCode)
         {
             switch (StationCode)
             {
                 case "1":
-                    return W_TrussCartonDB.W_CartonRequest1;
+                    return W_TrussDixieCupDB.W_DixieCupTaked1;
                 case "2":
-                    return W_TrussCartonDB.W_CartonRequest2;
+                    return W_TrussDixieCupDB.W_DixieCupTaked2;
                 case "3":
-                    return W_TrussCartonDB.W_CartonRequest3;
+                    return W_TrussDixieCupDB.W_DixieCupTaked3;
                 case "4":
-                    return W_TrussCartonDB.W_CartonRequest4;
-                case "5":
-                    return W_TrussCartonDB.W_CartonRequest5;
-                case "6":
-                    return W_TrussCartonDB.W_CartonRequest6;
+                    return W_TrussDixieCupDB.W_DixieCupTaked4;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇妗佹灦璇锋眰杩涗俊鍙�
+        /// </summary>
+        private W_TrussDixieCupDB GetTrussDixieCupOutReq(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return W_TrussDixieCupDB.W_DixieCupReqPut1;
+                case "2":
+                    return W_TrussDixieCupDB.W_DixieCupReqPut2;
+                case "3":
+                    return W_TrussDixieCupDB.W_DixieCupReqPut3;
+                case "4":
+                    return W_TrussDixieCupDB.W_DixieCupReqPut4;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇妗佹灦璇锋眰杩涗俊鍙�
+        /// </summary>
+        private W_TrussDixieCupDB GetTrussDixieCupInReq(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return W_TrussDixieCupDB.W_DixieCupReqTake1;
+                case "2":
+                    return W_TrussDixieCupDB.W_DixieCupReqTake2;
+                case "3":
+                    return W_TrussDixieCupDB.W_DixieCupReqTake3;
+                case "4":
+                    return W_TrussDixieCupDB.W_DixieCupReqTake4;
                 default:
                     throw new Exception("鏈畾涔夊伐浣�");
             }
@@ -562,22 +593,37 @@
         /// <summary>
         /// 鑾峰彇妗佹灦杩涘叆淇″彿
         /// </summary>
-        private R_TrussCartonDB GetCarton(string StationCode)
+        private R_TrussDixieCupDB GetDixieCupPutOut(string StationCode)
         {
             switch (StationCode)
             {
                 case "1":
-                    return R_TrussCartonDB.R_CartonAllow1;
+                    return R_TrussDixieCupDB.R_DixieCupPutOut1;
                 case "2":
-                    return R_TrussCartonDB.R_CartonAllow2;
+                    return R_TrussDixieCupDB.R_DixieCupPutOut2;
                 case "3":
-                    return R_TrussCartonDB.R_CartonAllow3;
+                    return R_TrussDixieCupDB.R_DixieCupPutOut3;
                 case "4":
-                    return R_TrussCartonDB.R_CartonAllow4;
-                case "5":
-                    return R_TrussCartonDB.R_CartonAllow5;
-                case "6":
-                    return R_TrussCartonDB.R_CartonAllow6;
+                    return R_TrussDixieCupDB.R_DixieCupPutOut4;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇妗佹灦杩涘叆淇″彿
+        /// </summary>
+        private R_TrussDixieCupDB GetDixieCupTakeIn(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return R_TrussDixieCupDB.R_DixieCupTakeIn1;
+                case "2":
+                    return R_TrussDixieCupDB.R_DixieCupTakeIn2;
+                case "3":
+                    return R_TrussDixieCupDB.R_DixieCupTakeIn3;
+                case "4":
+                    return R_TrussDixieCupDB.R_DixieCupTakeIn4;
                 default:
                     throw new Exception("鏈畾涔夊伐浣�");
             }
@@ -659,6 +705,24 @@
                             return content.Error("绂佹鍙栨枡");
                         }
                     }
+                    else if (device.DeviceCode.Contains("TrussDixieCup"))
+                    {
+                        bool RequestPut = otherDevice.GetValue<W_TrussDixieCupDB, bool>(GetTrussDixieCupInReq(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
+                        if (!RequestPut)
+                        {
+                            otherDevice.SetValue(GetTrussDixieCupInReq(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
+                            Thread.Sleep(1000);
+                        }
+                        bool AllowFinish = otherDevice.GetValue<R_TrussDixieCupDB, bool>(GetDixieCupTakeIn(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
+                        if (AllowFinish)
+                        {
+                            content.OK("鍏佽鍙栨枡");
+                        }
+                        else
+                        {
+                            return content.Error("绂佹鍙栨枡");
+                        }
+                    }
                 }
                 return content;
             }
@@ -709,6 +773,10 @@
                     {
                         otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode);
                     }
+                    else if (device.DeviceCode.Contains("TrussDixieCup"))//绾告澂妗佹灦
+                    {
+                        otherDevice.SetValue(GetTrussDixieCupTaked(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
+                    }
                 }
 
                 return WebResponseContent.Instance.OK();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs"
index 6d861c9..60d7988 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackaxisController.cs"
@@ -7,20 +7,19 @@
 using WIDESEAWCS_Core.BaseController;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_IPackInfoService;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_PackInfoService;
-using WIDESEAWCS_Tasks;
 
 namespace WIDESEAWCS_WCSServer.Controllers.PackInfo
 {
     [Route("api/Packaxis")]
     [ApiController]
-    public class PackaxisController : ApiBaseController<IDt_PackaxisService, Dt_Packaxis>
+    public class PackaxisController : ApiBaseController<IPackaxisService, Dt_Packaxis>
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
 
-        public PackaxisController(IDt_PackaxisService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        public PackaxisController(IPackaxisService service, IHttpContextAccessor httpContextAccessor) : base(service)
         {
             _httpContextAccessor = httpContextAccessor;
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackinfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackinfoController.cs"
new file mode 100644
index 0000000..5d3b66b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/PackInfo/PackinfoController.cs"
@@ -0,0 +1,32 @@
+锘縰sing HslCommunication.WebSocket;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.PackInfo;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_IPackInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_WCSServer.Controllers.PackInfo
+{
+    [Route("api/Packinfo")]
+    [ApiController]
+    public class PackinfoController : ApiBaseController<IPackinfoService, Dt_Packinfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+
+        public PackinfoController(IPackinfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+        [HttpPost, HttpGet, Route("ReceivePackaxisTask"), AllowAnonymous]
+        public WebResponseContent ReceivePackaxisTask([FromBody] List<MESProPackInfoDTO> mESProPackInfoDTOs)
+        {
+            return Service.ReceivePackaxisTask(mESProPackInfoDTOs);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/PackaxisTaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/PackaxisTaskController.cs"
new file mode 100644
index 0000000..8fef963
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/PackaxisTaskController.cs"
@@ -0,0 +1,28 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfo_HtyService;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_WCSServer.Controllers.Task
+{
+    [Route("api/PackaxisTask")]
+    [ApiController]
+    public class PackaxisTaskController : ApiBaseController<IPackaxisTaskService, Dt_PackaxisTask>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public PackaxisTaskController(IPackaxisTaskService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+        [HttpPost, HttpGet,Route("PackTaskCompleted"), AllowAnonymous]
+        public WebResponseContent PackTaskCompleted(int taskNum)
+        {
+            return Service.TaskCompleted(taskNum);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs"
index 2f18577..c756e10 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs"
@@ -5,6 +5,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_DTO.System;
+using WIDESEAWCS_DTO.PackInfo;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.DTO;
@@ -30,6 +31,8 @@
                 .ForMember(a => a.Width, b => b.MapFrom(b => b.TaskLength))
                 .ForMember(a => a.Height, b => b.MapFrom(b => b.HeightType))
                 .ForMember(a => a.TargetAddress, b => b.MapFrom(b => b.NextAddress));
+            CreateMap<MESProPackInfoDTO, Dt_Packinfo>()
+                .ForMember(a => a.PackStatus, b => b.MapFrom(b => b.MESProInStatus)).ForMember(a => a.OrderNo, b => b.MapFrom(b => b.ProductOrderNo));
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTaskRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTaskRepository.cs"
new file mode 100644
index 0000000..c8a4ee0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTaskRepository.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_TaskInfoRepository
+{
+    public class PackaxisTaskRepository : RepositoryBase<Dt_PackaxisTask>, IPackaxisTaskRepository
+    {
+        public PackaxisTaskRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+        static object lock_taskNum = new object();
+        public int GetTaskNum(string sequenceName)
+        {
+            lock (lock_taskNum)
+            {
+                return Db.Ado.GetScalar($"SELECT NEXT VALUE FOR {sequenceName}").ObjToInt();
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTask_HtyRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTask_HtyRepository.cs"
new file mode 100644
index 0000000..7382996
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoRepository/PackaxisTask_HtyRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_TaskInfoRepository
+{
+    public class PackaxisTask_HtyRepository : RepositoryBase<Dt_PackaxisTask_Hty>, IPackaxisTask_HtyRepository
+    {
+        public PackaxisTask_HtyRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
index cda2c49..7c120bd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
@@ -70,15 +70,5 @@
             }
             return content;
         }
-        
-        /// <summary>
-        /// AGV浠诲姟鐘舵�佸埛鏂�/AGV浠诲姟瀹屾垚
-        /// </summary>
-        /// <param name="agvUpdateModel"></param>
-        /// <returns></returns>
-        public AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel)
-        {
-            return new AgvResponseContent();
-        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs"
new file mode 100644
index 0000000..17065cd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs"
@@ -0,0 +1,232 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.APIEnum;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_IPackInfoRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_TaskInfoService
+{
+    public class PackaxisTaskService : ServiceBase<Dt_PackaxisTask, IPackaxisTaskRepository>, IPackaxisTaskService
+    {
+        private readonly IPackinfoRepository _packinfoRepository;
+        private readonly IStationPackInfoRepository _stationPackInfoRepository;
+        private readonly IStationPackDetailRepository _stationPackDetailRepository;
+        private readonly IPackaxisRepository _packaxisRepository;
+        private readonly IStationMangerRepository _stationMangerRepository;
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        public PackaxisTaskService(IPackaxisTaskRepository BaseDal,IPackinfoRepository packinfoRepository, IStationPackInfoRepository stationPackInfoRepository, IStationPackDetailRepository stationPackDetailRepository, IPackaxisRepository packaxisRepository, IStationMangerRepository stationMangerRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        {
+            _packinfoRepository = packinfoRepository;
+            _stationPackInfoRepository = stationPackInfoRepository;
+            _stationPackDetailRepository = stationPackDetailRepository;
+            _packaxisRepository = packaxisRepository;
+            _stationMangerRepository = stationMangerRepository;
+            _unitOfWorkManage = unitOfWorkManage;
+        }
+        public WebResponseContent ReqPackTask(string barCode,string deviceCode)
+        {
+            WebResponseContent content= new WebResponseContent();
+            try
+            {
+                Dt_Packinfo packinfo = _packinfoRepository.QueryFirst(x=>x.BarCode==barCode && x.PackStatus==StationOccupiedEnum.None.ObjToInt());
+                if (packinfo==null)
+                {
+                    return content.Error($"鏈壘鍒版潯鐮亄barCode}");
+                }
+                List<Dt_StationPackInfo> stationPackInfos = _stationPackInfoRepository.QueryData();
+                Dt_StationPackInfo? stationPackInfo=stationPackInfos.FirstOrDefault(x=>x.PackType==packinfo.PackType && x.OrderNo==packinfo.OrderNo && x.AssignNum<x.PackNum);
+                //濡傛灉璁㈠崟鐩稿悓銆佸灈鍨嬩竴鑷村苟涓斿垎閰嶆暟閲忓皯浜庣爜鍨涚粨鎵樻暟閲忓垯鍒嗛厤鍒颁竴璧�
+                if (stationPackInfo!=null)
+                {
+                    Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask()
+                    {
+                        DeviceCode=deviceCode,
+                        SourceAddress= "2421",
+                        BarCode=barCode,
+                        CurrentAddress= "2421",
+                        TargetAddress=stationPackInfo.StationCode,
+                        NextAddress=stationPackInfo.LineCode,
+                        TaskState =TaskStatusEnum.Line_Executing.ObjToInt(),
+                        PackLength=packinfo.Length,
+                        PackWidth=packinfo.Width,
+                        PackHeight=packinfo.Height,
+                        PackType=packinfo.PackType,
+                        Dispatchertime=DateTime.Now,
+                    };
+                    stationPackInfo.AssignNum += 1;
+                    stationPackInfo.ExecutingNum += 1;
+                    packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
+                    _unitOfWorkManage.BeginTran();
+                    //鏇存柊鐮佸灈鎵ц宸ヤ綅
+                    _stationPackInfoRepository.UpdateData(stationPackInfo);
+                    //鏇存柊寰呯爜鍨涗俊鎭〃
+                    _packinfoRepository.UpdateData(packinfo);
+                    //娣诲姞鐮佸灈浠诲姟
+                    BaseDal.AddData(packaxisTask);
+                    _unitOfWorkManage.CommitTran();
+                    return content.OK(barCode, packaxisTask);
+                }
+                else//鍒嗛厤鏂板伐浣�
+                {
+                    //鑾峰彇褰撳墠绌虹洏鍑嗗鐨勭爜鍨涘伐浣�
+                    List<string> stations = _stationMangerRepository.QueryData(x => x.StationDeviceCode == "CLC_CP" && x.IsOccupied == StationOccupiedEnum.None.ObjToInt()).Select(x => x.StationCode).ToList();
+                    //鑾峰彇鐮佸灈閰嶇疆琛ㄦ煡璇㈡湁閰嶇疆鐨勭爜鍨涘伐浣�
+                    List<Dt_Packaxis> packaxes = _packaxisRepository.QueryData(x => x.PackType == packinfo.PackType);
+                    if (packaxes.Count==0)
+                    {
+                        return content.Error("鏈壘鍒扮爜鍨涘潗鏍囬厤缃�");
+                    }
+                    List<string> packStations = packaxes.Select(x => x.StationCode).ToList();
+                    Dt_StationPackInfo? packInfoAssign = stationPackInfos.Where(x => x.PackType == 0 && x.AssignNum == 0 && stations.Contains(x.StationCode) && packStations.Contains(x.StationCode)).OrderByDescending(x => x.StationCode).FirstOrDefault();
+                    if (packInfoAssign == null)
+                    {
+                        return content.Error("鏈壘鍒板彲鍒嗛厤鍨涗綅");
+                    }
+                    packInfoAssign.PackType = packinfo.PackType;
+                    packInfoAssign.OrderNo = packinfo.OrderNo;
+                    packInfoAssign.MakeCode = packinfo.MakeCode;
+                    packInfoAssign.MaterielCode = packInfoAssign.MaterielCode;
+                    packInfoAssign.PackNum = packaxes.FirstOrDefault(x=>x.StationCode== packInfoAssign.StationCode).PackNum;
+                    Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask()
+                    {
+                        DeviceCode = deviceCode,
+                        SourceAddress = "2421",
+                        BarCode = barCode,
+                        CurrentAddress = "2421",
+                        TargetAddress = packInfoAssign.StationCode,
+                        NextAddress = packInfoAssign.LineCode,
+                        TaskState = TaskStatusEnum.Line_Executing.ObjToInt(),
+                        PackLength = packinfo.Length,
+                        PackWidth = packinfo.Width,
+                        PackHeight = packinfo.Height,
+                        PackType = packinfo.PackType,
+                        Dispatchertime = DateTime.Now,
+                    };
+                    packInfoAssign.AssignNum += 1;
+                    packInfoAssign.ExecutingNum += 1;
+                    packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
+                    _unitOfWorkManage.BeginTran();
+                    //鏇存柊鐮佸灈鎵ц宸ヤ綅
+                    _stationPackInfoRepository.UpdateData(packInfoAssign);
+                    //鏇存柊寰呯爜鍨涗俊鎭〃
+                    _packinfoRepository.UpdateData(packinfo);
+                    //娣诲姞鐮佸灈浠诲姟
+                    BaseDal.AddData(packaxisTask);
+                    _unitOfWorkManage.CommitTran();
+                    return content.OK(barCode, packaxisTask);
+                }
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        public WebResponseContent BoxingInBound(string stationCode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_StationPackInfo stationPackInfo = _stationPackInfoRepository.QueryFirst(x => x.StationCode == stationCode);
+                if (stationPackInfo.OverNum != stationPackInfo.AssignNum)
+                {
+                    throw new Exception($"鍒嗛厤鏁伴噺{stationPackInfo.AssignNum}锛屽畬鎴愭暟閲弡stationPackInfo.OverNum}鏁伴噺涓嶇");
+                }
+                List<Dt_StationPackDetail> stationPackDetails = _stationPackDetailRepository.QueryData(x => x.StationPackId == stationPackInfo.id);
+                if (stationPackDetails.Count <= 0)
+                {
+                    throw new Exception($"{stationCode}鏈壘鍒扮爜鍨涙槑缁�");
+                }
+                List<string> barCodes = stationPackDetails.Select(x => x.BoxCode).ToList();
+                List<Dt_Packinfo> packinfos = _packinfoRepository.QueryData(x => barCodes.Contains(x.BarCode)).ToList();
+                stationPackInfo.PackType = 0;
+                stationPackInfo.OrderNo = "";
+                stationPackInfo.MakeCode = "";
+                stationPackInfo.MaterielCode = "";
+                stationPackInfo.PackNum = 0;
+                stationPackInfo.OverNum = 0;
+                stationPackInfo.AssignNum = 0;
+                stationPackInfo.ExecutingNum = 0;
+                _unitOfWorkManage.BeginTran();
+                _stationPackInfoRepository.UpdateData(stationPackInfo);
+                _stationPackDetailRepository.DeleteData(stationPackDetails);
+                _packinfoRepository.DeleteAndMoveIntoHty(packinfos, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                //鍚屾鍒癢MS
+                string address = AppSettings.Get("WMSApiAddress");
+                string response = HttpHelper.Post($"{address}/api/Task/BoxingInBound?stationCode=" + stationCode, barCodes.Serialize());
+                WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(response) ?? throw new Exception($"鏈敹鍒拌繑鍥炵粨鏋�");
+                if (!responseContent.Status)
+                {
+                    throw new Exception(responseContent.Message);
+                }
+                _unitOfWorkManage.CommitTran();
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        public WebResponseContent TaskCompleted(int taskNum=0,Dt_PackaxisTask? packaxisTask=null)
+        {
+            try
+            {
+                _unitOfWorkManage.BeginTran();
+                Dt_PackaxisTask? packaxisTaskFinish = null;
+                if (packaxisTask!=null)
+                {
+                    packaxisTaskFinish= packaxisTask;
+                }
+                else
+                {
+                    packaxisTaskFinish = BaseDal.QueryFirst(x => x.PackTaskNum == taskNum);
+                    packaxisTaskFinish.TaskState = TaskStatusEnum.Finish.ObjToInt();
+                }
+                if (packaxisTaskFinish != null)
+                {
+                    Dt_StationPackInfo stationPackInfo = _stationPackInfoRepository.QueryFirst(x => x.StationCode == packaxisTaskFinish.TargetAddress);
+                    stationPackInfo.ExecutingNum -= 1;
+                    stationPackInfo.OverNum += 1;
+                    Dt_StationPackDetail stationPackDetail = new Dt_StationPackDetail()
+                    {
+                        StationPackId = stationPackInfo.id,
+                        BoxCode = packaxisTaskFinish.BarCode
+                    };
+                    _stationPackInfoRepository.UpdateData(stationPackInfo);
+                    _stationPackDetailRepository.AddData(stationPackDetail);
+                    BaseDal.DeleteAndMoveIntoHty(packaxisTaskFinish, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔�");
+                }
+                _unitOfWorkManage.CommitTran();
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTask_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTask_HtyService.cs"
new file mode 100644
index 0000000..f9ffa78
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTask_HtyService.cs"
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_TaskInfoService
+{
+    public class PackaxisTask_HtyService : ServiceBase<Dt_PackaxisTask_Hty, IPackaxisTask_HtyRepository>, IPackaxisTask_HtyService
+    {
+
+        public PackaxisTask_HtyService(IPackaxisTask_HtyRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 5918276..3ca6b74 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -478,9 +478,9 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
                 }
-                string responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTaskSimple?stationCode={sourceAddress}&palletCode={palletCode}");
+                string responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTaskSimple?stationCode={sourceAddress}");
                 WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? throw new Exception("缁撴灉杩斿洖涓虹┖");
-                if (responseContent != null && responseContent.Status && responseContent.Data != null)
+                if (responseContent.Status && responseContent.Data != null)
                 {
                     WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString());
                     if (taskDTO != null)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
index 992fc25..8c9dfc2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
@@ -160,6 +160,30 @@
             set { _barcode = value.Replace("\0", "").Replace("\\0", ""); }
         }
     }
+    public class R_CLineCPHChannelInfo : DeviceCommand
+    {
+        /// <summary>
+        /// 宸ヤ綅鍙�
+        /// </summary>
+        public short R_ReadID { get; set; }
+        /// <summary>
+        /// 宸ヤ綅鐘舵��
+        /// 0:鑴辨満<br/>
+        /// 1:鎵嬪姩<br/>
+        /// 2:鑷姩<br/>
+        /// 3:鑷姩杩愯<br/>
+        /// 4:鏁呴殰<br/>
+        /// </summary>
+        public short R_State { get; set; }
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public int R_TaskNo { get; set; }
+        /// <summary>
+        /// 鐩殑鍦板潃
+        /// </summary>
+        public short R_TargetAddress { get; set; }
+    }
     public class R_RGVCPInfo : DeviceCommand
     {
         /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/DBNames/TrussDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/DBNames/TrussDBName.cs"
index 51e0d86..db86071 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/DBNames/TrussDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/DBNames/TrussDBName.cs"
@@ -131,4 +131,144 @@
         W_CartonRequest6
 
     }
+    /// <summary>
+    /// 妗佹灦绾告澂璇诲彇
+    /// </summary>
+    public enum R_TrussDixieCupDB
+    {
+        /// <summary>
+        /// 蹇冭烦
+        /// </summary>
+        R_DixieCupHeart,
+        /// <summary>
+        /// 鎶ヨ
+        /// </summary>
+        R_DixieCupError,
+        /// <summary>
+        /// 浣嶇疆杩愯
+        /// </summary>
+        R_DixieCupModel,
+        /// <summary>
+        /// 1鍙锋墭鐩樹綅鏃犳枡鍛煎彨淇″彿
+        /// </summary>
+        R_DixieCupCall1,
+        /// <summary>
+        /// 2鍙锋墭鐩樹綅鏃犳枡鍛煎彨淇″彿
+        /// </summary>
+        R_DixieCupCall2,
+        /// <summary>
+        /// 3鍙锋墭鐩樹綅鏃犳枡鍛煎彨淇″彿
+        /// </summary>
+        R_DixieCupCall3,
+        /// <summary>
+        /// 4鍙锋墭鐩樹綅鏃犳枡鍛煎彨淇″彿
+        /// </summary>
+        R_DixieCupCall4,
+        /// <summary>
+        /// 1鍙锋墭鐩樹綅鍏佽鍙栬揣淇″彿(鍏�)
+        /// </summary>
+        R_DixieCupTakeIn1,
+        /// <summary>
+        /// 2鍙锋墭鐩樹綅鍏佽鍙栬揣淇″彿(鍏�)
+        /// </summary>
+        R_DixieCupTakeIn2,
+        /// <summary>
+        /// 3鍙锋墭鐩樹綅鍏佽鍙栬揣淇″彿(鍏�)
+        /// </summary>
+        R_DixieCupTakeIn3,
+        /// <summary>
+        /// 4鍙锋墭鐩樹綅鍏佽鍙栬揣淇″彿(鍏�)
+        /// </summary>
+        R_DixieCupTakeIn4,
+        /// <summary>
+        /// 1鍙锋墭鐩樹綅鍏佽鏀捐揣淇″彿(鍑�)
+        /// </summary>
+        R_DixieCupPutOut1,
+        /// <summary>
+        /// 2鍙锋墭鐩樹綅鍏佽鏀捐揣淇″彿(鍑�)
+        /// </summary>
+        R_DixieCupPutOut2,
+        /// <summary>
+        /// 3鍙锋墭鐩樹綅鍏佽鏀捐揣淇″彿(鍑�)
+        /// </summary>
+        R_DixieCupPutOut3,
+        /// <summary>
+        /// 4鍙锋墭鐩樹綅鍏佽鏀捐揣淇″彿(鍑�)
+        /// </summary>
+        R_DixieCupPutOut4
+    }
+    /// <summary>
+    /// 妗佹灦绾告澂鍐欏叆
+    /// </summary>
+    public enum W_TrussDixieCupDB
+    {
+        /// <summary>
+        /// 蹇冭烦
+        /// </summary>
+        W_DixieCupHeart,
+        /// <summary>
+        /// 1鍙蜂綅璇锋眰鍙栬揣(鍏�)
+        /// </summary>
+        W_DixieCupReqTake1,
+        /// <summary>
+        /// 2鍙蜂綅璇锋眰鍙栬揣(鍏�)
+        /// </summary>
+        W_DixieCupReqTake2,
+        /// <summary>
+        /// 3鍙蜂綅璇锋眰鍙栬揣(鍏�)
+        /// </summary>
+        W_DixieCupReqTake3,
+        /// <summary>
+        /// 4鍙蜂綅璇锋眰鍙栬揣(鍏�)
+        /// </summary>
+        W_DixieCupReqTake4,
+        /// <summary>
+        /// 1鍙蜂綅鍙栬揣瀹屾垚
+        /// </summary>
+        W_DixieCupTaked1,
+        /// <summary>
+        /// 2鍙蜂綅鍙栬揣瀹屾垚
+        /// </summary>
+        W_DixieCupTaked2,
+        /// <summary>
+        /// 3鍙蜂綅鍙栬揣瀹屾垚
+        /// </summary>
+        W_DixieCupTaked3,
+        /// <summary>
+        /// 4鍙蜂綅鍙栬揣瀹屾垚
+        /// </summary>
+        W_DixieCupTaked4,
+        /// <summary>
+        /// 1鍙蜂綅璇锋眰鏀捐揣(鍑�)
+        /// </summary>
+        W_DixieCupReqPut1,
+        /// <summary>
+        /// 2鍙蜂綅璇锋眰鏀捐揣(鍑�)
+        /// </summary>
+        W_DixieCupReqPut2,
+        /// <summary>
+        /// 3鍙蜂綅璇锋眰鏀捐揣(鍑�)
+        /// </summary>
+        W_DixieCupReqPut3,
+        /// <summary>
+        /// 4鍙蜂綅璇锋眰鏀捐揣(鍑�)
+        /// </summary>
+        W_DixieCupReqPut4,
+        /// <summary>
+        /// 1鍙蜂綅鏀捐揣瀹屾垚
+        /// </summary>
+        W_DixieCupPuted1,
+        /// <summary>
+        /// 2鍙蜂綅鏀捐揣瀹屾垚
+        /// </summary>
+        W_DixieCupPuted2,
+        /// <summary>
+        /// 3鍙蜂綅鏀捐揣瀹屾垚
+        /// </summary>
+        W_DixieCupPuted3,
+        /// <summary>
+        /// 4鍙蜂綅鏀捐揣瀹屾垚
+        /// </summary>
+        W_DixieCupPuted4,
+    }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/ApartPlate.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/ApartPlate.cs"
index b9eb3db..3541b34 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/ApartPlate.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/ApartPlate.cs"
@@ -25,9 +25,9 @@
         private readonly ITaskService _taskService;
         private readonly ITaskRepository _taskRepository;
         private readonly IStationMangerRepository _stationMangerRepository;
-        private readonly IDt_PackaxisRepository _packaxisRepository;
+        private readonly IPackaxisRepository _packaxisRepository;
 
-        public ApartPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IDt_PackaxisRepository packaxisRepository)
+        public ApartPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IPackaxisRepository packaxisRepository)
         {
             _cacheService = cacheService;
             _taskService = taskService;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/StackPlate.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/StackPlate.cs"
index b8bf6ae..bf9f142 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/StackPlate.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/StackPlateJob/StackPlate.cs"
@@ -25,9 +25,9 @@
         private readonly ITaskService _taskService;
         private readonly ITaskRepository _taskRepository;
         private readonly IStationMangerRepository _stationMangerRepository;
-        private readonly IDt_PackaxisRepository _packaxisRepository;
+        private readonly IPackaxisRepository _packaxisRepository;
 
-        public StackPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IDt_PackaxisRepository packaxisRepository)
+        public StackPlate(ICacheService cacheService, ITaskService taskService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IPackaxisRepository packaxisRepository)
         {
             _cacheService = cacheService;
             _taskService = taskService;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
index b84ce7a..f7db65f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
@@ -7,8 +7,11 @@
 	</PropertyGroup>
 
 	<ItemGroup>
+	  <Compile Remove="AGV\**" />
 	  <Compile Remove="HoisterJob\**" />
+	  <EmbeddedResource Remove="AGV\**" />
 	  <EmbeddedResource Remove="HoisterJob\**" />
+	  <None Remove="AGV\**" />
 	  <None Remove="HoisterJob\**" />
 	</ItemGroup>
 
@@ -19,10 +22,6 @@
 
 	<ItemGroup>
 		<ProjectReference Include="..\WIDESEAWCS_TaskInfoService\WIDESEAWCS_TaskInfoService.csproj" />
-	</ItemGroup>
-
-	<ItemGroup>
-	  <Folder Include="AGV\" />
 	</ItemGroup>
 
 </Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs"
index 640efb0..38bcce7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs"
@@ -223,7 +223,14 @@
                                 {
                                     //璇锋眰浠诲姟
                                     WebResponseContent content = _taskService.RequestPlateOutTask(item.StationCode);
-                                    WriteInfo(item.StationName, $"浜屾ゼ绌烘墭鍙犵洏鍑哄簱浠诲姟鐢熸垚");
+                                    if (content.Status)
+                                    {
+                                        WriteInfo(item.StationName, $"浜屾ゼ绌烘墭鍙犵洏鍑哄簱浠诲姟鐢熸垚");
+                                    }
+                                    else
+                                    {
+                                        WriteInfo(item.StationName, $"{content.Message}");
+                                    }
                                 }
                             }
                             //鍙犵洏浠诲姟瀹屾垚浜や簰
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
index 78997e5..c93f3c1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
@@ -1,6 +1,8 @@
-锘縰sing Microsoft.AspNetCore.Components.Routing;
+锘縰sing Autofac.Core;
+using Microsoft.AspNetCore.Components.Routing;
 using Newtonsoft.Json;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using Org.BouncyCastle.Asn1.Ocsp;
 using Org.BouncyCastle.Tls;
 using Quartz;
 using System;
@@ -25,6 +27,7 @@
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoRepository;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
@@ -42,13 +45,11 @@
         private readonly IRouterService _routerService;
         private readonly IRouterExtension _routerExtension;
         private readonly List<Dt_WarehouseDevice> warehouseDevices;
+        private readonly IPackaxisTaskRepository _packaxisTaskRepository;
+        private readonly IPackaxisTaskService _packaxisTaskService;
         private static object lockObj = 0;//
-        private static int Channel = 0;
-        private static int Long = 0;
-        private static int Wide = 0;
-        private static int High = 0;
 
-        public ConveyorLineJob_CPH(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension)
+        public ConveyorLineJob_CPH(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension, IPackaxisTaskRepository packaxisTaskRepository, IPackaxisTaskService packaxisTaskService)
         {
             _cacheService = cacheService;
             _taskService = taskService;
@@ -58,13 +59,6 @@
             _routerRepository = routerRepository;
             _routerService = routerService;
             _routerExtension = routerExtension;
-            if (!AppSettings.Get("Channel").IsNullOrEmpty())
-            {
-                Channel = AppSettings.Get("Channel").ObjToInt();
-                Long= AppSettings.Get("Long").ObjToInt();
-                Wide = AppSettings.Get("Wide").ObjToInt();
-                High = AppSettings.Get("High").ObjToInt();
-            }
             string? warehouseDevicesStr = _cacheService.Get<string>(nameof(Dt_WarehouseDevice));
             if (!string.IsNullOrEmpty(warehouseDevicesStr))
             {
@@ -74,6 +68,8 @@
             {
                 warehouseDevices = new List<Dt_WarehouseDevice>();
             }
+            _packaxisTaskRepository = packaxisTaskRepository;
+            _packaxisTaskService = packaxisTaskService;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -83,85 +79,155 @@
                 if (lockObj.ToString()=="0")
                 {
                     lockObj = 1;
-                    Task task = Task.Run(async () =>
+                    bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+                    if (flag && value != null)
                     {
                         try
                         {
-                            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
-                            if (flag && value != null)
+                            //鑾峰彇褰撳墠璁惧
+                            OtherDevice device = (OtherDevice)value;
+                            List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+                            Task.Run(() =>
                             {
-                                //鑾峰彇褰撳墠璁惧
-                                OtherDevice device = (OtherDevice)value;
-                                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
-                                Dt_StationManger? RequestIn = stationMangers.FirstOrDefault(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
-                                while (true)
+                                try
                                 {
-                                    if (RequestIn != null)
+                                    Dt_StationManger? RequestIn = stationMangers.FirstOrDefault(x => x.StationDeviceCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
+                                    while (true)
                                     {
-                                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-                                        DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(W_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-                                        if (deviceProRead != null && deviceProWrite != null)
+                                        if (RequestIn != null)
                                         {
-                                            R_CLineCPHInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_CLineCPHInfo>(deviceProRead.DeviceProAddress);
-                                            //鐮佸灈鐜嚎璇锋眰浠诲姟 
-                                            if (conveyorLineInfoRead != null && (conveyorLineInfoRead.R_State == 2 || conveyorLineInfoRead.R_State == 3) && conveyorLineInfoRead.R_TaskNo <= 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.R_BoxCode) && conveyorLineInfoRead.R_Request == 1)
+                                            DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                                            DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(W_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                                            if (deviceProRead != null && deviceProWrite != null)
                                             {
-                                                #region todo:涓存椂閫昏緫
-                                                //鍐欏叆鎵ц鏁版嵁
-                                                device.SetValue(W_CLineCPHDB.W_TaskNo, 100 + 5, RequestIn.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Channel, Channel, RequestIn.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Long, Long, RequestIn.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Wide, Wide, RequestIn.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_High, High, RequestIn.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_TMID, conveyorLineInfoRead.R_BoxCode, RequestIn.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Request, 1, RequestIn.StationCode);
-                                                WebResponseContent content = _taskService.MESBoxCodeNotice(conveyorLineInfoRead.R_BoxCode);
-                                                if (content.Status)
+                                                R_CLineCPHInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_CLineCPHInfo>(deviceProRead.DeviceProAddress);
+                                                //鐮佸灈鐜嚎璇锋眰浠诲姟 
+                                                if (conveyorLineInfoRead != null && (conveyorLineInfoRead.R_State == 2 || conveyorLineInfoRead.R_State == 3) && conveyorLineInfoRead.R_TaskNo <= 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.R_BoxCode) && conveyorLineInfoRead.R_Request == 1)
                                                 {
-                                                    WriteInfo(RequestIn.StationName, content.Message);
+                                                    //鍒ゆ柇鏄惁浠诲姟宸茬粡瀛樺湪
+                                                    Dt_PackaxisTask packaxisTask = _packaxisTaskRepository.QueryFirst(x => x.BarCode == conveyorLineInfoRead.R_BoxCode.Trim() && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt());
+                                                    if (packaxisTask != null)
+                                                    {
+                                                        //鍐欏叆鎵ц鏁版嵁
+                                                        device.SetValue(W_CLineCPHDB.W_TaskNo, packaxisTask.PackTaskNum, RequestIn.StationCode);
+                                                        device.SetValue(W_CLineCPHDB.W_Channel, packaxisTask.NextAddress, RequestIn.StationCode);
+                                                        device.SetValue(W_CLineCPHDB.W_Long, packaxisTask.PackLength, RequestIn.StationCode);
+                                                        device.SetValue(W_CLineCPHDB.W_Wide, packaxisTask.PackWidth, RequestIn.StationCode);
+                                                        device.SetValue(W_CLineCPHDB.W_High, packaxisTask.PackHeight, RequestIn.StationCode);
+                                                        device.SetValue(W_CLineCPHDB.W_TMID, packaxisTask.BarCode, RequestIn.StationCode);
+                                                        device.SetValue(W_CLineCPHDB.W_Request, 1, RequestIn.StationCode);
+                                                    }
+                                                    else
+                                                    {
+                                                        #region
+                                                        WebResponseContent webResponse = _packaxisTaskService.ReqPackTask(conveyorLineInfoRead.R_BoxCode.Trim(), RequestIn.StationDeviceCode);
+                                                        if (webResponse.Status)
+                                                        {
+                                                            Dt_PackaxisTask _PackaxisTask = webResponse.Data as Dt_PackaxisTask;
+                                                            //鍐欏叆鎵ц鏁版嵁
+                                                            device.SetValue(W_CLineCPHDB.W_TaskNo, _PackaxisTask.PackTaskNum, RequestIn.StationCode);
+                                                            device.SetValue(W_CLineCPHDB.W_Channel, _PackaxisTask.NextAddress.ObjToInt(), RequestIn.StationCode);
+                                                            device.SetValue(W_CLineCPHDB.W_Long, _PackaxisTask.PackLength, RequestIn.StationCode);
+                                                            device.SetValue(W_CLineCPHDB.W_Wide, _PackaxisTask.PackWidth, RequestIn.StationCode);
+                                                            device.SetValue(W_CLineCPHDB.W_High, _PackaxisTask.PackHeight, RequestIn.StationCode);
+                                                            device.SetValue(W_CLineCPHDB.W_TMID, _PackaxisTask.BarCode, RequestIn.StationCode);
+                                                            device.SetValue(W_CLineCPHDB.W_Request, 1, RequestIn.StationCode);
+                                                            WebResponseContent content = _taskService.MESBoxCodeNotice(conveyorLineInfoRead.R_BoxCode.Trim());
+                                                            if (content.Status)
+                                                            {
+                                                                WriteInfo(RequestIn.StationName, content.Message);
+                                                            }
+                                                            else
+                                                            {
+                                                                WriteError(RequestIn.StationName, content.Message);
+                                                            }
+                                                        }
+                                                        else
+                                                        {
+                                                            WriteError(RequestIn.StationName, webResponse.Message);
+                                                        }
+                                                        #endregion
+                                                    }
                                                 }
-                                                else
-                                                {
-                                                    WriteError(RequestIn.StationName, content.Message);
-                                                }
-                                                #endregion
                                             }
-                                        }
-                                        else
-                                        {
-                                            WriteError(RequestIn.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{RequestIn.StationCode}鐨勫崗璁俊鎭�");
-                                        }
-                                    }
-                                    foreach (var item in stationMangers.Where(x => x.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()))
-                                    {
-                                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-                                        if (deviceProRead != null)
-                                        {
-                                            R_CLineCPHInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_CLineCPHInfo>(deviceProRead.DeviceProAddress);
-                                            //鑾峰彇鐮佸灈鍙d换鍔℃洿鏂颁换鍔$姸鎬�
-                                            if (conveyorLineInfoRead != null && (conveyorLineInfoRead.R_State == 2 || conveyorLineInfoRead.R_State == 3) && conveyorLineInfoRead.R_TaskNo > 0)
+                                            else
                                             {
-                                                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.R_TaskNo && x.NextAddress == item.StationCode && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt());
-                                                if (task != null)
-                                                {
-                                                    task.CurrentAddress = item.StationCode;
-                                                    task.NextAddress = task.TargetAddress;
-                                                    task.DeviceCode = item.StackerCraneCode;
-                                                    _taskService.UpdateTask(task, TaskStatusEnum.MD_Executing);
-                                                }
+                                                WriteError(RequestIn.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{RequestIn.StationCode}鐨勫崗璁俊鎭�");
                                             }
                                         }
                                     }
                                 }
-                            }
+                                catch (Exception ex)
+                                {
+                                    Thread.Sleep(1000);
+                                }
+                            });
+                            Task.Run(() =>
+                            {
+                                try
+                                {
+                                    //鑾峰彇鎵�鏈夌爜鍨涘彛
+                                    List<Dt_StationManger> stationMangersMD = stationMangers.Where(x => x.StationDeviceCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()).ToList();
+                                    while (true)
+                                    {
+                                        if (stationMangersMD.Count > 0)
+                                        {
+                                            foreach (var item in stationMangersMD)
+                                            {
+                                                DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                                                if (deviceProRead != null)
+                                                {
+                                                    R_CLineCPHChannelInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_CLineCPHChannelInfo>(deviceProRead.DeviceProAddress);
+                                                    //鑾峰彇鐮佸灈鍙d换鍔℃洿鏂颁换鍔$姸鎬�
+                                                    if (conveyorLineInfoRead != null && conveyorLineInfoRead.R_State == 5 && conveyorLineInfoRead.R_TaskNo > 0)
+                                                    {
+                                                        Dt_PackaxisTask packaxisTask = _packaxisTaskRepository.QueryFirst(x => x.PackTaskNum == conveyorLineInfoRead.R_TaskNo && x.NextAddress == item.StationCode && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == item.StationDeviceCode);
+                                                        if (packaxisTask != null)
+                                                        {
+                                                            Dt_PackaxisTask packaxisTaskOld = _packaxisTaskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt() && x.DeviceCode == item.StackerCraneCode);
+                                                            if (packaxisTaskOld != null)
+                                                            {
+                                                                WriteError(item.StationName, $"鐮佸灈{item.StackerCraneCode}姝f墽琛屼换鍔packaxisTaskOld.PackTaskNum},鏃犳硶缁х画涓嬪彂");
+                                                            }
+                                                            else
+                                                            {
+                                                                packaxisTask.CurrentAddress = item.StationCode;
+                                                                packaxisTask.NextAddress = packaxisTask.TargetAddress;
+                                                                packaxisTask.DeviceCode = item.StackerCraneCode;
+                                                                packaxisTask.TaskState = TaskStatusEnum.MD_Executing.ObjToInt();
+                                                                _packaxisTaskRepository.UpdateData(packaxisTask);
+                                                            }
+                                                        }
+                                                        else
+                                                        {
+                                                            WriteError(item.StationName, $"鏈壘鍒颁换鍔conveyorLineInfoRead.R_TaskNo}淇℃伅");
+                                                        }
+                                                        Thread.Sleep(2000);
+                                                    }
+                                                }
+                                            }
+                                        }
+                                        else
+                                        {
+                                            WriteError(nameof(ConveyorLineJob_CPH), $"閿欒淇℃伅锛氭湭鎵惧埌鐮佸灈鍙d俊鎭�");
+                                        }
+                                    }
+                                }
+                                catch (Exception ex)
+                                {
+                                    Thread.Sleep(1000);
+                                }
+                            });
+                            
                         }
                         catch (Exception ex)
                         {
                             lockObj = 0;
                             WriteError(nameof(ConveyorLineJob_CPH), $"閿欒淇℃伅锛歿ex.Message}");
                         }
-
-                    });
+                        
+                    }
+                    
                 }
                 
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussCartonJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussCartonJob.cs"
index c49ef1e..0529c21 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussCartonJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussCartonJob.cs"
@@ -79,7 +79,7 @@
                         //鍐欏叆蹇冭烦
                         foreach (var item in stationMangers)
                         {
-                            //鐮佸灈鐘舵��
+                            //璇锋眰鐘舵��
                             bool Call = device.GetValue<R_TrussCartonDB, bool>(GetCartonCall(item.StackerCraneStationCode), device.DeviceCode);
 
                             if (Call && item.IsOccupied == 0)
@@ -91,6 +91,7 @@
                                 //璇锋眰WMS绌烘墭鍙犵洏浠诲姟
                             }
                         }
+                        Thread.Sleep(1000);
                         device.SetValue(W_TrussCartonDB.W_CartonHeart, true, device.DeviceCode);
                     }
                     else
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussDixieCupJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussDixieCupJob.cs"
new file mode 100644
index 0000000..862c77f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\241\201\346\236\266/TrussDixieCupJob.cs"
@@ -0,0 +1,118 @@
+锘縰sing Newtonsoft.Json;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Repository;
+using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_Tasks.DBNames;
+using WIDESEAWCS_Core.Helper;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
+
+namespace WIDESEAWCS_Tasks
+{
+    /// <summary>
+    /// 绾告澂妗佹灦
+    /// </summary>
+    [DisallowConcurrentExecution]
+    public class TrussDixieCupJob : JobBase, IJob
+    {
+        private readonly ICacheService _cacheService;
+        private readonly ITaskService _taskService;
+        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+        private readonly ITaskRepository _taskRepository;
+        private readonly IStationMangerRepository _stationMangerRepository;
+        private readonly IRouterRepository _routerRepository;
+        private readonly IRouterService _routerService;
+        private readonly IRouterExtension _routerExtension;
+
+        public TrussDixieCupJob(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension)
+        {
+            _cacheService = cacheService;
+            _taskService = taskService;
+            _taskExecuteDetailService = taskExecuteDetailService;
+            _taskRepository = taskRepository;
+            _stationMangerRepository = stationMangerRepository;
+            _routerRepository = routerRepository;
+            _routerService = routerService;
+            _routerExtension = routerExtension;
+        }
+
+        public Task Execute(IJobExecutionContext context)
+        {
+            try
+            {
+                bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+                if (flag && value != null)
+                {
+                    OtherDevice device = (OtherDevice)value;
+                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+                    //鑾峰彇鍗忚
+                    DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(R_TrussDixieCupDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                    DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(W_TrussDixieCupDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                    //鍒ゆ柇鍗忚鏄惁婊¤冻
+                    if (deviceProRead != null && deviceProWrite != null)
+                    {
+                        device.SetValue(W_TrussDixieCupDB.W_DixieCupHeart, false, device.DeviceCode);
+                        //鍐欏叆蹇冭烦
+                        foreach (var item in stationMangers)
+                        {
+                            //璇锋眰鐘舵��
+                            bool Call = device.GetValue<R_TrussDixieCupDB, bool>(GetDixieCupCall(item.StackerCraneStationCode), device.DeviceCode);
+
+                            if (Call && item.IsOccupied == 0)
+                            {
+                                //璇锋眰WMS鍙枡浠诲姟
+                            }
+                            else if (Call && item.IsOccupied == 1)
+                            {
+                                //璇锋眰WMS绌烘墭鍙犵洏浠诲姟
+                            }
+                        }
+                        device.SetValue(W_TrussDixieCupDB.W_DixieCupHeart, true, device.DeviceCode);
+                    }
+                    else
+                    {
+                        WriteError(device.DeviceCode, $"鏈壘鍒拌澶囩紪鍙穥device.DeviceCode}鐨勫崗璁俊鎭�");
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                WriteError(nameof(TrussDixieCupJob), ex.Message);
+            }
+            return Task.CompletedTask;
+        }
+
+        /// <summary>
+        /// 鑾峰彇妗佹灦鍛煎彨淇″彿
+        /// </summary>
+        public R_TrussDixieCupDB GetDixieCupCall(string StationCode)
+        {
+            switch (StationCode)
+            {
+                case "1":
+                    return R_TrussDixieCupDB.R_DixieCupCall1;
+                case "2":
+                    return R_TrussDixieCupDB.R_DixieCupCall2;
+                case "3":
+                    return R_TrussDixieCupDB.R_DixieCupCall3;
+                case "4":
+                    return R_TrussDixieCupDB.R_DixieCupCall4;
+                default:
+                    throw new Exception("鏈畾涔夊伐浣�");
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
index 2e405db..6209a7d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
@@ -15,6 +15,7 @@
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Communicator;
 using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_IPackInfoRepository;
@@ -27,6 +28,7 @@
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoRepository;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using WIDESEAWCS_Tasks.DBNames;
 using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
@@ -37,26 +39,17 @@
     public class MDJob_CP : JobBase, IJob
     {
         private readonly ICacheService _cacheService;
-        private readonly ITaskService _taskService;
-        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
-        private readonly ITaskRepository _taskRepository;
         private readonly IStationMangerRepository _stationMangerRepository;
-        private readonly IDt_PackaxisRepository _packaxisRepository;
-        private readonly IRouterRepository _routerRepository;
-        private readonly IRouterService _routerService;
-        private readonly IRouterExtension _routerExtension;
+        private readonly IPackaxisRepository _packaxisRepository;
+        private readonly IPackaxisTaskRepository _packaxisTaskRepository;
+        private readonly IPackaxisTaskService _packaxisTaskService;
+        private readonly IStationPackInfoRepository _stationPackInfoRepository;
         private readonly List<Dt_WarehouseDevice> warehouseDevices;
 
-        public MDJob_CP(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension, IDt_PackaxisRepository packaxisRepository)
+        public MDJob_CP(ICacheService cacheService, IStationMangerRepository stationMangerRepository,  IPackaxisRepository packaxisRepository, IPackaxisTaskRepository packaxisTaskRepository,IPackaxisTaskService packaxisTaskService, IStationPackInfoRepository stationPackInfoRepository)
         {
             _cacheService = cacheService;
-            _taskService = taskService;
-            _taskExecuteDetailService = taskExecuteDetailService;
-            _taskRepository = taskRepository;
             _stationMangerRepository = stationMangerRepository;
-            _routerRepository = routerRepository;
-            _routerService = routerService;
-            _routerExtension = routerExtension;
             _packaxisRepository = packaxisRepository;
 
             string? warehouseDevicesStr = _cacheService.Get<string>(nameof(Dt_WarehouseDevice));
@@ -68,113 +61,139 @@
             {
                 warehouseDevices = new List<Dt_WarehouseDevice>();
             }
+            _packaxisTaskRepository = packaxisTaskRepository;
+            _packaxisTaskService = packaxisTaskService;
+            _stationPackInfoRepository = stationPackInfoRepository;
         }
 
         public Task Execute(IJobExecutionContext context)
         {
-            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
-            if (flag && value != null)
+            try
             {
-                OtherDevice device = (OtherDevice)value;
-                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt() && x.IsOccupied == 0);
-                foreach (var item in stationMangers)
+                bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+                if (flag && value != null)
                 {
+                    OtherDevice device = (OtherDevice)value;
+                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt() && x.IsOccupied == 0);
                     //鑾峰彇鍗忚
-                    DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StackerCraneCode && x.DeviceProParamType == nameof(R_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-                    DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StackerCraneCode && x.DeviceProParamType == nameof(W_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                    DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(R_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                    DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(W_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                     if (deviceProRead != null && deviceProWrite != null)
                     {
-                        short Allow = device.GetValue<R_MDDB, short>(R_MDDB.R_MDAllow, item.StackerCraneCode);
+                        foreach (var item in stationMangers)
+                        {
 
-                        #region 璇诲彇宸ヤ綅鐘舵��
-                        short R_MDStatus1 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus1, item.StackerCraneCode);
-                        short R_MDStatus2 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus2, item.StackerCraneCode);
-                        short R_MDStatus3 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus3, item.StackerCraneCode);
-                        short R_MDStatus4 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus4, item.StackerCraneCode);
-
-                        short ReceiveDoneState = device.GetValue<W_MDDB, short>(W_MDDB.W_MDReceiveDone, item.StackerCraneCode);
-                        #endregion
-                        //鐮佸灈鐘舵��
-                        short PackState = device.GetValue<R_MDDB, short>(GetPackStateEnum(item.StackerCraneStationCode), item.StackerCraneCode);
-                        //鐮佸灈鏁伴噺
-                        short PackNum = device.GetValue<R_MDDB, short>(GetPackNumEnum(item.StackerCraneStationCode), item.StackerCraneCode);
-                        if (R_MDStatus1 == 1 || R_MDStatus2 == 1 || R_MDStatus3 == 1 || R_MDStatus4 == 1)
-                        {
-                            Thread.Sleep(200);
-                            if (ReceiveDoneState!=0)
+                            short Allow = device.GetValue<R_MDDB, short>(R_MDDB.R_MDAllow, item.StackerCraneCode);
+                            #region 璇诲彇宸ヤ綅鐘舵��
+                            short R_MDStatus1 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus1, item.StackerCraneCode);
+                            short R_MDStatus2 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus2, item.StackerCraneCode);
+                            short R_MDStatus3 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus3, item.StackerCraneCode);
+                            short R_MDStatus4 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus4, item.StackerCraneCode);
+                            short ReceiveDoneState = device.GetValue<W_MDDB, short>(W_MDDB.W_MDReceiveDone, item.StackerCraneCode);
+                            #endregion
+                            //鐮佸灈鐘舵��
+                            short PackState = device.GetValue<R_MDDB, short>(GetPackStateEnum(item.StackerCraneStationCode), item.StackerCraneCode);
+                            //鐮佸灈鏁伴噺
+                            short PackNum = device.GetValue<R_MDDB, short>(GetPackNumEnum(item.StackerCraneStationCode), item.StackerCraneCode);
+                            if ((R_MDStatus1 == 1 || R_MDStatus2 == 1 || R_MDStatus3 == 1 || R_MDStatus4 == 1) && Allow == 4)
                             {
-                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 0);
-                                WriteInfo(item.StackerCraneCode, $"{item.StackerCraneCode}娓呴櫎涓嬪彂鏍囪瘑淇″彿");
-                            }
-                            continue;
-                        }
-                        if (PackState == 2)
-                        {
-                            Thread.Sleep(200);
-                            device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 0);
-                            WriteInfo(item.StationName, $"{item.StationName}娓呴櫎宸ヤ綅缁撴墭淇″彿");
-                            continue;
-                        }
-                        var axis = _packaxisRepository.QueryFirst(x => x.DeviceCode == item.StackerCraneCode && x.StationCode == Convert.ToInt32(item.StackerCraneStationCode));
-                        if (axis != null)
-                        {
-                            //杩涜缁撴墭
-                            if (Convert.ToInt32(PackNum) == axis.PackNum)
-                            {
-                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 2);
-                                WriteInfo(item.StationName, $"{item.StationName}鍐欏叆宸ヤ綅缁撴墭淇″彿");
+                                Thread.Sleep(200);
+                                if (ReceiveDoneState != 0)
+                                {
+                                    device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 0);
+                                    WriteInfo(item.StackerCraneCode, $"{item.StackerCraneCode}宸ヤ綅浠诲姟涓嬪彂鏍囪瘑鍊间负锛歿ReceiveDoneState},鏈哄櫒浜鸿鍙栫姸鎬佷负锛歿Allow}锛�1宸ヤ綅{R_MDStatus1}锛�2宸ヤ綅{R_MDStatus2}锛�3宸ヤ綅{R_MDStatus3}锛�4宸ヤ綅{R_MDStatus4}锛岀爜鍨涙竻闄や笅鍙戞爣璇嗕俊鍙�");
+                                }
                                 continue;
                             }
-                            //鐮佸灈鐢宠
-                            if (Allow == 3 || Allow == 7)
+                            if (PackState == 2)
                             {
-                                //鑾峰彇褰撳墠浠诲姟
-                                Dt_Task task = _taskRepository.QueryData(x => x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x => x.TaskNum).FirstOrDefault();
-
-                                if (task != null) 
-                                {
-                                    //鍐欏叆宸ヤ綅鍙�
-                                    device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSendID.ToString()).DeviceProDataBlock, Convert.ToInt16(item.StackerCraneStationCode));
-                                    //鍐欏叆宸ヤ綅鍏佽鐮佸灈
-                                    device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 1);
-
-                                    #region 鑾峰彇鍐欏叆鐮佸灈X銆乊銆乑鍧愭爣
-                                    (int, int, int) result = GetAxis(PackNum, axis, item.StackerCraneStationCode);
-                                    
-                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, result.Item1);
-
-                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, result.Item2);
-
-                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDZ.ToString()).DeviceProDataBlock, result.Item3);
-                                    WriteInfo(item.StationName, $"鐮佸灈鏁伴噺銆恵PackNum}銆戯紝涓嬪彂鐮佸灈鍧愭爣X銆乊銆乑銆恵result.Serialize()}銆�");
-                                    #endregion
-
-                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1);
-                                    //鍐欏叆涓嬪彂鏍囪瘑
-                                    device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 3);
-
-                                    //鏇存柊浠诲姟淇℃伅
-                                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
-                                    //_taskRepository.UpdateData(task);
-                                    _taskService.TaskCompleted(task.TaskNum);
-                                    Thread.Sleep(1000);
-                                    WriteInfo(item.StationName, $"浠诲姟鍙穥task.TaskNum}鐮佸灈");
-                                    return Task.CompletedTask;
-                                }
-
+                                Thread.Sleep(200);
+                                device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 0);
+                                WriteInfo(item.StationName, $"{item.StationName}娓呴櫎宸ヤ綅缁撴墭淇″彿");
+                                continue;
                             }
-                        }
-                        else
-                        {
-                            WriteError(item.StationName, $"鏈壘鍒拌宸ヤ綅{item.StationName}鐨勫潗鏍囦俊鎭紝璇锋牳瀵规暟鎹�");
+                            //鑾峰彇褰撳墠宸ヤ綅鐮佸灈鎵ц涓暟鎹�
+                            Dt_StationPackInfo stationPackInfo = _stationPackInfoRepository.QueryFirst(x => x.StationCode == item.StationCode && x.AssignNum > 0);
+                            if (stationPackInfo!=null)
+                            {
+                                var axis = _packaxisRepository.QueryFirst(x => x.DeviceCode == item.StackerCraneCode && x.StationCode == stationPackInfo.StationCode && x.PackType== stationPackInfo.PackType);
+                                if (axis != null)
+                                {
+                                    //杩涜缁撴墭
+                                    if (Convert.ToInt32(PackNum) == axis.PackNum)
+                                    {
+                                        WebResponseContent responseContent = _packaxisTaskService.BoxingInBound(item.StationCode);
+                                        if (responseContent.Status)
+                                        {
+                                            device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 2);
+                                            WriteInfo(item.StationName, $"{item.StationName}鍐欏叆宸ヤ綅缁撴墭淇″彿");
+                                        }
+                                        else
+                                        {
+                                            WriteError(item.StationName, $"{responseContent.Message}");
+                                        }
+                                        continue;
+                                    }
+                                    //鐮佸灈鐢宠
+                                    if (Allow == 3 || Allow == 7)
+                                    {
+                                        //鑾峰彇褰撳墠浠诲姟
+                                        Dt_PackaxisTask packaxisTask = _packaxisTaskRepository.QueryFirst(x => x.NextAddress == item.StationCode && x.DeviceCode == item.StackerCraneCode && x.PackType == stationPackInfo.PackType && x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt());
+                                        if (packaxisTask != null)
+                                        {
+                                            //鍐欏叆宸ヤ綅鍙�
+                                            device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSendID.ToString()).DeviceProDataBlock, Convert.ToInt16(item.StackerCraneStationCode));
+                                            //鍐欏叆宸ヤ綅鍏佽鐮佸灈
+                                            device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 1);
+
+                                            #region 鑾峰彇鍐欏叆鐮佸灈X銆乊銆乑鍧愭爣
+                                            (int, int, int) result = GetAxis(PackNum, axis, item.StackerCraneStationCode);
+
+                                            device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, result.Item1);
+
+                                            device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, result.Item2);
+
+                                            device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDZ.ToString()).DeviceProDataBlock, result.Item3);
+                                            WriteInfo(item.StationName, $"鐮佸灈鏁伴噺銆恵PackNum}銆戯紝涓嬪彂鐮佸灈鍧愭爣X銆乊銆乑銆恵result.Serialize()}銆�");
+                                            #endregion
+
+                                            device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1);
+                                            //鍐欏叆涓嬪彂鏍囪瘑
+                                            device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 3);
+                                            packaxisTask.TaskState = TaskStatusEnum.Finish.ObjToInt();
+                                            _packaxisTaskRepository.UpdateData(packaxisTask);
+                                            //浠诲姟瀹屾垚
+                                            WebResponseContent webResponse = _packaxisTaskService.TaskCompleted(packaxisTask: packaxisTask);
+                                            if (!webResponse.Status)
+                                            {
+                                                WriteError(item.StationName, $"浠诲姟鍙穥packaxisTask.PackTaskNum}鐮佸灈瀹屾垚閿欒{webResponse.Message}");
+                                            }
+                                            else
+                                            {
+                                                WriteInfo(item.StationName, $"浠诲姟鍙穥packaxisTask.PackTaskNum}鐮佸灈瀹屾垚");
+                                            }
+                                            Thread.Sleep(800);
+                                            return Task.CompletedTask;
+                                        }
+                                    }
+                                }
+                                else
+                                {
+                                    WriteError(item.StationName, $"鏈壘鍒拌宸ヤ綅{item.StationName}鐨勫潗鏍囦俊鎭紝璇锋牳瀵规暟鎹�");
+                                }
+                            }
                         }
                     }
                     else
                     {
-                        WriteError(item.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{item.StationCode}鐨勫崗璁俊鎭�");
+                        WriteError(device.DeviceCode, $"鏈壘鍒拌澶噞device.DeviceCode}鐨勫崗璁俊鎭�");
                     }
                 }
             }
+            catch (Exception ex)
+            {
+                WriteError(nameof(MDJob_CP),ex.Message);
+            }
             return Task.CompletedTask;
         }
         /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/StationAreaEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/StationAreaEnum.cs"
index ba42f2a..f1af802 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/StationAreaEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/StationAreaEnum.cs"
@@ -110,11 +110,13 @@
         /// </summary>
         [Description("浜屾ゼ闆惧寲")]
         浜屾ゼ闆惧寲 = 17,
+
         /// <summary>
         /// 浜屾ゼ鎴愬搧搴撶紦瀛樺尯
         /// </summary>
         [Description("浜屾ゼ鎴愬搧搴撶紦瀛樺尯")]
         浜屾ゼ鎴愬搧搴撶紦瀛樺尯 = 18,
+
         /// <summary>
         /// 涓�妤兼殏瀛樻灦
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
index 74f97e1..09f732a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
@@ -142,6 +142,12 @@
         EmptyProductBack = 630,
 
         /// <summary>
+        /// 鍒嗗垏鍗婃垚鍝佸叆搴�
+        /// </summary>
+        [Description("鍒嗗垏鍗婃垚鍝佸叆搴�")]
+        PartOffInbound = 695,
+
+        /// <summary>
         /// 鏃犵汉甯冨崐鎴愬搧鍏ュ簱
         /// </summary>
         [Description("鏃犵汉甯冨崐鎴愬搧鍏ュ簱")]
@@ -175,7 +181,7 @@
         /// 绾稿紶娣嬭啘浣欐枡閫�搴�
         /// </summary>
         [Description("绾稿紶娣嬭啘浣欐枡閫�搴�")]
-        PaperFilmYLBackInbound = 725,
+        PaperLMYLBackInbound = 725,
 
         /// <summary>
         /// 绾歌浣欐枡閫�搴�
@@ -196,6 +202,12 @@
         PaperOldYLBackInbound = 740,
 
         /// <summary>
+        /// 鏃犵汉甯冭浣欐枡閫�搴�
+        /// </summary>
+        [Description("鏃犵汉甯冭浣欐枡閫�搴�")]
+        WFBBackInbound = 745,
+
+        /// <summary>
         /// 宸烽亾鍐呯Щ搴�
         /// </summary>
         [Description("宸烽亾鍐呯Щ搴�")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
index f31d84b..7e16535 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
@@ -18,7 +18,11 @@
         /// MES宸ュ崟鍋滄鎺ュ彛
         /// </summary>
         WebResponseContent ReceiveProOrderStop(MESOrderStopDTO orderStopDTO);
-
+        /// <summary>
+        /// MES浜ч噺鍥炰紶鎺ュ彛
+        /// </summary>
+        /// <param name="boxCode"></param>
+        /// <returns></returns>
         WebResponseContent MESBoxCode(string boxCode);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
index e3ae0ba..1a0fbeb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -64,7 +64,7 @@
         /// <param name="stationCode"></param>
         /// <param name="palletCode"></param>
         /// <returns></returns>
-        WebResponseContent DeviceRequestInboundTaskSimple(string stationCode, string palletCode);
+        WebResponseContent DeviceRequestInboundTaskSimple(string stationCode);
 
         /// <summary>
         /// 鍘熸枡鍏ュ簱浠诲姟璇锋眰
@@ -275,5 +275,6 @@
         /// </summary>
         /// <returns></returns>
         WebResponseContent DisableStatus(int[] keys);
+        WebResponseContent BoxingInBound(string stationCode, List<string> barCodes);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
index 4096a29..e06b88d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
@@ -69,7 +69,7 @@
             return content;
         }
         /// <summary>
-        /// MES宸ュ崟鍋滄鎺ュ彛
+        /// MES浜ч噺鍥炰紶
         /// </summary>
         /// <summary>
         public WebResponseContent MESBoxCode(string boxCode)
@@ -95,7 +95,7 @@
                 MESResponse response = _invokeMESService.MESBoxCodeNotice(boxCode).DeserializeObject<MESResponse>() ?? throw new Exception("鏈幏鍙栧埌MES杩斿洖淇℃伅");
                 if (!response.Result)
                 {
-                    throw new Exception($"MES閰嶉�佸嚭鍙戞帴鍙h皟鐢ㄦ姤閿�,MES杩斿洖淇℃伅{DecodeUnicode(response.Msg)}");
+                    throw new Exception($"MES杩斿洖淇℃伅{DecodeUnicode(response.Msg)}");
                 }
                 BaseDal.UpdateData(mESProInOrderInfo);
                 content.OK($"鎴愬搧鏉$爜{boxCode}鎵爜鍏ュ簱");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESIssueCache.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESIssueCache.cs"
new file mode 100644
index 0000000..5419d14
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESIssueCache.cs"
@@ -0,0 +1,80 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core.CodeConfigEnum;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// MES褰撳墠鍛兼枡缂撳瓨
+    /// </summary>
+    [SugarTable(nameof(Dt_OutMESIssueCache), "MES褰撳墠鍛兼枡缂撳瓨"), ModelValidate]
+    public class Dt_OutMESIssueCache : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 浠撳簱涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績鍖哄煙
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍔犲伐涓績鍖哄煙")]
+        public int MakeArea { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鏉ユ簮鏄庣粏ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鏉ユ簮鏄庣粏ID")]
+        public int OutDetailId { get; set; }
+
+        /// <summary>
+        /// WMS鍗曟嵁缂栧彿
+        /// </summary>
+        [CodeRule(RuleCodeEnum.OutboundOrderRule)]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "WMS鍗曟嵁缂栧彿", IsOnlyIgnoreUpdate = true)]
+        public string OutMESOrderNo { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇璁㈠崟缂栫爜(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐢熶骇璁㈠崟缂栫爜(涓婃父)")]
+        public string ProductOrderNo { get; set; }
+
+        /// <summary>
+        /// 娲惧崟宸ュ崟缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "娲惧崟宸ュ崟缂栫爜")]
+        public string SendOrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栫爜")]
+        public string MaterialCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐗╂枡鎵规")]
+        public string MaterialLot { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜(鏈哄彴)
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍔犲伐涓績缂栫爜(鏈哄彴)")]
+        public string MakeCode { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs"
index f1430e3..91b8bfd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs"
@@ -161,6 +161,14 @@
         public decimal? CheckWeight { get; set; }
 
         /// <summary>
+        /// 鍒濆閲嶉噺
+        /// </summary>
+        [ExporterHeader(DisplayName = "鍒濆閲嶉噺")]
+        [ImporterHeader(Name = "鍒濆閲嶉噺")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍒濆閲嶉噺")]
+        public decimal? InitialWeight { get; set; }
+
+        /// <summary>
         /// 鐗╂枡鐩村緞/楂樺害
         /// </summary>
         [ExporterHeader(DisplayName = "鐗╂枡鐩村緞")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
index 3368a57..3bae542 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
@@ -6,6 +6,7 @@
 using System.Threading.Tasks;
 using WIDESEA_Common.LocationEnum;
 using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.OrderEnum;
 using WIDESEA_Common.WareHouseEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseServices;
@@ -209,7 +210,7 @@
                 List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.GetUseableStocks(item.MaterialCode, item.WarehouseId).Where(x => !outStocks.Select(x => x.PalletCode).Contains(x.PalletCode)).ToList();
                 if (!stockInfos.Any())
                 {
-                    throw new Exception($"鏈壘鍒板彲鍒嗛厤搴撳瓨");
+                    continue;
                 }
                 //鍒嗛厤瀹為檯搴撳瓨
                 List<Dt_StockInfo> autoAssignStocks = _stockService.StockInfoService.GetOutboundStocks(stockInfos, needQuantity).OrderBy(x => x.StockLength).ToList();
@@ -246,7 +247,8 @@
                         assignStop = false;
                     }
                 }
-
+                //淇敼鐘舵��
+                item.OutMESOrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
                 locationInfos.AddRange(_basicRepository.LocationInfoRepository.GetLocationInfos(outStocks.Select(x => x.LocationCode).ToList()));
             }
 
@@ -276,7 +278,7 @@
                 List<Dt_ProStockInfo> stockInfos = _stockService.ProStockInfoService.GetUseableStocks(item.MaterialCode, WarehouseEnum.LLDCP.ObjToInt()).Where(x => !outStocks.Select(x => x.PalletCode).Contains(x.PalletCode)).ToList();
                 if (!stockInfos.Any())
                 {
-                    throw new Exception($"鏈壘鍒板彲鍒嗛厤搴撳瓨");
+                    continue;
                 }
                 //鍒嗛厤瀹為檯搴撳瓨
                 List<Dt_ProStockInfo> autoAssignStocks = _stockService.ProStockInfoService.GetOutboundStocks(stockInfos, needQuantity);
@@ -313,7 +315,7 @@
                         assignStop = false;
                     }
                 }
-
+                item.OutMESOrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
                 locationInfos.AddRange(_basicRepository.LocationInfoRepository.GetLocationInfos(outStocks.Select(x => x.LocationCode).ToList()));
             }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
index 560f30f..5d2fb42 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -310,11 +310,13 @@
                         TaskTypeEnum taskTypeEnum = aGVStationInfo.StationArea switch
                         {
                             nameof(StationAreaEnum.涓�妤煎嵃鍒�) => TaskTypeEnum.PrintYLBackInbound,
-                            nameof(StationAreaEnum.涓�妤肩焊寮犳穻鑶�) => TaskTypeEnum.PaperFilmYLBackInbound,
+                            nameof(StationAreaEnum.涓�妤肩焊寮犳穻鑶�) => TaskTypeEnum.PaperLMYLBackInbound,
                             nameof(StationAreaEnum.涓�妤兼棤绾烘穻鑶�) => TaskTypeEnum.WFBLMYLBackInbound,
+                            nameof(StationAreaEnum.浜屾ゼ鏃犵汉甯冭) => TaskTypeEnum.WFBBackInbound,
+                            nameof(StationAreaEnum.浜屾ゼ绾歌) => TaskTypeEnum.PaperYLBackInbound,
                             _ => throw new Exception("鏈壘鍒板搴斾换鍔�")
                         };
-                        if (taskTypeEnum== TaskTypeEnum.WFBLMYLBackInbound)
+                        if (taskTypeEnum == TaskTypeEnum.WFBLMYLBackInbound || taskTypeEnum == TaskTypeEnum.WFBBackInbound)
                         {
                             Dt_AGVStationInfo? stationInfo = AssignWFBStation(_AGVStationInfos?.Select(x=>x.AGVStationCode).ToList()) ?? throw new Exception("鏈壘鍒板彲鐢ㄦ棤绾哄竷鏆傚瓨鏋�");
                             newTask.NextAddress = stationInfo.AGVStationCode;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs"
index b4485f9..a134326 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs"
@@ -97,6 +97,7 @@
             try
             {
                 Dt_Task wmsTask = BaseDal.QueryFirst(x=>x.TaskNum == task.TaskNum);
+                string oldPalletCode = wmsTask.PalletCode;
                 if (wmsTask != null)
                 {
                     wmsTask.PalletCode= task.PalletCode;
@@ -108,6 +109,31 @@
                     wmsTask.TaskType = task.TaskType;
                     wmsTask.TargetAddress = task.TargetAddress;
                     BaseDal.UpdateData(wmsTask);
+                    //鎺ㄩ�丮ES鎺ラ┏鎴愬姛鎺ュ彛
+                    if (wmsTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && !wmsTask.WorkCentreCode.IsNullOrEmpty() && wmsTask.TaskStatus == TaskStatusEnum.AGV_TakeFinish.ObjToInt())
+                    {
+                        Dt_AGVStationInfo? aGVStationInfo = null;
+                        if (wmsTask.CurrentAddress== "603" || wmsTask.CurrentAddress == "613" || wmsTask.CurrentAddress == "102" || wmsTask.CurrentAddress == "614" || wmsTask.CurrentAddress == "615" || wmsTask.CurrentAddress == "604" || wmsTask.CurrentAddress == "605")
+                        {
+                            aGVStationInfo = _basicRepository.AGVStationInfoRepository.QueryFirst(x=>x.AGVStationCode==wmsTask.CurrentAddress);
+                        }
+                        else
+                        {
+                            aGVStationInfo= _basicRepository.AGVStationInfoRepository.QueryFirst(x => x.MESPointCode == wmsTask.CurrentAddress);
+                        }
+                        MESRecepNoticeModel mESRecepNoticeModel = new MESRecepNoticeModel()
+                        {
+                            WorkCentreEmptyPalletNotice = new List<RecepNotice>()
+                            {
+                                new RecepNotice()
+                                {
+                                    LocationCode = aGVStationInfo.MESPointCode,
+                                    CompleteFlag=true
+                                }
+                            }
+                        };
+                    }
+                    //鎺ㄩ�丒RP鍗婃垚鍝佸叆搴�
                     if (wmsTask.TaskType>=TaskTypeEnum.WFBYLInbound.ObjToInt() && wmsTask.TaskType <= TaskTypeEnum.PrintYLInbound.ObjToInt() && wmsTask.TaskStatus==TaskStatusEnum.AGV_TakeFinish.ObjToInt())
                     {
                         Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x=>x.PalletCode== wmsTask.PalletCode);
@@ -126,6 +152,13 @@
                                 }
                             }) ?? throw new Exception("鍗婃垚鍝佸叆搴撴帴鍙h姹傚け璐�");
                     }
+                    //鎴愬搧鍏ュ簱鏇存柊鎵樼洏鏉$爜
+                    if (wmsTask.TaskType == TaskTypeEnum.InProduct.ObjToInt() && oldPalletCode!=task.PalletCode)
+                    {
+                        Dt_ProStockInfo stockInfo = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == oldPalletCode);
+                        stockInfo.PalletCode = task.PalletCode;
+                        _stockRepository.ProStockInfoRepository.UpdateData(stockInfo);
+                    }
                 }
                 return WebResponseContent.Instance.OK();
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 0dd2c7b..ff193fb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -41,29 +41,24 @@
         /// <param name="stationCode"></param>
         /// <param name="palletCode"></param>
         /// <returns></returns>
-        public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode, string palletCode)
+        public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode)
         {
             try
             {
-                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == stationCode);
                 if (task != null)
                 {
                     PushTasksToWCS(new List<Dt_Task> { task });
                     return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
                 }
-
-                Dt_ProStockInfo stockInfo = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
+                Dt_ProStockInfo stockInfo = BaseDal.Db.Queryable<Dt_ProStockInfo>().Where(x => x.PalletCode == stationCode).Includes(x => x.proStockInfoDetails).First(); ;
                 if (stockInfo == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
                 }
-                if (stockInfo.StockStatus != StockStatusEmun.MES浣欐枡閫�搴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt())
+                if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
                 {
                     return WebResponseContent.Instance.Error($"璇ユ墭鐩樼姸鎬佷笉姝g‘,涓嶅彲鐢宠鍏ュ簱");
-                }
-                if (!string.IsNullOrEmpty(stockInfo.LocationCode))
-                {
-                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
                 }
 
                 Dt_Task newTask = new Dt_Task()
@@ -71,35 +66,28 @@
                     CurrentAddress = stationCode,
                     Grade = 0,
                     NextAddress = "",
-                    PalletCode = palletCode,
+                    PalletCode = stationCode,
                     Roadway = "",
                     SourceAddress = stationCode,
                     TargetAddress = "",
-                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+                    TaskType = TaskTypeEnum.InProduct.ObjToInt(),
                     TaskStatus = TaskStatusEnum.New.ObjToInt(),
                     WarehouseId = stockInfo.WarehouseId,
                     PalletType = stockInfo.PalletType,
                 };
-
-
-                if (stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
+                stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                stockInfo.proStockInfoDetails.ForEach(x =>
                 {
-                    stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt();
-                }
-                else
-                {
-                    stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
-                }
-
+                    x.ProStockDetailStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                });
                 _unitOfWorkManage.BeginTran();
                 int taskId = BaseDal.AddData(newTask);
                 newTask.TaskId = taskId;
                 _stockRepository.ProStockInfoRepository.UpdateData(stockInfo);
+                _stockRepository.ProStockInfoDetailRepository.UpdateData(stockInfo.proStockInfoDetails);
                 _unitOfWorkManage.CommitTran();
                 WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
 
-                PushTasksToWCS(new List<Dt_Task> { newTask });
-                if (newTask.WarehouseId == 5) PutFinish(stationCode, newTask.PalletCode, newTask.TaskNum.ToString());
                 return WebResponseContent.Instance.OK(data: wMSTaskDTO);
             }
             catch (Exception ex)
@@ -372,7 +360,7 @@
                     stockInfoOld.IsPick = WhetherEnum.False.ObjToInt();
                 }
                 decimal stockLength = bSTStockInfoDTO.StockMeter;
-                if (weight != bSTStockInfoDTO.Qty)
+                if (weight != bSTStockInfoDTO.Qty && weight < stockInfoOld.InitialWeight)
                 {
                     Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterialSourceId == stockInfoOld.MaterielId);
                     int gramWeight = (int)(materielInfo.MaterielWeight * 1000);
@@ -393,13 +381,13 @@
                         throw new Exception($"涓婃姤绉伴噸澶辫触");
                     }
                     stockLength = weight / bSTStockInfoDTO.W / gramWeight * 1000000;
+                    stockInfoOld.IsFull = WhetherEnum.True.ObjToInt();
+                    stockInfoOld.MaterielWeight = weight;
                 }
                 stockInfoOld.StockStatus = StockStatusEmun.鑰佸巶閫�搴�.ObjToInt();
                 stockInfoOld.MaterielThickness = bSTStockInfoDTO.Thick;
-                stockInfoOld.MaterielWeight = weight;
                 stockInfoOld.MaterielWide = bSTStockInfoDTO.W;
                 stockInfoOld.StockLength = stockLength;
-                stockInfoOld.IsFull = WhetherEnum.True.ObjToInt();
                 stockInfoOld.StockOutLength = 0;
                 stockInfoOld.WarehouseId = WarehouseEnum.LLDYL.ObjToInt();
                 if (thickness < 400)
@@ -672,6 +660,7 @@
                             MaterielThickness = bSTStockInfoDTO.Thick,
                             MaterielWide = bSTStockInfoDTO.W,
                             MaterielWeight = bSTStockInfoDTO.Qty,
+                            InitialWeight = bSTStockInfoDTO.Qty,
                             MaterielCode = materielInfo.MaterielCode,
                             MaterielName = materielInfo.MaterielName,
                             StockLength = bSTStockInfoDTO.StockMeter,
@@ -757,6 +746,7 @@
                                 MaterielThickness = purchaseBSTOrderDetail.MaterialThick,
                                 MaterielWide = purchaseBSTOrderDetail.MaterialWide,
                                 MaterielWeight = purchaseBSTOrderDetail.DeliveryQty,
+                                InitialWeight=purchaseBSTOrderDetail.DeliveryQty,
                                 MaterielCode = materielInfo.MaterielCode,
                                 MaterielName = materielInfo.MaterielName,
                                 StockLength = purchaseBSTOrderDetail.ProcurementLength,
@@ -1004,6 +994,28 @@
                         _stockRepository.ProStockInfoDetailRepository.UpdateData(proStockInfo.proStockInfoDetails);
                         _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, proStockInfo.PalletType, LocationStatusEnum.InStock, proStockInfo.WarehouseId);
                         BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+                        if (task.TaskType==TaskTypeEnum.InProduct.ObjToInt())
+                        {
+                            ERPProInUpModel proInUpModel = new ERPProInUpModel();
+                            List<PB_INV_PRODUCT_INItem> pRODUCT_INItems = new List<PB_INV_PRODUCT_INItem>();
+                            foreach (var item in proStockInfo.proStockInfoDetails)
+                            {
+                                PB_INV_PRODUCT_INItem pB_INV_PRODUCT_INItem = new PB_INV_PRODUCT_INItem()
+                                {
+                                    WP_ID=item.LotNumber.ObjToInt(),
+                                    INV_BARCODE=item.ProductNo,
+                                    QTY=(int)item.StockQty,
+                                    REMARK="鎴愬搧鍏ュ簱"
+                                };
+                                pRODUCT_INItems.Add(pB_INV_PRODUCT_INItem);
+                            }
+                            proInUpModel.PB_INV_PRODUCT_IN= pRODUCT_INItems;
+                            string request = _invokeERPService.ERPProInUp(proInUpModel) ?? throw new Exception("鎴愬搧鍏ュ簱鎺ュ彛璇锋眰澶辫触");
+                            if (!request.Contains("Success"))
+                            {
+                                throw new Exception($"鎴愬搧鍏ュ簱澶辫触");
+                            }
+                        }
                         _unitOfWorkManage.CommitTran();
                         _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(proStockInfo, 0, proStockInfo.proStockInfoDetails.Sum(x => x.StockQty), StockChangeTypeEnum.Inbound);
                     }
@@ -1022,7 +1034,7 @@
                     }
                     //鑾峰彇璐т綅淇℃伅
                     Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-                    if (locationInfoEnd == null && task.TaskType!=TaskTypeEnum.WFBLMYLBackInbound.ObjToInt() && task.TaskType != TaskTypeEnum.WFBYLInbound.ObjToInt())
+                    if (locationInfoEnd == null && task.TaskType!=TaskTypeEnum.WFBBackInbound.ObjToInt() && task.TaskType != TaskTypeEnum.WFBLMYLBackInbound.ObjToInt() && task.TaskType != TaskTypeEnum.WFBYLInbound.ObjToInt())
                     {
                         return content.Error($"鏈壘鍒板搴旂殑缁堢偣璐т綅淇℃伅");
                     }
@@ -1034,7 +1046,7 @@
                         Dt_LocationInfo locationInfoStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
                         _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
                     }
-                    if (task.TaskType != TaskTypeEnum.WFBLMYLBackInbound.ObjToInt() && task.TaskType != TaskTypeEnum.WFBYLInbound.ObjToInt())
+                    if (task.TaskType != TaskTypeEnum.WFBLMYLBackInbound.ObjToInt() && task.TaskType != TaskTypeEnum.WFBBackInbound.ObjToInt() && task.TaskType != TaskTypeEnum.WFBYLInbound.ObjToInt())
                     {
                         stockInfo.LocationCode = locationInfoEnd.LocationCode;
                     }
@@ -1838,16 +1850,24 @@
                 if (AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.鍗婃垚鍝�.ObjToInt()).Count() > 0)
                 {
                     //鐢熸垚鍗婃垚鍝佸叆搴�
-                    WebResponseContent webResponse = PrintInbound(AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.鍗婃垚鍝�.ObjToInt()).ToList());
+                    WebResponseContent webResponse = SemiProInbound(AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.鍗婃垚鍝�.ObjToInt()).ToList());
                     if (!webResponse.Status)
                     {
                         throw new Exception(webResponse.Message);
                     }
                     tasks = webResponse.Data as List<Dt_Task>;
                     WebResponseContent taskResponse = PushTasksToWCS(tasks);
-                    if (taskResponse.Status)
+                    if (!taskResponse.Status)
                     {
                         throw new Exception(taskResponse.Message);
+                    }
+                }
+                if (AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.鎴愬搧.ObjToInt()).Count() > 0)
+                {
+                    WebResponseContent webResponse = PushPackaxisTaskToWCS(AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.鎴愬搧.ObjToInt()).ToList());
+                    if (!webResponse.Status)
+                    {
+                        throw new Exception(webResponse.Message);
                     }
                 }
                 _unitOfWorkManage.CommitTran();
@@ -1862,9 +1882,9 @@
             return content;
         }
         /// <summary>
-        /// 鍗板埛涓嬫枡MES浠诲姟
+        /// 鍗婃垚鍝佷笅鏂橫ES浠诲姟
         /// </summary>
-        public WebResponseContent PrintInbound(List<Dt_MESProInOrderInfo> mESProInOrderInfos)
+        public WebResponseContent SemiProInbound(List<Dt_MESProInOrderInfo> mESProInOrderInfos)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -1879,11 +1899,16 @@
                 List<Dt_Task> tasks = new List<Dt_Task>();
                 //鑾峰彇鎵�鏈堿GV鐐逛綅
                 List<Dt_AGVStationInfo> aGVStationInfos = _basicRepository.AGVStationInfoRepository.QueryData(x => !string.IsNullOrEmpty(x.MESPointCode));
+                List<Dt_AGVStationInfo> _AGVStationInfos = new List<Dt_AGVStationInfo>();
                 //鏍规嵁鍗婃垚鍝佷俊鎭懠鍙搴斾换鍔�
                 foreach (var item in mESProInOrderInfos)
                 {
                     Dt_AGVStationInfo? CheckPointCode = aGVStationInfos.FirstOrDefault(x => x.MESPointCode == item?.PointCode);
                     Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterialCode);
+                    if (CheckPointCode==null)
+                    {
+                        return content.Error($"鏈壘鍒皗item?.PointCode}鐐逛綅");
+                    }
                     if (materielInfo == null)
                     {
                         return content.Error("鏈壘鍒扮墿鏂欎俊鎭�");
@@ -1924,7 +1949,7 @@
                     //鍗婃垚鍝佸叆搴撲换鍔�
                     Dt_Task newTask = new Dt_Task()
                     {
-                        CurrentAddress = CheckPointCode.AGVStationCode,
+                        CurrentAddress = item.PointCode.StartsWith("YS") ? CheckPointCode.AGVStationCode : CheckPointCode.MESPointCode,
                         Grade = 0,
                         NextAddress = "",
                         PalletCode = item.BarCode,
@@ -1940,17 +1965,54 @@
                     TaskTypeEnum taskTypeEnum = CheckPointCode.StationArea switch
                     {
                         nameof(StationAreaEnum.涓�妤煎嵃鍒�) => TaskTypeEnum.PrintYLInbound,
+                        nameof(StationAreaEnum.涓�妤煎垎鍒�) => TaskTypeEnum.PartOffInbound,
+                        nameof(StationAreaEnum.涓�妤肩焊寮犳穻鑶�) => TaskTypeEnum.PaperFilmInbound,
+                        nameof(StationAreaEnum.涓�妤兼棤绾烘穻鑶�) => TaskTypeEnum.WFBYLInbound,
                         _ => throw new Exception("鏈壘鍒板搴斾换鍔�")
                     };
+                    if (taskTypeEnum == TaskTypeEnum.WFBYLInbound)
+                    {
+                        Dt_AGVStationInfo? stationInfo = AssignWFBStation(_AGVStationInfos?.Select(x => x.AGVStationCode).ToList()) ?? throw new Exception("鏈壘鍒板彲鐢ㄦ棤绾哄竷鏆傚瓨鏋�");
+                        newTask.NextAddress = stationInfo.AGVStationCode;
+                        newTask.TargetAddress = stationInfo.AGVStationCode;
+                        newTask.Roadway = "AGV";
+                        stationInfo.IsOccupied = 1;
+                        _AGVStationInfos.Add(stationInfo);
+                    }
                     newTask.TaskType = taskTypeEnum.ObjToInt();
                     stockInfos.Add(stockInfo);
                     tasks.Add(newTask);
                 }
                 //鎿嶄綔鍏ュ簱鏁版嵁
                 BaseDal.AddData(tasks);
+                _basicRepository.AGVStationInfoRepository.UpdateData(_AGVStationInfos);
                 _stockRepository.StockInfoRepository.AddData(stockInfos);
                 //鎺ㄩ�佷换鍔�
                 content.OK("鍙戦�佹垚鍔�",data:tasks);
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鎺ㄩ�佺爜鍨涙暟鎹嚦WCS
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent PushPackaxisTaskToWCS(List<Dt_MESProInOrderInfo> mESProInOrderInfos)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string url = AppSettings.Get("WCS");
+                if (string.IsNullOrEmpty(url))
+                {
+                    throw new Exception($"鏈壘鍒癢CSAApi鍦板潃,璇锋鏌ラ厤缃枃浠�");
+                }
+                string response = HttpHelper.Post($"{url}/api/Packinfo/ReceivePackaxisTask", mESProInOrderInfos.Serialize());
+
+                return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("杩斿洖閿欒");
             }
             catch (Exception ex)
             {
@@ -1974,5 +2036,56 @@
                 throw new Exception(ex.Message);
             }
         }
+        public WebResponseContent BoxingInBound(string stationCode,List<string> barCodes)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //鑾峰彇鎴愬搧搴撳瓨
+                Dt_ProStockInfo proStockInfoOld = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == stationCode);
+                if (proStockInfoOld != null)
+                {
+                    return content.Error($"鎵樼洏{stationCode}宸插瓨鍦�");
+                }
+                //鑾峰彇鏉$爜淇℃伅
+                List<Dt_MESProInOrderInfo> proInOrderInfos = _inboundRepository.MESProInOrderInfoRepository.QueryData(x=> barCodes.Contains(x.BarCode));
+                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x=>x.MaterielCode== proInOrderInfos.FirstOrDefault().MaterialCode);
+                List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>();
+                foreach (var item in proInOrderInfos)
+                {
+                    Dt_ProStockInfoDetail proStockInfoDetail = new Dt_ProStockInfoDetail()
+                    {
+                        ProductCode = materielInfo.MaterielCode,
+                        ProductNo = item.BarCode,
+                        ProductName = materielInfo.MaterielName,
+                        ProductSpec = materielInfo.MaterielSpec,
+                        LotNumber = item.ProcessNum.ToString(),
+                        ProductUnit = materielInfo.MaterielUnit,
+                        StockQty = item.ProQuantity,
+                        ProStockDetailStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt()
+                    };
+                    proStockInfoDetails.Add(proStockInfoDetail);
+                }
+                
+                Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
+                {
+                    PalletCode = stationCode,
+                    ProInOrderNo = proInOrderInfos.FirstOrDefault().ProductOrderNo,
+                    ProStockAttribute = materielInfo.MaterielSourceType,
+                    PalletType = 1,
+                    LocationCode = "",
+                    WarehouseId = materielInfo.WarehouseId,
+                    StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+                    proStockInfoDetails = proStockInfoDetails
+                };
+                BaseDal.Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand();
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 2fad111..eee9d01 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -986,15 +986,10 @@
                             {
                                 //鍒涘缓浠诲姟
                                 tasks = GetTasks(result.Item1, result.Item3);
-                                result.Item2.ForEach(x =>
-                                {
-                                    OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
-                                });
                                 result.Item3.ForEach(x =>
                                 {
                                     x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
                                 });
-
                                 stockInfos = result.Item1;
                                 Orders = result.Item2;
                                 outStockLockInfos = result.Item3;
@@ -1033,10 +1028,6 @@
                             {
                                 //鍒涘缓浠诲姟
                                 tasks = GetTasks(result.Item1, result.Item3);
-                                result.Item2.ForEach(x =>
-                                {
-                                    OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
-                                });
                                 result.Item3.ForEach(x =>
                                 {
                                     x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs"
index 5b9017b..7938b29 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs"
@@ -216,9 +216,12 @@
                 //鑾峰彇璐т綅
                 Dt_LocationInfo startLocationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.Row == relocation.StartRow && x.Columns == relocation.StartColumn && x.Layer == relocation.StartLayer && x.RoadwayNo == relocation.RoadWay);
                 Dt_LocationInfo endLocationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.Row == relocation.TargetRow && x.Columns == relocation.TargetColumn && x.Layer == relocation.TargetLayer && x.RoadwayNo == relocation.RoadWay);
-                
+                if (startLocationInfo==null || endLocationInfo==null)
+                {
+                    return content.Error("璧峰璐т綅鎴栫粓鐐硅揣浣嶄笉瀛樺湪");
+                }
                 //鍒ゆ柇鏉′欢
-                if (startLocationInfo != null && startLocationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && startLocationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && endLocationInfo != null && endLocationInfo.LocationStatus == LocationStatusEnum.Free.ObjToInt() && endLocationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt())
+                if (startLocationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && startLocationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && endLocationInfo.LocationStatus == LocationStatusEnum.Free.ObjToInt() && endLocationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt())
                 {
                     Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.LocationCode == startLocationInfo.LocationCode);
                     Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.LocationCode == startLocationInfo.LocationCode);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
index e7d6612..e005761 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
@@ -36,7 +36,7 @@
         {
             _taskService = taskService;
             _outMESOrderService = outMESOrderService;
-            _proInOrderInfoService=proInOrderInfoService;
+            _proInOrderInfoService = proInOrderInfoService;
             _invokeMESService = invokeMESService;
         }
         /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
index 72fb24d..ef7c6a1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
@@ -30,12 +30,11 @@
         /// WCS鐢宠鍏ュ簱浠诲姟(涓嶅垎閰嶈揣浣�)
         /// </summary>
         /// <param name="stationCode"></param>
-        /// <param name="palletCode"></param>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("DeviceRequestInboundTaskSimple"), AllowAnonymous]
-        public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode, string palletCode)
+        public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode)
         {
-            return Service.DeviceRequestInboundTaskSimple(stationCode, palletCode);
+            return Service.DeviceRequestInboundTaskSimple(stationCode);
         }
 
         /// <summary>
@@ -326,5 +325,14 @@
         {
             return Service.DisableStatus(keys);
         }
+        /// <summary>
+        /// 鎴愬搧缁勭洏
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("BoxingInBound"), AllowAnonymous]
+        public WebResponseContent BoxingInBound(string stationCode, [FromBody] List<string> barCodes)
+        {
+            return Service.BoxingInBound(stationCode, barCodes);
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
index 683739a..94ef21d 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257&\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257&\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256.xlsx"
new file mode 100644
index 0000000..57b4faa
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257&\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256-251118.xlsx"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256.xlsx"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\347\272\270\346\235\257\347\272\270\347\256\261\344\270\212\346\226\231\346\241\201\346\236\266\351\200\232\350\256\257\345\215\217\350\256\256-251118.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\346\234\272\345\231\250\344\272\272IO\351\200\232\350\256\257\350\241\25020250712.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\346\234\272\345\231\250\344\272\272IO\351\200\232\350\256\257\350\241\25020250712.xlsx"
index b93e12b..5c200f6 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\346\234\272\345\231\250\344\272\272IO\351\200\232\350\256\257\350\241\25020250712.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\346\234\272\345\231\250\344\272\272IO\351\200\232\350\256\257\350\241\25020250712.xlsx"
Binary files differ

--
Gitblit v1.9.3