From 17e3ef45fe0a6b6f8a147b50740834ac734f9317 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期二, 15 七月 2025 17:30:13 +0800
Subject: [PATCH] 1111

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs |  477 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 352 insertions(+), 125 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
index 3271a60..944a24f 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
@@ -5,6 +5,7 @@
 using HH.WCS.DaYang.wms;
 using Newtonsoft.Json;
 using NLog.Fluent;
+using Opc.Ua;
 using SqlSugar;
 using System;
 using System.Collections.Concurrent;
@@ -159,17 +160,16 @@
                 return result;
             }
             var db = new SqlHelper<object>().GetInstance();
-            string start = model.startBit;
+            // string start = model.startBit;
             Location endloc = new Location();
             Location startloc = new Location();
             string Type = "";
-            string cntrcode = "";
             lock (lockObj)
             {
                 try
                 {
                     // 1 绌烘墭鍥炲簱
-                    if (model.TaskType == "1")
+                    if (model.TaskType.Trim() == "1")
                     {
                         Type = "绌烘墭鍏ュ簱";
 
@@ -184,23 +184,27 @@
                         }
                         else
                         {
-                            var cntr = LocationHelper.GetLocCntrRel(endloc.S_CODE).FirstOrDefault();
-                            if (cntr == null)
+                            if (startloc.N_LOCK_STATE != 0)
                             {
                                 result.Code = -1;
-                                result.Msg = $"鏍规嵁璧风偣:{model.startBit}鏈壘鍒扮粦瀹氭墭鐩�;
+                                result.Msg = $"璧风偣:{model.startBit}璐т綅瀛樺湪浠诲姟锛岃璐т綅涓嶅厑璁稿啀鍛煎彨锛岃绛夊緟浠诲姟瀹屾垚";
                                 LogHelper.Info($"creattask:{result.Msg}");
                                 return result;
                             }
-                            else
+                            if (startloc.N_CURRENT_NUM == 0)
                             {
-                                cntrcode = cntr.S_CNTR_CODE;
+                                result.Code = -1;
+                                result.Msg = $"璧风偣:{model.startBit}璐т綅涓嶅瓨鍦ㄦ墭鐩橈紝涓嶅厑璁镐笅鍙戜换鍔�;
+                                LogHelper.Info($"creattask:{result.Msg}");
+                                return result;
                             }
                         }
+
                         #endregion
 
                         #region 璁$畻绔嬪簱缁堢偣
-                        endloc = LocationHelper.InStorage(startloc);
+
+                        endloc = LocationHelper.InStorage("");
                         if (endloc == null)
                         {
                             result.Code = -1;
@@ -213,15 +217,24 @@
                         #region 鍒涘缓浣滀笟
                         if (startloc != null && endloc != null)
                         {
+                            //鑾峰彇鎵樼洏
+                            var Cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).First();
+                            if (Cntr == null)
+                            {
+                                result.Code = -1;
+                                result.Msg = $"鏍规嵁璧风偣:{startloc.S_CODE}鏈壘鍒版墭鐩樿揣浣嶇粦瀹氬叧绯�;
+                                LogHelper.Info($"creattask:{result.Msg}");
+                                return result;
+                            }
                             //鍒涘缓浣滀笟
                             var wcsTask = new WMSTask
                             {
                                 S_CODE = WMSHelper.GenerateTaskNo(),
                                 S_TYPE = Type,
                                 N_TYPE = int.Parse(model.TaskType),
-                                S_START_LOC = start,
+                                S_START_LOC = startloc.S_CODE,
                                 S_END_LOC = endloc.S_CODE,
-                                S_CNTR_CODE = cntrcode,
+                                S_CNTR_CODE = Cntr.S_CNTR_CODE,
                                 S_END_WH = endloc.S_WH_CODE,
                                 S_START_WH = startloc.S_WH_CODE,
                                 S_START_AREA = startloc.S_AREA_CODE,
@@ -235,8 +248,8 @@
                                 LocationHelper.LockLoc(endloc.S_CODE, 1);
                                 LogHelper.Info("鍒涘缓浣滀笟鎴愬姛");
                                 //绌烘墭鍥炲簱鎴愬姛锛屽鏋滃瓨鍦ㄧ墿鏂欐暟鎹紝鍒犻櫎
-                                var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First();
-                                if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).ExecuteCommand(); }
+                                var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == Cntr.S_CNTR_CODE).First();
+                                if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == Cntr.S_CNTR_CODE).ExecuteCommand(); }
                                 LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
                             }
                         }
@@ -244,27 +257,51 @@
 
                     }
                     // 2 鍑哄簱
-                    if (model.TaskType == "2")
+                    else if (model.TaskType.Trim() == "2")
                     {
                         Type = "鍑哄簱";
 
                         #region 鑾峰彇缁堢偣淇℃伅
-                        startloc = LocationHelper.GetLoc(model.endBit);
-                        if (startloc == null)
+                        endloc = LocationHelper.GetLoc(model.endBit);
+                        if (endloc == null)
                         {
                             result.Code = -1;
                             result.Msg = $"鏍规嵁缁堢偣:{model.startBit}鏈壘鍒拌揣浣嶄俊鎭�;
                             LogHelper.Info($"creattask:{result.Msg}");
                             return result;
                         }
+                        else
+                        {
+                            if (endloc.N_LOCK_STATE != 0)
+                            {
+                                result.Code = -1;
+                                result.Msg = $"缁堢偣:{model.startBit}璐т綅瀛樺湪浠诲姟锛岃璐т綅涓嶅厑璁稿啀鍛煎彨锛岃绛夊緟浠诲姟瀹屾垚";
+                                LogHelper.Info($"creattask:{result.Msg}");
+                                return result;
+                            }
+                            if (endloc.N_CURRENT_NUM == 0)
+                            {
+                                result.Code = -1;
+                                result.Msg = $"璧风偣:{model.startBit}璐т綅涓嶅瓨鍦ㄦ墭鐩橈紝涓嶅厑璁镐笅鍙戜换鍔�;
+                                LogHelper.Info($"creattask:{result.Msg}");
+                                return result;
+                            }
+                        }
                         #endregion
 
                         #region 鏍规嵁鐗╂枡璁$畻鍑哄簱鎵樼洏锛屽厛杩涘厛鍑猴紝浼樺厛鍑哄渚�                         //鍏堣绠楀唴渚ц揣浣嶏紝鍒ゆ柇鏄惁鏈夊崟缁勬墭鐩�-                        var locations = LocationHelper.GetLocByItemCodeOrderyTime("", model.ItemCode);
-                        if (locations.Count > 0)
+                        var location = LocationHelper.GetLocByItemCodeOrderyTime("YCLLKQ", model.ItemCode);
+                        if (location != null)
                         {
-                            endloc = locations.OrderBy(a => a.N_COL).First();
+                            startloc = location;
+                        }
+                        else
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏍规嵁鐗╂枡:{model.ItemCode}鏈壘鍒板簱瀛樻墭鐩橈紝鎴栬揣浣嶆湁閿侊紝鏁伴噺瀛樺湪闂锛岃妫�煡璐т綅琛�;
+                            LogHelper.Info($"creattask:{result.Msg}");
+                            return result;
                         }
 
                         #endregion
@@ -272,15 +309,24 @@
                         #region 鍒涘缓浣滀笟
                         if (startloc != null && endloc != null)
                         {
+                            //鑾峰彇鎵樼洏
+                            var Cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).First();
+                            if (Cntr == null)
+                            {
+                                result.Code = -1;
+                                result.Msg = $"鏍规嵁璧风偣:{startloc.S_CODE}鏈壘鍒版墭鐩樿揣浣嶇粦瀹氬叧绯�;
+                                LogHelper.Info($"creattask:{result.Msg}");
+                                return result;
+                            }
                             //鍒涘缓浣滀笟
                             var wcsTask = new WMSTask
                             {
                                 S_CODE = WMSHelper.GenerateTaskNo(),
                                 S_TYPE = Type,
                                 N_TYPE = int.Parse(model.TaskType),
-                                S_START_LOC = start,
+                                S_START_LOC = startloc.S_CODE,
                                 S_END_LOC = endloc.S_CODE,
-                                S_CNTR_CODE = cntrcode,
+                                S_CNTR_CODE = Cntr.S_CNTR_CODE,
                                 S_END_WH = endloc.S_WH_CODE,
                                 S_START_WH = startloc.S_WH_CODE,
                                 S_START_AREA = startloc.S_AREA_CODE,
@@ -337,74 +383,204 @@
             Location endloc = new Location();
             Location startloc = new Location();
             string cntrcode = model.CntrNo;
+            string DiePanLoc = "CPDPJ-1-1";
+            // string itemCode = "";
             var db = new SqlHelper<object>().GetInstance();
 
             if (model.DeviceNo == "1")//鍙犵洏鏈�             {
-                #region 鑾峰彇璧风偣淇℃伅锛屽苟鍒ゆ柇绌烘墭鏄惁鍙犳弧
-                //鏍规嵁璧风偣 鑾峰彇缁戝畾鎵樼洏鏁伴噺
-                var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.Loc).ToList();
-                if (CntrLoc.Count < 4)
+                if (model.SignalType == 1)
                 {
-                    result.Code = -1;
-                    result.Msg = $"鏍规嵁璐т綅:{model.Loc}鑾峰彇鎵樼洏鏁伴噺灏忎簬4";
-                    LogHelper.Info($"EquipmentInfo:{result.Msg}");
-                    return result;
+                    //鍒ゆ柇璁惧鐘舵�鏄惁灞炰簬鍙犵洏鐘舵�
+                    var DeviceStatu = db.Queryable<EquipmentStatus>().Where(a => a.DEVICENO == model.DeviceNo).First();
+                    if (DeviceStatu != null && DeviceStatu.STATUS == "1")
+                    {
+                        #region 鑾峰彇璧风偣淇℃伅锛屽苟鍒ゆ柇绌烘墭鏄惁鍙犳弧
+                        //鏍规嵁璧风偣 鑾峰彇缁戝畾鎵樼洏鏁伴噺
+                        //var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.Loc).ToList();
+                        //if (CntrLoc.Count < 4)
+                        //{
+                        //    result.Code = -1;
+                        //    result.Msg = $"鏍规嵁璐т綅:{model.Loc}鑾峰彇鎵樼洏鏁伴噺灏忎簬4";
+                        //    LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        //    return result;
+                        //}
+                        //else
+                        //{
+                        //    //鎷兼帴鎵樼洏鍙�+                        //    cntrcode = CntrLoc.Select(a => a.S_CNTR_CODE).ToString();
+                        //}
+                        cntrcode = model.CntrNo;
+                        //if (ContainerHelper.CheckEmpty(cntrcode))
+                        //{
+                        //    result.Code = -1;
+                        //    result.Msg = $"鎵樼洏:{cntrcode}宸茬粡缁戝畾璐т綅锛屽彔鐩樻満";
+                        //    LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        //    return result;
+                        //}  
+                        var containern = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == cntrcode).First();
+                        if (containern == null)
+                        { ContainerHelper.AddCntr(cntrcode, "2"); }
+                        else
+                        {
+                            containern.S_SOURCE = "2";
+                            db.Updateable<Container>(containern).UpdateColumns(a => new { a.S_SOURCE }).ExecuteCommand();
+                           
+                        }
+
+                        startloc = LocationHelper.GetLoc(model.Loc);
+                        if (startloc == null)
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�;
+                            LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                            return result;
+                        }
+                        #endregion
+
+                        #region 璁$畻绔嬪簱缁堢偣
+
+                        endloc = LocationHelper.InStorage("");
+                        if (endloc == null)
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌";
+                            LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                            return result;
+                        }
+
+                        #endregion
+
+                        #region 鍒涘缓浣滀笟
+                        if (startloc != null && endloc != null)
+                        {
+                            var wcsTask = new WMSTask
+                            {
+                                S_CODE = WMSHelper.GenerateTaskNo(),
+                                S_TYPE = "鍙犵洏鏈哄叆搴�,
+                                N_TYPE = 3,
+                                S_START_LOC = startloc.S_CODE,
+                                S_END_LOC = endloc.S_CODE,
+                                S_START_WH = startloc.S_WH_CODE,
+                                S_START_AREA = startloc.S_AREA_CODE,
+                                S_END_WH = endloc.S_WH_CODE,
+                                S_END_AREA = endloc.S_AREA_CODE,
+
+                                S_CNTR_CODE = cntrcode
+                            };
+                            LogHelper.Info("鍒涘缓鍏ュ钩搴撲綔涓氾細" + JsonConvert.SerializeObject(wcsTask));
+                            if (WMSHelper.CreateTask(wcsTask))
+                            {
+                                LocationHelper.LockLoc(startloc.S_CODE, 2);
+                                LocationHelper.LockLoc(endloc.S_CODE, 1);
+                                LogHelper.Info("鍒涘缓浣滀笟鎴愬姛");
+                            }
+                        }
+                        #endregion
+                    }
+                    else
+                    {
+                        result.Code = -1;
+                        result.Msg = $"褰撳墠鍙犵洏鏈虹姸鎬佷笉灞炰簬鍙犵洏鐘舵�锛屼笉鍏佽绌烘墭鍏ュ簱";
+                        LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        return result;
+                    }
+                }
+                else if (model.SignalType == 2)
+                { //鍒ゆ柇璁惧鐘舵�鏄惁灞炰簬鍙犵洏鐘舵�
+                    var DeviceStatu = db.Queryable<EquipmentStatus>().Where(a => a.DEVICENO == model.DeviceNo).First();
+                    if (DeviceStatu != null && DeviceStatu.STATUS == "2")
+                    {
+                        #region 鑾峰彇鍙犵洏鏈烘墭鐩樻暟閲�+
+                        endloc = LocationHelper.GetLoc(DiePanLoc);
+                        if (endloc == null)
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏍规嵁鍙犵洏璐т綅:{DiePanLoc}鏈壘鍒拌揣浣嶄俊鎭�;
+                            LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                            return result;
+                        }
+                        #endregion
+
+                        #region 璁$畻鏁伴噺
+                        if (endloc.N_CURRENT_NUM > 0 && endloc.N_CURRENT_NUM < 4)
+                        {
+                            startloc = LocationHelper.GetLocByItemCodeOrderyTime("YCLLKQ", null);
+
+                        }
+                        else
+                        {
+                            startloc = LocationHelper.GetLocByItemCodeOrderyTime("YCLLKQ", null, "2");
+                            if (startloc == null)
+                            {
+                                startloc = LocationHelper.GetLocByItemCodeOrderyTime("YCLLKQ", null);
+                            }
+                        }
+                        if (startloc == null)
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏈壘鍒板簱瀛樼┖鎵�;
+                            LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                            return result;
+                        }
+                        else
+                        {
+                            var Cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).ToList();
+                            if (Cntr == null)
+                            {
+                                result.Code = -1;
+                                result.Msg = $"璧风偣{startloc.S_CODE}锛屾湭鎵惧埌鎵樼洏璐т綅缁戝畾鍏崇郴锛岃妫�煡璐т綅鏁伴噺";
+                                LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                                return result;
+                            }
+                            cntrcode = string.Join(",", Cntr.Select(a => a.S_CNTR_CODE));
+                        }
+
+                        #endregion
+
+                        #region 鍒涘缓浣滀笟
+                        if (startloc != null && endloc != null)
+                        {
+                            var wcsTask = new WMSTask
+                            {
+                                S_CODE = WMSHelper.GenerateTaskNo(),
+                                S_TYPE = "鍙犵洏鏈哄懠鍙┖鎵�,
+                                N_TYPE = 3,
+                                S_START_LOC = startloc.S_CODE,
+                                S_END_LOC = endloc.S_CODE,
+                                S_START_WH = startloc.S_WH_CODE,
+                                S_START_AREA = startloc.S_AREA_CODE,
+                                S_END_WH = endloc.S_WH_CODE,
+                                S_END_AREA = endloc.S_AREA_CODE,
+
+                                S_CNTR_CODE = cntrcode
+                            };
+                            LogHelper.Info("鍒涘缓鍏ュ钩搴撲綔涓氾細" + JsonConvert.SerializeObject(wcsTask));
+                            if (WMSHelper.CreateTask(wcsTask))
+                            {
+                                LocationHelper.LockLoc(startloc.S_CODE, 2);
+                                LocationHelper.LockLoc(endloc.S_CODE, 1);
+                                LogHelper.Info("鍒涘缓浣滀笟鎴愬姛");
+                            }
+                        }
+                        #endregion
+                    }
+                    else
+                    {
+                        result.Code = -1;
+                        result.Msg = $"褰撳墠鍙犵洏鏈虹姸鎬佷笉灞炰簬鎷嗘墭鐘舵�锛屼笉鍏佽鍛煎彨绌烘墭";
+                        LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        return result;
+                    }
                 }
                 else
                 {
-                    //鎷兼帴鎵樼洏鍙�-                    cntrcode = CntrLoc.Select(a => a.S_CNTR_CODE).ToString();
-                }
-                startloc = LocationHelper.GetLoc(model.Loc);
-                if (startloc == null)
-                {
                     result.Code = -1;
-                    result.Msg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�;
+                    result.Msg = $"涓嬪彂绫诲瀷閿欒";
                     LogHelper.Info($"EquipmentInfo:{result.Msg}");
                     return result;
                 }
-
-                #endregion
-
-                #region 璁$畻绔嬪簱缁堢偣
-                endloc = LocationHelper.InStorage(startloc);
-                if (endloc == null)
-                {
-                    result.Code = -1;
-                    result.Msg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌";
-                    LogHelper.Info($"EquipmentInfo:{result.Msg}");
-                    return result;
-                }
-
-                #endregion
-
-                #region 鍒涘缓浠诲姟
-                if (startloc != null && endloc != null)
-                {
-                    var wcsTask = new WCSTask
-                    {
-                        S_CODE = WCSHelper.GenerateTaskNo(),
-                        S_TYPE = "鍏ュ簱",
-                        S_START_LOC = startloc.S_CODE,
-                        S_END_LOC = endloc.S_CODE,
-                        S_START_WH = startloc.S_WH_CODE,
-                        S_START_AREA = startloc.S_AREA_CODE,
-                        S_END_WH = endloc.S_WH_CODE,
-                        S_END_AREA = endloc.S_AREA_CODE,
-                        N_CNTR_COUNT = 1,
-                        N_SCHEDULE_TYPE = 2,
-                        S_CNTR_CODE = cntrcode
-                    };
-                    LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
-                    if (WCSHelper.CreateTask(wcsTask))
-                    {
-                        LocationHelper.LockLoc(startloc.S_CODE, 2);
-                        LocationHelper.LockLoc(endloc.S_CODE, 1);
-                        LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
-                    }
-                }
-                #endregion
             }
             else //鍏ュ簱绌�             {
@@ -413,19 +589,20 @@
                 {
                     #region 鑾峰彇璧风偣淇℃伅
                     //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
-                    var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
-                    if (CntrLoc == null)
-                    {
-                        result.Code = -1;
-                        result.Msg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
-                        LogHelper.Info($"EquipmentInfo:{result.Msg}");
-                        return result;
-                    }
-                    startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE);
+
+                    //var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.Loc).First();
+                    //if (CntrLoc == null)
+                    //{
+                    //    result.Code = -1;
+                    //    result.Msg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒扮粦瀹氭墭鐩�;
+                    //    LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                    //    return result;
+                    //}
+                    startloc = LocationHelper.GetLoc(model.Loc);
                     if (startloc == null)
                     {
                         result.Code = -1;
-                        result.Msg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�;
+                        result.Msg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�;
                         LogHelper.Info($"EquipmentInfo:{result.Msg}");
                         return result;
                     }
@@ -433,7 +610,16 @@
                     #endregion
 
                     #region 璁$畻绔嬪簱缁堢偣
-                    endloc = LocationHelper.InStorage(startloc);
+                    //鑾峰彇鎵樼洏鐗╂枡缁戝畾鍏崇郴
+                    var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == model.CntrNo).First();
+                    if (cntrItem == null)
+                    {
+                        result.Code = -1;
+                        result.Msg = $"鏍规嵁鎵樼洏:{model.CntrNo}鏈壘鍒扮墿鏂欎俊鎭�;
+                        LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        return result;
+                    }
+                    endloc = LocationHelper.InStorage(cntrItem.S_ITEM_CODE);
                     if (endloc == null)
                     {
                         result.Code = -1;
@@ -443,29 +629,30 @@
                     }
                     #endregion
 
-                    #region 鍒涘缓浠诲姟
+                    #region 鍒涘缓浣滀笟
                     if (startloc != null && endloc != null)
                     {
-                        var wcsTask = new WCSTask
+                        var wmsTask = new WMSTask
                         {
-                            S_CODE = WCSHelper.GenerateTaskNo(),
-                            S_TYPE = "鍏ュ簱",
+                            S_CODE = WMSHelper.GenerateTaskNo(),
+                            S_TYPE = "鐗╂枡鍏ュ簱",
+                            N_TYPE = 3,
                             S_START_LOC = startloc.S_CODE,
                             S_END_LOC = endloc.S_CODE,
                             S_START_WH = startloc.S_WH_CODE,
                             S_START_AREA = startloc.S_AREA_CODE,
                             S_END_WH = endloc.S_WH_CODE,
                             S_END_AREA = endloc.S_AREA_CODE,
-                            N_CNTR_COUNT = 1,
-                            N_SCHEDULE_TYPE = 2,
-                            S_CNTR_CODE = cntrcode
+                            S_CNTR_CODE = model.CntrNo
                         };
-                        LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
-                        if (WCSHelper.CreateTask(wcsTask))
+                        LogHelper.Info("鍒涘缓鍏ュ钩搴撲綔涓氾細" + JsonConvert.SerializeObject(wmsTask));
+                        if (WMSHelper.CreateTask(wmsTask))
                         {
+                            cntrItem.F_WEIGHT = float.Parse(model.Weight);
+                            var aaaaa = db.Updateable(cntrItem).UpdateColumns(a => new { a.F_WEIGHT }).ExecuteCommand();
                             LocationHelper.LockLoc(startloc.S_CODE, 2);
                             LocationHelper.LockLoc(endloc.S_CODE, 1);
-                            LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                            LogHelper.Info("鍒涘缓浣滀笟鎴愬姛");
                         }
                     }
                     #endregion
@@ -474,32 +661,40 @@
                 else
                 {
                     //鍒ゆ柇璁惧鐘舵�鏄惁灞炰簬鍙犵洏鐘舵�
-                    var DeviceStatu = db.Queryable<EquipmentStatus>().Where(a => a.deviceNo == model.DeviceNo).First();
-                    if (DeviceStatu != null && DeviceStatu.Status == "1")
+                    var DeviceStatu = db.Queryable<EquipmentStatus>().Where(a => a.DEVICENO == "1").First();
+                    if (DeviceStatu != null && DeviceStatu.STATUS == "1")
                     {
                         #region 鑾峰彇璧风偣淇℃伅
                         //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
-                        var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
-                        if (CntrLoc == null)
-                        {
-                            result.Code = -1;
-                            result.Msg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
-                            LogHelper.Info($"EquipmentInfo:{result.Msg}");
-                            return result;
-                        }
-                        startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE);
+                        //var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
+                        //if (CntrLoc == null)
+                        //{
+                        //    result.Code = -1;
+                        //    result.Msg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
+                        //    LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        //    return result;
+                        //}
+                        ContainerHelper.AddCntr(cntrcode, "1");
+                        startloc = LocationHelper.GetLoc(model.Loc);
                         if (startloc == null)
                         {
                             result.Code = -1;
-                            result.Msg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�;
+                            result.Msg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�;
                             LogHelper.Info($"EquipmentInfo:{result.Msg}");
                             return result;
                         }
-
+                        var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == model.CntrNo).First();
+                        if (cntrItem != null)
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏍规嵁鎵樼洏:{model.CntrNo}鎵惧埌鐗╂枡淇℃伅,涓嶅厑璁稿彔鐩樺叆搴�;
+                            LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                            return result;
+                        }
                         #endregion
 
                         #region 鑾峰彇缁堢偣淇℃伅
-                        string DiePanLoc = "";
+
                         //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
                         endloc = db.Queryable<Location>().Where(a => a.S_CODE == DiePanLoc).First();
                         if (endloc == null)
@@ -511,29 +706,28 @@
                         }
                         #endregion
 
-                        #region 鍒涘缓浠诲姟
+                        #region 鍒涘缓浣滀笟
                         if (startloc != null && endloc != null)
                         {
-                            var wcsTask = new WCSTask
+                            var wmsTask = new WMSTask
                             {
-                                S_CODE = WCSHelper.GenerateTaskNo(),
-                                S_TYPE = "鍏ュ簱",
+                                S_CODE = WMSHelper.GenerateTaskNo(),
+                                S_TYPE = "鍙犵洏鏈虹┖鎵樺叆搴�,
+                                N_TYPE = 3,
                                 S_START_LOC = startloc.S_CODE,
                                 S_END_LOC = endloc.S_CODE,
                                 S_START_WH = startloc.S_WH_CODE,
                                 S_START_AREA = startloc.S_AREA_CODE,
                                 S_END_WH = endloc.S_WH_CODE,
                                 S_END_AREA = endloc.S_AREA_CODE,
-                                N_CNTR_COUNT = 1,
-                                N_SCHEDULE_TYPE = 2,
                                 S_CNTR_CODE = cntrcode
                             };
-                            LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
-                            if (WCSHelper.CreateTask(wcsTask))
+                            LogHelper.Info("鍒涘缓鍏ュ钩搴撲綔涓氾細" + JsonConvert.SerializeObject(wmsTask));
+                            if (WMSHelper.CreateTask(wmsTask))
                             {
                                 LocationHelper.LockLoc(startloc.S_CODE, 2);
                                 LocationHelper.LockLoc(endloc.S_CODE, 1);
-                                LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                                LogHelper.Info("鍒涘缓浠诲姟浣滀笟");
                             }
                         }
 
@@ -553,18 +747,51 @@
             return result;
         }
 
-        internal static Result<Empty> ApplyDest(ApplyDestModel model)
+        internal static Result<ReseltApplyDestModel> ApplyDest(ApplyDestModel model)
         {
-            Result<Empty> result = new Result<Empty> { Code = 0, Msg = "鍒涘缓鎴愬姛" };
+            Result<ReseltApplyDestModel> result = new Result<ReseltApplyDestModel> { Code = 0, Msg = "鍒涘缓鎴愬姛" };
             if (model == null)
             {
                 result.Code = -1;
                 result.Msg = "鍏ュ弬涓虹┖";
                 return result;
             }
-          
             var db = new SqlHelper<object>().GetInstance();
-      
+            string ItemCode = "";
+            var task = WCSHelper.GetTask(model.TaskNo);
+            if (task != null)
+            {
+
+                //鏍规嵁浠诲姟鎵樼洏鑾峰彇鐗╂枡淇℃伅
+
+                var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).First();
+                if (cntrItem != null)
+                {
+                    ItemCode = cntrItem.S_ITEM_CODE;
+                }
+
+                var endloc = LocationHelper.InStorage(ItemCode);
+                if (endloc != null)
+                {
+                    result.Data = new ReseltApplyDestModel() { Loc = endloc.S_CODE };
+                }
+                else
+                {
+                    result.Code = -1;
+                    result.Msg = "褰撳墠娌℃湁鍙敤缁堢偣鍙互鍒嗛厤";
+                    return result;
+                }
+
+            }
+            else
+            {
+                result.Code = 1;
+                result.Msg = "浠诲姟涓嶅瓨鍦�;
+                return result;
+            }
+
+
+
             return result;
         }
 

--
Gitblit v1.9.1