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