222
schangxiang@126.com
2024-12-05 2225959bc5c3588407e90a6285ab2c32b3481d90
222
已添加2个文件
已修改20个文件
554 ■■■■■ 文件已修改
CC/iWareCC_ASRS/Common/SystemWarningMsg.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/DeviceThreadFactory/DeviceThreadService/SrmThreadService/SrmTaskThreadService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/FormCC.Designer.cs 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/FormCC.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/2、DataProcess_RobotBuffer_IssueOutboundTask.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/4、DataProcess_RobotBuffer_ForceOutbound.cs 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/5、CC_DataProcess_RobotBuffer_ForceOutbound.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/iWareCC.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCommon/Utils/Log4Net/LogType.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCommon/log4net_iWare -编辑版.config 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCommon/log4net_iWare.config 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareModel/EnumType/WMS/StockStatusEnum.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/DataAccess/TaskHandler.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Print/打印模板文件/包装条码模板_二维码.btw 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Print/打印模板文件/历史模板/包装条码模板_二维码20241205.btw 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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) {
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" />
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秒一次
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;
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);
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/2¡¢DataProcess_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
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/4¡¢DataProcess_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方法执行后不显示错误信息的提示!!!【EditBy 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);
                }
            }
        }
    }
}
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/5¡¢CC_DataProcess_RobotBuffer_ForceOutbound.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
using 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;
            }
        }
    }
}
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、DataProcess_BZ39_IssueInboundTask.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\4、DataProcess_RobotBuffer_ForceOutbound.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\5、CC_DataProcess_RobotBuffer_ForceOutbound.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\2、DataProcess_RobotBuffer_IssueOutboundTask.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\1、DataProcess_RobotBuffer_AutoQiTaoOutbound.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\3、DataProcess_RobotBuffer_FinishTaskForOutbound.cs" />
CC/iWareCommon/Utils/Log4Net/LogType.cs
@@ -36,7 +36,7 @@
        #region SDA相关
        SS7 = 200,
        HslCommunicationService = 201,
        DataProcess_RobotBuffer_ForceOutbound = 201,
        /// <summary>
        /// PLC数据访问服务日志
CC/iWareCommon/log4net_iWare -±à¼­°æ.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>
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"/>
CC/iWareModel/EnumType/WMS/StockStatusEnum.cs
@@ -31,9 +31,13 @@
        /// äººå·¥å¼ºåˆ¶å¾…出库
        /// </summary>
        [Description("人工强制待出库")]
        äººå·¥å¼ºåˆ¶å¾…出库 = 4
        äººå·¥å¼ºåˆ¶å¾…出库 = 4,
        /// <summary>
        /// äººå·¥å¼ºåˆ¶ä»»åŠ¡å·²åˆ›å»º
        /// </summary>
        [Description("人工强制任务已创建")]
        äººå·¥å¼ºåˆ¶ä»»åŠ¡å·²åˆ›å»º = 5
    }
    /// <summary>
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>
LA24030_LuLiPackageLine_Print/´òÓ¡Ä£°åÎļþ/°ü×°ÌõÂëÄ£°å_¶þάÂë.btw
Binary files differ
LA24030_LuLiPackageLine_Print/´òÓ¡Ä£°åÎļþ/ÀúÊ·Ä£°å/°ü×°ÌõÂëÄ£°å_¶þάÂë20241205.btw
Binary files differ
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/ReportCenter/StockStatusEnum.cs
@@ -28,7 +28,13 @@
    /// äººå·¥å¼ºåˆ¶å¾…出库
    /// </summary>
    [Description("人工强制待出库")]
    äººå·¥å¼ºåˆ¶å¾…出库 = 4
    äººå·¥å¼ºåˆ¶å¾…出库 = 4,
    /// <summary>
    /// äººå·¥å¼ºåˆ¶ä»»åŠ¡å·²åˆ›å»º
    /// </summary>
    [Description("人工强制任务已创建")]
    äººå·¥å¼ºåˆ¶ä»»åŠ¡å·²åˆ›å»º = 5
}
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 = "人工强制待出库";
            }
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("向Station地址{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("向Station地址{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("向Station地址{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("向Station地址{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("向Station地址{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("向Station地址{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("向Station地址{0} å†™ è¯·æ±‚出库 " + true + "失败,返回结果:" + b2.resMsg,
                      stationObj.W_ReqOut);
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
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);
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;