cjs
2 天以前 648f4270f4f56c5ca284dbcfa650de05e46a7052
HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -297,14 +297,18 @@
                    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, "瓶坯");
                            }
                        }
                    }
                }
@@ -312,20 +316,26 @@
                LocList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY).ToList();
                if (LocList.Count > 2)
                {
                    //判断任务是否存在
                    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;
                                }
                            }
                        }
                    }
@@ -361,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)
                    {
@@ -436,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;