//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
|
//{
|
// /// <summary>
|
// /// 机器人缓存岛 自动齐套出库 处理
|
// /// </summary>
|
// 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<wms_stock_quan> qunList = wmsDB.wms_stock_quan.Where(x => x.StockStatus == (int)StockStatusEnum.在库).ToList();
|
// var queryPageckCodeList = qunList.Select(x => x.PackageCode).Distinct().ToList();
|
// List<mes_batchOrderUPI_new> 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);
|
// }
|
// }
|
// }
|
|
// }
|
//}
|