| | |
| | | using HH.WCS.JiaTong.util; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IdentityModel.Protocols.WSTrust; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | |
| | | { |
| | | var res = false; |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | |
| | | task.S_B_STATE = status; |
| | | |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); |
| | | return res; |
| | | } |
| | |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_CODE.Trim() == no).First(); |
| | | return task; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据起点货位未完成的任务 |
| | | /// </summary> |
| | | /// <param name="loc"></param> |
| | | /// <returns></returns> |
| | | internal static WCSTask GetTaskByStartloc(string loc) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_START_LOC.Trim() == loc && a.S_B_STATE.Trim() != "完成").First(); |
| | | string[] statue = new string[] { "完成", "取消", "错误" }; |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_START_LOC.Trim() == loc && !statue.Contains(a.S_B_STATE.Trim())).First(); |
| | | return task; |
| | | } |
| | | /// <summary> |
| | |
| | | internal static List<WCSTask> GetTaskBycntrcode(string no) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_CNTR_CODE.Trim() == no && a.S_B_STATE.Trim() == "完成" ).ToList(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_CNTR_CODE.Trim() == no && a.S_B_STATE.Trim() == "完成").ToList(); |
| | | return task; |
| | | } |
| | | internal static WCSTask GetTaskBySrcNo(string no) |
| | |
| | | internal static bool AddActionRecord(string no, int state, string forkliftNo, string extData) |
| | | { |
| | | var db = new SqlHelper<TaskAction>().GetInstance(); |
| | | |
| | | var action = new TaskAction() |
| | | { |
| | | N_ACTION_CODE = state, |
| | |
| | | var db = new SqlHelper<TaskAction>().GetInstance(); |
| | | return db.Queryable<TaskAction>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0; |
| | | } |
| | | internal static void Begin(WCSTask task) |
| | | internal static void Begin(WCSTask task, string agvno) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | if (task != null) |
| | |
| | | task.N_B_STATE = 2; |
| | | task.S_B_STATE = WCSTask.GetStateStr(task.N_B_STATE); |
| | | task.T_START_TIME = DateTime.Now; |
| | | db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME }).ExecuteCommand(); |
| | | task.S_WORKSHOP_NO = agvno; |
| | | db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.S_WORKSHOP_NO }).ExecuteCommand(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | internal static void UpdateAgvNo(WCSTask task, string agvno) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | if (task != null) |
| | | { |
| | | |
| | | |
| | | task.T_START_TIME = DateTime.Now; |
| | | task.S_WORKSHOP_NO = agvno; |
| | | db.Updateable(task).UpdateColumns(it => new { it.T_START_TIME, it.S_WORKSHOP_NO }).ExecuteCommand(); |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | internal static bool CreateTask(WCSTask TN_Task) |
| | | { |
| | | |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | try |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | return db.Insertable(TN_Task).ExecuteCommand() > 0; |
| | | bool res = false; |
| | | LogHelper.Info($"任务:{TN_Task.S_CODE}开始创建"); |
| | | db.BeginTran(); |
| | | res = db.Insertable(TN_Task).ExecuteCommand() > 0; |
| | | if (res) |
| | | { |
| | | var Startmodel = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == TN_Task.S_START_LOC).First(); |
| | | var Endmodel = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == TN_Task.S_END_LOC).First(); |
| | | if (Startmodel != null && Startmodel.S_LOCK_STATE.Trim() == "无") |
| | | { |
| | | Startmodel.N_LOCK_STATE = 2; |
| | | Startmodel.S_LOCK_STATE = Location.GetLockStateStr(2); |
| | | res = db.Updateable(Startmodel).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务:{TN_Task.S_CODE}生成失败,起点货位不可用"); |
| | | db.RollbackTran(); |
| | | return false; |
| | | } |
| | | if (Endmodel != null && Endmodel.S_LOCK_STATE.Trim() == "无") |
| | | { |
| | | Endmodel.N_LOCK_STATE = 1; |
| | | Endmodel.S_LOCK_STATE = Location.GetLockStateStr(1); |
| | | res = db.Updateable(Endmodel).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0; |
| | | } |
| | | if (res) |
| | | { |
| | | LogHelper.Info($"锁定货位成功"); |
| | | db.CommitTran(); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"锁定货位失败"); |
| | | db.RollbackTran(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务:{TN_Task.S_CODE}生成失败"); |
| | | db.RollbackTran(); |
| | | } |
| | | return res; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | db.RollbackTran(); |
| | | Console.WriteLine(ex.Message); |
| | | throw; |
| | | } |