海波 张
2025-06-03 baf741a2c65777b70d96b6c5d60204170dd92626
wms/TaskHelper.cs
@@ -58,6 +58,13 @@
        }
        internal static WmsWork GetWmsWork(string no) {
            var db = new SqlHelper<WmsWork>().GetInstance();
            return db.Queryable<WmsWork>().Where(it => it.S_CODE == no).First();
        }
        internal static WMSTask GetTaskByCntrCode(string cntrCode)
        {
            var db = new SqlHelper<WMSTask>().GetInstance();
@@ -104,7 +111,7 @@
        internal static WMSTask GetTaskByStartLoc(string loc)
        {
            var db = new SqlHelper<WMSTask>().GetInstance();
            var task = db.Queryable<WMSTask>().Where(a => a.S_START_LOC == loc && a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "失败" && a.S_B_STATE != "已完成").OrderByDescending(b => b.T_CREATE).First();
            var task = db.Queryable<WMSTask>().Where(a => a.S_START_LOC == loc && a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "失败" && a.S_B_STATE != "已完成" && a.S_B_STATE != "未执行").OrderByDescending(b => b.T_CREATE).First();
            return task;
        }
        /// <summary>
@@ -115,7 +122,7 @@
        internal static WMSTask GetTaskByEndLoc(string loc)
        {
            var db = new SqlHelper<WMSTask>().GetInstance();
            var task = db.Queryable<WMSTask>().Where(a => a.S_END_LOC == loc &&  a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "失败" && a.S_B_STATE != "已完成").OrderByDescending(b => b.T_CREATE).First();
            var task = db.Queryable<WMSTask>().Where(a => a.S_END_LOC == loc &&  a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "失败" && a.S_B_STATE != "已完成" && a.S_B_STATE != "未执行").OrderByDescending(b => b.T_CREATE).First();
            return task;
        }
@@ -716,15 +723,15 @@
                LocationHelper.LockLoc(task.S_END_LOC, "出库锁", 2);
            }
                
            if (task.S_TYPE.Contains("出库")&&task.S_SCHEDULE_TYPE.Contains("agv") )
            {
                var location = db.Queryable<Location>().Where(a => a.S_CODE == task.S_END_LOC).First();
                location.N_CURRENT_NUM = 0;
                db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM}).ExecuteCommand();
                db.Deleteable<Container>().Where(it => it.S_CODE == task.S_CNTR_CODE).ExecuteCommand();
                db.Deleteable<LocCntrRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand();
                db.Deleteable<CntrItemRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand();
            }
            //if (task.S_TYPE.Contains("出库")&&task.S_SCHEDULE_TYPE.Contains("agv") )
            //{
            //    var location = db.Queryable<Location>().Where(a => a.S_CODE == task.S_END_LOC).First();
            //    location.N_CURRENT_NUM = 0;
            //    db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM}).ExecuteCommand();
            //    db.Deleteable<Container>().Where(it => it.S_CODE == task.S_CNTR_CODE).ExecuteCommand();
            //    db.Deleteable<LocCntrRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand();
            //    db.Deleteable<CntrItemRel>().Where(it => it.S_CNTR_CODE == task.S_CNTR_CODE).ExecuteCommand();
            //}
        }
@@ -854,6 +861,56 @@
        }
        /// <summary>
        /// 根据作业编码和设备类型获取单个任务
        /// </summary>
        /// <param name="state"></param>
        /// <returns></returns>
        internal static WMSTask GetTaskByWork(string eq, string opCode)
        {
            try
            {
                var db = new SqlHelper<object>().GetInstance();
                return db.Queryable<WMSTask>().Where(a =>  a.S_SCHEDULE_TYPE.Contains(eq) && a.S_OP_CODE.Contains(opCode)).First();
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex.Message, ex);
                return new WMSTask();
            }
        }
        /// <summary>
        /// 返回当前接驳位执行中任务数量
        /// </summary>
        internal static int GetConnectionTask(string Connection)
        {
            var db = new SqlHelper<object>().GetInstance();
            var ConnectionList = 0;
            ConnectionList = db.Queryable<WMSTask>().Where(a => a.S_END_LOC.Contains(Connection) && a.S_TYPE.Contains("出库") && a.S_B_STATE != "完成" && a.S_B_STATE != "取消" && a.S_B_STATE != "未执行").ToList().Count();
            return ConnectionList;
        }
        //internal static bool CreateAgvState(AgvState agvState)
        //{
        //    try
        //    {
        //        var db = new SqlHelper<object>().GetInstance();
        //        return db.Insertable<AgvState>(agvState).ExecuteCommand() > 0;
        //    }
        //    catch (Exception ex)
        //    {
        //        LogHelper.Info($"添加Agv动作缓存异常" + ex.Message, "NDC");
        //        throw;
        //    }
        //}
        internal static bool CreateMesKtTask(MesKtTask cntr)
        {
@@ -865,7 +922,6 @@
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogHelper.Info($"添加Mes空托缓存异常" + ex.Message, "Mes任务下发");
                throw;
            }
@@ -877,8 +933,26 @@
                var db = new SqlHelper<object>().GetInstance();
                return db.Queryable<MesKtTask>().Where(a => a.Location_To==end && a.Status=="N").First();
        }
        internal static bool ChangeMesKtTask(MesKtTask kt)
        {
            var db = new SqlHelper<object>().GetInstance();
            kt.Status = "Y";
            return db.Updateable(kt).UpdateColumns(it => new {
                it.Status
            }).ExecuteCommand()>0;
        }
        internal static List<UnlimitedLoc> GetMesKtLoc()
        {
            var db = new SqlHelper<object>().GetInstance();
            return db.Queryable<UnlimitedLoc>().ToList();
        }
    }
}