From d44e3abf0d51cfea1ed7df510974d69458cf516d Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期三, 04 六月 2025 17:11:59 +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..c3d71ed
--- /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).ToList();
+        }
+    }
+}

--
Gitblit v1.9.1