| | |
| | | using Admin.NET.Application; |
| | | using iWareCC.Common.Helper; |
| | | using iWareCC.SrmService; |
| | | using iWareCC.StationService; |
| | | using iWareCommon.Common.Globle; |
| | | using iWareCommon.Utils; |
| | |
| | | using iWareSql.WmsDBModel; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data.Entity.Core.Metadata.Edm; |
| | | using System.Linq; |
| | | using System.ServiceModel.Configuration; |
| | | using System.Text; |
| | |
| | | using System.Threading.Tasks; |
| | | using WZ.Useful.Commons; |
| | | using XiGang.Core.Model; |
| | | using LogType = iWareCommon.Utils.LogType; |
| | | |
| | | namespace iWareCC.ThreadService |
| | | { |
| | |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = string.Empty; |
| | | try |
| | | { |
| | | if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask && |
| | | if (SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask && |
| | | { |
| | | var rgvLocation = StationLocationEnum.BZ39.ToString(); |
| | | if (FormCC.stationView == null) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-è·åPLC对象为null"; |
| | | continue; |
| | | } |
| | | var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); |
| | | if (obj.R_InboundFinish) |
| | | //if (true)//模æ |
| | | { |
| | | //var result = obj.R_InboundNumber; |
| | | //if (string.IsNullOrEmpty(result)) |
| | | //{ |
| | | // SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}- å
¥åºåºä½å·æ¯ç©ºç,æ¤æ¬¡å¾ªç¯ç»æ"; |
| | | // continue; |
| | | //} |
| | | //obj.R_Inbound_TaskID = 17797;//模æ |
| | | var result2 = obj.R_Inbound_TaskID; |
| | | if (result2 == 0) |
| | | { |
| | |
| | | continue; |
| | | } |
| | | |
| | | |
| | | var qitaoReault = false; |
| | | using (WmsDBModel wmsDB = new WmsDBModel()) |
| | | { |
| | | var task = wmsDB.wms_rbline_task.Where(x => |
| | | x.TaskNo == obj.R_Inbound_TaskID.ToString() |
| | | && x.RbTaskType == (int)RbTaskTypeEnum.å
¥åºä»»å¡ |
| | | ).OrderByDescending(x=>x.Id).FirstOrDefault(); |
| | | ).OrderByDescending(x => x.Id).FirstOrDefault(); |
| | | if (task == null) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},æ ¹æ® R_InboundNumber:{obj.R_InboundNumber}æ²¡ææ¾å°å·²ä¸åçä»»å¡ "; |
| | | continue; |
| | | } |
| | | else |
| | | else |
| | | { |
| | | if (task.TaskStatus == (int)TaskStatusEnum.已宿) |
| | | { |
| | | using (StationServiceClient client = new StationServiceClient()) |
| | | { |
| | | var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation); |
| | | |
| | | |
| | | } |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | var upiCode = task.UPI; |
| | | var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); |
| | | if (upiObj == null) |
| | | var isSuccess = await HandlerData(wmsDB, task, rgvLocation, logType, false); |
| | | if (isSuccess == false) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},æ ¹æ®UPI:{upiCode}æ²¡ææ¾å°å¯¹è±¡ "; |
| | | continue; |
| | | } |
| | | //å¢å åºå |
| | | wms_stock_quan qun = new wms_stock_quan() |
| | | { |
| | | Id = Yitter.IdGenerator.YitIdHelper.NextId(), |
| | | Upi = upiCode, |
| | | PlanNo = task.PlanNo, |
| | | DetailName = upiObj.DetailName, |
| | | OrderId = task.OrderId, |
| | | CreateTime = DateTime.Now, |
| | | CreateUserName = "CC", |
| | | InTime = DateTime.Now, |
| | | OperReason = "å
¥åº", |
| | | PackageCode = task.PackageCode, |
| | | Length = task.Length, |
| | | Width = task.Width, |
| | | Thk = task.Thk, |
| | | PlaceCode = task.PlaceCode, |
| | | StockStatus = (int)StockStatusEnum.å¨åº, |
| | | StockStatusName = StockStatusEnum.å¨åº.ToString(), |
| | | |
| | | }; |
| | | wmsDB.wms_stock_quan.Add(qun); |
| | | //var upiCode = task.Upi; |
| | | //var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); |
| | | //if (upiObj == null) |
| | | //{ |
| | | // SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},æ ¹æ®UPI:{upiCode}æ²¡ææ¾å°å¯¹è±¡ "; |
| | | // continue; |
| | | //} |
| | | ////å¢å åºå |
| | | //wms_stock_quan qun = new wms_stock_quan() |
| | | //{ |
| | | // Id = Yitter.IdGenerator.YitIdHelper.NextId(), |
| | | // Upi = upiCode, |
| | | // PlanNo = task.PlanNo, |
| | | // DetailName = upiObj.DetailName, |
| | | // OrderId = task.OrderId, |
| | | // CreateTime = DateTime.Now, |
| | | // CreateUserName = "CC", |
| | | // InTime = DateTime.Now, |
| | | // OperReason = "å
¥åº", |
| | | // PackageCode = task.PackageCode, |
| | | // Length = task.Length, |
| | | // Width = task.Width, |
| | | // Thk = task.Thk, |
| | | // PlaceCode = task.PlaceCode, |
| | | // StockStatus = (int)StockStatusEnum.å¨åº, |
| | | // StockStatusName = StockStatusEnum.å¨åº.ToString(), |
| | | |
| | | task.TaskStatus = (int)TaskStatusEnum.已宿; |
| | | task.TaskStatusName = TaskStatusEnum.已宿.ToString(); |
| | | task.FinishedTime = DateTime.Now; |
| | | //}; |
| | | //wmsDB.wms_stock_quan.Add(qun); |
| | | |
| | | //task.TaskStatus = (int)TaskStatusEnum.已宿; |
| | | //task.FinishedTime = DateTime.Now; |
| | | |
| | | |
| | | var place = StationHandler.GetPlaceByPlaceCode(task.PlaceCode, wmsDB); |
| | | place.PlaceStatus = (int)PlaceStatusEnum.æ£å¸¸; |
| | | //var place = StationHandler.GetPlaceByPlaceCode(task.PlaceCode, wmsDB); |
| | | //place.PlaceStatus = (int)PlaceStatusEnum.æ£å¸¸; |
| | | |
| | | //ç»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}"; |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-ä¸åå
¥åºä»»å¡ æå,InboundFinishConfirmAsyncï¼åæ°: ç«ç¹{rgvLocation}"); |
| | | } |
| | | } |
| | | ////ç»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}"; |
| | | // continue; |
| | | // } |
| | | // else |
| | | // { |
| | | // Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-ä¸åå
¥åºä»»å¡ æå,InboundFinishConfirmAsyncï¼åæ°: ç«ç¹{rgvLocation}"); |
| | | // } |
| | | //} |
| | | |
| | | WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, task.PlaceCode, "ç¼åå
¥åºå®æ:"+ task.PlaceCode); |
| | | //WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, task.PlaceCode, "ç¼åå
¥åºå®æ:" + task.PlaceCode); |
| | | |
| | | wmsDB.SaveChanges(); |
| | | //wmsDB.SaveChanges(); |
| | | } |
| | | } |
| | | else |
| | |
| | | |
| | | } |
| | | |
| | | using (WmsDBModel wmsDB = new WmsDBModel()) |
| | | { |
| | | var task = wmsDB.wms_rbline_task.Where(x => |
| | | x.IsFlagFinish == true |
| | | && x.RbTaskType == (int)RbTaskTypeEnum.å
¥åºä»»å¡ |
| | | && x.TaskStatus == (int)TaskStatusEnum.å·²ä¸å |
| | | ).OrderByDescending(x => x.Id).FirstOrDefault(); |
| | | if (task == null) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},æ²¡ææ¾å°å·²ä¸å,并䏿 记强å¶å®æçä»»å¡ "; |
| | | continue; |
| | | } |
| | | |
| | | var isSuccess = await HandlerData(wmsDB, task, rgvLocation, logType, true); |
| | | if (isSuccess == false) |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | public static async Task<bool> HandlerData(WmsDBModel wmsDB, wms_rbline_task task, string rgvLocation, iWareCommon.Utils.LogType logType, bool isFlagFinish) |
| | | { |
| | | var upiCode = task.Upi; |
| | | var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); |
| | | if (upiObj == null) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},æ ¹æ®UPI:{upiCode}æ²¡ææ¾å°å¯¹è±¡ "; |
| | | return false; |
| | | } |
| | | //å¢å åºå |
| | | wms_stock_quan qun = new wms_stock_quan() |
| | | { |
| | | Id = Yitter.IdGenerator.YitIdHelper.NextId(), |
| | | Upi = upiCode, |
| | | PlanNo = task.PlanNo, |
| | | DetailName = upiObj.DetailName, |
| | | OrderId = task.OrderId, |
| | | CreateTime = DateTime.Now, |
| | | CreateUserName = "CC", |
| | | InTime = DateTime.Now, |
| | | OperReason = "å
¥åº", |
| | | PackageCode = task.PackageCode, |
| | | Length = task.Length, |
| | | Width = task.Width, |
| | | Thk = task.Thk, |
| | | PlaceCode = task.PlaceCode, |
| | | StockStatus = (int)StockStatusEnum.å¨åº, |
| | | StockStatusName = StockStatusEnum.å¨åº.ToString(), |
| | | |
| | | }; |
| | | wmsDB.wms_stock_quan.Add(qun); |
| | | |
| | | task.TaskStatus = (int)TaskStatusEnum.已宿; |
| | | task.FinishedTime = DateTime.Now; |
| | | |
| | | |
| | | 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}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | var flag = isFlagFinish ? "人工强å¶å®æ" : "ï¼èªå¨å®æï¼"; |
| | | WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, task.PlaceCode, "ç¼åå
¥åºå®æ(" + flag + "):" + task.PlaceCode); |
| | | |
| | | wmsDB.SaveChanges(); |
| | | |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | } |