From 3b1b3b354f02ecf558f6dcc9a359dae65c4efca1 Mon Sep 17 00:00:00 2001
From: jinxin <1013386558@qq.com>
Date: 星期三, 04 六月 2025 10:38:21 +0800
Subject: [PATCH] 合盘流程 指引出入库

---
 C#/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs |  238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 235 insertions(+), 3 deletions(-)

diff --git a/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
similarity index 94%
rename from HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs
rename to "C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
index 7522ccb..be3da4c 100644
--- a/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
@@ -212,13 +212,14 @@
             var result = new SimpleResult();
             var db = new SqlHelper<object>().GetInstance();
             var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).First();
-            if (wmsTask != null) 
+            if (wmsTask != null)
             {
+                db.Deleteable<WMSTask>().Where(a => a.S_CODE == model.OperationNo).ExecuteCommand();
                 LogHelper.Info($"娓呴櫎閿欒浣滀笟 瑙g粦鎵樼洏 鎵樼洏{wmsTask.S_CNTR_CODE}");
                 db.Deleteable<LocCntrRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand();
                 db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == wmsTask.S_CNTR_CODE).ExecuteCommand();
                 var locInfo = db.Queryable<Location>().Where(a => a.S_CODE == wmsTask.S_START_LOC).First();
-                if (locInfo != null) 
+                if (locInfo != null)
                 {
                     LogHelper.Info($"娓呴櫎閿欒浣滀笟 閲嶇疆璐т綅鐘舵� 璐т綅{locInfo.S_CODE}");
                     locInfo.N_CURRENT_NUM = 0;
@@ -226,8 +227,239 @@
                     locInfo.S_LOCK_STATE = "鏃�;
                     db.Updateable(locInfo).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
                 }
+                else
+                {
+                    LogHelper.Info($"娓呴櫎閿欒浣滀笟 鏈壘鍒拌捣鐐箋wmsTask.S_START_LOC}鐨勮揣浣�);
+                }
+            }
+            else
+            {
+                LogHelper.Info($"娓呴櫎閿欒浣滀笟 鏈壘鍒颁綔涓氬彿{model.OperationNo}鐨勪綔涓�);
             }
 
+            return result;
+        }
+
+        internal static SimpleResult GuidelinesIn(WeiLiDisbutionInMolde model)
+        {
+            int Ntype = 0; string Stype = ""; string S_OP_DEF_NAME = "";
+            var result = new SimpleResult { resultCode = 0 };
+            Location end = null;
+            var db = new SqlHelper<object>().GetInstance();
+
+            if (string.IsNullOrEmpty(model.endArea) && string.IsNullOrEmpty(model.endLoc))
+            {
+                Ntype = 1;
+                Stype = "鍏ュ簱";
+                S_OP_DEF_NAME = "鎸囧紩鍥炲簱";
+            }
+
+            var TrayPrefix = model.cntrNo.Substring(0, 2);
+            var endinfo = Settings.LKCodes.Where(a => a.TrayPrefix == TrayPrefix).FirstOrDefault();
+            if (endinfo != null)
+            {
+                if (string.IsNullOrEmpty(model.endArea))
+                {
+                    model.endArea = endinfo.LiKuCode;
+                }
+            }
+            else
+            {
+                result.resultCode = -1;
+                result.resultMsg = "缁堢偣搴撳尯涓虹┖ 榛樿鍥炲簱 鎵句笉鍒版墭鐩樺墠缂�搴旂殑鍥炲簱搴撳尯";
+                return result;
+            }
+
+            var cntrinfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntrNo).First();
+            if (cntrinfo != null)
+            {
+                var start = db.Queryable<Location>().Where(a => a.S_CODE == cntrinfo.S_LOC_CODE).First();
+                if (start != null)
+                {
+                    if (start.N_LOCK_STATE == 0)
+                    {
+                        var conntinfo = Settings.ConnetAreas.Where(a => a.FullList.Contains(start.S_CODE) || a.EmptyList.Contains(start.S_CODE)).FirstOrDefault();
+                        if (conntinfo != null)
+                        {
+                            if (!string.IsNullOrEmpty(model.endLoc))
+                            {
+                                //鍒涘缓浣滀笟
+                                var optask = new WMSTask
+                                {
+                                    S_CODE = WMSHelper.GenerateTaskNo(),
+                                    S_START_WH = start.S_WH_CODE,
+                                    S_START_LOC = start.S_CODE,
+                                    S_START_AREA = start.S_AREA_CODE,
+                                    S_END_LOC = end.S_CODE,
+                                    S_END_AREA = end.S_AREA_CODE,
+                                    S_END_WH = end.S_WH_CODE,
+                                    S_STATION_LOC = conntinfo.Station,
+                                    N_TYPE = Ntype,
+                                    S_TYPE = Stype,
+                                    N_B_STATE = 0,
+                                    S_CNTR_CODE = model.cntrNo,
+                                    S_OP_DEF_NAME = S_OP_DEF_NAME,
+                                    S_BS_NO = model.workNo
+                                };
+                                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;
+                                }
+                                var res = db.Insertable(optask).ExecuteCommand() > 0;
+                                LocationHelper.LockLoc(start.S_CODE, 2);
+                                LocationHelper.LockLoc(end.S_CODE, 1);
+                            }
+                            else
+                            {
+                                //鍒涘缓浣滀笟
+                                var optask = new WMSTask
+                                {
+                                    S_CODE = WMSHelper.GenerateTaskNo(),
+                                    S_START_WH = start.S_WH_CODE,
+                                    S_START_LOC = start.S_CODE,
+                                    S_START_AREA = start.S_AREA_CODE,
+                                    S_END_LOC = "",
+                                    S_END_AREA = model.endArea,
+                                    S_END_WH = start.S_WH_CODE,
+                                    S_STATION_LOC = conntinfo.Station,
+                                    N_TYPE = Ntype,
+                                    S_TYPE = Stype,
+                                    N_B_STATE = 0,
+                                    S_CNTR_CODE = model.cntrNo,
+                                    S_OP_DEF_NAME = S_OP_DEF_NAME,
+                                    S_BS_NO = model.workNo
+                                };
+                                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;
+                                }
+                                var res = db.Insertable(optask).ExecuteCommand() > 0;
+                                LocationHelper.LockLoc(start.S_CODE, 2);
+                            }
+                        }
+                        else
+                        {
+                            result.resultCode = -2;
+                            result.resultMsg = $"璐т綅{start.S_CODE} 鍦ㄦ帴椹冲簱鍖洪厤缃腑鎵句笉鍒板搴旂殑鎷h揣浣嶄俊鎭�;
+                        }
+                    }
+                    else
+                    {
+                        result.resultCode = -3;
+                        result.resultMsg = $"璐т綅{start.S_CODE} 褰撳墠鐘舵�涓簕start.S_LOCK_STATE} 涓嶄簣鐢熸垚浠诲姟";
+                    }
+                }
+                else
+                {
+                    result.resultCode = -1;
+                    result.resultMsg = $"鏌ヨ涓嶅埌鎵樼洏{model.cntrNo} 缁戝畾璐т綅{cntrinfo.S_LOC_CODE}鐨勮揣浣嶄俊鎭�;
+                }
+            }
+            else
+            {
+                result.resultCode = -1;
+                result.resultMsg = $"鏌ヨ涓嶅埌鎵樼洏{model.cntrNo} 鐨勭粦瀹氳揣浣�;
+            }
+            return result;
+        }
+
+        internal static SimpleResult GuidelinesOut(GuidelinesOutModel model)
+        {
+            var result = new SimpleResult();
+            var db = new SqlHelper<object>().GetInstance();
+            var cntrInfo = db.Queryable<LocCntrRel>().Where(it => it.S_CNTR_CODE == model.cntrCode).First();
+            if (cntrInfo != null)
+            {
+                var startloc = db.Queryable<Location>().Where(it => it.S_CODE == cntrInfo.S_LOC_CODE).First();
+                if (startloc != null && startloc.N_LOCK_STATE == 0)
+                {
+                    LogHelper.Info($"鎵樼洏{model.cntrCode} 缁戝畾浣嶇疆{cntrInfo.S_LOC_CODE} 閿佺姸鎬亄startloc.N_LOCK_STATE}");
+                    if (Settings.LKCodes.Where(it => it.LiKuCode == startloc.S_AREA_CODE).FirstOrDefault() != null)
+                    {
+                        string taskType = "";
+                        Location endbit = null;
+
+                        LogHelper.Info($"鎵樼洏{model.cntrCode} 鍑哄埌鍒嗘嫞浣�);
+                        taskType = "鍑哄簱";
+                        var endList = Settings.ConnetAreas.Where(it => it.LineArea == model.endArea && it.Station == model.station).ToList();
+                        if (endList.Count > 0)
+                        {
+                            foreach (var endlist in endList)
+                            {
+                                for (int i = 0; i < endlist.FullList.Length; i++)
+                                {
+                                    var endloc = endlist.FullList[i];
+                                    var end = db.Queryable<Location>().Where(it => it.S_CODE == endloc && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First();
+                                    if (end != null)
+                                    {
+                                        endbit = end;
+                                        break;
+                                    }
+                                    else LogHelper.Info($"鎸囧紩鍑哄簱 璐т綅{endloc} 涓嶅彲鐢�);
+                                }
+                                if (endbit != null) break;
+                            }
+                        }
+                        else LogHelper.Info($"鎸囧紩鍑哄簱 鏈壘鍒板嚭搴撳彛搴撳尯缂栫爜{model.endArea} 瀵瑰簲鐨勯厤缃枃浠�);
+
+
+                        if (endbit != null)
+                        {
+                            var optask = new WMSTask
+                            {
+                                S_CODE = WMSHelper.GenerateTaskNo(),
+                                S_START_LOC = cntrInfo.S_LOC_CODE,
+                                S_START_AREA = startloc.S_AREA_CODE,
+                                S_START_WH = startloc.S_WH_CODE,
+                                S_END_LOC = endbit.S_CODE,
+                                S_END_AREA = endbit.S_AREA_CODE,
+                                S_END_WH = endbit.S_WH_CODE,
+                                S_STATION_LOC = model.station,
+                                S_TYPE = "鍑哄簱",
+                                N_TYPE = 2,
+                                N_B_STATE = 0,
+                                S_CNTR_CODE = model.cntrCode,
+                                S_OP_DEF_NAME = taskType,
+                                S_BS_NO = ""
+                            };
+                            var note = Settings.Tasktypes.Where(it => it.StartArea == optask.S_START_AREA && it.EndArea == optask.S_END_AREA).FirstOrDefault();
+                            if (note != null)
+                            {
+                                optask.S_NOTE = note.TaskType;
+                            }
+                            var res = db.Insertable(optask).ExecuteCommand() > 0;
+                            if (res)
+                            {
+                                startloc.N_LOCK_STATE = 2;
+                                startloc.S_LOCK_STATE = "鍑哄簱閿�;
+                                db.Updateable(startloc).UpdateColumns(it => new { it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
+                                LocationHelper.LockLoc(endbit.S_CODE, 1);
+                                LogHelper.Info($"淇敼鎴愬姛");
+                            }
+                        }
+                        else
+                        {
+                            result.resultCode = -1;
+                            result.resultMsg = $"鎸囧紩鍑哄簱 鏈壘鍒板彲鐢ㄥ垎鎷h揣浣�;
+                            LogHelper.Info($"鎸囧紩鍑哄簱 鏈壘鍒板彲鐢ㄥ垎鎷h揣浣�);
+                        }
+                    }
+                    else
+                    {
+                        result.resultCode = -1;
+                        result.resultMsg = $"鎵樼洏{model.cntrCode} 涓嶅湪绔嬪簱涓�鏃犳硶鍑哄簱";
+                        LogHelper.Info($"鎵樼洏{model.cntrCode} 涓嶅湪绔嬪簱涓�鏃犳硶鍑哄簱");
+                    }
+                }
+                else
+                {
+                    result.resultCode = -1;
+                    result.resultMsg = $"鎸囧紩鍑哄簱 鎵樼洏鍙穥model.cntrCode} 閿佸畾鐘舵�寮傚父";
+                    LogHelper.Info($"鎸囧紩鍑哄簱 鎵樼洏鍙穥model.cntrCode} 閿佸畾鐘舵�寮傚父");
+                }
+            }
             return result;
         }
 
@@ -809,7 +1041,7 @@
                             //if (task.S_B_STATE != "鍙栨秷" && task.S_B_STATE != "瀹屾垚" && task.S_B_STATE != "鍏抽棴" && task.S_B_STATE != "寮哄埗瀹屾垚")
                             //{
                             TaskProcess.OperateStatus(task, 6);
-                            if (task.S_OP_NAME =="鍏ュ簱")
+                            if (task.S_OP_NAME == "鍏ュ簱")
                             {
                                 WMSHelper.AddChange(task);
                             }

--
Gitblit v1.9.1