海波 张
2025-06-04 2efbd25f2160cb68cf2464f370aca3d1ea21f86f
wms/TaskHelper.cs
@@ -111,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 != "已完成" && 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 != "已完成").OrderByDescending(b => b.T_CREATE).First();
            return task;
        }
        /// <summary>
@@ -122,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 != "已完成" && 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 != "已完成").OrderByDescending(b => b.T_CREATE).First();
            return task;
        }
@@ -722,16 +722,16 @@
            if (task.S_TYPE.Contains("出库") && task.S_SCHEDULE_TYPE.Contains("wcs")) {
                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();
            }
        }
@@ -861,6 +861,29 @@
        }
        /// <summary>
        /// 根据任务状态和起点和类型查找任务
        /// </summary>
        /// <param name="state"></param>
        /// <returns></returns>
        internal static WMSTask GetTaskByType(string start,string type,string state)
        {
            try
            {
                var db = new SqlHelper<object>().GetInstance();
                return db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == state && a.S_TYPE.Contains(type) && a.S_START_LOC.Contains(start)).First();
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex.Message, ex);
                return new WMSTask();
            }
        }
        /// <summary>
        /// 根据作业编码和设备类型获取单个任务
        /// </summary>
@@ -954,5 +977,20 @@
            return db.Queryable<UnlimitedLoc>().ToList();
        }
        /// <summary>
        /// 获取入库优先级表
        /// </summary>
        /// <returns></returns>
        internal static List<InPri> GetInPri()
        {
            var db = new SqlHelper<object>().GetInstance();
            return db.Queryable<InPri>().Where(a=>a.Enable=="Y") .ToList();
        }
    }
}