From 23ffc2ee97c99eb6a7305b7c61e660d0d0d84b89 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期二, 09 七月 2024 08:06:52 +0800
Subject: [PATCH] 获取储位号

---
 Wms/WMS.DAL/Common.cs |   92 +++++++++++++++++++++++++++++++---------------
 1 files changed, 62 insertions(+), 30 deletions(-)

diff --git a/Wms/WMS.DAL/Common.cs b/Wms/WMS.DAL/Common.cs
index 61515e2..3b87b65 100644
--- a/Wms/WMS.DAL/Common.cs
+++ b/Wms/WMS.DAL/Common.cs
@@ -5,7 +5,10 @@
 using System.Data;
 using System.Linq;
 using System.Text;
+using System.Threading.Tasks;
 using Model.ModelDto.BllSoDto;
+using Model.ModelDto.SysDto;
+using SqlSugar;
 using WMS.Entity.BllAsnEntity;
 using WMS.Entity.BllCheckEntity;
 using WMS.Entity.BllQualityEntity;
@@ -33,15 +36,16 @@
             {
                 var Db = DataContext.Db;
                 //鑾峰彇鍌ㄤ綅淇℃伅
-                var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
-                var locate = Db.Ado.SqlQuery<SysStorageLocat>(sql).First();
+                //var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
+                var locate = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.LocatNo == locateNo).First();
                 if (locate == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勪俊鎭�");
                 }
                 //鑾峰彇娣卞害涓�2鐨勫偍浣嶄俊鎭�
-                var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '01'; ";
-                var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                //var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '01'; ";
+                //var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                var data = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.Row == locate.Row && s.Column == locate.Column && s.Layer == locate.Layer && s.Depth == "01").First();
                 if (data == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勯噷闈㈠偍浣嶄俊鎭�");
@@ -66,15 +70,17 @@
             {
                 var Db = DataContext.Db;
                 //鑾峰彇鍌ㄤ綅淇℃伅
-                var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
-                var locate = Db.Ado.SqlQuery<SysStorageLocat>(sql).First();
+                //var sql = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and LocatNo = '{locateNo}'; ";
+                //var locate = Db.Ado.SqlQuery<SysStorageLocat>(sql).First();
+                var locate = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.LocatNo == locateNo).First();
                 if (locate == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勪俊鎭�");
                 }
                 //鑾峰彇娣卞害涓�2鐨勫偍浣嶄俊鎭�
-                var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '02'; ";
-                var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                //var sql2 = $@"select * from SysStorageLocat where  WareHouseNo = '{houseNo}' and row = {locate.Row} and [Column] = {locate.Column} and Layer = {locate.Layer} and Depth = '02'; ";
+                //var data = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+                var data = Db.Queryable<SysStorageLocat>().Where(s => s.WareHouseNo == houseNo && s.Row == locate.Row && s.Column == locate.Column && s.Layer == locate.Layer && s.Depth == "02").First();
                 if (data == null)
                 {
                     throw new Exception($"鏈煡璇㈠埌浠撳簱鍙蜂负{houseNo}銆佸偍浣嶅彿涓簕locateNo}鐨勯噷闈㈠偍浣嶄俊鎭�");
@@ -107,9 +113,22 @@
             var lie = int.Parse(oldAddress.Substring(2, 2));
             var ceng = int.Parse(oldAddress.Substring(4, 2));
 
-            var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;";
+            //var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;";
 
-            var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+            //var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+            var listArea = category.AreaNo.Split(',');
+            var addressModels = Db.Queryable<SysStorageLocat>()
+                                  .Where(s => s.Flag == "0" && s.Status == "0" && s.Depth == "02" && s.RoadwayNo == roadWay && listArea.Contains(s.AreaNo))
+                                  .Select(s => new AddressCls()
+                                  {
+                                      LocatNo = s.LocatNo,
+                                      Row = s.Row,
+                                      Column = s.Column,
+                                      Layer = s.Layer,
+                                      DistNum = SqlFunc.Abs(s.Row - row) + SqlFunc.Abs(s.Column - lie) + SqlFunc.Abs(s.Layer - ceng)
+                                  })
+                                  .OrderBy(s => s.DistNum)
+                                  .ToList();
             if (addressModels.Count > 0)   // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅
             {
                 var listLocaete = new List<string>();
@@ -120,8 +139,9 @@
 
                     // 鍒ゆ柇鐩爣搴撲綅鐨勫搴撲綅鏄惁瀛樺湪璐х墿   (姝e父鎯呭喌涓嬫鍦ㄧЩ鍏ユ儏鍐典笉瀛樺湪锛屽洜涓虹Щ搴撳厛绉诲叆閲岄潰锛屽悗绉诲叆澶栭潰)
                     //SlotStatus 0: 绌哄偍浣� 1锛氭湁璐�  2锛氭鍦ㄥ叆搴�  3锛氭鍦ㄥ嚭搴�   4锛氭鍦ㄧЩ鍏�  5锛氭鍦ㄧЩ鍑�
-                    sqlString = $"select count(*) from SysStorageLocat where LocatNo = '{addressee}' and Status = '0' and Flag in ('0','1') ; ";
-                    var rowNum = Db.Ado.SqlQuery<int>(sqlString).First();
+                    //sqlString = $"select count(*) from SysStorageLocat where LocatNo = '{addressee}' and Status = '0' and Flag in ('0','1') ; ";
+                    //var rowNum = Db.Ado.SqlQuery<int>(sqlString).First();
+                    var rowNum = Db.Queryable<SysStorageLocat>().Count(s => s.LocatNo == addressee && s.Status == "0" && (s.Flag == "0" || s.Flag == "1"));
                     if (rowNum == 0)
                     {
                         continue;
@@ -136,11 +156,23 @@
             if (nowAddress == "")
             {
                 // 鍒ゆ柇鍚屽贩閬撳鎺掔┖搴撲綅
-                sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum 
-                                from SysStorageLocat 
-                                where Flag = '0' and Status = '0' and Depth = '01' and RoadwayNo = '{roadWay}' and AreaNo  in '{category}' 
-                                order by distNum;";
-                var adderModeling = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+                //sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum 
+                //                from SysStorageLocat 
+                //                where Flag = '0' and Status = '0' and Depth = '01' and RoadwayNo = '{roadWay}' and AreaNo  in '{category}' 
+                //                order by distNum;";
+                //var adderModeling = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+                var adderModeling = Db.Queryable<SysStorageLocat>()
+                                  .Where(s => s.Flag == "0" && s.Status == "0" && s.Depth == "01" && s.RoadwayNo == roadWay && listArea.Contains(s.AreaNo))
+                                  .Select(s => new AddressCls()
+                                  {
+                                      LocatNo = s.LocatNo,
+                                      Row = s.Row,
+                                      Column = s.Column,
+                                      Layer = s.Layer,
+                                      DistNum = SqlFunc.Abs(s.Row - row) + SqlFunc.Abs(s.Column - lie) + SqlFunc.Abs(s.Layer - ceng)
+                                  })
+                                  .OrderBy(s => s.DistNum)
+                                  .ToList();
                 if (adderModeling.Count > 0)
                 {
                     nowAddress = adderModeling[0].LocatNo;
@@ -225,7 +257,7 @@
                     orderNo = list.Select(a => a.ASNNo).Max();
                 }
                 else if (codeFlag == InOutFlag.PM.ToString())//绉诲簱
-                { 
+                {
                 }
                 else if (codeFlag == InOutFlag.CR.ToString())//鐩樼偣
                 {
@@ -235,7 +267,7 @@
                 else if (codeFlag == InOutFlag.TK.ToString())//浠诲姟
                 {
                     var list = DataContext.Db.Queryable<LogTask>().Where(m => m.TaskNo.StartsWith("TK")).ToList();
-                    orderNo = list.Max(m=>m.TaskNo);
+                    orderNo = list.Max(m => m.TaskNo);
                 }
                 else if (codeFlag == InOutFlag.EX.ToString())//寮傚父
                 {
@@ -261,7 +293,7 @@
         /// </summary>
         /// <param name="sqlString">鏌ヨ璇彞</param>
         /// <returns>琛屾暟</returns>
-        public int GetRowCount(string sqlString) 
+        public int GetRowCount(string sqlString)
         {
             try
             {
@@ -288,7 +320,7 @@
                 var db = DataContext.Db;
                 //鏌ヨ鎵樼洏鏄惁鏈夋鍦ㄥ叆搴撶殑浠诲姟
                 var imTask = db.Queryable<LogTask>().First(m => m.PalletNo == palletNo && m.IsDel == "0" && m.Status == "1");
-                 
+
                 return imTask;
             }
             catch (Exception ex)
@@ -303,13 +335,13 @@
         /// <param name="packNo"></param>
         /// <param name="pNum">鎵樼洏鍖呰鏁�</param>
         /// <param name="bNum">绠卞寘瑁呮暟</param>
-        public void GetPackQtyInfo(string packNo,ref int pNum,ref int bNum)
+        public void GetPackQtyInfo(string packNo, ref int pNum, ref int bNum)
         {
             try
             {
                 var db = DataContext.Db;
                 var pack = db.Queryable<SysPackag>().First(m => m.PackagNo == packNo);
-                if (pack!= null)
+                if (pack != null)
                 {
                     if (pack.L5Num.HasValue)
                     {
@@ -379,16 +411,16 @@
                             break;
                     }
                 }
- 
-                return allotSet; 
-                
+
+                return allotSet;
+
             }
             catch (Exception e)
             {
                 throw new Exception(e.Message);
             }
         }
-        
+
         /// <summary>
         /// 鏍规嵁灏忔暟浣嶆暟鍊艰浆鎹㈠睍绀哄��
         /// </summary>
@@ -405,11 +437,11 @@
                 }
                 decimal s = (decimal)val;
                 string r = "0";
-                double data ;
+                double data;
                 //decimal data2 = 0.00M;
                 switch (digit)
                 {
-                    case 1: 
+                    case 1:
                         r = s.ToString("0.0");
                         data = Math.Round(double.Parse(r), 1);
                         break;
@@ -473,7 +505,7 @@
         /// </summary>
         [Description("绉诲簱鍗�")]
         PM,
-        
+
         /// <summary>
         /// 浠诲姟
         /// </summary>

--
Gitblit v1.8.0