33
schangxiang@126.com
2024-12-08 7285fd041c9ed732ae2039c4cc54f3eb382d9112
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/1¡¢DataProcess_BZ39.cs
@@ -41,6 +41,11 @@
                         * 1、从数据库中判断是否齐套
                         * 2、根据齐套结果,推送给PLC
                         */
                        if (FormCC.stationView == null)
                        {
                            SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-获取PLC对象为null";
                            continue;
                        }
                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
                        if (obj.R_ReqParseData)
                        {
@@ -57,23 +62,40 @@
                                //不再拦截 
                                //要是有已下发的任务,就不要执行
                                var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB, upiCode);
                                var isValidate = TaskHandler.ValidateIssueTaskForNoFinishTaskByUpi(wmsDB, upiCode);
                                if (!isValidate)
                                {
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-有‘已下发’的任务,不能处理,此次循环结束";
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-有‘未结束’的任务,不能处理,此次循环结束";
                                    continue;
                                }
                                //
                                var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault();
                                if (upiObj == null)
                                {
                                    //写入报警信息
                                    await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningGloble.Num_BZ39_2);
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()},根据UPI:{upiCode}没有找到对象 ";
                                    continue;
                                }
                                //判断他是否在库里面
                                var stock = wmsDB.wms_stock_quan.Where(x => x.Upi == upiObj.UPI).FirstOrDefault();
                                if (stock != null)
                                {
                                    //写入报警信息
                                    await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningGloble.Num_BZ39_1);
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()},UPI:{upiCode}已经在缓存库中了 ";
                                    continue;
                                }
                                //了解他的长、宽、高,寻找空库位
                                var place = StationHandlerV2.FindBestEmptyPlace(wmsDB, upiObj);
                                if (place == null)
                                {
                                    //写入报警信息
                                    await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningGloble.Num_BZ39_3);
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()},根据UPI:{upiCode}没有找到缓存区岛的空库位 ";
                                    continue;
                                }
@@ -86,7 +108,7 @@
                                {
                                    Id = _id,
                                    TaskNo = plcTaskNo,
                                    UPI = upiObj.UPI,
                                    Upi = upiObj.UPI,
                                    Length = upiObj.Length,
                                    Width = upiObj.Width,
                                    Thk = upiObj.Thk,
@@ -96,9 +118,7 @@
                                    PackageCode = upiObj.PackageCode,
                                    PlaceCode = place.PlaceCode,
                                    RbTaskType = (int)RbTaskTypeEnum.入库任务,
                                    RbTaskTypeEnumName = RbTaskTypeEnum.入库任务.ToString(),
                                    TaskStatus = (int)TaskStatusEnum.已下发,
                                    TaskStatusName = TaskStatusEnum.已下发.ToString(),
                                    TaskStatus = (int)TaskStatusEnum.新建,
                                    TaskMsg = "入库",
@@ -110,6 +130,8 @@
                                wmsDB.wms_rbline_task.Add(task);
                                //临时
                                /*
                                using (StationServiceClient client = new StationServiceClient())
                                {
@@ -126,12 +148,13 @@
                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,WriteInStoreTaskInfoAsync,参数: ç«™ç‚¹{rgvLocation}");
                                    }
                                }
                                //*/
                                place.PlaceStatus = (int)PlaceStatusEnum.锁定;
                                WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, "BZ39", "缓存入库");
                                WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, "BZ39", "缓存入库:" + place.PlaceCode);
                                wmsDB.SaveChanges();
                            }