11
cjs
7 天以前 1b4deb836c68efb689e13d3512888ae04fc99f09
HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -307,29 +307,111 @@
        /// </summary>
        internal static void PPFDFullInEmpty()
        {
            //瓶坯非即产空框区堆叠库区一共四个货位,如果有三个货位是满的,就开始转运到瓶坯库区
            //如果满货位小于等于一就开始从满框缓存区空框区域转运,如果满框缓存区空框区域无空托,则从瓶坯库转运
            var db = new SqlHelper<object>().GetInstance();
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "农夫林芝-瓶坯机" && a.S_UsingNow == "N" && a.S_WorkState == "执行中").First();
            if(workInfo != null)
            {
                var areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯非即产空框" && a.enable == 1).FirstOrDefault();
                if(areaInfo != null)
                {
                    var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == 0 && a.S_LOCK_STATE == "无").First();
                    if(locInfo != null)
                var LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY).ToList();
                if(LocList.Count <= 1)
                    {
                        //生成任务
                        Location location = TaskProcess.BCPInOrOut(db, false, "瓶坯库区", "");
                        if (location != null)
                    //需要从库区补充空托
                    Location location = TaskProcess.FJCKTLoc();
                    var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM < a.N_CAPACITY && a.S_LOCK_STATE == "无").First();
                    if(location != null && locInfo != null)
                        {
                            string cntrCode = getCntrCode(db, location);
                            //创建作业
                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非急产补空框", cntrCode, "瓶坯");
                        }
                    }
                }
                else
                if (LocList.Count >= 2)
                {
                    LogHelper.Info("瓶坯非即产空框 未配置");
                    //需要将空托转运到库区
                    foreach (var a in LocList)
                    {
                        if(a.S_LOCK_STATE == "无")
                        {
                            //生成任务
                            string cntrCode = getCntrCode(db, a);
                            //创建作业
                            WMSHelper.CreateOpTask(a.S_CODE, "", "入库", "瓶坯非急产空框入库", cntrCode, "瓶坯");
                            break;
                        }
                    }
                }
            }
            #region
            //var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "农夫林芝-瓶坯机" && a.S_UsingNow == "N" && a.S_WorkState == "执行中").First();
            //if(workInfo != null)
            //{
            //    var areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯非即产空框" && a.enable == 1).FirstOrDefault();
            //    if(areaInfo != null)
            //    {
            //        var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == 0 && a.S_LOCK_STATE == "无").First();
            //        if(locInfo != null)
            //        {
            //            //生成任务
            //            Location location = TaskProcess.BCPInOrOut(db, false, "瓶坯库区", "");
            //            if (location != null)
            //            {
            //                string cntrCode = getCntrCode(db, location);
            //                //创建作业
            //                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非急产补空框", cntrCode, "瓶坯");
            //            }
            //        }
            //    }
            //    else
            //    {
            //        LogHelper.Info("瓶坯非即产空框 未配置");
            //    }
            //}
            #endregion
        }
        internal static void PGFDFullInJC()
        {
            var db = new SqlHelper<object>().GetInstance();
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "农夫林芝-瓶坯机" && a.S_UsingNow == "Y" && a.S_WorkState == "执行中").First();
            if(workInfo != null)
            {
                var areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯即产满框" && a.enable == 1).FirstOrDefault();
                if(areaInfo != null)
                {
                    var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == 0 && a.S_LOCK_STATE == "无").First();
                    if (locInfo != null)
                    {
                        //开始转运
                        Location startLoca = TaskProcess.BCPInOrOut(db, false, "瓶坯即产满框缓存", workInfo.S_ItemCode);
                        if (startLoca != null)
                        {
                            //创建作业
                            string cntrCode = getCntrCode(db, startLoca);
                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "出库", "瓶坯急产补满框", cntrCode, "");
                        }
                    }
                }
                areaInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯即产空框" && a.enable == 1).FirstOrDefault();
                if (areaInfo != null)
                {
                    var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == 0 && a.S_LOCK_STATE == "无").ToList();
                    if (locInfo.Count == 2)
                    {
                        //开始转运
                        Location startLoca = TaskProcess.BCPInOrOut(db, false, "瓶坯即产满框缓存", "");
                        if (startLoca != null)
                        {
                            //创建作业
                            string cntrCode = getCntrCode(db, startLoca);
                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "出库", "瓶坯急产补空框", cntrCode, "");
                        }
                    }
                }
            }
        }