cjs
2 天以前 cf94ef1a8860f5dc6cc52ed2c024477a2bc1c93f
HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -107,7 +107,7 @@
        }
        /// <summary>
        /// 瓶坯翻斗机非急产满框区补满托
        /// 瓶坯翻斗机非即产满框区补满托
        /// </summary>
        internal static void PPFDFullIn()
        {
@@ -132,7 +132,7 @@
                            {
                                string cntrCode = getCntrCode(db,location);
                                //创建作业
                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非急产补满框", cntrCode, "瓶坯");
                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非即产补满框", cntrCode, "瓶坯");
                            }
                        }
                    }
@@ -206,7 +206,7 @@
                                {
                                    string cntrCode = getCntrCode(db, location);
                                    //创建作业
                                    WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶盖非急产补满框大包装", cntrCode, "瓶盖");
                                    WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶盖非即产补满框大包装", cntrCode, "瓶盖");
                                }
                            }
                            if (itemCount.Count == 2)
@@ -252,7 +252,7 @@
                                        {
                                            string cntrCode = getCntrCode(db, location);
                                            //创建作业
                                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶盖非急产补满框大包装", cntrCode, "瓶盖");
                                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶盖非即产补满框大包装", cntrCode, "瓶盖");
                                        }
                                    }
                                }
@@ -263,7 +263,7 @@
                                    {
                                        string cntrCode = getCntrCode(db, location);
                                        //创建作业
                                        WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶盖非急产补满框大包装", cntrCode, "瓶盖");
                                        WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶盖非即产补满框大包装", cntrCode, "瓶盖");
                                    }
                                }
                            }
@@ -293,36 +293,49 @@
                var LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0).ToList();
                if(LocList.Count <= 1)
                {
                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "瓶坯非急产补空框" && a.S_B_STATE != "完成" && a.S_B_STATE != "取消").First();
                    LogHelper.Info($"瓶坯非即产补空框 {JsonConvert.SerializeObject(LocList)}");
                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "瓶坯非即产补空框" && a.S_B_STATE != "完成" && a.S_B_STATE != "取消").First();
                    if(taskInfo == 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 == "无").OrderBy(a => a.N_ROW).First();
                        if (location != null && locInfo != null)
                        var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_OP_DEF_NAME == "瓶坯非即产补空框" && (a.N_B_STATE == 0 || a.N_B_STATE == 1)).First();
                        if(wmsTask == null)
                        {
                            string cntrCode = getCntrCode(db, location);
                            //创建作业
                            WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非急产补空框", cntrCode, "瓶坯");
                            //需要从库区补充空托
                            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 == "无").OrderBy(a => a.N_ROW).First();
                            if (location != null && locInfo != null)
                            {
                                string cntrCode = getCntrCode(db, location);
                                //创建作业
                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非即产补空框", cntrCode, "瓶坯");
                            }
                        }
                    }
                }
                LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY).ToList();
                if (LocList.Count > 2)
                {
                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "瓶坯非急产空框入库" && a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "卸货完成" && a.S_B_STATE != "开始卸货" && a.S_B_STATE != "取货完成").First();
                    //判断任务是否存在
                    LogHelper.Info($"瓶坯非即产空托入库 {JsonConvert.SerializeObject(LocList)}");
                    var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "瓶坯非即产空框入库" && a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "卸货完成" && a.S_B_STATE != "开始卸货" && a.S_B_STATE != "取货完成").First();
                    if(taskInfo == null)
                    {
                        //需要将空托转运到库区
                        foreach (var a in LocList)
                        //判断作业是否存在
                        var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_OP_DEF_NAME == "瓶坯非即产空框入库" && (a.N_B_STATE == 0 || a.N_B_STATE == 1)).First();
                        if(wmsTask == null)
                        {
                            if (a.S_LOCK_STATE == "无")
                            //需要将空托转运到库区
                            foreach (var a in LocList)
                            {
                                //生成任务
                                string cntrCode = getCntrCode(db, a);
                                //创建作业
                                WMSHelper.CreateOpTask(a.S_CODE, "", "入库", "瓶坯非急产空框入库", cntrCode, "瓶坯");
                                break;
                                if (a.S_LOCK_STATE == "无")
                                {
                                    //生成任务
                                    string cntrCode = getCntrCode(db, a);
                                    //创建作业
                                    WMSHelper.CreateOpTask(a.S_CODE, "", "入库", "瓶坯非即产空框入库", cntrCode, "瓶坯");
                                    break;
                                }
                            }
                        }
                    }
@@ -345,7 +358,7 @@
            //            {
            //                string cntrCode = getCntrCode(db, location);
            //                //创建作业
            //                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非急产补空框", cntrCode, "瓶坯");
            //                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "入库", "瓶坯非即产补空框", cntrCode, "瓶坯");
            //            }
            //        }
            //    }
@@ -358,15 +371,16 @@
        }
        internal static void PGFDFullInJC()
        internal static void PPFDFullInJC()
        {
            var db = new SqlHelper<object>().GetInstance();
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == "农夫林芝-瓶坯机" && a.S_UsingNow == "Y" && a.S_WorkState == "执行中").First();
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo.Contains("瓶坯翻斗机") && 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)
                    {
@@ -376,7 +390,7 @@
                        {
                            //创建作业
                            string cntrCode = getCntrCode(db, startLoca);
                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "出库", "瓶坯急产补满框", cntrCode, "");
                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo.S_CODE, "出库", "瓶坯即产补满框", cntrCode, "");
                        }
                    }
                }
@@ -393,7 +407,7 @@
                        {
                            //创建作业
                            string cntrCode = getCntrCode(db, startLoca);
                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "出库", "瓶坯急产补空框", cntrCode, "");
                            WMSHelper.CreateOpTask(startLoca.S_CODE, locInfo[0].S_CODE, "出库", "瓶坯即产补空框", cntrCode, "");
                        }
                    }
                }
@@ -433,7 +447,7 @@
                            {
                                var rowInfo = db.Queryable<RowLock>().Where(a => a.S_AREA_CODE == endloc.S_AREA_CODE && a.S_ROW == endloc.S_ROW).First();
                                LogHelper.Info($"瓶盖小包装盖转运:查询锁信息,货位锁:{endloc.S_LOCK_STATE},排锁:{JsonConvert.SerializeObject(rowInfo)}");
                                if(rowInfo!=null && rowInfo.S_LOCK_STATE == "无" && endloc.S_LOCK_STATE == "无")
                                if(rowInfo != null && rowInfo.S_LOCK_STATE == "无" && endloc.S_LOCK_STATE == "无")
                                {
                                    endLoca = endloc;
                                    break;
@@ -455,7 +469,7 @@
                        if (startLoca != null)
                        {
                            string cntrCode = getCntrCode(db, startLoca);
                            WMSHelper.CreateOpTask(startLoca.S_CODE, endLoca.S_CODE, "出库", "瓶盖非急产补满框小包装", cntrCode, "");
                            WMSHelper.CreateOpTask(startLoca.S_CODE, endLoca.S_CODE, "出库", "瓶盖非即产补满框小包装", cntrCode, "");
                        }
                    }
                }