//using Admin.NET.Application; //using iWareCC.Common.Helper; //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 //{ // /// // /// 机器人缓存岛 自动齐套出库 处理 // /// // public static class DataProcess_RobotBuffer_AutoQiTaoOutbound // { // public static async void Handler() // { // var alertMsg = ""; // LogType logType = LogType.DataProcess_RobotBuffer_AutoQiTaoOutbound; // while (true) // { // Thread.Sleep(2000);//休眠2秒,将休眠写到前面,是为了下面的continue方法执行后不显示错误信息的提示!!!【EditBy shaocx,2022-05-24】 // SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound = string.Empty; // try // {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound && // if (SystemValue.isStartedModel) // { // using (WmsDBModel wmsDB = new WmsDBModel()) // { // List qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.在库).ToList(); // var queryPageckCodeList = qunList.Select(x => x.PackageCode).Distinct().ToList(); // List upiList = wmsDB.mes_batchOrderUPI_new.Where(x => queryPageckCodeList.Contains(x.PackageCode)).ToList(); // var groups = qunList.GroupBy(x => x.PackageCode); // foreach (var group in groups) // { // var packageCode = group.Key; // var allCount = upiList.Where(x => x.PackageCode == packageCode).Count(); // if (allCount == group.ToList().Count()) // { // //满足齐套,出库 // //注意:排序严格按照 次序 进行排序。 !!!!!!!! // var doList = upiList.Where(x => x.PackageCode == packageCode).OrderBy(x => x.Shelf).ToList(); // foreach (var item in doList) // { // item.UpiStatus = (int)UpiStatusEnum.已齐包; // item.UpdateTime = DateTime.Now; // var stock = group.ToList().Find(b => b.Upi == item.UPI); // stock.StockStatus = (int)StockStatusEnum.齐包待出库; // //生成出库任务 // //记录任务 // var _id = Yitter.IdGenerator.YitIdHelper.NextId(); // var plcTaskNo = BusinessHelper.CreatePlcTaskId(); // plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.齐包出库任务, plcTaskNo); // var new_task = new wms_rbline_task() // { // Id = _id, // TaskNo = plcTaskNo, // Upi = stock.Upi, // Length = stock.Length, // Width = stock.Width, // Thk = stock.Thk, // PlanNo = stock.PlanNo, // OrderId = stock.OrderId, // PackageCode = stock.PackageCode, // PlaceCode = stock.PlaceCode, // RbTaskType = (int)RbTaskTypeEnum.齐包出库任务, // TaskStatus = (int)TaskStatusEnum.新建, // TaskMsg = "出库任务", // CreateTime = DateTime.Now, // CreateUserName = SysGloble.WCSSystem, // UpdateTime = DateTime.Now, // UpdateUserName = SysGloble.WCSSystem, // }; // wmsDB.wms_rbline_task.Add(new_task); // var place = StationHandler.GetPlaceByPlaceCode(stock.PlaceCode, wmsDB); // place.PlaceStatus = (int)PlaceStatusEnum.锁定; // Thread.Sleep(100); // } // } // } // wmsDB.SaveChanges(); // } // } // } // catch (Exception ex) // { // SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound += " 出现异常:" + ex.Message + SysGloble.SPLIT_STR; // Log4NetHelper.WriteErrorLog(logType, " 出现异常:" + ex.Message, ex); // } // } // } // } //}