From 7fda4aeb36beda46d767a78082573692e7b85651 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 15 七月 2025 17:23:05 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs |  287 +++++++++++++++++++++++++--------------------------------
 1 files changed, 127 insertions(+), 160 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
index 33f1e27..962184d 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/api/ApiHelper.cs
@@ -57,155 +57,6 @@
             return result;
         }
 
-
-    
-
-        internal static WeiLiResult AddTask(AddTaskModel model)
-        {
-            var result = new WeiLiResult();
-            var db = new SqlHelper<object>().GetInstance();
-            var cntrweight = model.cntrWeight == 1 ? 2 : model.cntrWeight == 2 ? 3 : model.cntrWeight == 3 ? 11 : model.cntrWeight == 4 ? 30 : model.cntrWeight == 5 ? 150 : 0;
-            if (!string.IsNullOrEmpty(model.startBit) && !string.IsNullOrEmpty(model.endBit))
-            {
-                if (!string.IsNullOrEmpty(model.TaskNo))
-                {
-                    var taskinfo = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.TaskNo).First();
-                    if (taskinfo == null)
-                    {
-                        var startinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.startBit).First();
-                        var endinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.endBit).First();
-                        if (startinfo != null && endinfo != null)
-                        {
-                            if (startinfo.N_LOCK_STATE != 0 || endinfo.N_LOCK_STATE != 0)
-                            {
-                                result.code = 500;
-                                result.msg = "璧风偣鎴栫粓鐐硅揣浣嶉攣瀹氱姸鎬佸紓甯�涓嶄簣鍒涘缓浠诲姟";
-                                return result;
-                            }
-
-                            var startloccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startinfo.S_CODE).First();
-                            LogHelper.Info("鏌ヨ璧风偣鏄惁缁戝畾鎵樼洏");
-                            if (startloccntr == null)
-                            {
-                                LogHelper.Info("璧风偣鏈粦瀹氭墭鐩�鍑嗗缁戝畾鎵樼洏");
-                                //缁戝畾璧风偣鎵樼洏
-                                LocationHelper.BindingLoc(model.startBit, new List<string>() { model.cntrNo });
-                            }
-                            else if (startloccntr.S_CNTR_CODE != model.cntrNo)
-                            {
-                                result.code = 500;
-                                result.msg = $"璧风偣宸茬粦瀹氭墭鐩榹startloccntr.S_CNTR_CODE} 涓庝换鍔℃墭鐩榹model.cntrNo} 涓嶇";
-                                return result;
-                            }
-
-                            LogHelper.Info("杞繍浠诲姟 鍒涘缓浣滀笟");
-
-                            //鍒涘缓浣滀笟
-                            var optask = new WMSTask
-                            {
-                                S_CODE = model.TaskNo,
-                                S_START_LOC = startinfo.S_CODE,
-                                S_END_LOC = endinfo.S_CODE,
-                                S_END_AREA = endinfo.S_AREA_CODE,
-                                S_START_AREA = startinfo.S_AREA_CODE,
-                                S_START_WH = startinfo.S_WH_CODE,
-                                S_END_WH = endinfo.S_WH_CODE,
-                                S_TYPE = "杞繍",
-                                N_TYPE = 3,
-                                N_B_STATE = 0,
-                                S_CNTR_CODE = model.cntrNo,
-                                S_OP_DEF_NAME = "杞繍",
-                                S_BS_NO = model.workNo,
-                                N_PRIORITY = model.priority,
-                                N_TRAY_WEIGHT = cntrweight
-                            };
-
-                            var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault();
-                            if (note != null)
-                            {
-                                optask.S_NOTE = note.TaskType;
-                            }
-
-
-
-                            db.Insertable(optask).ExecuteCommand();
-                            LocationHelper.LockLoc(startinfo.S_CODE, 2);
-                            LocationHelper.LockLoc(endinfo.S_CODE, 1);
-                        }
-                        else
-                        {
-                            result.code = 500;
-                            result.msg = "璧风偣鎴栫粓鐐逛俊鎭湁璇�鏌ヨ涓嶅埌绔欑偣淇℃伅";
-                        }
-                    }
-                    else
-                    {
-                        result.code = 500;
-                        result.msg = "浠诲姟鍙烽噸澶�璇峰嬁閲嶅涓嬪彂浠诲姟";
-                    }
-                }
-                else
-                {
-                    result.code = 500;
-                    result.msg = "浠诲姟鍙蜂笉鑳戒负绌�;
-                }
-            }
-            else
-            {
-                result.code = 500;
-                result.msg = "璧风偣鎴栫粓鐐逛笉鑳戒负绌�;
-            }
-
-            return result;
-        }
-
-        internal static TaskStateresutl GetTaskState(GetTaskStateModel model)
-        {
-            var db = new SqlHelper<object>().GetInstance();
-            TaskStateresutl result = new TaskStateresutl { success = false, code = 0};
-            if (!string.IsNullOrEmpty(model.taskNo))
-            {
-                var info = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.taskNo).First();
-                if (info!=null)
-                {
-                    var TaskStates = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == info.S_CODE).ToList();
-                    TaskStates=TaskStates.OrderBy(a => a.T_CREATE).ToList();
-                    for (int i = 0; i < TaskStates.Count; i++)
-                    {
-                        TaskState task = new TaskState
-                        {
-                            state = TaskStates[i].N_ACTION_CODE.ToString(),
-                            errMsg = "",
-                            taskNo = model.taskNo,
-                            transferTime = TaskStates[i].T_CREATE.ToString()
-                        };
-                        if (!string.IsNullOrEmpty(TaskStates[i].S_EQ_CODE)) 
-                        {
-                            task.agvNo = int.Parse(TaskStates[i].S_EQ_CODE);
-                        }
-                        result.data.Add(task);
-                    }
-                    result.success = true ;
-                }
-                else
-                {
-                    result.code = 1;
-                    result.msg = "璇ヤ换鍔″彿娌℃湁鐘舵�璁板綍!";
-                }
-            }
-            else
-            {
-                result.code = 1;
-                result.msg = "璇锋眰浠诲姟鍙蜂笉鑳戒负绌�";
-            }
-            return result;
-        }
-
-     
-       
-
-       
-       
         internal static PlcSendTaskres PlcCallbackState(PlcState model)
         {
             var db = new SqlHelper<object>().GetInstance();
@@ -443,17 +294,11 @@
             db.Updateable(task).UpdateColumns(it => new { it.S_NOTE }).ExecuteCommand();
         }
 
-
-        
-
-     
-
-        
         internal static WeiLiResult CancelOrder(CancelOrderModel model)
         {
             WeiLiResult result = new WeiLiResult();
             var db = new SqlHelper<object>().GetInstance();
-            var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList();
+            var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).ToList();
             if (tasks.Count >= 1)
             {
                 //娴佺▼浠诲姟鏁伴噺鎵ц瓒呰繃涓�潯 浠诲姟涓嶅厑璁稿彇娑�@@ -461,7 +306,7 @@
                 result.msg = "娴佺▼浠诲姟鎵ц涓�涓嶅厑璁稿彇娑�;
                 return result;
             }
-            var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First();
+            var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).OrderByDescending(a => a.T_CREATE).First();
             if (task != null)
             {
                 if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4))
@@ -473,7 +318,7 @@
                 if (task.N_B_STATE == 0)
                 {
                     //绛夊緟鐩存帴淇敼鐘舵�涓哄彇娑�-                    WCSHelper.UpdateStatus(model.orderNo, 5);
+                    WCSHelper.UpdateStatus(model.task_no, 5);
                     //result.msg = "浠诲姟绛夊緟锛岀洿鎺ュ彇娑�;
                 }
                 else if (task.N_B_STATE != 3 && task.N_B_STATE != 4)
@@ -485,7 +330,8 @@
                     else
                     {
                         //宸叉帹閫佷絾鏄病鏈夊畬鎴愭垨鑰呭彇娑堬紝閫氱煡hosttoagv
-                        NDCHelper.Cancel(task.S_CODE.Trim());
+                        //NDCHelper.Cancel(task.S_CODE.Trim());
+                        NDCApi.CancelOrder(task.S_CODE.Trim());
                         //result.msg = "浠诲姟鍙栨秷宸茬粡鍙戦�缁欏皬杞�;
                     }
                 }
@@ -528,7 +374,8 @@
                     else
                     {
                         //閫氱煡鏉弶淇敼浼樺厛绾�-                        NDCHelper.Cancel(task.S_CODE.Trim());
+                        //NDCHelper.Cancel(task.S_CODE.Trim());
+                        NDCApi.CancelOrder(task.S_CODE.Trim());
                         result.msg = "淇敼浼樺厛绾ф垚鍔�;
                     }
                 }
@@ -826,6 +673,126 @@
             return result;
         }
 
+        internal static ReturnResult bindCntr(bindModel model)
+        {
+            ReturnResult result = new ReturnResult() {ResultCode = -1 };
+            var db = new SqlHelper<object>().GetInstance();
+
+            if (TaskProcess.BindLocCntr(model.S_LOC_CODE, model.S_CNTR_CODE, model.S_ITEM_CODE, model.S_BATCH_CODE))
+            {
+                int num = model.S_CNTR_CODE.Split(',').Count();
+                var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE).First();
+                if(locInfo != null)
+                {
+                    locInfo.N_CURRENT_NUM = locInfo.N_CURRENT_NUM + num > locInfo.N_CAPACITY ? locInfo.N_CAPACITY : locInfo.N_CURRENT_NUM + num;
+                    db.Updateable(locInfo).UpdateColumns(a => new { a.N_CURRENT_NUM }).ExecuteCommand();
+                    result.ResultCode = 0;
+                }
+            }
+            return result;
+        }
+
+        internal static ReturnResult unBindCntr(unBindModel model)
+        {
+            ReturnResult result = new ReturnResult() { ResultCode = -1 };
+            var db = new SqlHelper<object>().GetInstance();
+            var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE).First();
+            if(locInfo != null)
+            {
+                var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.S_LOC_CODE).ToList();
+                if(cntrList.Count > 0)
+                {
+                    for (int i = cntrList.Count - 1; i >= 0; i --)
+                    {
+                        string cntrCode = cntrList[i].S_CNTR_CODE;
+                        db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand();
+                        db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand();
+                        db.Deleteable<Container>().Where(a => a.S_CODE == cntrCode).ExecuteCommand();
+                    }
+                }
+                locInfo.N_CURRENT_NUM = locInfo.N_CURRENT_NUM - 1;
+                if (locInfo.N_CURRENT_NUM < 0) locInfo.N_CURRENT_NUM = 0;
+                db.Updateable(locInfo).UpdateColumns(a => new { a.N_CURRENT_NUM }).ExecuteCommand();
+                result.ResultCode = 0;
+            }
+            return result;
+        }
+
+        internal static ReturnResult JBIn(JBInModel model)
+        {
+            ReturnResult result = new ReturnResult() { ResultCode = -1 };
+            var db = new SqlHelper<object>().GetInstance();
+            string cntrCode = Guid.NewGuid().ToString("N");
+            string batch = "";
+            if (model.S_ITEM_TYPE == "灏忓寘瑁呯洊")
+            {
+                //灏忓寘瑁呯洊榛樿涓�眰
+                batch = "灏忓寘瑁呯洊";
+            }
+            if (model.S_ITEM_TYPE == "鐡跺澂")
+            {
+                //鐡跺澂榛樿涓ゅ眰
+                cntrCode = cntrCode + ","+ Guid.NewGuid().ToString("N");
+            }
+            if (model.S_ITEM_TYPE == "澶у寘瑁呯洊")
+            {
+                //澶у寘瑁呯洊榛樿涓夊眰
+                cntrCode = cntrCode + "," + Guid.NewGuid().ToString("N") + "," + Guid.NewGuid().ToString("N");
+                batch = "澶у寘瑁呯洊";
+            }
+            //鍒涘缓浣滀笟
+            var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == model.S_LOC_CODE && a.S_LOCK_STATE == "鏃�).First();
+            if(locInfo != null)
+            {
+                LogHelper.Info($"JBIn:{model.S_LOC_CODE},{cntrCode},{"鎸囧畾搴撳尯-" + model.S_END_AREA}");
+                if (WMSHelper.CreateOpTask(model.S_LOC_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntrCode, "鎸囧畾搴撳尯-" + model.S_END_AREA))
+                {
+                    TaskProcess.BindLocCntr(model.S_LOC_CODE, cntrCode, model.S_ITEM_CODE, batch);
+                    result.ResultCode = 0;
+                }
+            }
+            else
+            {
+                result.ResultMsg = $"璇ョ偣浣嶄笉瀛樺湪鎴栬�鏈夐攣锛岃揣浣嶇紪鐮侊細{model.S_LOC_CODE}";
+            }
+            
+
+            return result;
+        }
+
+        internal static ReturnResult PtpTask(PtpTaskModel model, ReturnResult result)
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.S_START_LOC).First();
+            if(startLoc != null && startLoc.S_LOCK_STATE == "鏃�)
+            {
+                string cntrCode = "";
+                var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
+                if(cntrInfo != null)
+                {
+                    cntrCode = cntrInfo.S_CNTR_CODE;
+                }
+                else
+                {
+                    cntrCode = Guid.NewGuid().ToString("N");
+                }
+                var endLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.S_END_LOC).First();
+                if (endLoc != null && endLoc.S_LOCK_STATE == "鏃�)
+                {
+                    WMSHelper.CreateOpTask(model.S_START_LOC, model.S_END_LOC, "鍏ュ簱", "鐐瑰埌鐐硅浆杩�, cntrCode, "");
+                }
+                else
+                {
+                    result.ResultMsg = $"缁堢偣璐т綅涓嶅瓨鍦ㄦ垨鑰呮湁閿侊紝璐т綅缂栫爜锛歿model.S_END_LOC}";
+                }
+            }
+            else
+            {
+                result.ResultMsg = $"璧风偣璐т綅涓嶅瓨鍦ㄦ垨鑰呮湁閿侊紝璐т綅缂栫爜锛歿model.S_START_LOC}";
+            }
+            return result;
+        }
+
 
         //public class AddTaskModel
         //{

--
Gitblit v1.9.1