From 48f4481b61e6da5878415c3bc7ad5a1881244a93 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 22 11月 2024 07:57:46 +0800
Subject: [PATCH] 2222

---
 DBScript/02_DML/01_InitData.sql                                                                        |   19 +
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/UpiStatusEnum.cs                       |   12 
 SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs                                       |   22 +
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/DataProcess_RobotBuffer_ModeChange.cs                   |  139 ++++++++
 SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs                                              |   88 +++-
 CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl                                  |   38 ++
 SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs                                     |   10 
 CC/iWareModel/EnumType/WMS/RbRunModeEnum.cs                                                            |   33 +
 CC/iWareModel/EnumType/WMS/UpiStatusEnum.cs                                                            |   44 ++
 CC/iWareModel/EnumType/WMS/AreaCodeEnum.cs                                                             |   16 
 CC/iWareSql/WmsDBModel/wms_rbline_runmode.cs                                                           |   47 ++
 CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd                                            |    4 
 CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs                                         |  106 ++++-
 CC/iWareSql/iWareSql.csproj                                                                            |    1 
 SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs                                           |   88 +++++
 CC/iWareSql/WmsDBModel/WmsDBModel.cs                                                                   |    1 
 SDA/iWareSda/Devices/4-Station/StationService/StationService.cs                                        |   73 ++++
 CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs                                  |   60 ++
 CC/iWareSql/WmsDBModel/wms_sys_basic_data.cs                                                           |    7 
 CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd                                            |   41 ++
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsTask/WmsRbLineRunMode.cs                   |   59 +++
 CC/iWareModel/iWareModel.csproj                                                                        |    2 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/1、DataProcess_BZ39.cs                           |   32 +
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/RbRunModeEnum.cs                   |   29 +
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/AreaCodeEnum.cs                        |   16 
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Swagger.json                           |    4 
 CC/iWareCC_ASRS/ThreadService/00_269工位/DataProcess_269.cs                                              |    2 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/2、DataProcess_RobotBuffer_IssueOutboundTask.cs |   12 
 CC/iWareCC_ASRS/iWareCC.csproj                                                                         |    1 
 29 files changed, 888 insertions(+), 118 deletions(-)

diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs b/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
index 647c159..58620f9 100644
--- a/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
+++ b/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
@@ -475,6 +475,9 @@
         private bool W_InboundFinishConfirmField;
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int W_Inbound_TaskIDField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private bool W_IsRotateField;
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
@@ -484,6 +487,12 @@
         private short W_LengthField;
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool W_OutboundFinishConfirmField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int W_Outbound_TaskIDField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private string W_PackageLengthField;
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
@@ -491,9 +500,6 @@
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
         private bool W_ReqOutField;
-        
-        [System.Runtime.Serialization.OptionalFieldAttribute()]
-        private string W_TaskIDField;
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
         private short W_WidthField;
@@ -619,6 +625,19 @@
         }
         
         [System.Runtime.Serialization.DataMemberAttribute()]
+        public int W_Inbound_TaskID {
+            get {
+                return this.W_Inbound_TaskIDField;
+            }
+            set {
+                if ((this.W_Inbound_TaskIDField.Equals(value) != true)) {
+                    this.W_Inbound_TaskIDField = value;
+                    this.RaisePropertyChanged("W_Inbound_TaskID");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
         public bool W_IsRotate {
             get {
                 return this.W_IsRotateField;
@@ -658,6 +677,32 @@
         }
         
         [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool W_OutboundFinishConfirm {
+            get {
+                return this.W_OutboundFinishConfirmField;
+            }
+            set {
+                if ((this.W_OutboundFinishConfirmField.Equals(value) != true)) {
+                    this.W_OutboundFinishConfirmField = value;
+                    this.RaisePropertyChanged("W_OutboundFinishConfirm");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int W_Outbound_TaskID {
+            get {
+                return this.W_Outbound_TaskIDField;
+            }
+            set {
+                if ((this.W_Outbound_TaskIDField.Equals(value) != true)) {
+                    this.W_Outbound_TaskIDField = value;
+                    this.RaisePropertyChanged("W_Outbound_TaskID");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
         public string W_PackageLength {
             get {
                 return this.W_PackageLengthField;
@@ -692,19 +737,6 @@
                 if ((this.W_ReqOutField.Equals(value) != true)) {
                     this.W_ReqOutField = value;
                     this.RaisePropertyChanged("W_ReqOut");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string W_TaskID {
-            get {
-                return this.W_TaskIDField;
-            }
-            set {
-                if ((object.ReferenceEquals(this.W_TaskIDField, value) != true)) {
-                    this.W_TaskIDField = value;
-                    this.RaisePropertyChanged("W_TaskID");
                 }
             }
         }
@@ -1441,11 +1473,23 @@
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/InboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/InboundFinishConfirmResponse")]
         System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> InboundFinishConfirmAsync(int deviceId, string stationCode);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteInStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteInStoreTaskInfoResponse")]
-        iWareCC.StationService.SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height);
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/OutboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/OutboundFinishConfirmResponse")]
+        iWareCC.StationService.SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/OutboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/OutboundFinishConfirmResponse")]
+        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> OutboundFinishConfirmAsync(int deviceId, string stationCode);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteInStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteInStoreTaskInfoResponse")]
-        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteInStoreTaskInfoAsync(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height);
+        iWareCC.StationService.SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteInStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteInStoreTaskInfoResponse")]
+        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteInStoreTaskInfoAsync(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteOutStoreTaskInfoResponse")]
+        iWareCC.StationService.SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteOutStoreTaskInfoResponse")]
+        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteOutStoreTaskInfoAsync(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteStation_FinishACK", ReplyAction="http://tempuri.org/IStationService/WriteStation_FinishACKResponse")]
         iWareCC.StationService.SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId);
@@ -1581,12 +1625,28 @@
             return base.Channel.InboundFinishConfirmAsync(deviceId, stationCode);
         }
         
-        public iWareCC.StationService.SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height) {
-            return base.Channel.WriteInStoreTaskInfo(deviceId, stationCode, toPlaceNo, length, width, height);
+        public iWareCC.StationService.SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode) {
+            return base.Channel.OutboundFinishConfirm(deviceId, stationCode);
         }
         
-        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteInStoreTaskInfoAsync(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height) {
-            return base.Channel.WriteInStoreTaskInfoAsync(deviceId, stationCode, toPlaceNo, length, width, height);
+        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> OutboundFinishConfirmAsync(int deviceId, string stationCode) {
+            return base.Channel.OutboundFinishConfirmAsync(deviceId, stationCode);
+        }
+        
+        public iWareCC.StationService.SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID) {
+            return base.Channel.WriteInStoreTaskInfo(deviceId, stationCode, toPlaceNo, length, width, height, inbound_TaskID);
+        }
+        
+        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteInStoreTaskInfoAsync(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID) {
+            return base.Channel.WriteInStoreTaskInfoAsync(deviceId, stationCode, toPlaceNo, length, width, height, inbound_TaskID);
+        }
+        
+        public iWareCC.StationService.SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID) {
+            return base.Channel.WriteOutStoreTaskInfo(deviceId, stationCode, sourcePlaceNo, outbound_TaskID);
+        }
+        
+        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteOutStoreTaskInfoAsync(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID) {
+            return base.Channel.WriteOutStoreTaskInfoAsync(deviceId, stationCode, sourcePlaceNo, outbound_TaskID);
         }
         
         public iWareCC.StationService.SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId) {
diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl b/CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl
index abb88a5..b205f97 100644
--- a/CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl
+++ b/CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl
@@ -75,11 +75,23 @@
   <wsdl:message name="IStationService_InboundFinishConfirm_OutputMessage">
     <wsdl:part name="parameters" element="tns:InboundFinishConfirmResponse" />
   </wsdl:message>
+  <wsdl:message name="IStationService_OutboundFinishConfirm_InputMessage">
+    <wsdl:part name="parameters" element="tns:OutboundFinishConfirm" />
+  </wsdl:message>
+  <wsdl:message name="IStationService_OutboundFinishConfirm_OutputMessage">
+    <wsdl:part name="parameters" element="tns:OutboundFinishConfirmResponse" />
+  </wsdl:message>
   <wsdl:message name="IStationService_WriteInStoreTaskInfo_InputMessage">
     <wsdl:part name="parameters" element="tns:WriteInStoreTaskInfo" />
   </wsdl:message>
   <wsdl:message name="IStationService_WriteInStoreTaskInfo_OutputMessage">
     <wsdl:part name="parameters" element="tns:WriteInStoreTaskInfoResponse" />
+  </wsdl:message>
+  <wsdl:message name="IStationService_WriteOutStoreTaskInfo_InputMessage">
+    <wsdl:part name="parameters" element="tns:WriteOutStoreTaskInfo" />
+  </wsdl:message>
+  <wsdl:message name="IStationService_WriteOutStoreTaskInfo_OutputMessage">
+    <wsdl:part name="parameters" element="tns:WriteOutStoreTaskInfoResponse" />
   </wsdl:message>
   <wsdl:message name="IStationService_WriteStation_FinishACK_InputMessage">
     <wsdl:part name="parameters" element="tns:WriteStation_FinishACK" />
@@ -144,9 +156,17 @@
       <wsdl:input wsaw:Action="http://tempuri.org/IStationService/InboundFinishConfirm" message="tns:IStationService_InboundFinishConfirm_InputMessage" />
       <wsdl:output wsaw:Action="http://tempuri.org/IStationService/InboundFinishConfirmResponse" message="tns:IStationService_InboundFinishConfirm_OutputMessage" />
     </wsdl:operation>
+    <wsdl:operation name="OutboundFinishConfirm">
+      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/OutboundFinishConfirm" message="tns:IStationService_OutboundFinishConfirm_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/OutboundFinishConfirmResponse" message="tns:IStationService_OutboundFinishConfirm_OutputMessage" />
+    </wsdl:operation>
     <wsdl:operation name="WriteInStoreTaskInfo">
       <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteInStoreTaskInfo" message="tns:IStationService_WriteInStoreTaskInfo_InputMessage" />
       <wsdl:output wsaw:Action="http://tempuri.org/IStationService/WriteInStoreTaskInfoResponse" message="tns:IStationService_WriteInStoreTaskInfo_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="WriteOutStoreTaskInfo">
+      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfo" message="tns:IStationService_WriteOutStoreTaskInfo_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfoResponse" message="tns:IStationService_WriteOutStoreTaskInfo_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="WriteStation_FinishACK">
       <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteStation_FinishACK" message="tns:IStationService_WriteStation_FinishACK_InputMessage" />
@@ -262,6 +282,15 @@
         <soap:body use="literal" />
       </wsdl:output>
     </wsdl:operation>
+    <wsdl:operation name="OutboundFinishConfirm">
+      <soap:operation soapAction="http://tempuri.org/IStationService/OutboundFinishConfirm" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
     <wsdl:operation name="WriteInStoreTaskInfo">
       <soap:operation soapAction="http://tempuri.org/IStationService/WriteInStoreTaskInfo" style="document" />
       <wsdl:input>
@@ -271,6 +300,15 @@
         <soap:body use="literal" />
       </wsdl:output>
     </wsdl:operation>
+    <wsdl:operation name="WriteOutStoreTaskInfo">
+      <soap:operation soapAction="http://tempuri.org/IStationService/WriteOutStoreTaskInfo" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
     <wsdl:operation name="WriteStation_FinishACK">
       <soap:operation soapAction="http://tempuri.org/IStationService/WriteStation_FinishACK" style="document" />
       <wsdl:input>
diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd b/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
index b2b4a80..0bf77f3 100644
--- a/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
+++ b/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
@@ -170,6 +170,21 @@
       </xs:sequence>
     </xs:complexType>
   </xs:element>
+  <xs:element name="OutboundFinishConfirm">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="deviceId" type="xs:int" />
+        <xs:element minOccurs="0" name="stationCode" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="OutboundFinishConfirmResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="OutboundFinishConfirmResult" nillable="true" type="q12:SdaResEntity" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="WriteInStoreTaskInfo">
     <xs:complexType>
       <xs:sequence>
@@ -179,13 +194,31 @@
         <xs:element minOccurs="0" name="length" type="xs:short" />
         <xs:element minOccurs="0" name="width" type="xs:short" />
         <xs:element minOccurs="0" name="height" type="xs:short" />
+        <xs:element minOccurs="0" name="inbound_TaskID" type="xs:int" />
       </xs:sequence>
     </xs:complexType>
   </xs:element>
   <xs:element name="WriteInStoreTaskInfoResponse">
     <xs:complexType>
       <xs:sequence>
-        <xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteInStoreTaskInfoResult" nillable="true" type="q12:SdaResEntity" />
+        <xs:element xmlns:q13="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteInStoreTaskInfoResult" nillable="true" type="q13:SdaResEntity" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="WriteOutStoreTaskInfo">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="deviceId" type="xs:int" />
+        <xs:element minOccurs="0" name="stationCode" nillable="true" type="xs:string" />
+        <xs:element minOccurs="0" name="sourcePlaceNo" nillable="true" type="xs:string" />
+        <xs:element minOccurs="0" name="outbound_TaskID" type="xs:int" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="WriteOutStoreTaskInfoResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteOutStoreTaskInfoResult" nillable="true" type="q14:SdaResEntity" />
       </xs:sequence>
     </xs:complexType>
   </xs:element>
@@ -201,7 +234,7 @@
   <xs:element name="WriteStation_FinishACKResponse">
     <xs:complexType>
       <xs:sequence>
-        <xs:element xmlns:q13="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_FinishACKResult" nillable="true" type="q13:SdaResEntity" />
+        <xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_FinishACKResult" nillable="true" type="q15:SdaResEntity" />
       </xs:sequence>
     </xs:complexType>
   </xs:element>
@@ -219,7 +252,7 @@
   <xs:element name="WriteScanValidateACKResponse">
     <xs:complexType>
       <xs:sequence>
-        <xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteScanValidateACKResult" nillable="true" type="q14:SdaResEntity" />
+        <xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteScanValidateACKResult" nillable="true" type="q16:SdaResEntity" />
       </xs:sequence>
     </xs:complexType>
   </xs:element>
@@ -237,7 +270,7 @@
   <xs:element name="WriteStation_XigangGetDataForOutResponse">
     <xs:complexType>
       <xs:sequence>
-        <xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_XigangGetDataForOutResult" nillable="true" type="q15:SdaResEntity" />
+        <xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_XigangGetDataForOutResult" nillable="true" type="q17:SdaResEntity" />
       </xs:sequence>
     </xs:complexType>
   </xs:element>
diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd b/CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd
index c44b458..b24b7be 100644
--- a/CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd
+++ b/CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd
@@ -42,13 +42,15 @@
       <xs:element minOccurs="0" name="W_Destination_Out" nillable="true" type="xs:string" />
       <xs:element minOccurs="0" name="W_Height" type="xs:short" />
       <xs:element minOccurs="0" name="W_InboundFinishConfirm" type="xs:boolean" />
+      <xs:element minOccurs="0" name="W_Inbound_TaskID" type="xs:int" />
       <xs:element minOccurs="0" name="W_IsRotate" type="xs:boolean" />
       <xs:element minOccurs="0" name="W_KittingInfo" nillable="true" type="xs:string" />
       <xs:element minOccurs="0" name="W_Length" type="xs:short" />
+      <xs:element minOccurs="0" name="W_OutboundFinishConfirm" type="xs:boolean" />
+      <xs:element minOccurs="0" name="W_Outbound_TaskID" type="xs:int" />
       <xs:element minOccurs="0" name="W_PackageLength" nillable="true" type="xs:string" />
       <xs:element minOccurs="0" name="W_PackageWidth" nillable="true" type="xs:string" />
       <xs:element minOccurs="0" name="W_ReqOut" type="xs:boolean" />
-      <xs:element minOccurs="0" name="W_TaskID" nillable="true" type="xs:string" />
       <xs:element minOccurs="0" name="W_Width" type="xs:short" />
       <xs:element minOccurs="0" name="W_X_Offset" nillable="true" type="xs:string" />
       <xs:element minOccurs="0" name="W_Y_Offset" nillable="true" type="xs:string" />
diff --git "a/CC/iWareCC_ASRS/ThreadService/00_269\345\267\245\344\275\215/DataProcess_269.cs" "b/CC/iWareCC_ASRS/ThreadService/00_269\345\267\245\344\275\215/DataProcess_269.cs"
index 5eb3170..ce9dfce 100644
--- "a/CC/iWareCC_ASRS/ThreadService/00_269\345\267\245\344\275\215/DataProcess_269.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/00_269\345\267\245\344\275\215/DataProcess_269.cs"
@@ -60,7 +60,7 @@
                                     continue;
                                 }
 
-                                upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�;
+                                upiObj.AreaCode = (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯;
 
                                 wmsDB.SaveChanges();
                             }
diff --git "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
index 8c4b728..b99875d 100644
--- "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
@@ -63,30 +63,62 @@
                                 }
                                 //鏌ヨ鏄惁榻愬寘
                                 var allList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList();
-                                var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�).ToList();
+                                var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯
+                                ||
+                                x.AreaCode == (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�
+                                 ||
+                                x.AreaCode == (int)AreaCodeEnum.鐮佸灈鍖哄煙
+                                  ||
+                                x.AreaCode == (int)AreaCodeEnum.鏈哄櫒浜哄矝缂撳瓨鍖哄煙
+                                ).ToList();
                                 if (isQiTaoList.Count() != allList.Count())
                                 {//涓嶉綈鍖�
                                     qitaoReault = false;
+                                    upiObj.AreaCode = (int)AreaCodeEnum.缂撳瓨鍒嗘嫞鍖�;
                                 }
                                 else
                                 {//榻愬寘
                                     qitaoReault = true;
+                                    upiObj.AreaCode = (int)AreaCodeEnum.鐮佸灈鍖哄煙;
                                 }
+
+                                using (StationServiceClient client = new StationServiceClient())
+                                {
+                                    var res = await client.WriteQiTaoInfoAsync((int)EDevice.Station, rgvLocation, qitaoReault);
+                                    if (!res.result)
+                                    {
+                                        SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滃け璐�,WriteQiTaoInfoAsync杩斿洖:{res.resMsg}";
+                                        continue;
+                                    }
+                                    else
+                                    {
+                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滄垚鍔�,WriteQiTaoInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation},榻愬缁撴灉:{qitaoReault}");
+                                    }
+                                }
+
+                                //鏇存柊UPI鐘舵��
+                                var upiObjList = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).ToList();
+                                foreach (var item in upiObjList)
+                                {
+                                    if (qitaoReault)
+                                    {
+                                        item.UpiStatus = (int)UpiStatusEnum.宸查綈鍖�;
+                                    }
+                                    else
+                                    {
+                                        item.UpiStatus = (int)UpiStatusEnum.涓嶉綈鍖�;
+                                    }
+                                }
+                                //鏇存柊 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢 鏁版嵁
+                                var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault();
+                                rbRunMode.PlanNo = upiObj.PlanNo;
+                                rbRunMode.OrderId = upiObj.OrderId;
+                                rbRunMode.PackageCode = upiObj.PackageCode;
+
+                                wmsDB.SaveChanges();
                             }
 
-                            using (StationServiceClient client = new StationServiceClient())
-                            {
-                                var res = await client.WriteQiTaoInfoAsync((int)EDevice.Station, rgvLocation, qitaoReault);
-                                if (!res.result)
-                                {
-                                    SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滃け璐�,WriteQiTaoInfoAsync杩斿洖:{res.resMsg}";
-                                    continue;
-                                }
-                                else
-                                {
-                                    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鎺ㄩ�侀綈濂楃粨鏋滄垚鍔�,WriteQiTaoInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation},榻愬缁撴灉:{qitaoReault}");
-                                }
-                            }
+
                         }
                     }
                 }
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
new file mode 100644
index 0000000..595fc18
--- /dev/null
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
@@ -0,0 +1,139 @@
+锘縰sing Admin.NET.Application;
+using iWareCC.Common.Helper;
+using iWareCC.StationService;
+using iWareCommon.Common.Globle;
+using iWareCommon.Utils;
+using iWareModel;
+using iWareSql.DataAccess;
+using iWareSql.DBModel;
+using iWareSql.WmsDBModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.ServiceModel.Configuration;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using WZ.Useful.Commons;
+using XiGang.Core.Model;
+
+namespace iWareCC.ThreadService
+{
+    /// <summary>
+    /// 鏈哄櫒浜虹紦瀛樺矝 妯″紡鍒囨崲 澶勭悊
+    /// </summary>
+    public static class DataProcess_RobotBuffer_ModeChange
+    {
+        public static async void Handler()
+        {
+            var alertMsg = "";
+            LogType logType = LogType.DataProcess_BZ39;
+            while (true)
+            {
+                Thread.Sleep(2000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆�
+                SystemWarningMsg._lbl_alert_DataProcess_BZ39 = string.Empty;
+                try
+                {
+                    if (SystemValue.isAllowRuning_DataProcess_BZ39 && SystemValue.isStartedModel)
+                    {
+                        var rgvLocation = StationLocationEnum.BZ39.ToString();
+                        /*
+                         * 1銆佸鏋� bz01 鐨勬澘鏂欐槸鏂板寘 锛屽苟涓旀湁瑕佸嚭搴撶殑闇�姹傦紝灏卞垏鎹㈠埌鍑哄簱妯″紡锛屽惁鍒欐槸鍏ュ簱妯″紡
+                         * 2銆�
+                         */
+
+
+                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
+                        if (obj.R_ReqParseData)
+                        {
+                            var result = obj.R_ReadCodeResult;
+                            if (string.IsNullOrEmpty(result))
+                            {
+                                SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-璇锋眰浜嗚В鐮侊紝浣嗘槸缁撴灉鏄┖鐨�,姝ゆ寰幆缁撴潫";
+                                continue;
+                            }
+                            var upiCode = result;
+                            var qitaoReault = false;
+                            using (WmsDBModel wmsDB = new WmsDBModel())
+                            {
+                                var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault();
+                                var lastUpi = rbRunMode.UPI;
+                                var lastPackageCode = rbRunMode.PackageCode;
+
+                                var rgvLocation_BZ01 = StationLocationEnum.BZ01.ToString();
+                                var currUpi_BZ01 = "";
+                                var obj_BZ01 = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation_BZ01.ToString()).FirstOrDefault();
+                                if (obj.R_ReqParseData)
+                                {
+                                    currUpi_BZ01 = obj_BZ01.R_ReadCodeResult;
+                                }
+                                if (string.IsNullOrEmpty(currUpi_BZ01))
+                                {
+
+                                }
+
+                                var rgvLocation22 = StationLocationEnum.BZ01.ToString();
+                                /*
+                                 * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬
+                                 * 2銆佹牴鎹綈濂楃粨鏋滐紝鎺ㄩ�佺粰PLC
+                                 */
+
+
+                                //瑕佹槸鏈夊凡涓嬪彂鐨勪换鍔★紝灏变笉瑕佹墽琛�
+                                var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB);
+                                if (!isValidate)
+                                {
+                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-鏈夆�樺凡涓嬪彂鈥欑殑浠诲姟锛屼笉鑳藉鐞�,姝ゆ寰幆缁撴潫";
+                                    continue;
+                                }
+
+
+
+                                var taskList = wmsDB.wms_rbline_task.Where(x => x.PlaceCode == obj.R_OutboundNumber
+                              && x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
+                              && x.TaskStatus == (int)TaskStatusEnum.鏂板缓).OrderBy(x => x.PackageCode).ToList();
+                                if (taskList == null)
+                                {
+                                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()},鏍规嵁 R_OutboundNumber:{obj.R_OutboundNumber}娌℃湁鎵惧埌宸蹭笅鍙戠殑浠诲姟 ";
+                                    continue;
+                                }
+
+                                var doTask = taskList.FirstOrDefault();
+
+                                var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault();
+                                if (upiObj == null)
+                                {
+                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()},鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 ";
+                                    continue;
+                                }
+
+                                //杩欓噷鏀逛负 涓嬪彂 鍑哄簱浠诲姟
+                                using (StationServiceClient client = new StationServiceClient())
+                                {
+                                    var res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo));
+                                    if (!res.result)
+                                    {
+                                        SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
+                                        continue;
+                                    }
+                                    else
+                                    {
+                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,WriteOutStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                    }
+                                }
+
+                                wmsDB.SaveChanges();
+                            }
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 += " 鍑虹幇寮傚父:" + ex.Message + SysGloble.SPLIT_STR;
+                    Log4NetHelper.WriteErrorLog(logType, " 鍑虹幇寮傚父锛�" + ex.Message, ex);
+                }
+            }
+        }
+
+    }
+}
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs"
index 12475a8..4cb7bf2 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs"
@@ -75,20 +75,6 @@
                                     continue;
                                 }
 
-                                using (StationServiceClient client = new StationServiceClient())
-                                {
-                                    var res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, place.PlaceCode, (short)upiObj.Length,
-                                        (short)upiObj.Width, (short)upiObj.Thk);
-                                    if (!res.result)
-                                    {
-                                        SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,WriteInStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
-                                        continue;
-                                    }
-                                    else
-                                    {
-                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 鎴愬姛,WriteInStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
-                                    }
-                                }
 
                                 //璁板綍浠诲姟
                                 var _id = Yitter.IdGenerator.YitIdHelper.NextId();
@@ -122,6 +108,24 @@
 
                                 wmsDB.wms_rbline_task.Add(task);
 
+                                using (StationServiceClient client = new StationServiceClient())
+                                {
+                                    var res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, place.PlaceCode,
+                                        (short)upiObj.Length,
+                                        (short)upiObj.Width, (short)upiObj.Thk, Convert.ToInt32(task.TaskNo));
+                                    if (!res.result)
+                                    {
+                                        SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,WriteInStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
+                                        continue;
+                                    }
+                                    else
+                                    {
+                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 鎴愬姛,WriteInStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                    }
+                                }
+
+
+
                                 place.PlaceStatus = (int)PlaceStatusEnum.閿佸畾;
 
                                 wmsDB.SaveChanges();
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs"
index a940e3c..b70a353 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs"
@@ -72,11 +72,8 @@
                                     SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()},鏍规嵁 R_OutboundNumber:{obj.R_OutboundNumber}娌℃湁鎵惧埌宸蹭笅鍙戠殑浠诲姟 ";
                                     continue;
                                 }
-                                var groups = taskList.GroupBy(x => x.PackageCode).ToList();
-                                foreach (var gg in groups)
-                                {
 
-                                }
+                                var doTask = taskList.FirstOrDefault();
 
                                 var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault();
                                 if (upiObj == null)
@@ -88,16 +85,15 @@
                                 //杩欓噷鏀逛负 涓嬪彂 鍑哄簱浠诲姟
                                 using (StationServiceClient client = new StationServiceClient())
                                 {
-                                    var res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, "", (short)upiObj.Length,
-                                        (short)upiObj.Width, (short)upiObj.Thk);
+                                    var res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo));
                                     if (!res.result)
                                     {
-                                        SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,WriteInStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
+                                        SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
                                         continue;
                                     }
                                     else
                                     {
-                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 鎴愬姛,WriteInStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,WriteOutStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
                                     }
                                 }
 
diff --git a/CC/iWareCC_ASRS/iWareCC.csproj b/CC/iWareCC_ASRS/iWareCC.csproj
index 6f96d19..04c7263 100644
--- a/CC/iWareCC_ASRS/iWareCC.csproj
+++ b/CC/iWareCC_ASRS/iWareCC.csproj
@@ -155,6 +155,7 @@
     <Compile Include="DeviceThreadFactory\DeviceThreadService\SrmThreadService\SrmTaskThreadService.cs" />
     <Compile Include="ThreadService\00_269宸ヤ綅\DataProcess_269.cs" />
     <Compile Include="ThreadService\01_BZ01宸ヤ綅锛堟竻鐏帮紝娲楁澘鍚庡伐浣嶏級\DataProcess_BZ01.cs" />
+    <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡DataProcess_RobotBuffer_ModeChange.cs" />
     <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡Outbound\2銆丏ataProcess_RobotBuffer_IssueOutboundTask.cs" />
     <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡Outbound\1銆丏ataProcess_RobotBuffer_AutoQiTaoOutbound.cs" />
     <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡Outbound\3銆丏ataProcess_RobotBuffer_FinishTaskForOutbound.cs" />
diff --git a/CC/iWareModel/EnumType/WMS/AreaCodeEnum.cs b/CC/iWareModel/EnumType/WMS/AreaCodeEnum.cs
index 6d77c03..e8f37f5 100644
--- a/CC/iWareModel/EnumType/WMS/AreaCodeEnum.cs
+++ b/CC/iWareModel/EnumType/WMS/AreaCodeEnum.cs
@@ -12,37 +12,43 @@
     public enum AreaCodeEnum
     {
         /// <summary>
+        /// 寰呯紦瀛樺垎鎷e尯 
+        /// </summary>
+        [Description("寰呯紦瀛樺垎鎷e尯")]
+        寰呯紦瀛樺垎鎷e尯 = 1,
+
+        /// <summary>
         /// 缂撳瓨鍒嗘嫞鍖� 
         /// </summary>
         [Description("缂撳瓨鍒嗘嫞鍖�")]
-        缂撳瓨鍒嗘嫞鍖� = 1,
+        缂撳瓨鍒嗘嫞鍖� = 2,
 
         /// <summary>
         /// 鏈哄櫒浜哄矝缂撳瓨鍖哄煙
         /// </summary>
         [Description("鏈哄櫒浜哄矝缂撳瓨鍖哄煙")]
-        鏈哄櫒浜哄矝缂撳瓨鍖哄煙 = 2,
+        鏈哄櫒浜哄矝缂撳瓨鍖哄煙 = 3,
 
         /// <summary>
         /// 鐮佸灈鍖哄煙 
         /// </summary>
         [Description("鐮佸灈鍖哄煙")]
 
-        鐮佸灈鍖哄煙 = 3,
+        鐮佸灈鍖哄煙 = 4,
 
         /// <summary>
         /// 鍚堝寘瑁佸垏鍖� 
         /// </summary>
         [Description("鍚堝寘瑁佸垏鍖�")]
 
-        鍚堝寘瑁佸垏鍖� = 4,
+        鍚堝寘瑁佸垏鍖� = 5,
 
         /// <summary>
         /// 鍖呰绾垮尯鍩� 
         /// </summary>
         [Description("鍖呰绾垮尯鍩�")]
 
-        鍖呰绾垮尯鍩� = 5
+        鍖呰绾垮尯鍩� = 6
 
     }
 
diff --git a/CC/iWareModel/EnumType/WMS/RbRunModeEnum.cs b/CC/iWareModel/EnumType/WMS/RbRunModeEnum.cs
new file mode 100644
index 0000000..7980f82
--- /dev/null
+++ b/CC/iWareModel/EnumType/WMS/RbRunModeEnum.cs
@@ -0,0 +1,33 @@
+锘�
+
+using System.ComponentModel;
+
+namespace Admin.NET.Application
+{
+
+    /// <summary>
+    /// 鏈哄櫒浜虹紦瀛樺矝杩愯妯″紡
+    /// </summary>
+    [Description("鏈哄櫒浜虹紦瀛樺矝杩愯妯″紡")]
+    public enum RbRunModeEnum
+    {
+        /// <summary>
+        /// 鍏ュ簱妯″紡
+        /// </summary>
+        [Description("鍏ュ簱妯″紡")]
+        鍏ュ簱妯″紡 = 1,
+
+        /// <summary>
+        /// 鍑哄簱妯″紡
+        /// </summary>
+        [Description("鍑哄簱妯″紡")]
+        鍑哄簱妯″紡 = 2,
+
+        /// <summary>
+        /// 寮哄埗鍑哄簱妯″紡
+        /// </summary>
+        [Description("寮哄埗鍑哄簱妯″紡")]
+        寮哄埗鍑哄簱妯″紡 = 3,
+
+    }
+}
\ No newline at end of file
diff --git a/CC/iWareModel/EnumType/WMS/UpiStatusEnum.cs b/CC/iWareModel/EnumType/WMS/UpiStatusEnum.cs
new file mode 100644
index 0000000..00e9d98
--- /dev/null
+++ b/CC/iWareModel/EnumType/WMS/UpiStatusEnum.cs
@@ -0,0 +1,44 @@
+锘�
+
+using System.ComponentModel;
+
+namespace Admin.NET.Application { 
+
+/// <summary>
+/// 鏉挎枡鐘舵�佹灇涓�
+/// </summary>
+[Description("鏉挎枡鐘舵�佹灇涓�")]
+public enum UpiStatusEnum
+{
+    /// <summary>
+    /// 鍒濆
+    /// </summary>
+    [Description("鍒濆")]
+    鍒濆 = 0,
+
+    /// <summary>
+    /// 涓嶉綈鍖�
+    /// </summary>
+    [Description("涓嶉綈鍖�")]
+    涓嶉綈鍖� = 1,
+
+    /// <summary>
+    /// 宸查綈鍖�
+    /// </summary>
+    [Description("宸查綈鍖�")]
+    宸查綈鍖� = 2,
+
+    /// <summary>
+    /// 宸茬爜鍨�
+    /// </summary>
+    [Description("宸茬爜鍨�")]
+    宸茬爜鍨� = 3,
+
+    /// <summary>
+    /// 宸插悎鍖�
+    /// </summary>
+    [Description("宸插悎鍖�")]
+    宸插悎鍖� = 4
+
+}
+}
\ No newline at end of file
diff --git a/CC/iWareModel/iWareModel.csproj b/CC/iWareModel/iWareModel.csproj
index b61fc9f..d2e2f0e 100644
--- a/CC/iWareModel/iWareModel.csproj
+++ b/CC/iWareModel/iWareModel.csproj
@@ -112,9 +112,11 @@
     <Compile Include="EnumType\TaskExcuteTypeEnum.cs" />
     <Compile Include="EnumType\ThreadDirectionEnum.cs" />
     <Compile Include="EnumType\WMS\AreaCodeEnum.cs" />
+    <Compile Include="EnumType\WMS\RbRunModeEnum.cs" />
     <Compile Include="EnumType\WMS\RbTaskTypeEnum.cs" />
     <Compile Include="EnumType\WMS\StockStatusEnum.cs" />
     <Compile Include="EnumType\WMS\TaskStatusEnum.cs" />
+    <Compile Include="EnumType\WMS\UpiStatusEnum.cs" />
     <Compile Include="EnumType\WMS\WmsPlaceEnum.cs" />
     <Compile Include="EnumType\XiGangPublicCommon\AddTransferTaskEnum.cs" />
     <Compile Include="EnumType\XiGangPublicCommon\MainInOutFlagEnum.cs" />
diff --git a/CC/iWareSql/WmsDBModel/WmsDBModel.cs b/CC/iWareSql/WmsDBModel/WmsDBModel.cs
index 0385382..4ad1a5e 100644
--- a/CC/iWareSql/WmsDBModel/WmsDBModel.cs
+++ b/CC/iWareSql/WmsDBModel/WmsDBModel.cs
@@ -70,6 +70,7 @@
         public virtual DbSet<wms_config_serial_sn> wms_config_serial_sn { get; set; }
         public virtual DbSet<wms_config_sncode_rule> wms_config_sncode_rule { get; set; }
         public virtual DbSet<wms_log_action> wms_log_action { get; set; }
+        public virtual DbSet<wms_rbline_runmode> wms_rbline_runmode { get; set; }
         public virtual DbSet<wms_rbline_task> wms_rbline_task { get; set; }
         public virtual DbSet<wms_record_print> wms_record_print { get; set; }
         public virtual DbSet<wms_record_trans> wms_record_trans { get; set; }
diff --git a/CC/iWareSql/WmsDBModel/wms_rbline_runmode.cs b/CC/iWareSql/WmsDBModel/wms_rbline_runmode.cs
new file mode 100644
index 0000000..f719ea4
--- /dev/null
+++ b/CC/iWareSql/WmsDBModel/wms_rbline_runmode.cs
@@ -0,0 +1,47 @@
+namespace iWareSql.WmsDBModel
+{
+    using System;
+    using System.Collections.Generic;
+    using System.ComponentModel.DataAnnotations;
+    using System.ComponentModel.DataAnnotations.Schema;
+    using System.Data.Entity.Spatial;
+
+    public partial class wms_rbline_runmode
+    {
+        [DatabaseGenerated(DatabaseGeneratedOption.None)]
+        public long Id { get; set; }
+
+        [StringLength(50)]
+        public string UPI { get; set; }
+
+        [StringLength(50)]
+        public string PlanNo { get; set; }
+
+        [StringLength(50)]
+        public string OrderId { get; set; }
+
+        [StringLength(50)]
+        public string PackageCode { get; set; }
+
+        public int? LineRunMode { get; set; }
+
+        [StringLength(50)]
+        public string LineRunModeName { get; set; }
+
+        public DateTime? CreateTime { get; set; }
+
+        public DateTime? UpdateTime { get; set; }
+
+        public long? CreateUserId { get; set; }
+
+        [StringLength(64)]
+        public string CreateUserName { get; set; }
+
+        public long? UpdateUserId { get; set; }
+
+        [StringLength(64)]
+        public string UpdateUserName { get; set; }
+
+        public bool IsDelete { get; set; }
+    }
+}
diff --git a/CC/iWareSql/WmsDBModel/wms_sys_basic_data.cs b/CC/iWareSql/WmsDBModel/wms_sys_basic_data.cs
index 0d4e564..22ed97e 100644
--- a/CC/iWareSql/WmsDBModel/wms_sys_basic_data.cs
+++ b/CC/iWareSql/WmsDBModel/wms_sys_basic_data.cs
@@ -28,6 +28,9 @@
 
         public DateTime? LastUnLineTime { get; set; }
 
+        [StringLength(50)]
+        public string OperationRemark { get; set; }
+
         public DateTime? CreateTime { get; set; }
 
         public DateTime? UpdateTime { get; set; }
@@ -43,9 +46,5 @@
         public string UpdateUserName { get; set; }
 
         public bool IsDelete { get; set; }
-
-
-        [StringLength(50)]
-        public string OperationRemark { get; set; }
     }
 }
diff --git a/CC/iWareSql/iWareSql.csproj b/CC/iWareSql/iWareSql.csproj
index 7707b83..1a74c5c 100644
--- a/CC/iWareSql/iWareSql.csproj
+++ b/CC/iWareSql/iWareSql.csproj
@@ -217,6 +217,7 @@
     <Compile Include="WmsDBModel\wms_config_serial_sn.cs" />
     <Compile Include="WmsDBModel\wms_config_sncode_rule.cs" />
     <Compile Include="WmsDBModel\wms_log_action.cs" />
+    <Compile Include="WmsDBModel\wms_rbline_runmode.cs" />
     <Compile Include="WmsDBModel\wms_rbline_task.cs" />
     <Compile Include="WmsDBModel\wms_record_print.cs" />
     <Compile Include="WmsDBModel\wms_record_trans.cs" />
diff --git a/DBScript/02_DML/01_InitData.sql b/DBScript/02_DML/01_InitData.sql
index 5b4c7d0..6e17630 100644
--- a/DBScript/02_DML/01_InitData.sql
+++ b/DBScript/02_DML/01_InitData.sql
@@ -25,5 +25,22 @@
 		0
 	);
 	
-	
+	 DELETE wms_rbline_runmode ;
+INSERT INTO wms_rbline_runmode( 
+ [id],
+ [CreateUserName],
+ [CreateTime],
+ [UpdateUserName],
+ [UpdateTime],
+ [IsDelete]
+)
+VALUES
+	(
+		'613664349835335',
+		'sys',
+		getdate(),
+		'sys',
+		getdate(),
+		0
+	);
 	
\ No newline at end of file
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Swagger.json b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Swagger.json
index f7cc3ec..d94d598 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Swagger.json
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Configuration/Swagger.json
@@ -2,11 +2,11 @@
   "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
 
   "SpecificationDocumentSettings": {
-    "DocumentTitle": "iWareWMS鍘熸枡搴�(鏍囧噯鐗�)",
+    "DocumentTitle": "椴佷附鏈ㄤ笟鍖呰绾�",
     "GroupOpenApiInfos": [
       {
         "Group": "Default",
-        "Title": "iWareWMS鍘熸枡搴�(鏍囧噯鐗�)",
+        "Title": "椴佷附鏈ㄤ笟鍖呰绾�",
         "Description": "甯姪涓浗鍒堕�犱笟瀹炵幇鑷姩鍖栥�佹櫤鑳藉寲銆�",
         "Version": "1.0.0",
         "Order": 1000
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsTask/WmsRbLineRunMode.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsTask/WmsRbLineRunMode.cs
new file mode 100644
index 0000000..695ad1b
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsTask/WmsRbLineRunMode.cs
@@ -0,0 +1,59 @@
+锘縰sing Admin.NET.Core;
+
+/*
+ * @author : 鍒樻枃濂�
+ * @date : 2024/5/29涓婂崍10:26:39
+ * @desc : 璋冨害浠诲姟
+ */
+namespace Admin.NET.Application.Entity
+{
+    /// <summary>
+    /// 鏈哄櫒浜虹紦瀛樺矝杩愯妯″紡
+    /// </summary>
+    [SugarTable("wms_rbline_runmode", "鏈哄櫒浜虹紦瀛樺矝杩愯妯″紡")]
+    public class WmsRbLineRunMode : EntityBase
+    {
+        /// <summary>
+        /// 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢
+        [SugarColumn(ColumnName = "UPI", ColumnDescription = "閮ㄤ欢鏉$爜", Length = 50)]
+        public string? UPI { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢
+        /// </summary>
+        [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "鎵规鍙�", Length = 50)]
+        public string? PlanNo { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢
+        /// </summary>
+        [SugarColumn(ColumnName = "OrderId", ColumnDescription = "璁㈠崟鍙�", Length = 50)]
+        public string? OrderId { get; set; }
+
+
+        /// <summary>
+        /// 鏈�鍚庝竴娆″湪 BZ_01鐨勭郴缁熷鐞嗙殑鏉夸欢
+        /// </summary>
+        [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "鍖呰鍙�", Length = 50)]
+        public string? PackageCode { get; set; }
+
+
+        /// <summary>
+        /// 杩愯妯″紡
+        /// </summary>
+
+        [SugarColumn(ColumnName = "LineRunMode", ColumnDescription = "杩愯妯″紡")]
+        public RbRunModeEnum? LineRunMode { get; set; }
+
+
+        /// <summary>
+        /// 杩愯妯″紡鍚嶇О
+        /// </summary>
+        [SugarColumn(ColumnName = "LineRunModeName", ColumnDescription = "杩愯妯″紡鍚嶇О", Length = 50)]
+
+        public string? LineRunModeName { get; set; }
+
+
+
+    }
+}
\ No newline at end of file
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/RbRunModeEnum.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/RbRunModeEnum.cs
new file mode 100644
index 0000000..c31b9fe
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/RbRunModeEnum.cs
@@ -0,0 +1,29 @@
+锘�
+
+namespace Admin.NET.Application;
+
+/// <summary>
+/// 鏈哄櫒浜虹紦瀛樺矝杩愯妯″紡
+/// </summary>
+[Description("鏈哄櫒浜虹紦瀛樺矝杩愯妯″紡")]
+public enum RbRunModeEnum
+{
+    /// <summary>
+    /// 鍏ュ簱妯″紡
+    /// </summary>
+    [Description("鍏ュ簱妯″紡")]
+    鍏ュ簱妯″紡 = 1,
+
+    /// <summary>
+    /// 鍑哄簱妯″紡
+    /// </summary>
+    [Description("鍑哄簱妯″紡")]
+    鍑哄簱妯″紡 = 2,
+
+    /// <summary>
+    /// 寮哄埗鍑哄簱妯″紡
+    /// </summary>
+    [Description("寮哄埗鍑哄簱妯″紡")]
+    寮哄埗鍑哄簱妯″紡 = 3,
+
+}
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/AreaCodeEnum.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/AreaCodeEnum.cs
index 73264ad..291e835 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/AreaCodeEnum.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/AreaCodeEnum.cs
@@ -9,36 +9,42 @@
 public enum AreaCodeEnum
 {
     /// <summary>
+    /// 寰呯紦瀛樺垎鎷e尯 
+    /// </summary>
+    [Description("寰呯紦瀛樺垎鎷e尯")]
+    寰呯紦瀛樺垎鎷e尯 = 1,
+
+    /// <summary>
     /// 缂撳瓨鍒嗘嫞鍖� 
     /// </summary>
     [Description("缂撳瓨鍒嗘嫞鍖�")]
-    缂撳瓨鍒嗘嫞鍖� = 1,
+    缂撳瓨鍒嗘嫞鍖� = 2,
 
     /// <summary>
     /// 鏈哄櫒浜哄矝缂撳瓨鍖哄煙
     /// </summary>
     [Description("鏈哄櫒浜哄矝缂撳瓨鍖哄煙")]
-    鏈哄櫒浜哄矝缂撳瓨鍖哄煙 = 2,
+    鏈哄櫒浜哄矝缂撳瓨鍖哄煙 = 3,
 
     /// <summary>
     /// 鐮佸灈鍖哄煙 
     /// </summary>
     [Description("鐮佸灈鍖哄煙")]
 
-    鐮佸灈鍖哄煙 = 3,
+    鐮佸灈鍖哄煙 = 4,
 
     /// <summary>
     /// 鍚堝寘瑁佸垏鍖� 
     /// </summary>
     [Description("鍚堝寘瑁佸垏鍖�")]
 
-    鍚堝寘瑁佸垏鍖� = 4,
+    鍚堝寘瑁佸垏鍖� = 5,
 
     /// <summary>
     /// 鍖呰绾垮尯鍩� 
     /// </summary>
     [Description("鍖呰绾垮尯鍩�")]
 
-    鍖呰绾垮尯鍩� = 5
+    鍖呰绾垮尯鍩� = 6
 
 }
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/UpiStatusEnum.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/UpiStatusEnum.cs
index 2c2701d..e3b694c 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/UpiStatusEnum.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/UpiStatusEnum.cs
@@ -15,21 +15,27 @@
     鍒濆 = 0,
 
     /// <summary>
+    /// 涓嶉綈鍖�
+    /// </summary>
+    [Description("涓嶉綈鍖�")]
+    涓嶉綈鍖� = 1,
+
+    /// <summary>
     /// 宸查綈鍖�
     /// </summary>
     [Description("宸查綈鍖�")]
-    宸查綈鍖� = 1,
+    宸查綈鍖� = 2,
 
     /// <summary>
     /// 宸茬爜鍨�
     /// </summary>
     [Description("宸茬爜鍨�")]
-    宸茬爜鍨� = 2,
+    宸茬爜鍨� = 3,
 
     /// <summary>
     /// 宸插悎鍖�
     /// </summary>
     [Description("宸插悎鍖�")]
-    宸插悎鍖� = 3,
+    宸插悎鍖� = 4,
 
 }
diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs
index bbd757c..a03aaca 100644
--- a/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs
@@ -37,11 +37,16 @@
         public int W_Destination_In { get; set; }
 
         /// <summary>
-        /// 浠诲姟鍙�
+        /// 鍏ュ簱浠诲姟鍙�
         /// </summary>
-        [Description("浠诲姟鍙�")]
-        public string W_TaskID { get; set; }
+        [Description("鍏ュ簱浠诲姟鍙�")]
+        public int W_Inbound_TaskID { get; set; }
 
+        /// <summary>
+        /// 鍑哄簱浠诲姟鍙�
+        /// </summary>
+        [Description("鍑哄簱浠诲姟鍙�")]
+        public int W_Outbound_TaskID { get; set; }
 
         /// <summary>
         /// 鏉ユ枡闀垮害
@@ -124,7 +129,14 @@
         /// </summary>
         [Description("鍏ュ簱瀹屾垚宸茬‘璁�")]
         public bool W_InboundFinishConfirm { get; set; }
-        
+
+
+        /// <summary>
+        /// 鍑哄簱瀹屾垚宸茬‘璁�
+        /// </summary>
+        [Description("鍑哄簱瀹屾垚宸茬‘璁�")]
+        public bool W_OutboundFinishConfirm { get; set; }
+
     }
 
     /// <summary>
@@ -162,11 +174,9 @@
         [Description("鍏ュ簱浠诲姟鍙�")]
         public string W_Inbound_TaskID { get; set; }
 
-        /// <summary>
-        /// 鍑哄簱浠诲姟鍙�
-        /// </summary>
-        [Description("鍑哄簱浠诲姟鍙�")]
-        public string W_Outbound_TaskID { get; set; }
+
+    
+
 
         /// <summary>
         /// 鏉ユ枡闀垮害
@@ -186,18 +196,6 @@
         /// </summary>
         [Description("鏉ユ枡楂樺害")]
         public string W_Height { get; set; }
-
-        /// <summary>
-        /// 璇锋眰鍑哄簱
-        /// </summary>
-        [Description("璇锋眰鍑哄簱")]
-        public string W_ReqOut { get; set; }
-
-        /// <summary>
-        /// 鍒嗛厤鍑哄簱搴撲綅鍙�
-        /// </summary>
-        [Description("鍒嗛厤鍑哄簱搴撲綅鍙�")]
-        public string W_Destination_Out { get; set; }
 
         /// <summary>
         /// 妯″紡锛�1锛氬叆搴擄紝 2锛氬嚭搴�   3锛氬己鍒跺嚭搴擄級
@@ -258,11 +256,35 @@
         /// </summary>
         [Description("鍏ュ簱瀹屾垚宸茬‘璁�")]
         public string W_InboundFinishConfirm { get; set; }
-        ///// <summary>
-        ///// 浠诲姟鍙�
-        ///// </summary>
-        //[Description("浠诲姟鍙�")]
-        //public string W_TaskID { get; set; }
+
+
+        #region 鍑哄簱鐩稿叧
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟鍙�
+        /// </summary>
+        [Description("鍑哄簱浠诲姟鍙�")]
+        public string W_Outbound_TaskID { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鍑哄簱
+        /// </summary>
+        [Description("璇锋眰鍑哄簱")]
+        public string W_ReqOut { get; set; }
+
+        /// <summary>
+        /// 鍒嗛厤鍑哄簱搴撲綅鍙�
+        /// </summary>
+        [Description("鍒嗛厤鍑哄簱搴撲綅鍙�")]
+        public string W_Destination_Out { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱瀹屾垚宸茬‘璁�
+        /// </summary>
+        [Description("鍑哄簱瀹屾垚宸茬‘璁�")]
+        public string W_OutboundFinishConfirm { get; set; }
+
+        #endregion
 
     }
 
@@ -412,5 +434,19 @@
         [Description("鏈哄櫒浜哄嚭搴撳簱浣嶅彿")]
         public string R_OutboundNumber { get; set; }
 
+
+
+        /// <summary>
+        /// 鍏ュ簱浠诲姟鍙�
+        /// </summary>
+        [Description("鍏ュ簱浠诲姟鍙�")]
+        public string R_Inbound_TaskID { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟鍙�
+        /// </summary>
+        [Description("鍑哄簱浠诲姟鍙�")]
+        public string R_Outbound_TaskID { get; set; }
+
     }
 }
diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
index 5841fab..d61a45d 100644
--- a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -242,7 +242,7 @@
                 MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_InboundFinishConfirm, true, view_stationObj.W_DataFinish);
                 if (!b2.result)
                 {
-                    msg = string.Format("鍚慡tation鍦板潃{0} 鍐�  " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                    msg = string.Format("鍚慡tation鍦板潃{0}  鍏ュ簱瀹屾垚纭 鍐�  " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
                         stationObj.W_InboundFinishConfirm);
                     return false;
                 }
@@ -259,7 +259,35 @@
             }
         }
 
-        public bool WriteInStoreTaskInfo(string stationCode, string toPlaceNo, short length, short width, short height, out string msg)
+        public bool OutboundFinishConfirm(string stationCode, out string msg)
+        {
+            try
+            {
+                msg = "";
+                var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
+
+                var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
+                MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_OutboundFinishConfirm, true, view_stationObj.W_OutboundFinishConfirm);
+                if (!b2.result)
+                {
+                    msg = string.Format("鍚慡tation 鍑哄簱浠诲姟瀹屾垚纭 鍦板潃{0} 鍐�  " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                        stationObj.W_OutboundFinishConfirm);
+                    return false;
+                }
+
+                return true;
+            }
+            catch (Exception ex)
+            {
+                msg = ex.Message;
+                var logcontext = string.Format("鍚慡tatio 鍑哄簱浠诲姟瀹屾垚纭 鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex),
+                        "");
+                Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex);
+                return false;
+            }
+        }
+
+        public bool WriteInStoreTaskInfo(string stationCode, string toPlaceNo, short length, short width, short height, out string msg, int inbound_TaskID)
         {
             try
             {
@@ -272,6 +300,15 @@
                 {
                     msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 璇荤爜瑙f瀽瀹屾垚 " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
                        stationObj.W_DataFinish);
+                    return false;
+                }
+
+
+                b2 = this.plcService.WriteValuePoint(stationObj.W_Inbound_TaskID, inbound_TaskID, view_stationObj.W_Inbound_TaskID);
+                if (!b2.result)
+                {
+                    msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 鍏ュ簱浠诲姟鍙� " + inbound_TaskID + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                      stationObj.W_Inbound_TaskID);
                     return false;
                 }
 
@@ -318,6 +355,53 @@
         }
 
 
+        public bool WriteOutStoreTaskInfo(string stationCode, string sourcePlaceNo, out string msg, int outbound_TaskID)
+        {
+            try
+            {
+                msg = "";
+                var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
+
+                var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
+                MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, true, view_stationObj.W_Outbound_TaskID);
+                if (!b2.result)
+                {
+                    msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 鍑哄簱浠诲姟鍙� " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                       stationObj.W_Outbound_TaskID);
+                    return false;
+                }
+
+
+                b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, true, view_stationObj.W_ReqOut);
+                if (!b2.result)
+                {
+                    msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 璇锋眰鍑哄簱 " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                      stationObj.W_ReqOut);
+                    return false;
+                }
+
+                b2 = this.plcService.WriteValuePoint(stationObj.W_Destination_Out, Convert.ToInt32(sourcePlaceNo), view_stationObj.W_Destination_Out);
+                if (!b2.result)
+                {
+                    msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 搴撲綅鍙� " + sourcePlaceNo + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                      stationObj.W_Destination_Out);
+                    return false;
+                }
+
+
+                return true;
+            }
+            catch (Exception ex)
+            {
+                msg = ex.Message;
+                var logcontext = string.Format("WriteOutStoreTaskInfo 鍑虹幇寮傚父:" + JsonConvert.SerializeObject(ex),
+                        "");
+                Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex);
+                return false;
+            }
+        }
+
+
         /// <summary>
         ///  Station鐨勪换鍔″畬鎴怉CK璧嬪��
         /// </summary>
diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
index 2298f85..2a7b2ef 100644
--- a/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
@@ -165,6 +165,9 @@
                 W_InboundFinishConfirm = W_DBHeaderWithSeparate_BZ39 + "0.1",
                 W_Destination_In = W_DBHeaderWithSeparate_BZ39 + "2.0",
 
+                W_Inbound_TaskID = W_DBHeaderWithSeparate_BZ39 + "",//TODO锛�?杩樻病鏈夐厤缃憿
+                W_Outbound_TaskID = W_DBHeaderWithSeparate_BZ39 + "",//TODO锛�?杩樻病鏈夐厤缃憿
+
                 W_Length = W_DBHeaderWithSeparate_BZ39 + "6.0",
                 W_Width = W_DBHeaderWithSeparate_BZ39 + "8.0",
                 W_Height = W_DBHeaderWithSeparate_BZ39 + "10.0",
@@ -173,6 +176,7 @@
                 W_ReqOut = W_DBHeaderWithSeparate_BZ39 + "12.0",
                 W_Destination_Out = W_DBHeaderWithSeparate_BZ39 + "14.0",
                 W_Mode = W_DBHeaderWithSeparate_BZ39 + "18.0",
+                W_OutboundFinishConfirm = W_DBHeaderWithSeparate_BZ39 + "" //TODO锛�?杩樻病鏈夐厤缃憿
 
             });
 
@@ -214,7 +218,11 @@
                 R_OutboundFinish = W_DBHeaderWithSeparate_BZ39 + "50.2",
                 R_ReadCodeResult = W_DBHeaderWithSeparate_BZ39 + "52.0",
                 R_InboundNumber = W_DBHeaderWithSeparate_BZ39 + "104.0",
-                R_OutboundNumber = W_DBHeaderWithSeparate_BZ39 + "108.0"
+                R_OutboundNumber = W_DBHeaderWithSeparate_BZ39 + "108.0",
+
+                R_Inbound_TaskID = W_DBHeaderWithSeparate_BZ39 + "",//TODO锛�?杩樻病鏈夐厤缃憿
+                R_Outbound_TaskID = W_DBHeaderWithSeparate_BZ39 + "",//TODO锛�?杩樻病鏈夐厤缃憿
+
             });
 
 
diff --git a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
index 7a1538b..b6b350d 100644
--- a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
@@ -102,13 +102,33 @@
         SdaResEntity InboundFinishConfirm(int deviceId, string stationCode);
 
         /// <summary>
+        /// 鍑哄簱瀹屾垚宸茬‘璁�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="value"></param>
+        /// <returns></returns>
+        [OperationContract]
+        SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode);
+
+        /// <summary>
         /// 鍐欏叆鍏ュ簱浠诲姟淇℃伅
         /// </summary>
         /// <param name="deviceId"></param>
         /// <param name="value"></param>
         /// <returns></returns>
         [OperationContract]
-        SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height);
+        SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID);
+
+        /// <summary>
+        /// 鍐欏叆鍑哄簱浠诲姟淇℃伅
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="stationCode"></param>
+        /// <param name="sourcePlaceNo"></param>
+        /// <param name="outbound_TaskID"></param>
+        /// <returns></returns>
+        [OperationContract]
+        SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
 
         /// <summary>
         /// Station鐨勪换鍔″畬鎴怉CK璧嬪��
diff --git a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
index b7eb1da..6abd3ce 100644
--- a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
@@ -471,12 +471,12 @@
         }
 
         /// <summary>
-        /// 鍐欏叆鍏ュ簱浠诲姟淇℃伅
+        /// 鍑哄簱瀹屾垚宸茬‘璁�
         /// </summary>
         /// <param name="deviceId"></param>
         /// <param name="value"></param>
         /// <returns></returns>
-        public SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height)
+        public SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode)
         {
             SdaResEntity _SdaResEntity = new SdaResEntity();
             try
@@ -489,7 +489,74 @@
                 var Station = StationResult.resData as StationEntity;
 
                 string msg = "";
-                var result = Station.WriteInStoreTaskInfo(stationCode, toPlaceNo, length, width, height, out msg);
+                var result = Station.OutboundFinishConfirm(stationCode, out msg);
+                _SdaResEntity.result = result;
+                _SdaResEntity.resMsg = msg;
+                return _SdaResEntity;
+            }
+            catch (Exception ex)
+            {
+                _SdaResEntity.result = false;
+                _SdaResEntity.resMsg = ex.Message;
+                return _SdaResEntity;
+            }
+        }
+
+        /// <summary>
+        /// 鍐欏叆鍏ュ簱浠诲姟淇℃伅
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="value"></param>
+        /// <returns></returns>
+        public SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID)
+        {
+            SdaResEntity _SdaResEntity = new SdaResEntity();
+            try
+            {
+                var StationResult = Station_CacheEntity.GetDeviceObj(deviceId);
+                if (!StationResult.result)
+                {
+                    return StationResult;
+                }
+                var Station = StationResult.resData as StationEntity;
+
+                string msg = "";
+                var result = Station.WriteInStoreTaskInfo(stationCode, toPlaceNo, length, width, height, out msg, inbound_TaskID);
+                _SdaResEntity.result = result;
+                _SdaResEntity.resMsg = msg;
+                return _SdaResEntity;
+            }
+            catch (Exception ex)
+            {
+                _SdaResEntity.result = false;
+                _SdaResEntity.resMsg = ex.Message;
+                return _SdaResEntity;
+            }
+        }
+
+
+        /// <summary>
+        /// 鍐欏叆鍑哄簱浠诲姟淇℃伅
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="stationCode"></param>
+        /// <param name="sourcePlaceNo"></param>
+        /// <param name="outbound_TaskID"></param>
+        /// <returns></returns>
+        public SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID)
+        {
+            SdaResEntity _SdaResEntity = new SdaResEntity();
+            try
+            {
+                var StationResult = Station_CacheEntity.GetDeviceObj(deviceId);
+                if (!StationResult.result)
+                {
+                    return StationResult;
+                }
+                var Station = StationResult.resData as StationEntity;
+
+                string msg = "";
+                var result = Station.WriteOutStoreTaskInfo(stationCode, sourcePlaceNo, out msg, outbound_TaskID);
                 _SdaResEntity.result = result;
                 _SdaResEntity.resMsg = msg;
                 return _SdaResEntity;

--
Gitblit v1.9.3