schangxiang@126.com
2025-04-01 de7dbe7cf85aa01abb64040aae1c04dfba74c135
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/3¡¢DataProcess_RobotBuffer_FinishTask.cs
@@ -198,6 +198,7 @@
            wms_stock_quan qun = new wms_stock_quan()
            {
                Id = Yitter.IdGenerator.YitIdHelper.NextId(),
                Shelf = upiObj.Shelf,
                Upi = upiCode,
                PlanNo = task.PlanNo,
                DetailName = upiObj.DetailName,
@@ -224,28 +225,58 @@
            var place = StationHandler.GetPlaceByPlaceCode(task.PlaceCode, wmsDB);
            place.PlaceStatus = (int)PlaceStatusEnum.正常;
            if (isFlagFinish == false)
            {
                //给PLC推送任务完成确认信号
                using (StationServiceClient client = new StationServiceClient())
                {
                    var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation);
                    if (!res.result)
                    {
                        SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发入库任务 å¤±è´¥,InboundFinishConfirmAsync è¿”回:{res.resMsg}";
                        return false;
                    }
                    else
                    {
                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,InboundFinishConfirmAsync,参数: ç«™ç‚¹{rgvLocation}");
                    }
                }
            }
            //if (isFlagFinish == false)
            //{
            //    //给PLC推送任务完成确认信号
            //    using (StationServiceClient client = new StationServiceClient())
            //    {
            //        var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation);
            //        if (!res.result)
            //        {
            //            SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发入库任务 å¤±è´¥,InboundFinishConfirmAsync è¿”回:{res.resMsg}";
            //            return false;
            //        }
            //        else
            //        {
            //            Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,InboundFinishConfirmAsync,参数: ç«™ç‚¹{rgvLocation}");
            //        }
            //    }
            //}
            var flag = isFlagFinish ? "人工强制完成" : "(自动完成)";
            WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, task.PlaceCode, "缓存入库完成(" + flag + "):" + task.PlaceCode);
            wmsDB.SaveChanges();
            int changeNum = wmsDB.SaveChanges();
            if (changeNum > 0)
            {
                //必须要给PLC下发成功,解决可能会给PLC重复下发任务的情况
                var isRight = true;
                if (isFlagFinish == false)
                {
                    while (isRight)
                    {
                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
                        isRight = obj.R_InboundFinish;
                        //给PLC推送任务完成确认信号
                        using (StationServiceClient client = new StationServiceClient())
                        {
                            var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation);
                            if (!res.result)
                            {
                                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发入库任务 å¤±è´¥,InboundFinishConfirmAsync è¿”回:{res.resMsg}";
                                Log4NetHelper.WriteErrorLog(logType, $"{rgvLocation.ToString()}-完成入库任务写入【true】 å¤±è´¥,InboundFinishConfirmAsync,返回:{res.resMsg},参数:TaskNo:{task.TaskNo}, PlaceCode:{task.PlaceCode},条码:{task.Upi}");
                            }
                            else
                            {
                                Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-完成入库任务写入【true】 æˆåŠŸ,InboundFinishConfirmAsync,参数:TaskNo:{task.TaskNo}, PlaceCode:{task.PlaceCode},条码:{task.Upi}");
                                //isRight = false;
                            }
                        }
                        Thread.Sleep(1000);
                    }
                }
            }
            return true;
        }