From f0645a00da146f469f0c3cf448f3e651b123b4f4 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期一, 15 七月 2024 17:00:19 +0800
Subject: [PATCH] 出库方法修改;添加托盘bug;pda登录调整

---
 Pda/View/login.html                            |    4 
 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs |  614 ++++++++++++++++++++++++--------------------------
 Wms/WMS.BLL/SysServer/PalletsServer.cs         |   11 
 Wms/Wms/Controllers/DownApiController.cs       |   32 +-
 4 files changed, 322 insertions(+), 339 deletions(-)

diff --git a/Pda/View/login.html b/Pda/View/login.html
index 837a106..8c75686 100644
--- a/Pda/View/login.html
+++ b/Pda/View/login.html
@@ -195,12 +195,12 @@
 							time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 						});
 					} else {
-						if(res.code==200){//鎴愬姛
+						if(res.code==0){//鎴愬姛
 							layer.msg('鐧婚檰鎴愬姛', {
 								icon: 1,
 								time: 500 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
 							}, function () {
-								$.cookie('token', res.ToKen.TokenStr);
+								$.cookie('token', res.data);
 								//鍥炶皟
 								location.href="/View/index.html";
 							});
diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
index 0af25c8..8c28408 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -889,344 +889,324 @@
         //鐩樼偣涓嬪彂鍑哄簱
         public async Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str)
         {
-            try
+            #region 闆嗗悎 
+            var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� 
+                                                        //璁板綍閿欒淇℃伅鐨勯泦鍚� 
+            var flagList = new List<int>();//1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
+
+            #endregion
+            var com = new Common();
+            //assign.IsHavePyTask();
+            var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
+            if (notice == null)
             {
-                #region 闆嗗悎 
-                var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� 
-                //璁板綍閿欒淇℃伅鐨勯泦鍚� 
-                var flagList = new List<int>();//1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
-
-                #endregion
-                var com = new Common();
-                //assign.IsHavePyTask();
-                var notice = await Db.Queryable<BllStockCheck>().FirstAsync(m => m.CRNo == crNo && m.IsDel == "0");
-                if (notice == null)
+                throw Oops.Bah($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
+            }
+            //鎵�鏈夎鍑哄簱鐨勭洏鐐规槑缁嗕俊鎭�(绛夊緟鐨勪俊鎭拰寰呮嫞璐х殑淇℃伅)
+            var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToListAsync();
+            if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鐩樼偣鏄庣粏
+            {
+                throw Oops.Bah("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
+            }
+            #region 
+            //瑕佸嚭搴撶殑鎵樼洏闆嗗悎
+            var outLpnList = list.Select(m => m.PalletNo).Distinct().ToList();
+            //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
+            var outStockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+            var outStockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
+            //鑾峰彇鐗╂枡淇℃伅
+            var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
+            var time = DateTime.Now;
+            //Db.BeginTran();
+            //寰幆鐩樼偣鏄庣粏鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
+            foreach (var item in list)
+            {
+                if (item.Status == 0)
                 {
-                    throw Oops.Bah($"鏈壘鍒皗crNo}鐩樼偣鍗曚俊鎭�");
-                }
-                //鎵�鏈夎鍑哄簱鐨勭洏鐐规槑缁嗕俊鎭�(绛夊緟鐨勪俊鎭拰寰呮嫞璐х殑淇℃伅)
-                var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToListAsync();
-                if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鐩樼偣鏄庣粏
-                {
-                    throw Oops.Bah("褰撳墠鐩樼偣鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
-                }
-                #region 
-                //瑕佸嚭搴撶殑鎵樼洏闆嗗悎
-                var outLpnList = list.Select(m => m.PalletNo).Distinct().ToList();
-                //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
-                var outStockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
-                var outStockBox = await Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToListAsync();
-                //鑾峰彇鐗╂枡淇℃伅
-                var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync();
-                var time = DateTime.Now;
-                Db.BeginTran();
-                try
-                {
-                    //寰幆鐩樼偣鏄庣粏鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
-                    foreach (var item in list)
+                    var logList = new List<BllStockCheckLog>();
+                    //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂�
+                    if (skuNo.Contains(item.SkuNo))
                     {
-                        if (item.Status == 0)
+                        var de = outStockDetail.First(m => m.IsDel == "0" &&
+                        m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+
+                        var checkLog = new BllStockCheckLog()
                         {
-                            var logList = new List<BllStockCheckLog>();
-                            //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂�
-                            if (skuNo.Contains(item.SkuNo))
-                            {
-                                var de = outStockDetail.First(m => m.IsDel == "0" &&
-                                m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+                            CRNo = item.CRNo,
+                            PalletNo = item.PalletNo,
+                            BoxNo = "",
+                            BoxNo2 = "",
+                            BoxNo3 = "",
+                            Qty = (int?)de.Qty,
+                            SkuNo = de.SkuNo,
+                            SkuName = de.SkuName,
+                            Standard = de.Standard,
+                            LotNo = de.LotNo,
+                            LotText = de.LotText,
+                            SupplierLot = de.SupplierLot,
 
-                                var checkLog = new BllStockCheckLog()
-                                {
-                                    CRNo = item.CRNo,
-                                    PalletNo = item.PalletNo,
-                                    BoxNo = "",
-                                    BoxNo2 = "",
-                                    BoxNo3 = "",
-                                    Qty = (int?)de.Qty,
-                                    SkuNo = de.SkuNo,
-                                    SkuName = de.SkuName,
-                                    Standard = de.Standard,
-                                    LotNo = de.LotNo,
-                                    LotText = de.LotText,
-                                    SupplierLot = de.SupplierLot,
+                            CreateUser = _userManager.UserId,
+                            CreateTime = time
+                        };
+                        logList.Add(checkLog);
 
-                                    CreateUser = _userManager.UserId,
-                                    CreateTime = time
-                                };
-                                logList.Add(checkLog);
-
-                            }
-                            else
-                            {
-                                var de = outStockDetail.Where(m =>
-                                m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList();
-                                var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList();
-                                foreach (var b in bo)
-                                {
-                                    var checkLog = new BllStockCheckLog()
-                                    {
-                                        CRNo = item.CRNo,
-                                        PalletNo = item.PalletNo,
-                                        BoxNo = b.BoxNo,
-                                        BoxNo2 = b.BoxNo2,
-                                        BoxNo3 = b.BoxNo3,
-                                        Qty = b.Qty,
-                                        SkuNo = b.SkuNo,
-                                        SkuName = b.SkuName,
-                                        Standard = b.Standard,
-                                        LotNo = b.LotNo,
-                                        LotText = b.LotText,
-                                        SupplierLot = b.SupplierLot,
-
-                                        CreateUser = _userManager.UserId,
-                                        CreateTime = time
-                                    };
-                                    logList.Add(checkLog);
-                                }
-                            }
-
-                            //鐢熸垚鐩樼偣璁板綍
-                            await Db.Insertable(logList).ExecuteCommandAsync();
-                        }
-                        // 鍌ㄤ綅鍙�
-                        var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo).LocatNo;
-
-                        #region 鍒ゆ柇
-                        //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
-                        if (string.IsNullOrWhiteSpace(locateNo))
+                    }
+                    else
+                    {
+                        var de = outStockDetail.Where(m =>
+                        m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList();
+                        var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList();
+                        foreach (var b in bo)
                         {
-                            var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
-                            //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� 
-                            if (de != null && de.WareHouseNo == "W02")
+                            var checkLog = new BllStockCheckLog()
                             {
-                                //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 
-                                item.Status = 2;
-                                await Db.Updateable(item).ExecuteCommandAsync();
-                                //鐩樼偣淇℃伅淇敼
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-                                }
-                                //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
-                                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToListAsync();
-                                foreach (var s in stockDetail)
-                                {
-                                    s.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
-                                    s.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
-                                    s.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
-                                    s.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                                    await Db.Updateable(s).ExecuteCommandAsync();
-                                }
-                                flagList.Add(5);
-                                continue;
-                            }
-                            //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
-                            var imBl = com.GetImTask(item.PalletNo);
-                            if (imBl != null)
-                            {
-                                flagList.Add(4);
-                                continue;
-                            }
-                            //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
-                            if (item.Status == 0)
-                            {
-                                //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鏄庣粏淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 
-                                item.Status = 2;//鐘舵�� 
-                                await Db.Updateable(item).ExecuteCommandAsync();
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-                                }
-                            }
-                            continue;
-                        }
-                        //褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
-                        var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo && m.IsDel == "0");
-                        if (locate == null)
-                        {
-                            flagList.Add(2);
-                            continue;
-                        }
-                        //鍒ゆ柇鍌ㄤ綅鏍囧織鏄惁涓烘崯鍧�
-                        if (locate.Flag == "2")
-                        {
-                            flagList.Add(3);
-                            continue;
-                        }
-                        #endregion
-                        if (locate.Status == "1") //鏈夌墿鍝�
-                        {
-                            #region 娣诲姞鍑哄簱浠诲姟
-                            var taskNo = new Common().GetMaxNo("TK");
-                            //娣诲姞鍑哄簱浠诲姟
-                            var exTask = new LogTask
-                            {
-                                TaskNo = taskNo,
-                                Sender = "WMS",
-                                Receiver = "WCS",
-                                IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-                                StartLocat = locate.LocatNo,//璧峰浣嶇疆
-                                EndLocat = outMode,//鐩爣浣嶇疆
-                                PalletNo = item.PalletNo,//鎵樼洏鐮�
-                                IsSend = 1,//鏄惁鍙啀娆′笅鍙�
-                                IsCancel = 1,//鏄惁鍙彇娑�
-                                IsFinish = 1,//鏄惁鍙畬鎴�
-                                Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
-                                Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
-                                OrderType = "2",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+                                CRNo = item.CRNo,
+                                PalletNo = item.PalletNo,
+                                BoxNo = b.BoxNo,
+                                BoxNo2 = b.BoxNo2,
+                                BoxNo3 = b.BoxNo3,
+                                Qty = b.Qty,
+                                SkuNo = b.SkuNo,
+                                SkuName = b.SkuName,
+                                Standard = b.Standard,
+                                LotNo = b.LotNo,
+                                LotText = b.LotText,
+                                SupplierLot = b.SupplierLot,
 
+                                CreateUser = _userManager.UserId,
                                 CreateTime = time
                             };
-                            await Db.Insertable(exTask).ExecuteCommandAsync();
-
-                            outDtoList.Add(new OutCommandDto()
-                            {
-                                PalletNo = item.PalletNo,//鎵樼洏鍙�
-                                StartLocate = locate.LocatNo, // 璧峰浣嶇疆
-                                StartRoadway = locate.RoadwayNo,
-                                EndLocate = "", // 鐩爣浣嶇疆 
-                                TaskNo = exTask.TaskNo, // 浠诲姟鍙�
-                                TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
-                                OutMode = "",  //鐩爣鍦板潃
-                                Order = 1
-                            });
-                            #endregion
-
-                            #region 鏀瑰彉鏁版嵁
-                            if (item.Status == 0)//鍒ゆ柇鎵樼洏鏄惁涓嬪彂杩�
-                            {
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-                                }
-                            }
-                            locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
-                            await Db.Updateable(locate).ExecuteCommandAsync();
-
-                            item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
-                            item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                            await Db.Updateable(item).ExecuteCommandAsync();
-                            #endregion
-
-                            flagList.Add(0);
-                        }
-                        else if (locate.Status == "3") //鍑哄簱涓�
-                        {
-                            #region 鏀瑰彉鏁版嵁
-                            //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
-                            if (item.Status == 0)
-                            {
-                                if (notice.Status == 0)
-                                {
-                                    notice.CheckDate = DateTime.Now;
-                                    notice.Status = 1;
-                                    notice.UpdateUser = _userManager.UserId;
-                                    notice.UpdateTime = time;
-                                    await Db.Updateable(notice).ExecuteCommandAsync();
-
-                                }
-                            }
-                            var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "2" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
-                            item.TaskNo = taskNo.TaskNo;
-                            item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                            await Db.Updateable(item).ExecuteCommandAsync();
-
-                            #endregion
-                        }
-                        else if (locate.Status == "5") //绉诲嚭涓�
-                        {
-                            flagList.Add(1);
+                            logList.Add(checkLog);
                         }
                     }
-                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
-                    await _operation.AddLogOperationCr(new OperationInputVm()
-                    {
-                        ParentName = "搴撳唴浣滀笟",
-                        MenuName = "鐩樼偣鍗曟嵁",
-                        FkNo = crNo,
-                        TypeName = "鍑哄簱",
-                        Msg = $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟"
-                    });
-                    Db.CommitTran();
 
-                    str = string.Empty;
-                    if (flagList.Count(m => m == 1) > 0)
-                    {
-                        str += "1.褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�";
-                    }
-                    if (flagList.Count(m => m == 2) > 0)
-                    {
-                        str += "2.鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�";
-                    }
-                    if (flagList.Count(m => m == 3) > 0)
-                    {
-                        str += "4.鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�";
-                    }
-                    if (flagList.Count(m => m == 4) > 0)
-                    {
-                        str += "3.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
-                    }
-                    if (flagList.Count(m => m == 5) > 0)
-                    {
-                        str += "5.瑕佸嚭搴撶殑鎵樼洏鍦ㄩ浂绠卞簱銆�";
-                    }
-                    if (outDtoList.Count > 0)
-                    {
-                        // 姝e紡杩愯绋嬪簭鏀惧紑
-                        var list2 = outDtoList.Select(m => m.TaskNo).ToList();
-                        var jsonData = JsonConvert.SerializeObject(outDtoList);
-                        string response = "";
-
-                        try
-                        {
-                            var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
-                            //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑
-                            var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
-
-                            ////瑙f瀽杩斿洖鏁版嵁 
-                            //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
-                            //if (wcsModel.StatusCode == 0)
-                            //{
-                            //        //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
-                            //    new TaskServer().EditTaskIssueOk(list2, time1, time2);
-                            //str += "涓嬪彂鎴愬姛";
-                            //}
-                            //if (wcsModel.StatusCode == -1)
-                            //{
-                            //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
-                            //    throw new Exception(wcsModel.Msg);
-                            //}
-                        }
-                        catch (Exception ex)
-                        {
-                            throw new Exception(ex.Message);
-                        }
-                    }
-                    return outDtoList;
+                    //鐢熸垚鐩樼偣璁板綍
+                    await Db.Insertable(logList).ExecuteCommandAsync();
                 }
-                catch (Exception e)
+                // 鍌ㄤ綅鍙�
+                var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo).LocatNo;
+
+                #region 鍒ゆ柇
+                //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
+                if (string.IsNullOrWhiteSpace(locateNo))
                 {
-                    Db.RollbackTran();
-                    throw new Exception(e.Message);
+                    var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo);
+                    //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� 
+                    if (de != null && de.WareHouseNo == "W02")
+                    {
+                        //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 
+                        item.Status = 2;
+                        await Db.Updateable(item).ExecuteCommandAsync();
+                        //鐩樼偣淇℃伅淇敼
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                        //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
+                        var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == item.PalletNo).ToListAsync();
+                        foreach (var s in stockDetail)
+                        {
+                            s.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
+                            s.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
+                            s.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
+                            s.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
+                            await Db.Updateable(s).ExecuteCommandAsync();
+                        }
+                        flagList.Add(5);
+                        continue;
+                    }
+                    //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
+                    var imBl = com.GetImTask(item.PalletNo);
+                    if (imBl != null)
+                    {
+                        flagList.Add(4);
+                        continue;
+                    }
+                    //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
+                    if (item.Status == 0)
+                    {
+                        //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鏄庣粏淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 
+                        item.Status = 2;//鐘舵�� 
+                        await Db.Updateable(item).ExecuteCommandAsync();
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                    }
+                    continue;
+                }
+                //褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
+                var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo && m.IsDel == "0");
+                if (locate == null)
+                {
+                    flagList.Add(2);
+                    continue;
+                }
+                //鍒ゆ柇鍌ㄤ綅鏍囧織鏄惁涓烘崯鍧�
+                if (locate.Flag == "2")
+                {
+                    flagList.Add(3);
+                    continue;
                 }
                 #endregion
+                if (locate.Status == "1") //鏈夌墿鍝�
+                {
+                    #region 娣诲姞鍑哄簱浠诲姟
+                    var taskNo = new Common().GetMaxNo("TK");
+                    //娣诲姞鍑哄簱浠诲姟
+                    var exTask = new LogTask
+                    {
+                        TaskNo = taskNo,
+                        Sender = "WMS",
+                        Receiver = "WCS",
+                        IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+                        StartLocat = locate.LocatNo,//璧峰浣嶇疆
+                        EndLocat = outMode,//鐩爣浣嶇疆
+                        PalletNo = item.PalletNo,//鎵樼洏鐮�
+                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        IsCancel = 1,//鏄惁鍙彇娑�
+                        IsFinish = 1,//鏄惁鍙畬鎴�
+                        Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        OrderType = "2",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+
+                        CreateTime = time
+                    };
+                    await Db.Insertable(exTask).ExecuteCommandAsync();
+
+                    outDtoList.Add(new OutCommandDto()
+                    {
+                        PalletNo = item.PalletNo,//鎵樼洏鍙�
+                        StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+                        StartRoadway = locate.RoadwayNo,
+                        EndLocate = "", // 鐩爣浣嶇疆 
+                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+                        OutMode = "",  //鐩爣鍦板潃
+                        Order = 1
+                    });
+                    #endregion
+
+                    #region 鏀瑰彉鏁版嵁
+                    if (item.Status == 0)//鍒ゆ柇鎵樼洏鏄惁涓嬪彂杩�
+                    {
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+                        }
+                    }
+                    locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
+                    await Db.Updateable(locate).ExecuteCommandAsync();
+
+                    item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
+                    item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                    await Db.Updateable(item).ExecuteCommandAsync();
+                    #endregion
+
+                    flagList.Add(0);
+                }
+                else if (locate.Status == "3") //鍑哄簱涓�
+                {
+                    #region 鏀瑰彉鏁版嵁
+                    //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
+                    if (item.Status == 0)
+                    {
+                        if (notice.Status == 0)
+                        {
+                            notice.CheckDate = DateTime.Now;
+                            notice.Status = 1;
+                            notice.UpdateUser = _userManager.UserId;
+                            notice.UpdateTime = time;
+                            await Db.Updateable(notice).ExecuteCommandAsync();
+
+                        }
+                    }
+                    var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "2" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
+                    item.TaskNo = taskNo.TaskNo;
+                    item.Status = 1; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                    await Db.Updateable(item).ExecuteCommandAsync();
+
+                    #endregion
+                }
+                else if (locate.Status == "5") //绉诲嚭涓�
+                {
+                    flagList.Add(1);
+                }
             }
-            catch (Exception e)
+            //娣诲姞鎿嶄綔鏃ュ織璁板綍
+            //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", crNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟", userId);
+            await _operation.AddLogOperationCr(new OperationInputVm()
             {
-                throw new Exception(e.Message);
+                ParentName = "搴撳唴浣滀笟",
+                MenuName = "鐩樼偣鍗曟嵁",
+                FkNo = crNo,
+                TypeName = "鍑哄簱",
+                Msg = $"鐐瑰嚮鍑哄簱鎸夐挳鐩樼偣鍗曞彿涓猴細{crNo}鐨勭洏鐐瑰崟"
+            });
+            //Db.CommitTran();
+
+            str = string.Empty;
+            if (flagList.Count(m => m == 1) > 0)
+            {
+                str += "1.褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�";
             }
+            if (flagList.Count(m => m == 2) > 0)
+            {
+                str += "2.鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�";
+            }
+            if (flagList.Count(m => m == 3) > 0)
+            {
+                str += "4.鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�";
+            }
+            if (flagList.Count(m => m == 4) > 0)
+            {
+                str += "3.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
+            }
+            if (flagList.Count(m => m == 5) > 0)
+            {
+                str += "5.瑕佸嚭搴撶殑鎵樼洏鍦ㄩ浂绠卞簱銆�";
+            }
+            if (!string.IsNullOrEmpty(str))
+                throw Oops.Bah(str);
+            if (outDtoList.Count > 0)
+            {
+                // 姝e紡杩愯绋嬪簭鏀惧紑
+                var list2 = outDtoList.Select(m => m.TaskNo).ToList();
+                var jsonData = JsonConvert.SerializeObject(outDtoList);
+                string response = "";
+
+                var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                                         //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑
+                var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+                ////瑙f瀽杩斿洖鏁版嵁 
+                //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+                //if (wcsModel.StatusCode == 0)
+                //{
+                //    //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                //    new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                //    str += "涓嬪彂鎴愬姛";
+                //}
+                //if (wcsModel.StatusCode == -1)
+                //{
+                //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
+                //    throw Oops.Bah(wcsModel.Msg);
+                //}
+            }
+            return outDtoList;
+            #endregion
         }
 
         //鐩樼偣鍑哄簱瀹屾垚
diff --git a/Wms/WMS.BLL/SysServer/PalletsServer.cs b/Wms/WMS.BLL/SysServer/PalletsServer.cs
index 8a7c445..7905c29 100644
--- a/Wms/WMS.BLL/SysServer/PalletsServer.cs
+++ b/Wms/WMS.BLL/SysServer/PalletsServer.cs
@@ -125,8 +125,17 @@
 
                 var str = pallNo.Substring(3, 5);
                 string remove = pallNo.Substring(0, 3);
-                int sibelius = Convert.ToInt16(str);
+                int sibelius = 0;
                 var num = 0;
+                if (remove != "T" + DateTime.Now.ToString("yy"))
+                {
+                    remove = "T" + DateTime.Now.ToString("yy");
+                    sibelius = 0;
+                }
+                else
+                {
+                    sibelius = Convert.ToInt16(str);
+                }
                 for (int i = 0; i < groupCount; i++)
                 {
                     sibelius += 1;
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index fd9e65d..8297390 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -174,31 +174,25 @@
         /// <returns></returns>
         [Authorize]
         [HttpGet]
+        [UnitOfWork]
         public async Task<IActionResult> CheckOutHouse(string crNo, string outMode)
         {
-            try
+            //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+            var claimsIdentity = this.User.Identity as ClaimsIdentity;
+            if (claimsIdentity == null)
             {
-                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
-                var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                if (claimsIdentity == null)
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                if (string.IsNullOrWhiteSpace(userId))
-                {
-                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                }
-                string str = "";
-                var list = await _crCheckSvc.CheckOutHouse(crNo, outMode, _config.WcsHost + _config.IssueComApiUrl, str);
-
-                return Ok(new { code = 0, msg = str, data = list });
-
+                return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
             }
-            catch (Exception e)
+            var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+            if (string.IsNullOrWhiteSpace(userId))
             {
-                return Ok(new { code = 1, msg = e.Message });
+                return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
             }
+            string str = "";
+            var list = await _crCheckSvc.CheckOutHouse(crNo, outMode, _config.WcsHost + _config.IssueComApiUrl, str);
+
+            return Ok(new { code = 0, msg = str, data = list });
+
         }
 
         /// <summary>

--
Gitblit v1.8.0