From b7308bba3d7ffad271ce7fc7a93c8c45d76be87d Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期五, 13 六月 2025 17:21:03 +0800 Subject: [PATCH] 优化印尼佳通-硫化胚胎出入库逻辑策略优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WCSHelper.cs | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 239 insertions(+), 0 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WCSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WCSHelper.cs new file mode 100644 index 0000000..02fa96c --- /dev/null +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/WCSHelper.cs @@ -0,0 +1,239 @@ +锘縰sing 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(); + } + } +} -- Gitblit v1.9.1