From 0ed390381862dea0c7fd0210d16017eb09f12da4 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期三, 30 七月 2025 17:27:27 +0800 Subject: [PATCH] 封装插入容器表等业务代码, 修复部分底层旧框架方法问题 --- wms/WCSHelper.cs | 111 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 77 insertions(+), 34 deletions(-) diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs index 63ff4e4..9962930 100644 --- a/wms/WCSHelper.cs +++ b/wms/WCSHelper.cs @@ -1,33 +1,74 @@ -锘縰sing HH.WCS.Mobox3.DSZSH.models; -using HH.WCS.Mobox3.DSZSH.util; -using HH.WCS.Mobox3.DSZSH; - -using Newtonsoft.Json; - -using System; +锘縰sing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using HH.WCS.Mobox3.DSZSH.models; +using HH.WCS.Mobox3.DSZSH.util; namespace HH.WCS.Mobox3.DSZSH.wms { /// <summary> /// [ 閫氱敤涓氬姟 ] 甯姪绫� /// </summary> - 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')}"; + public class WCSHelper { + #region LocationHelper + private static Dictionary<string, TN_Location> _locationDict = null; + + static WCSHelper() { + var db = new SqlHelper<object>().GetInstance(); + + try { + //鍒濆鍖朙ocation鍔犲叆鍒板瓧鍏哥紦瀛�+ _locationDict = new Dictionary<string, TN_Location>(); + var locList = db.Queryable<TN_Location>().ToList(); + foreach (var loc in locList) { + if (!_locationDict.ContainsKey(loc.S_CODE)) { + _locationDict.Add(loc.S_CODE, loc); + } + } + } + catch (Exception ex) { + LogHelper.InfoEx(ex, "WCSHelper:鍒濆鍖朙ocation鍒板瓧鍏哥紦瀛�); + } } - internal static bool UpdateStatus(TN_Task task, string status) { + + public static TN_Location GetLocation(string locCode, bool useDict = true) { + if (useDict && _locationDict.Keys.Contains(locCode)) { + return _locationDict[locCode.Trim()]; + } + + var db = new SqlHelper<object>().GetInstance(); + return db.Queryable<TN_Location>().Where(l => l.S_CODE == locCode).First(); + } + + public static string GetAgvSite(string locCode, bool useDict = true) { + if (useDict && _locationDict.Keys.Contains(locCode)) { + return _locationDict[locCode.Trim()].S_AGV_SITE; + } + + var db = new SqlHelper<object>().GetInstance(); + var loc = db.Queryable<TN_Location>().Where(l => l.S_CODE == locCode).First(); + return loc == null ? "0" : loc.S_AGV_SITE; + } + #endregion + + #region 浠诲姟鍒涘缓 / 涓嬪彂 / 鏌ヨ + internal static string GenerateTaskNo() { + //var id = SYSHelper.GetSerialNumber("浠诲姟鍙�, "TN"); + //var date = DateTime.Now.ToString("yyMMdd"); + //return $"TN{date}{id.ToString().PadLeft(4, '0')}"; + return SYSHelper.GenerateSN("浠诲姟鍙�, "TN", "yyMMdd"); + } + + internal static bool UpdateTaskState(TN_Task task, string state) { var res = false; var db = new SqlHelper<TN_Task>().GetInstance(); - task.S_B_STATE = status; + task.S_B_STATE = state; res = db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand() > 0; return res; } - internal static bool UpdateStatus(TN_Task task) { + + internal static bool UpdateTaskState(TN_Task task) { var res = false; var db = new SqlHelper<TN_Task>().GetInstance(); task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE); @@ -35,25 +76,21 @@ res = db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_MODIFY }).ExecuteCommand() > 0; return res; } - internal static bool UpdateEQNo(TN_Task task) { + + internal static bool UpdateEqTaskNo(TN_Task task) { var res = false; var db = new SqlHelper<TN_Task>().GetInstance(); task.T_MODIFY = DateTime.Now; - db.Updateable(task).UpdateColumns(it => new { it.S_EQ_TASK_CODE, it.T_MODIFY }).ExecuteCommand(); + res = db.Updateable(task).UpdateColumns(it => new { it.S_EQ_TASK_CODE, it.T_MODIFY }).ExecuteCommand() > 0; return res; } - internal static TN_Task GetTask(string no) { + internal static TN_Task GetTask(string taskNo) { var db = new SqlHelper<TN_Task>().GetInstance(); - var task = db.Queryable<TN_Task>().Where(a => a.S_CODE == no).First(); + var task = db.Queryable<TN_Task>().Where(a => a.S_CODE == taskNo).First(); return task; - } - - public static string GetAgvSite(string locCode) { - var db = new SqlHelper<object>().GetInstance(); - var loc = db.Queryable<TN_Location>().Where(l => l.S_CODE == locCode).First(); - return loc == null ? "0" : loc.S_AGV_SITE; - } + } + #endregion #region 瀹瑰櫒鐩稿叧淇℃伅 鏌ヨ / 缁戝畾 /// <summary> @@ -180,8 +217,8 @@ /// 鍒涘缓浠诲姟 /// </summary> /// <remarks><b>[ 瑕佹眰 ]</b> startLoc / endLoc 鈮�null ; startLoc / endLoc 瀛樺湪 S_CODE , S_AREA_CODE 瀛楁</remarks> - /// <param name="startLoc">璧风偣璐т綅 : 鑷冲皯鎻愪緵:S_CODE , S_AREA_CODE</param> - /// <param name="endLoc">缁堢偣璐т綅 : 鑷冲皯鎻愪緵:S_CODE , S_AREA_CODE</param> + /// <param name="startLoc">璧风偣璐т綅 : 鑷冲皯鎻愪緵 : S_CODE , S_AREA_CODE</param> + /// <param name="endLoc">缁堢偣璐т綅 : 鑷冲皯鎻愪緵 : S_CODE , S_AREA_CODE</param> /// <param name="cntId">瀹瑰櫒鍙�/param> /// <param name="type">浠诲姟绫诲瀷 ( 鍚嶇О )</param> /// <param name="pri">浼樺厛绾�/param> @@ -217,21 +254,26 @@ /// <param name="pri">浼樺厛绾�/param> /// <param name="agv">AGV 绫诲瀷</param> /// <returns></returns> - public static TN_Task BuildTaskWithLocLock(TN_Location startLoc, TN_Location endLoc, string cntId, string type, int pri = 3, int agv = 1) { + public static TN_Task BuildTaskWithLocLock(TN_Location startLoc, TN_Location endLoc, string cntId, string type, + int pri = 3, int agv = 1) { + var task = BuildTask(startLoc, endLoc, cntId, type, pri); LockStartLoc(startLoc, task.S_CODE); LockEndLoc(endLoc, task.S_CODE); return task; - } + } + + #endregion + #region 浠诲姟鍒嗗彂 / 鎵ц / 璁板綍 internal static bool CheckActionRecordExist(string no, int code) { var db = new SqlHelper<TN_Task_Action>().GetInstance(); return db.Queryable<TN_Task_Action>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0; } - internal static void Begin(TN_Task task, string forklift_no) { + internal static void SetTaskBegin(TN_Task task, string forklift_no) { var db = new SqlHelper<TN_Task>().GetInstance(); if (task != null) { if (task.N_B_STATE == 1 || task.N_B_STATE == 0) { // 娣诲姞褰搕ask鐘舵�涓�鏃朵篃鍙互瑙﹀彂 @@ -243,7 +285,7 @@ } } } - internal static void End(TN_Task task) { + internal static void SetTaskEnd(TN_Task task) { var db = new SqlHelper<TN_Task>().GetInstance(); if (task != null) { task.N_B_STATE = 3; @@ -252,7 +294,7 @@ db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_END_TIME }).ExecuteCommand(); } } - internal static void Fail(TN_Task task) { + internal static void SetTaskFail(TN_Task task) { var db = new SqlHelper<TN_Task>().GetInstance(); if (task != null) { //鍒ゆ柇鏈夋病鏈夊彇璐у畬鎴�娌℃湁灏卞彉鎴愬け璐ャ�鏈夊彇璐у畬鎴愰粯璁ゅ畬鎴愪簡 (璺熸嵁椤圭洰鑰屽畾,鏈変簺椤圭洰浜哄伐鎷夎蛋浜嗕篃娌℃湁鏀惧埌缁堢偣) 銆�@@ -277,7 +319,8 @@ internal static List<TN_Task> GetWaitingTaskList() { var db = new SqlHelper<object>().GetInstance(); return db.Queryable<TN_Task>().Where(a => a.N_B_STATE == 0 && (a.S_B_STATE == "绛夊緟" || a.S_B_STATE == "寰呮帹閫�)).ToList(); - } + } + #endregion } /// <summary> -- Gitblit v1.9.1