222
schangxiang@126.com
2024-12-05 2225959bc5c3588407e90a6285ab2c32b3481d90
222
已添加2个文件
已修改20个文件
380 ■■■■ 文件已修改
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 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/4、DataProcess_RobotBuffer_ForceOutbound.cs 37 ●●●● 补丁 | 查看 | 原始文档 | 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 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | 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
@@ -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,16 +13,21 @@
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;
            var alertMsg = "";
            LogType logType = LogType.DataProcess_RobotBuffer_ForceOutbound;
            while (true)
            {
                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)
            {
                var rgvLocation = StationLocationEnum.BZ39.ToString();
@@ -30,17 +35,17 @@
                if (obj.R_ForceOutboundMode == false)
                {
                    alertMsg = "PLC不是强制出库模式";
                    return false;
                            continue;
                }
                using (WmsDBModel wmsDB = new WmsDBModel())
                {
                    List<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.在库
                        && x.PackageCode == packageCode
                    ).ToList();
                            List<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.人工强制待出库
                            ).OrderBy(x => x.PackageCode).ToList();
                    foreach (var x in qunList)
                    {
                        x.StockStatus = (int)StockStatusEnum.人工强制待出库;
                                x.StockStatus = (int)StockStatusEnum.人工强制任务已创建;
                                x.StockStatusName = StockStatusEnum.人工强制任务已创建.ToString();
                        //生成出库任务
                        //记录任务
@@ -86,17 +91,15 @@
                    wmsDB.SaveChanges();
                }
                return true;
                    }
            }
            catch (Exception ex)
            {
                alertMsg = " å‡ºçް异叏:" + ex.Message;
                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound += " å‡ºçް异叏:" + ex.Message + SysGloble.SPLIT_STR;
                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ForceOutbound += " å‡ºçް异叏:" + ex.Message + SysGloble.SPLIT_STR;
                Log4NetHelper.WriteErrorLog(logType, " å‡ºçŽ°å¼‚å¸¸ï¼š" + ex.Message, ex);
                }
            }
        }
                return false;
            }
        }
    }
}
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,6 +750,8 @@
                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();
                if (isResetData == false)
                {
                MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, outbound_TaskID, view_stationObj.W_Outbound_TaskID);
                if (!b2.result)
                {
@@ -776,6 +778,21 @@
                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;
                }
            }
            catch (Exception ex)
            {
                msg = ex.Message;
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>
        /// å†™å…¥ç æ¿ä»»åŠ¡ä¿¡æ¯
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
@@ -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;