|  |  |  | 
|---|
|  |  |  | using Admin.NET.Application; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | //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) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //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; | 
|---|
|  |  |  | //                        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 stock = group.ToList().Find(b => b.Upi == item.UPI); | 
|---|
|  |  |  | //                                        stock.StockStatus = (int)StockStatusEnum.é½å
å¾
åºåº; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //çæåºåºä»»å¡ | 
|---|
|  |  |  | //è®°å½ä»»å¡ | 
|---|
|  |  |  | var _id = Yitter.IdGenerator.YitIdHelper.NextId(); | 
|---|
|  |  |  | var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask(); | 
|---|
|  |  |  | var new_task = new wms_rbline_task() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Id = _id, | 
|---|
|  |  |  | TaskNo = plcTaskNo, | 
|---|
|  |  |  | //                                        //çæåºåºä»»å¡ | 
|---|
|  |  |  | //                                        //è®°å½ä»»å¡ | 
|---|
|  |  |  | //                                        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, | 
|---|
|  |  |  | //                                            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.é½å
åºåºä»»å¡, | 
|---|
|  |  |  | RbTaskTypeEnumName = RbTaskTypeEnum.é½å
åºåºä»»å¡.ToString(), | 
|---|
|  |  |  | TaskStatus = (int)TaskStatusEnum.æ°å»º, | 
|---|
|  |  |  | TaskStatusName = TaskStatusEnum.æ°å»º.ToString(), | 
|---|
|  |  |  | TaskMsg = "åºåºä»»å¡", | 
|---|
|  |  |  | //                                            PlanNo = stock.PlanNo, | 
|---|
|  |  |  | //                                            OrderId = stock.OrderId, | 
|---|
|  |  |  | //                                            PackageCode = stock.PackageCode, | 
|---|
|  |  |  | //                                            PlaceCode = stock.PlaceCode, | 
|---|
|  |  |  | //                                            RbTaskType = (int)RbTaskTypeEnum.é½å
åºåºä»»å¡, | 
|---|
|  |  |  | //                                            TaskStatus = (int)TaskStatusEnum.æ°å»º, | 
|---|
|  |  |  | //                                            TaskMsg = "åºåºä»»å¡", | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | CreateTime = DateTime.Now, | 
|---|
|  |  |  | CreateUserName = "CC", | 
|---|
|  |  |  | UpdateTime = DateTime.Now, | 
|---|
|  |  |  | UpdateUserName = "CC", | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | //                                            CreateTime = DateTime.Now, | 
|---|
|  |  |  | //                                            CreateUserName = SysGloble.WCSSystem, | 
|---|
|  |  |  | //                                            UpdateTime = DateTime.Now, | 
|---|
|  |  |  | //                                            UpdateUserName = SysGloble.WCSSystem, | 
|---|
|  |  |  | //                                        }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wmsDB.wms_rbline_task.Add(new_task); | 
|---|
|  |  |  | //                                        wmsDB.wms_rbline_task.Add(new_task); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var place = StationHandler.GetPlaceByPlaceCode(stock.PlaceCode, wmsDB); | 
|---|
|  |  |  | place.PlaceStatus = (int)PlaceStatusEnum.éå®; | 
|---|
|  |  |  | //                                        var place = StationHandler.GetPlaceByPlaceCode(stock.PlaceCode, wmsDB); | 
|---|
|  |  |  | //                                        place.PlaceStatus = (int)PlaceStatusEnum.éå®; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Thread.Sleep(100); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                                        Thread.Sleep(100); | 
|---|
|  |  |  | //                                    } | 
|---|
|  |  |  | //                                } | 
|---|
|  |  |  | //                            } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wmsDB.SaveChanges(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                            wmsDB.SaveChanges(); | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound += " åºç°å¼å¸¸:" + ex.Message + SysGloble.SPLIT_STR; | 
|---|
|  |  |  | Log4NetHelper.WriteErrorLog(logType, " åºç°å¼å¸¸ï¼" + ex.Message, ex); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                    } | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //                catch (Exception ex) | 
|---|
|  |  |  | //                { | 
|---|
|  |  |  | //                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound += " åºç°å¼å¸¸:" + ex.Message + SysGloble.SPLIT_STR; | 
|---|
|  |  |  | //                    Log4NetHelper.WriteErrorLog(logType, " åºç°å¼å¸¸ï¼" + ex.Message, ex); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  | //} | 
|---|