From 2225959bc5c3588407e90a6285ab2c32b3481d90 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 05 12月 2024 12:59:12 +0800
Subject: [PATCH] 222

---
 CC/iWareModel/EnumType/WMS/StockStatusEnum.cs                                                          |    8 
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs  |    1 
 CC/iWareSql/DataAccess/TaskHandler.cs                                                                  |   23 ++
 CC/iWareCC_ASRS/Common/SystemWarningMsg.cs                                                             |    2 
 CC/iWareCommon/log4net_iWare.config                                                                    |   33 +++
 SDA/iWareSda/Devices/4-Station/StationService/StationService.cs                                        |   14 
 SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs                                       |   20 +-
 CC/iWareCommon/Utils/Log4Net/LogType.cs                                                                |    2 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/4、DataProcess_RobotBuffer_ForceOutbound.cs     |  137 +++++++------
 CC/iWareCC_ASRS/FormCC.cs                                                                              |    7 
 CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd                                            |    1 
 CC/iWareCommon/log4net_iWare -编辑版.config                                                               |   16 
 CC/iWareCC_ASRS/FormCC.Designer.cs                                                                     |   78 +++---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs                 |    8 
 LA24030_LuLiPackageLine_Print/打印模板文件/包装条码模板_二维码.btw                                                    |    0 
 CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs                                         |   12 
 SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs                                           |   63 ++++--
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/2、DataProcess_RobotBuffer_IssueOutboundTask.cs |   24 ++
 CC/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs       |    2 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/5、CC_DataProcess_RobotBuffer_ForceOutbound.cs  |  102 ++++++++++
 CC/iWareCC_ASRS/iWareCC.csproj                                                                         |    1 
 LA24030_LuLiPackageLine_Print/打印模板文件/历史模板/包装条码模板_二维码20241205.btw                                       |    0 
 22 files changed, 382 insertions(+), 172 deletions(-)

diff --git a/CC/iWareCC_ASRS/Common/SystemWarningMsg.cs b/CC/iWareCC_ASRS/Common/SystemWarningMsg.cs
index 5389388..82fa6fe 100644
--- a/CC/iWareCC_ASRS/Common/SystemWarningMsg.cs
+++ b/CC/iWareCC_ASRS/Common/SystemWarningMsg.cs
@@ -21,7 +21,7 @@
         /// <summary>
         /// 鍫嗗灈鏈�2涓嬪彂鐨勮鍛婃秷鎭�
         /// </summary>
-        public static string _lbl_Alert_Srm2Release = string.Empty;
+        public static string _lbl_Alert_DataProcess_RobotBuffer_ForceOutbound = string.Empty;
 
 
 
diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs b/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
index 9c564ef..e4aa9d6 100644
--- a/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
+++ b/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
@@ -1876,10 +1876,10 @@
         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);
+        iWareCC.StationService.SdaResEntity WriteOutStoreTaskInfo(bool isResetData, 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.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteOutStoreTaskInfoAsync(bool isResetData, int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WritePalletizingTaskInfo", ReplyAction="http://tempuri.org/IStationService/WritePalletizingTaskInfoResponse")]
         iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum);
@@ -2069,12 +2069,12 @@
             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 iWareCC.StationService.SdaResEntity WriteOutStoreTaskInfo(bool isResetData, int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID) {
+            return base.Channel.WriteOutStoreTaskInfo(isResetData, 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 System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteOutStoreTaskInfoAsync(bool isResetData, int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID) {
+            return base.Channel.WriteOutStoreTaskInfoAsync(isResetData, deviceId, stationCode, sourcePlaceNo, outbound_TaskID);
         }
         
         public iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum) {
diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd b/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
index 4bf1e04..50dce9d 100644
--- a/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
+++ b/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
@@ -227,6 +227,7 @@
   <xs:element name="WriteOutStoreTaskInfo">
     <xs:complexType>
       <xs:sequence>
+        <xs:element minOccurs="0" name="isResetData" type="xs:boolean" />
         <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" />
diff --git a/CC/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs b/CC/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs
index 15dcb96..1380376 100644
--- a/CC/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs
+++ b/CC/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs
@@ -90,7 +90,7 @@
                     IssueTaskHandle(i_deviceId, out errMsg4);
                 }
                 SystemWarningMsg._lbl_Alert_DataProcess_BZ39_IssueInboundTask = errMsg1;
-                SystemWarningMsg._lbl_Alert_Srm2Release = errMsg2;
+                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ForceOutbound = errMsg2;
                 
                 SystemWarningMsg._lbl_Alert_Srm4Release = errMsg4;
                 Thread.Sleep(2000);//2绉掍竴娆�
diff --git a/CC/iWareCC_ASRS/FormCC.Designer.cs b/CC/iWareCC_ASRS/FormCC.Designer.cs
index 5727cd0..4ce7f6d 100644
--- a/CC/iWareCC_ASRS/FormCC.Designer.cs
+++ b/CC/iWareCC_ASRS/FormCC.Designer.cs
@@ -264,13 +264,13 @@
             this.lbl_Alert_DataProcess_BZ12_FinishTask = new System.Windows.Forms.Label();
             this.lbl_Alter_Srm1ReleaseFinish = new System.Windows.Forms.Label();
             this.lbl_Alert_RgvRelease = new System.Windows.Forms.Label();
-            this.lbl_Alert_Srm2Release = new System.Windows.Forms.Label();
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound = new System.Windows.Forms.Label();
             this.lbl_Alert_DataProcess_BZ39_IssueInboundTask = new System.Windows.Forms.Label();
             this.ckB_DataProcess_BZ39_IssueInboundTask = new System.Windows.Forms.CheckBox();
             this.ckB_PushPaperCutToMes = new System.Windows.Forms.CheckBox();
             this.ckBSrm1FinishedHandle = new System.Windows.Forms.CheckBox();
             this.ckBRgvRelease = new System.Windows.Forms.CheckBox();
-            this.ckBSrm2Release = new System.Windows.Forms.CheckBox();
+            this.ckBDataProcess_RobotBuffer_ForceOutbound = new System.Windows.Forms.CheckBox();
             this.ckBDataProcess_BZ12_FinishTask = new System.Windows.Forms.CheckBox();
             this.tabPage1 = new System.Windows.Forms.TabPage();
             this.panel_Srm4 = new System.Windows.Forms.Panel();
@@ -438,6 +438,7 @@
             this.Qty = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.InStoreTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.tabPage3 = new System.Windows.Forms.TabPage();
+            this.button25 = new System.Windows.Forms.Button();
             this.button24 = new System.Windows.Forms.Button();
             this.tb_PackageCode = new System.Windows.Forms.TextBox();
             this.label23 = new System.Windows.Forms.Label();
@@ -474,7 +475,6 @@
             this.dataGridViewTextBoxColumn62 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.dataGridViewTextBoxColumn63 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.btn_Find_OutTaskRetryToMes = new System.Windows.Forms.Button();
-            this.button25 = new System.Windows.Forms.Button();
             this.tPTransAsrs.SuspendLayout();
             this.panel14.SuspendLayout();
             this.panel15.SuspendLayout();
@@ -3037,13 +3037,13 @@
             this.groupBox1.Controls.Add(this.lbl_Alert_DataProcess_BZ12_FinishTask);
             this.groupBox1.Controls.Add(this.lbl_Alter_Srm1ReleaseFinish);
             this.groupBox1.Controls.Add(this.lbl_Alert_RgvRelease);
-            this.groupBox1.Controls.Add(this.lbl_Alert_Srm2Release);
+            this.groupBox1.Controls.Add(this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound);
             this.groupBox1.Controls.Add(this.lbl_Alert_DataProcess_BZ39_IssueInboundTask);
             this.groupBox1.Controls.Add(this.ckB_DataProcess_BZ39_IssueInboundTask);
             this.groupBox1.Controls.Add(this.ckB_PushPaperCutToMes);
             this.groupBox1.Controls.Add(this.ckBSrm1FinishedHandle);
             this.groupBox1.Controls.Add(this.ckBRgvRelease);
-            this.groupBox1.Controls.Add(this.ckBSrm2Release);
+            this.groupBox1.Controls.Add(this.ckBDataProcess_RobotBuffer_ForceOutbound);
             this.groupBox1.Controls.Add(this.ckBDataProcess_BZ12_FinishTask);
             this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.groupBox1.ForeColor = System.Drawing.Color.Maroon;
@@ -3515,16 +3515,16 @@
             this.lbl_Alert_RgvRelease.TabIndex = 15;
             this.lbl_Alert_RgvRelease.Text = "label11";
             // 
-            // lbl_Alert_Srm2Release
+            // lbl_Alert_DataProcess_RobotBuffer_ForceOutbound
             // 
-            this.lbl_Alert_Srm2Release.AutoSize = true;
-            this.lbl_Alert_Srm2Release.BackColor = System.Drawing.Color.White;
-            this.lbl_Alert_Srm2Release.ForeColor = System.Drawing.Color.Red;
-            this.lbl_Alert_Srm2Release.Location = new System.Drawing.Point(936, 80);
-            this.lbl_Alert_Srm2Release.Name = "lbl_Alert_Srm2Release";
-            this.lbl_Alert_Srm2Release.Size = new System.Drawing.Size(70, 15);
-            this.lbl_Alert_Srm2Release.TabIndex = 13;
-            this.lbl_Alert_Srm2Release.Text = "label11";
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.AutoSize = true;
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.BackColor = System.Drawing.Color.White;
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.ForeColor = System.Drawing.Color.Red;
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.Location = new System.Drawing.Point(252, 134);
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.Name = "lbl_Alert_DataProcess_RobotBuffer_ForceOutbound";
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.Size = new System.Drawing.Size(70, 15);
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.TabIndex = 13;
+            this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.Text = "label11";
             // 
             // lbl_Alert_DataProcess_BZ39_IssueInboundTask
             // 
@@ -3564,7 +3564,7 @@
             // ckBSrm1FinishedHandle
             // 
             this.ckBSrm1FinishedHandle.AutoSize = true;
-            this.ckBSrm1FinishedHandle.Location = new System.Drawing.Point(728, 54);
+            this.ckBSrm1FinishedHandle.Location = new System.Drawing.Point(728, 50);
             this.ckBSrm1FinishedHandle.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
             this.ckBSrm1FinishedHandle.Name = "ckBSrm1FinishedHandle";
             this.ckBSrm1FinishedHandle.Size = new System.Drawing.Size(182, 19);
@@ -3585,17 +3585,17 @@
             this.ckBRgvRelease.UseVisualStyleBackColor = true;
             this.ckBRgvRelease.CheckedChanged += new System.EventHandler(this.CommonCheckedChanged);
             // 
-            // ckBSrm2Release
+            // ckBDataProcess_RobotBuffer_ForceOutbound
             // 
-            this.ckBSrm2Release.AutoSize = true;
-            this.ckBSrm2Release.Location = new System.Drawing.Point(728, 80);
-            this.ckBSrm2Release.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
-            this.ckBSrm2Release.Name = "ckBSrm2Release";
-            this.ckBSrm2Release.Size = new System.Drawing.Size(150, 19);
-            this.ckBSrm2Release.TabIndex = 2;
-            this.ckBSrm2Release.Text = "堆垛机2任务下发";
-            this.ckBSrm2Release.UseVisualStyleBackColor = true;
-            this.ckBSrm2Release.CheckedChanged += new System.EventHandler(this.CommonCheckedChanged);
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.AutoSize = true;
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.Location = new System.Drawing.Point(5, 134);
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.Name = "ckBDataProcess_RobotBuffer_ForceOutbound";
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.Size = new System.Drawing.Size(246, 19);
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.TabIndex = 2;
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.Text = "缓存岛人工强制出库 处理线程";
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.UseVisualStyleBackColor = true;
+            this.ckBDataProcess_RobotBuffer_ForceOutbound.CheckedChanged += new System.EventHandler(this.CommonCheckedChanged);
             // 
             // ckBDataProcess_BZ12_FinishTask
             // 
@@ -5525,6 +5525,18 @@
             this.tabPage3.Text = "数据维护&统计";
             this.tabPage3.UseVisualStyleBackColor = true;
             // 
+            // button25
+            // 
+            this.button25.BackColor = System.Drawing.Color.Red;
+            this.button25.Location = new System.Drawing.Point(1006, 489);
+            this.button25.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.button25.Name = "button25";
+            this.button25.Size = new System.Drawing.Size(155, 48);
+            this.button25.TabIndex = 156;
+            this.button25.Text = "一键初始化整包板件";
+            this.button25.UseVisualStyleBackColor = false;
+            this.button25.Click += new System.EventHandler(this.button25_Click);
+            // 
             // button24
             // 
             this.button24.BackColor = System.Drawing.Color.Aqua;
@@ -5882,18 +5894,6 @@
             this.btn_Find_OutTaskRetryToMes.UseVisualStyleBackColor = true;
             this.btn_Find_OutTaskRetryToMes.Click += new System.EventHandler(this.btn_Find_OutTaskRetryToMes_Click);
             // 
-            // button25
-            // 
-            this.button25.BackColor = System.Drawing.Color.Red;
-            this.button25.Location = new System.Drawing.Point(1006, 489);
-            this.button25.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
-            this.button25.Name = "button25";
-            this.button25.Size = new System.Drawing.Size(155, 48);
-            this.button25.TabIndex = 156;
-            this.button25.Text = "一键初始化整包板件";
-            this.button25.UseVisualStyleBackColor = false;
-            this.button25.Click += new System.EventHandler(this.button25_Click);
-            // 
             // FormCC
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
@@ -6077,13 +6077,13 @@
         private System.Windows.Forms.CheckBox ckB_PushPaperCutToMes;
         private System.Windows.Forms.CheckBox ckBSrm1FinishedHandle;
         private System.Windows.Forms.CheckBox ckBRgvRelease;
-        private System.Windows.Forms.CheckBox ckBSrm2Release;
+        private System.Windows.Forms.CheckBox ckBDataProcess_RobotBuffer_ForceOutbound;
         private System.Windows.Forms.CheckBox ckBDataProcess_BZ12_FinishTask;
         private System.Windows.Forms.Button btn_Change1;
         private System.Windows.Forms.Button btn_Change2;
         private System.Windows.Forms.Label lbl_SrmConveyorAlarm_2;
         private System.Windows.Forms.Label lbl_Alert_DataProcess_BZ39_IssueInboundTask;
-        private System.Windows.Forms.Label lbl_Alert_Srm2Release;
+        private System.Windows.Forms.Label lbl_Alert_DataProcess_RobotBuffer_ForceOutbound;
         private System.Windows.Forms.Label lbl_Alert_RgvRelease;
         private System.Windows.Forms.Label lbl_Alert_DataProcess_BZ12_FinishTask;
         private System.Windows.Forms.Label lbl_Alter_Srm1ReleaseFinish;
diff --git a/CC/iWareCC_ASRS/FormCC.cs b/CC/iWareCC_ASRS/FormCC.cs
index 0a283eb..b2ae9ce 100644
--- a/CC/iWareCC_ASRS/FormCC.cs
+++ b/CC/iWareCC_ASRS/FormCC.cs
@@ -233,6 +233,7 @@
 
             new Thread(DataProcess_RobotBuffer_FinishTaskForOutbound.Handler).Start();
 
+            new Thread(DataProcess_RobotBuffer_ForceOutbound.Handler).Start();
 
             new Thread(DataProcess_RobotBuffer_FinishTask.Handler).Start();
 
@@ -349,7 +350,7 @@
                     var showNowTime = "(" + DateTimeHelper.ConvertToStringForOnlyShowTime(DateTime.Now) + ")";
                     //璁剧疆鍫嗗灈鏈轰换鍔′笅鍙戝拰浠诲姟纭绾跨▼娑堟伅
                     this.lbl_Alert_DataProcess_BZ39_IssueInboundTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ39_IssueInboundTask;
-                    this.lbl_Alert_Srm2Release.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm2Release;
+                    this.lbl_Alert_DataProcess_RobotBuffer_ForceOutbound.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ForceOutbound;
                     this.lbl_Alert_DataProcess_BZ12.Text = showNowTime + SystemWarningMsg._lbl_alert_DataProcess_BZ12;
                     this.lbl_Alert_Srm4Release.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm4Release;
                     //璁剧疆鍫嗗灈鏈轰换鍔′笅鍙戝拰浠诲姟瀹屾垚纭绾跨▼娑堟伅
@@ -1532,7 +1533,7 @@
             DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_1_Finish, ckBSrm1FinishedHandle);
 
             //鍫嗗灈鏈�2浠诲姟涓嬪彂
-            DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_2, ckBSrm2Release);
+            DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_2, ckBDataProcess_RobotBuffer_ForceOutbound);
             DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_2_Finish, ckBDataProcess_BZ12_FinishTask);
 
             //鍫嗗灈鏈�3浠诲姟涓嬪彂
@@ -3563,7 +3564,7 @@
             var packageCode = this.tb_PackageCode.Text.Trim();
 
             var alertMsg = "";
-            DataProcess_RobotBuffer_ForceOutbound.Handler(packageCode, ref alertMsg);
+            CC_DataProcess_RobotBuffer_ForceOutbound.Handler(packageCode, ref alertMsg);
             if (!string.IsNullOrEmpty(alertMsg))
             {
                 MessageBox.Show("閿欒:" + alertMsg);
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 d0f5d80..cad750d 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"
@@ -35,7 +35,7 @@
                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = string.Empty;
                 try
                 {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_IssueOutboundTask &&
-                    if ( SystemValue.isStartedModel)
+                    if (SystemValue.isStartedModel)
                     {
                         var rgvLocation = StationLocationEnum.BZ39.ToString();
                         /*
@@ -45,6 +45,24 @@
 
                         using (WmsDBModel wmsDB = new WmsDBModel())
                         {
+                            var noFinishOutTask = TaskHandler.ValidateIssueTaskForNoFinishTaskByOutStore(wmsDB);
+                            if (noFinishOutTask == true)
+                            {//琛ㄧず娌℃湁鏈粨鏉熺殑鍑哄簱浠诲姟锛岄偅涔堝氨 鍒濆鍖栬姹傚嚭搴撴寚浠�
+                                using (StationServiceClient client = new StationServiceClient())
+                                {
+                                    var res = await client.WriteOutStoreTaskInfoAsync(true, (int)EDevice.Station, rgvLocation, "", 0);
+                                    if (!res.result)
+                                    {
+                                        SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = $"{rgvLocation.ToString()}-鍒濆鍖栬姹傚嚭搴撴寚浠� 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
+                                        continue;
+                                    }
+                                    else
+                                    {
+                                        //Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-鍒濆鍖栬姹傚嚭搴撴寚浠� 鎴愬姛,WriteOutStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                    }
+                                }
+                            }
+
                             //瑕佹槸鏈夊凡涓嬪彂鐨勪换鍔★紝灏变笉瑕佹墽琛�
                             var isValidate = TaskHandler.ValidateIssueOutTaskForRobotBuffer(wmsDB);
                             if (!isValidate)
@@ -109,10 +127,10 @@
                                 //    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,OutboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
                                 //}
 
-                              var  res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo));
+                                var res = await client.WriteOutStoreTaskInfoAsync(false, (int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo));
                                 if (!res.result)
                                 {
-                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
+                                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
                                     continue;
                                 }
                                 else
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/4\343\200\201DataProcess_RobotBuffer_ForceOutbound.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/4\343\200\201DataProcess_RobotBuffer_ForceOutbound.cs"
index 7d144ce..f674a99 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/4\343\200\201DataProcess_RobotBuffer_ForceOutbound.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/4\343\200\201DataProcess_RobotBuffer_ForceOutbound.cs"
@@ -13,90 +13,93 @@
 namespace iWareCC.ThreadService
 {
     /// <summary>
-    /// 鏈哄櫒浜虹紦瀛樺矝 浜哄伐寮哄埗鍑哄簱 澶勭悊
+    /// 鏈哄櫒浜虹紦瀛樺矝 浜哄伐寮哄埗寰呭嚭搴� 澶勭悊
     /// </summary>
     public static class DataProcess_RobotBuffer_ForceOutbound
     {
-        public static  bool Handler(string packageCode, ref string alertMsg)
+        public static async void Handler()
         {
-            alertMsg = "";
-            LogType logType = LogType.DataProcess_RobotBuffer_AutoQiTaoOutbound;
-
-            try
+            var alertMsg = "";
+            LogType logType = LogType.DataProcess_RobotBuffer_ForceOutbound;
+            while (true)
             {
-
-                var rgvLocation = StationLocationEnum.BZ39.ToString();
-                var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
-                if (obj.R_ForceOutboundMode == false)
-                {
-                    alertMsg = "PLC涓嶆槸寮哄埗鍑哄簱妯″紡";
-                    return false;
-                }
-                using (WmsDBModel wmsDB = new WmsDBModel())
-                {
-                    List<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.鍦ㄥ簱
-                        && x.PackageCode == packageCode
-                    ).ToList();
-
-                    foreach (var x in qunList)
+                Thread.Sleep(2000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆�
+                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ForceOutbound = string.Empty;
+                try
+                {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound && 
+                    if (SystemValue.isStartedModel)
                     {
-                        x.StockStatus = (int)StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�;
 
-                        //鐢熸垚鍑哄簱浠诲姟
-                        //璁板綍浠诲姟
-                        var _id = Yitter.IdGenerator.YitIdHelper.NextId();
-                        var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
-                        var new_task = new wms_rbline_task()
+                        var rgvLocation = StationLocationEnum.BZ39.ToString();
+                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
+                        if (obj.R_ForceOutboundMode == false)
                         {
-                            Id = _id,
-                            TaskNo = plcTaskNo,
+                            alertMsg = "PLC涓嶆槸寮哄埗鍑哄簱妯″紡";
+                            continue;
+                        }
+                        using (WmsDBModel wmsDB = new WmsDBModel())
+                        {
+                            List<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�
+                            ).OrderBy(x => x.PackageCode).ToList();
 
-                            UPI = x.Upi,
-                            Length = x.Length,
-                            Width = x.Width,
-                            Thk = x.Thk,
-                           
-                            PlanNo = x.PlanNo,
-                            OrderId = x.OrderId,
-                            PackageCode = x.PackageCode,
-                            PlaceCode = x.PlaceCode,
-                            RbTaskType = (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟,
-                            RbTaskTypeEnumName = RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟.ToString(),
-                            TaskStatus = (int)TaskStatusEnum.鏂板缓,
-                            TaskStatusName = TaskStatusEnum.鏂板缓.ToString(),
-                            TaskMsg = "浜哄伐寮哄埗寰呭嚭搴�",
+                            foreach (var x in qunList)
+                            {
+                                x.StockStatus = (int)StockStatusEnum.浜哄伐寮哄埗浠诲姟宸插垱寤�;
+                                x.StockStatusName = StockStatusEnum.浜哄伐寮哄埗浠诲姟宸插垱寤�.ToString();
+
+                                //鐢熸垚鍑哄簱浠诲姟
+                                //璁板綍浠诲姟
+                                var _id = Yitter.IdGenerator.YitIdHelper.NextId();
+                                var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
+                                var new_task = new wms_rbline_task()
+                                {
+                                    Id = _id,
+                                    TaskNo = plcTaskNo,
+
+                                    UPI = x.Upi,
+                                    Length = x.Length,
+                                    Width = x.Width,
+                                    Thk = x.Thk,
+
+                                    PlanNo = x.PlanNo,
+                                    OrderId = x.OrderId,
+                                    PackageCode = x.PackageCode,
+                                    PlaceCode = x.PlaceCode,
+                                    RbTaskType = (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟,
+                                    RbTaskTypeEnumName = RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟.ToString(),
+                                    TaskStatus = (int)TaskStatusEnum.鏂板缓,
+                                    TaskStatusName = TaskStatusEnum.鏂板缓.ToString(),
+                                    TaskMsg = "浜哄伐寮哄埗寰呭嚭搴�",
 
 
-                            CreateTime = DateTime.Now,
-                            CreateUserName = "CC",
-                            UpdateTime = DateTime.Now,
-                            UpdateUserName = "CC",
-                        };
+                                    CreateTime = DateTime.Now,
+                                    CreateUserName = "CC",
+                                    UpdateTime = DateTime.Now,
+                                    UpdateUserName = "CC",
+                                };
 
-                        wmsDB.wms_rbline_task.Add(new_task);
+                                wmsDB.wms_rbline_task.Add(new_task);
 
-                        var place = StationHandler.GetPlaceByPlaceCode(x.PlaceCode, wmsDB);
-                        place.PlaceStatus = (int)PlaceStatusEnum.閿佸畾;
+                                var place = StationHandler.GetPlaceByPlaceCode(x.PlaceCode, wmsDB);
+                                place.PlaceStatus = (int)PlaceStatusEnum.閿佸畾;
 
-                        Thread.Sleep(100);
+                                Thread.Sleep(100);
+                            }
+
+
+
+                            wmsDB.SaveChanges();
+                        }
+
                     }
-
-
-
-                    wmsDB.SaveChanges();
                 }
-
-                return true;
-
-            }
-            catch (Exception ex)
-            {
-                alertMsg = " 鍑虹幇寮傚父:" + ex.Message;
-                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound += " 鍑虹幇寮傚父:" + ex.Message + SysGloble.SPLIT_STR;
-                Log4NetHelper.WriteErrorLog(logType, " 鍑虹幇寮傚父锛�" + ex.Message, ex);
-
-                return false;
+                catch (Exception ex)
+                {
+                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ForceOutbound += " 鍑虹幇寮傚父:" + 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/Outbound/5\343\200\201CC_DataProcess_RobotBuffer_ForceOutbound.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/5\343\200\201CC_DataProcess_RobotBuffer_ForceOutbound.cs"
new file mode 100644
index 0000000..37d17eb
--- /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/Outbound/5\343\200\201CC_DataProcess_RobotBuffer_ForceOutbound.cs"
@@ -0,0 +1,102 @@
+锘縰sing Admin.NET.Application;
+using iWareCommon.Common.Globle;
+using iWareCommon.Utils;
+using iWareModel;
+using iWareSql.DataAccess;
+using iWareSql.WmsDBModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace iWareCC.ThreadService
+{
+    /// <summary>
+    /// 鏈哄櫒浜虹紦瀛樺矝 浜哄伐寮哄埗鍑哄簱 澶勭悊
+    /// </summary>
+    public static class CC_DataProcess_RobotBuffer_ForceOutbound
+    {
+        public static bool Handler(string packageCode, ref string alertMsg)
+        {
+            alertMsg = "";
+            LogType logType = LogType.DataProcess_RobotBuffer_AutoQiTaoOutbound;
+
+            try
+            {
+
+                var rgvLocation = StationLocationEnum.BZ39.ToString();
+                var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
+                if (obj.R_ForceOutboundMode == false)
+                {
+                    alertMsg = "PLC涓嶆槸寮哄埗鍑哄簱妯″紡";
+                    return false;
+                }
+                using (WmsDBModel wmsDB = new WmsDBModel())
+                {
+                    List<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.鍦ㄥ簱
+                        && x.PackageCode == packageCode
+                    ).ToList();
+
+                    foreach (var x in qunList)
+                    {
+                        x.StockStatus = (int)StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�;
+
+                        //鐢熸垚鍑哄簱浠诲姟
+                        //璁板綍浠诲姟
+                        var _id = Yitter.IdGenerator.YitIdHelper.NextId();
+                        var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
+                        var new_task = new wms_rbline_task()
+                        {
+                            Id = _id,
+                            TaskNo = plcTaskNo,
+
+                            UPI = x.Upi,
+                            Length = x.Length,
+                            Width = x.Width,
+                            Thk = x.Thk,
+
+                            PlanNo = x.PlanNo,
+                            OrderId = x.OrderId,
+                            PackageCode = x.PackageCode,
+                            PlaceCode = x.PlaceCode,
+                            RbTaskType = (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟,
+                            RbTaskTypeEnumName = RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟.ToString(),
+                            TaskStatus = (int)TaskStatusEnum.鏂板缓,
+                            TaskStatusName = TaskStatusEnum.鏂板缓.ToString(),
+                            TaskMsg = "浜哄伐寮哄埗寰呭嚭搴�",
+
+
+                            CreateTime = DateTime.Now,
+                            CreateUserName = "CC",
+                            UpdateTime = DateTime.Now,
+                            UpdateUserName = "CC",
+                        };
+
+                        wmsDB.wms_rbline_task.Add(new_task);
+
+                        var place = StationHandler.GetPlaceByPlaceCode(x.PlaceCode, wmsDB);
+                        place.PlaceStatus = (int)PlaceStatusEnum.閿佸畾;
+
+                        Thread.Sleep(100);
+                    }
+
+
+
+                    wmsDB.SaveChanges();
+                }
+
+                return true;
+
+            }
+            catch (Exception ex)
+            {
+                alertMsg = " 鍑虹幇寮傚父:" + ex.Message;
+                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound += " 鍑虹幇寮傚父:" + ex.Message + SysGloble.SPLIT_STR;
+                Log4NetHelper.WriteErrorLog(logType, " 鍑虹幇寮傚父锛�" + ex.Message, ex);
+
+                return false;
+            }
+        }
+    }
+}
diff --git a/CC/iWareCC_ASRS/iWareCC.csproj b/CC/iWareCC_ASRS/iWareCC.csproj
index e8d6eb3..935ed0c 100644
--- a/CC/iWareCC_ASRS/iWareCC.csproj
+++ b/CC/iWareCC_ASRS/iWareCC.csproj
@@ -164,6 +164,7 @@
     <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡DataProcess_RobotBuffer_ModeChange.cs" />
     <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡Inbound\2銆丏ataProcess_BZ39_IssueInboundTask.cs" />
     <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡Outbound\4銆丏ataProcess_RobotBuffer_ForceOutbound.cs" />
+    <Compile Include="ThreadService\02_BZ39宸ヤ綅锛堣ˉ鏉垮悗宸ヤ綅锛塡Outbound\5銆丆C_DataProcess_RobotBuffer_ForceOutbound.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/iWareCommon/Utils/Log4Net/LogType.cs b/CC/iWareCommon/Utils/Log4Net/LogType.cs
index b93d831..7d705e4 100644
--- a/CC/iWareCommon/Utils/Log4Net/LogType.cs
+++ b/CC/iWareCommon/Utils/Log4Net/LogType.cs
@@ -36,7 +36,7 @@
         #region SDA鐩稿叧
 
         SS7 = 200,
-        HslCommunicationService = 201,
+        DataProcess_RobotBuffer_ForceOutbound = 201,
 
         /// <summary>
         /// PLC鏁版嵁璁块棶鏈嶅姟鏃ュ織
diff --git "a/CC/iWareCommon/log4net_iWare -\347\274\226\350\276\221\347\211\210.config" "b/CC/iWareCommon/log4net_iWare -\347\274\226\350\276\221\347\211\210.config"
index 5369fd8..3e6afe0 100644
--- "a/CC/iWareCommon/log4net_iWare -\347\274\226\350\276\221\347\211\210.config"
+++ "b/CC/iWareCommon/log4net_iWare -\347\274\226\350\276\221\347\211\210.config"
@@ -6,8 +6,8 @@
   </appSettings>
   <log4net>
     <!--  閲嶆柊鑾峰彇鍙戝姩鏈轰俊鎭�愪俊鎭�戞棩蹇�-->
-    <appender name="AutoUpdateEngineInfoTask_Info" type="log4net.Appender.RollingFileAppender">
-      <file value="d:\\Log\\LuLiMuYe\\iWare_CC\\AutoUpdateEngineInfoTask_Info\\" />
+    <appender name="DataProcess_RobotBuffer_ForceOutbound_Info" type="log4net.Appender.RollingFileAppender">
+      <file value="d:\\Log\\LuLiMuYe\\iWare_CC\\DataProcess_RobotBuffer_ForceOutbound_Info\\" />
       <appendToFile value="true" />
       <rollingStyle value="Date" />
       <staticLogFileName value="false" />
@@ -17,13 +17,13 @@
         <param name="ConversionPattern" value="%n娑堟伅鏃堕棿锛�%d [%t] %n娑堟伅绾у埆锛�%-5p %n娑� 鎭� 绫伙細%c [%x] %n%m %n "/>
       </layout>
       <filter type="log4net.Filter.LoggerMatchFilter">
-        <loggerToMatch value="AutoUpdateEngineInfoTask_Info" />
+        <loggerToMatch value="DataProcess_RobotBuffer_ForceOutbound_Info" />
       </filter>
       <filter type="log4net.Filter.DenyAllFilter" />
     </appender>
     <!--閲嶆柊鑾峰彇鍙戝姩鏈轰俊鎭�愰敊璇�戞棩蹇�-->
-    <appender name="AutoUpdateEngineInfoTask_Error" type="log4net.Appender.RollingFileAppender">
-      <file value="d:\\Log\\LuLiMuYe\\iWare_CC\\AutoUpdateEngineInfoTask_Error\\" />
+    <appender name="DataProcess_RobotBuffer_ForceOutbound_Error" type="log4net.Appender.RollingFileAppender">
+      <file value="d:\\Log\\LuLiMuYe\\iWare_CC\\DataProcess_RobotBuffer_ForceOutbound_Error\\" />
       <appendToFile value="true" />
       <rollingStyle value="Date" />
       <staticLogFileName value="false" />
@@ -33,14 +33,14 @@
         <param name="ConversionPattern" value="%n寮傚父鏃堕棿锛�%d [%t] %n寮傚父绾у埆锛�%-5p %n寮� 甯� 绫伙細%c [%x] %n%m %n "/>
       </layout>
       <filter type="log4net.Filter.LoggerMatchFilter">
-        <loggerToMatch value="AutoUpdateEngineInfoTask_Error" />
+        <loggerToMatch value="DataProcess_RobotBuffer_ForceOutbound_Error" />
       </filter>
       <filter type="log4net.Filter.DenyAllFilter" />
     </appender>
     <root>
       <level value="ALL"/>
-      <appender-ref ref="AutoUpdateEngineInfoTask_Info"/>
-      <appender-ref ref="AutoUpdateEngineInfoTask_Error"/>
+      <appender-ref ref="DataProcess_RobotBuffer_ForceOutbound_Info"/>
+      <appender-ref ref="DataProcess_RobotBuffer_ForceOutbound_Error"/>
     </root>
   </log4net>
 </configuration>
\ No newline at end of file
diff --git a/CC/iWareCommon/log4net_iWare.config b/CC/iWareCommon/log4net_iWare.config
index 2d413bb..3084d09 100644
--- a/CC/iWareCommon/log4net_iWare.config
+++ b/CC/iWareCommon/log4net_iWare.config
@@ -622,8 +622,41 @@
       </filter>
       <filter type="log4net.Filter.DenyAllFilter" />
     </appender>
+    <appender name="DataProcess_RobotBuffer_ForceOutbound_Info" type="log4net.Appender.RollingFileAppender">
+      <file value="d:\\Log\\LuLiMuYe\\iWare_CC\\DataProcess_RobotBuffer_ForceOutbound_Info\\" />
+      <appendToFile value="true" />
+      <rollingStyle value="Date" />
+      <staticLogFileName value="false" />
+      <datePattern value="yyyy-MM-dd.LOG" />
+      <layout type="log4net.Layout.PatternLayout">
+        <!--杈撳嚭鏍煎紡-->
+        <param name="ConversionPattern" value="%n娑堟伅鏃堕棿锛�%d [%t] %n娑堟伅绾у埆锛�%-5p %n娑� 鎭� 绫伙細%c [%x] %n%m %n "/>
+      </layout>
+      <filter type="log4net.Filter.LoggerMatchFilter">
+        <loggerToMatch value="DataProcess_RobotBuffer_ForceOutbound_Info" />
+      </filter>
+      <filter type="log4net.Filter.DenyAllFilter" />
+    </appender>
+    <!--閲嶆柊鑾峰彇鍙戝姩鏈轰俊鎭�愰敊璇�戞棩蹇�-->
+    <appender name="DataProcess_RobotBuffer_ForceOutbound_Error" type="log4net.Appender.RollingFileAppender">
+      <file value="d:\\Log\\LuLiMuYe\\iWare_CC\\DataProcess_RobotBuffer_ForceOutbound_Error\\" />
+      <appendToFile value="true" />
+      <rollingStyle value="Date" />
+      <staticLogFileName value="false" />
+      <datePattern value="yyyy-MM-dd.LOG" />
+      <layout type="log4net.Layout.PatternLayout">
+        <!--杈撳嚭鏍煎紡-->
+        <param name="ConversionPattern" value="%n寮傚父鏃堕棿锛�%d [%t] %n寮傚父绾у埆锛�%-5p %n寮� 甯� 绫伙細%c [%x] %n%m %n "/>
+      </layout>
+      <filter type="log4net.Filter.LoggerMatchFilter">
+        <loggerToMatch value="DataProcess_RobotBuffer_ForceOutbound_Error" />
+      </filter>
+      <filter type="log4net.Filter.DenyAllFilter" />
+    </appender>
     <root>
       <level value="ALL"/>
+      <appender-ref ref="DataProcess_RobotBuffer_ForceOutbound_Info"/>
+      <appender-ref ref="DataProcess_RobotBuffer_ForceOutbound_Error"/>
       <appender-ref ref="DataProcess_269_Info"/>
       <appender-ref ref="DataProcess_269_Error"/>
       <appender-ref ref="DataProcess_BZ01_Info"/>
diff --git a/CC/iWareModel/EnumType/WMS/StockStatusEnum.cs b/CC/iWareModel/EnumType/WMS/StockStatusEnum.cs
index 740057e..1c4b6bb 100644
--- a/CC/iWareModel/EnumType/WMS/StockStatusEnum.cs
+++ b/CC/iWareModel/EnumType/WMS/StockStatusEnum.cs
@@ -31,9 +31,13 @@
         /// 浜哄伐寮哄埗寰呭嚭搴�
         /// </summary>
         [Description("浜哄伐寮哄埗寰呭嚭搴�")]
-        浜哄伐寮哄埗寰呭嚭搴� = 4
+        浜哄伐寮哄埗寰呭嚭搴� = 4,
 
-
+        /// <summary>
+        /// 浜哄伐寮哄埗浠诲姟宸插垱寤�
+        /// </summary>
+        [Description("浜哄伐寮哄埗浠诲姟宸插垱寤�")]
+        浜哄伐寮哄埗浠诲姟宸插垱寤� = 5
     }
 
     /// <summary>
diff --git a/CC/iWareSql/DataAccess/TaskHandler.cs b/CC/iWareSql/DataAccess/TaskHandler.cs
index c55d91b..b6e8987 100644
--- a/CC/iWareSql/DataAccess/TaskHandler.cs
+++ b/CC/iWareSql/DataAccess/TaskHandler.cs
@@ -74,6 +74,29 @@
             }
             return true;
         }
+
+        /// <summary>
+        /// 楠岃瘉 鏄惁瀛樺湪鏈粨鏉熺殑 鍑哄簱 浠诲姟
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns></returns>
+        public static bool ValidateIssueTaskForNoFinishTaskByOutStore(WmsDBModel.WmsDBModel wmsDB)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus != (int)TaskStatusEnum.宸插畬鎴�
+                 && x.TaskStatus != (int)TaskStatusEnum.宸插彇娑�
+                  && (
+                   (x.RbTaskType == (int)RbTaskTypeEnum.榻愬寘鍑哄簱浠诲姟 || x.RbTaskType == (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟)
+                )
+              ).ToList();
+
+            if (isExist?.Count() > 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+
         /// <summary>
         /// 楠岃瘉 鐮佹澘鏄惁鏈夋墽琛屼腑浠诲姟
         /// </summary>
diff --git "a/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\201.btw" "b/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\201.btw"
index 51e00ec..87dfa8a 100644
--- "a/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\201.btw"
+++ "b/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\201.btw"
Binary files differ
diff --git "a/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\216\206\345\217\262\346\250\241\346\235\277/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\20120241205.btw" "b/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\216\206\345\217\262\346\250\241\346\235\277/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\20120241205.btw"
new file mode 100644
index 0000000..51e00ec
--- /dev/null
+++ "b/LA24030_LuLiPackageLine_Print/\346\211\223\345\215\260\346\250\241\346\235\277\346\226\207\344\273\266/\345\216\206\345\217\262\346\250\241\346\235\277/\345\214\205\350\243\205\346\235\241\347\240\201\346\250\241\346\235\277_\344\272\214\347\273\264\347\240\20120241205.btw"
Binary files differ
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs
index 1546829..18bd9ef 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs
@@ -28,7 +28,13 @@
     /// 浜哄伐寮哄埗寰呭嚭搴�
     /// </summary>
     [Description("浜哄伐寮哄埗寰呭嚭搴�")]
-    浜哄伐寮哄埗寰呭嚭搴� = 4
+    浜哄伐寮哄埗寰呭嚭搴� = 4,
+
+    /// <summary>
+    /// 浜哄伐寮哄埗浠诲姟宸插垱寤�
+    /// </summary>
+    [Description("浜哄伐寮哄埗浠诲姟宸插垱寤�")]
+    浜哄伐寮哄埗浠诲姟宸插垱寤� = 5
 
 
 }
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
index 306a960..01f3141 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -75,6 +75,7 @@
             foreach (var quan in quanList)
             {
                 quan.StockStatus = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�;
+                quan.StockStatusName = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�.ToString();
                 quan.UpdateTime = DateTime.Now;
                 quan.OperReason = "浜哄伐寮哄埗寰呭嚭搴�";
             }
diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
index 87695ad..89f98f3 100644
--- a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -742,7 +742,7 @@
                 return false;
             }
         }
-        public bool WriteOutStoreTaskInfo(string stationCode, string sourcePlaceNo, out string msg, int outbound_TaskID)
+        public bool WriteOutStoreTaskInfo(bool isResetData, string stationCode, string sourcePlaceNo, out string msg, int outbound_TaskID)
         {
             try
             {
@@ -750,31 +750,48 @@
                 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, outbound_TaskID, view_stationObj.W_Outbound_TaskID);
-                if (!b2.result)
+                if (isResetData == false)
                 {
-                    msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 鍑哄簱浠诲姟鍙� " + outbound_TaskID + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
-                       stationObj.W_Outbound_TaskID);
-                    return false;
+                    MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, outbound_TaskID, view_stationObj.W_Outbound_TaskID);
+                    if (!b2.result)
+                    {
+                        msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 鍑哄簱浠诲姟鍙� " + outbound_TaskID + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                           stationObj.W_Outbound_TaskID);
+                        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;
+                    }
+
+                    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;
+                    }
+
+                    return true;
+                }
+                else
+                {
+                    MessageModel b2 = null;
+                    b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, false, view_stationObj.W_ReqOut);
+                    if (!b2.result)
+                    {
+                        msg = string.Format("鍚慡tation鍦板潃{0} 鍐� 璇锋眰鍑哄簱 " + false + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                          stationObj.W_ReqOut);
+                        return false;
+                    }
+
+                    return true;
                 }
 
-                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;
-                }
-
-                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;
-                }
-
-                return true;
             }
             catch (Exception ex)
             {
diff --git a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
index 7ad32a0..6f47975 100644
--- a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
@@ -139,7 +139,7 @@
         /// <param name="outbound_TaskID"></param>
         /// <returns></returns>
         [OperationContract]
-        SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
+        SdaResEntity WriteOutStoreTaskInfo(bool isResetData, int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
 
         /// <summary>
         /// 鍐欏叆鐮佹澘浠诲姟淇℃伅
@@ -148,20 +148,20 @@
         /// <param name="value"></param>
         /// <returns></returns>
         [OperationContract]
-        SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ,short lastnum);
+        SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum);
 
-            /// <summary>
-            /// 鐮佸灈瀹屾垚宸茬‘璁�
-            /// </summary>
-            /// <param name="deviceId"></param>
-            /// <param name="value"></param>
-            /// <returns></returns
-            [OperationContract]
+        /// <summary>
+        /// 鐮佸灈瀹屾垚宸茬‘璁�
+        /// </summary>
+        /// <param name="deviceId"></param>
+        /// <param name="value"></param>
+        /// <returns></returns
+        [OperationContract]
         SdaResEntity SetPalletizingTaskFinishAck(int deviceId, bool value, string stationCode);
 
         [OperationContract]
         SdaResEntity WriteSurroundTaskInfo(int deviceId, string stationCode, short taskID, short length, short width, short cartonhigh, short cartonwidth, short placex, short placey);
-        
+
         [OperationContract]
         SdaResEntity SetSurroundTaskFinishAck(int deviceId, bool value, string stationCode);
 
diff --git a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
index 3267b36..3414dc5 100644
--- a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
@@ -489,7 +489,7 @@
                 var Station = StationResult.resData as StationEntity;
 
                 string msg = "";
-                var result = Station.OutboundFinishConfirm(stationCode, value, out msg,isClearData);
+                var result = Station.OutboundFinishConfirm(stationCode, value, out msg, isClearData);
                 _SdaResEntity.result = result;
                 _SdaResEntity.resMsg = msg;
                 return _SdaResEntity;
@@ -572,7 +572,7 @@
         /// <param name="deviceId"></param>
         /// <param name="value"></param>
         /// <returns></returns>
-        public SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode,int taskID, short length, short width, short height,short rotate,short toplace,short placeX,short placeY, short placeZ,short lastnum)
+        public SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum)
         {
             SdaResEntity _SdaResEntity = new SdaResEntity();
             try
@@ -585,7 +585,7 @@
                 var Station = StationResult.resData as StationEntity;
 
                 string msg = "";
-                var result = Station.WritePalletizingTaskInfo(stationCode, taskID, length, width, height,rotate,toplace,placeX,placeY,placeZ,lastnum ,out msg);
+                var result = Station.WritePalletizingTaskInfo(stationCode, taskID, length, width, height, rotate, toplace, placeX, placeY, placeZ, lastnum, out msg);
                 _SdaResEntity.result = result;
                 _SdaResEntity.resMsg = msg;
                 return _SdaResEntity;
@@ -628,7 +628,7 @@
                 return _SdaResEntity;
             }
         }
-       
+
         /// <summary>
         /// 鍐欏叆鍚堝寘浠诲姟淇℃伅
         /// </summary>
@@ -648,7 +648,7 @@
                 var Station = StationResult.resData as StationEntity;
 
                 string msg = "";
-                var result = Station.WriteSurroundTaskInfo(stationCode, taskID, length, width,  cartonhigh, cartonwidth, placex, placey, out msg);
+                var result = Station.WriteSurroundTaskInfo(stationCode, taskID, length, width, cartonhigh, cartonwidth, placex, placey, out msg);
                 _SdaResEntity.result = result;
                 _SdaResEntity.resMsg = msg;
                 return _SdaResEntity;
@@ -724,7 +724,7 @@
         /// <param name="sourcePlaceNo"></param>
         /// <param name="outbound_TaskID"></param>
         /// <returns></returns>
-        public SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID)
+        public SdaResEntity WriteOutStoreTaskInfo(bool isResetData, int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID)
         {
             SdaResEntity _SdaResEntity = new SdaResEntity();
             try
@@ -737,7 +737,7 @@
                 var Station = StationResult.resData as StationEntity;
 
                 string msg = "";
-                var result = Station.WriteOutStoreTaskInfo(stationCode, sourcePlaceNo, out msg, outbound_TaskID);
+                var result = Station.WriteOutStoreTaskInfo(isResetData, stationCode, sourcePlaceNo, out msg, outbound_TaskID);
                 _SdaResEntity.result = result;
                 _SdaResEntity.resMsg = msg;
                 return _SdaResEntity;

--
Gitblit v1.9.3