New file |
| | |
| | | using HH.WCS.Mobox3.FJJT.util; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace HH.WCS.Mobox3.FJJT.wms |
| | | { |
| | | internal class WCSHelper |
| | | { |
| | | internal static string GenerateTaskNo() { |
| | | var id = SYSHelper.GetSerialNumber("任务号", "TN"); |
| | | var date = DateTime.Now.ToString("yyMMdd"); |
| | | return $"TN{date}{id.ToString().PadLeft(4, '0')}"; |
| | | } |
| | | internal static bool UpdateStatus(WCSTask task, string status) { |
| | | 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; |
| | | } |
| | | internal static bool UpdateWcsTask(WCSTask task) |
| | | { |
| | | var res = false; |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | res = db.Updateable(task).ExecuteCommand() > 0; |
| | | return res; |
| | | } |
| | | internal static bool UpdateStatus(WCSTask task) { |
| | | var res = false; |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | task.S_B_STATE = WCSTask.GetStateStr(task.N_B_STATE); |
| | | task.T_MODIFY = DateTime.Now; |
| | | db.Updateable(task).UpdateColumns(it => new {it.N_B_STATE, it.S_B_STATE,it.T_MODIFY }).ExecuteCommand(); |
| | | return res; |
| | | } |
| | | internal static bool UpdateEndLoc(WCSTask task) |
| | | { |
| | | var res = false; |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | task.T_MODIFY = DateTime.Now; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC,it.S_END_AREA,it.S_TYPE, it.T_MODIFY }).ExecuteCommand(); |
| | | return res; |
| | | } |
| | | |
| | | internal static bool CancelPreCreateTask(string wmsTaskNo) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | return db.Updateable<WCSTask>().SetColumns(it => new WCSTask() { N_B_STATE = 4 ,S_B_STATE = "取消"}).Where(a => a.S_OP_CODE.Trim() == wmsTaskNo && a.N_B_STATE == -1).ExecuteCommand() > 0; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 激活预创建任务 |
| | | /// </summary> |
| | | /// <param name="wmsTaskNo"></param> |
| | | /// <param name="anomaly"> 0.非异常 1.异常</param> |
| | | /// <returns></returns> |
| | | internal static bool ActivatePreCreateTask(string wmsTaskNo ,int anomaly = 0) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var updateable = db.Updateable<WCSTask>() |
| | | .SetColumns(it => new WCSTask() { N_B_STATE = 0, S_B_STATE = "等待" }). |
| | | Where(a => a.S_OP_CODE.Trim() == wmsTaskNo |
| | | && a.N_B_STATE == -1 |
| | | ); |
| | | /*if (anomaly == 1) |
| | | { |
| | | updateable = updateable.Where(a => a.S_TYPE.Contains("【异常】")); |
| | | } |
| | | else |
| | | { |
| | | updateable = updateable.Where(a => !a.S_TYPE.Contains("【异常】")); |
| | | }*/ |
| | | return updateable.ExecuteCommand() > 0; |
| | | } |
| | | |
| | | |
| | | internal static bool UpdateInfo(WCSTask task, string sourceNo, string endBit, string status) { |
| | | var res = false; |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | task.S_B_STATE = status; |
| | | task.S_OP_CODE = sourceNo; |
| | | task.S_END_LOC = endBit; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.S_OP_CODE, it.S_END_LOC }).ExecuteCommand(); |
| | | return res; |
| | | } |
| | | internal static WCSTask GetTask(string no) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_CODE.Trim() == no).First(); |
| | | return task; |
| | | } |
| | | internal static WCSTask GetTaskByEq(string eq) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO.Trim() == eq && a.N_B_STATE < 3).OrderByDescending(a => a.T_CREATE).First(); |
| | | return task; |
| | | } |
| | | internal static WCSTask GetTaskBySrcNo(string no) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE== no).First(); |
| | | return task; |
| | | } |
| | | internal static WCSTask GetPreCreatedTaskByCntr(string cntrCode) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_CNTR_CODE.Trim() == cntrCode && a.N_B_STATE == -1).OrderByDescending(a => a.T_CREATE).First(); |
| | | return task; |
| | | } |
| | | internal static List<WCSTask> GetTaskListBySrcNo(string no) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE.Trim() == no).ToList(); |
| | | return task; |
| | | } |
| | | internal static List<WCSTask> GetTaskByStart(string bit) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_START_LOC == bit.Trim()).ToList(); |
| | | return task; |
| | | } |
| | | internal static List<WCSTask> GetTaskByEnd(string bit) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_END_LOC.Trim() == bit.Trim()).ToList(); |
| | | return task; |
| | | } |
| | | internal static List<WCSTask> GetTaskByStartOrEnd(string bit) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => (a.S_START_LOC == bit.Trim() || a.S_END_LOC == bit.Trim()) && a.N_B_STATE < 3 ).ToList(); |
| | | return task; |
| | | } |
| | | internal static List<WCSTask> GetTaskByType(string taskType) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | return db.Queryable<WCSTask>().Where(a => a.S_TYPE.Trim() == taskType).ToList(); |
| | | } |
| | | internal static bool CheckExist(string no) { |
| | | return GetTask(no.Trim())!=null; |
| | | } |
| | | internal static bool UpdateStatus(string no, string status) { |
| | | var res = false; |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_CODE.Trim() == no).First(); |
| | | if (task != null) { |
| | | task.S_B_STATE = status; |
| | | //需要判断任务是否失败或者已完成,不允许再修改 |
| | | res = db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand() > 0; |
| | | } |
| | | return res; |
| | | } |
| | | 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, |
| | | S_TASK_CODE = no, |
| | | S_EQ_CODE = forkliftNo, |
| | | S_EQ_TYPE = "agv", |
| | | S_DATA = extData |
| | | }; |
| | | return db.Insertable(action).ExecuteCommand() > 0; |
| | | } |
| | | internal static bool CheckActionRecordExist(string no, int code) { |
| | | var db = new SqlHelper<TaskAction>().GetInstance(); |
| | | return db.Queryable<TaskAction>().Count(a => a.S_TASK_CODE == no.Trim() && a.N_ACTION_CODE == code) > 0; |
| | | } |
| | | |
| | | internal static TaskAction getActionRecord(string no, int code) |
| | | { |
| | | var db = new SqlHelper<TaskAction>().GetInstance(); |
| | | return db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == no.Trim() && a.N_ACTION_CODE == code).First(); |
| | | } |
| | | |
| | | internal static bool updateActionRecord(TaskAction taskAction) |
| | | { |
| | | var db = new SqlHelper<TaskAction>().GetInstance(); |
| | | return db.Updateable(taskAction).ExecuteCommand()>0; |
| | | } |
| | | |
| | | internal static void Begin(WCSTask task) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | if (task != null) { |
| | | if (task.S_B_STATE.Trim() == "已推送") { |
| | | task.S_B_STATE = "执行中"; |
| | | task.N_B_STATE = 2; |
| | | task.T_START_TIME = DateTime.Now; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE,it.N_B_STATE, it.T_START_TIME }).ExecuteCommand(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | internal static void End(WCSTask task) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | if (task != null) { |
| | | task.S_B_STATE = "完成"; |
| | | task.N_B_STATE = 3; |
| | | task.T_END_TIME = DateTime.Now; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.N_B_STATE ,it.T_END_TIME }).ExecuteCommand(); |
| | | } |
| | | } |
| | | internal static void Fail(WCSTask task) { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | if (task != null) { |
| | | //判断有没有取货完成,没有就变成失败。有取货完成默认完成了(跟据项目而定,有些项目人工拉走了也没有放到终点)。 |
| | | task.S_B_STATE = "失败"; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); |
| | | } |
| | | } |
| | | internal static bool CreateTask(WCSTask TN_Task) { |
| | | try { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | return db.Insertable(TN_Task).ExecuteCommand() > 0; |
| | | } |
| | | catch (Exception ex) { |
| | | Console.WriteLine(ex.Message); |
| | | throw; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据任务状态获取任务 |
| | | /// </summary> |
| | | /// <param name="state"></param> |
| | | /// <returns></returns> |
| | | internal static List<WCSTask> GetTaskListByState(string state) { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | return db.Queryable<WCSTask>().Where(a => a.S_B_STATE.Trim() == state).ToList(); |
| | | |
| | | } |
| | | internal static List<WCSTask> GetTaskListByState(int state) { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | return db.Queryable<WCSTask>().Where(a => a.N_B_STATE == state).ToList(); |
| | | } |
| | | internal static List<WCSTask> GetWaitingTaskList() { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | return db.Queryable<WCSTask>().Where(a => a.N_B_STATE == 0).OrderByDescending(a => a.N_PRIORITY).ToList(); |
| | | } |
| | | } |
| | | } |