From ecb386a4201213c6635f28f9e9e02e3faf217b51 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期六, 16 三月 2024 11:08:34 +0800 Subject: [PATCH] 修改储位图例柱状图以及圆形图显示数据问题。 --- Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 208 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 166 insertions(+), 42 deletions(-) diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index f959f68..e49379c 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -141,6 +141,7 @@ SupplierLot = stocks.First().SupplierLot, IsWave = "0", WaveNo = "", + IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo)? "0":"1", CreateUser = 0, }; @@ -330,42 +331,60 @@ } } - public List<ExStockInfoDto> GetStockGroupList(string type, string msg) + public List<ExStockInfoDto> GetStockGroupList(string type, string ownerNo, string msg) { try { + if (string.IsNullOrEmpty(type)) + { + throw new Exception("璇烽�夋嫨鍑哄簱鍗曠被鍨�"); + } + if (type == "6" && string.IsNullOrEmpty(ownerNo)) + { + throw new Exception("浠e偍鍗曟嵁璇烽�夋嫨璐т富"); + } var plnList = new List<string>() { "100099" }; var skuList = new List<string>(); var sku = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && !plnList.Contains(m.SkuNo)); //鎺掗櫎绌烘墭鐩樼殑鐗╂枡闆嗗悎 string skuType = string.Empty; + string inspectStatus = string.Empty; switch (type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧 { - case "0"://鎴愬搧鍏ュ簱 + case "0"://鎴愬搧鍑哄簱 skuType = "(2)"; + inspectStatus = "1"; break; case "1"://棰嗘枡鍑哄簱 skuType = "(0,1,3)"; + inspectStatus = "1"; break; case "2"://鎶芥鍑哄簱 - skuType = "(2)"; + skuType = "(0,1,2,3)"; + inspectStatus = "0,1,2"; break; case "3"://鐗╂枡鍙栨牱鍑哄簱 - skuType = "(0)"; + skuType = "(0,1,2,3)"; + inspectStatus = "0"; break; case "4"://涓嶅悎鏍煎搧鍑哄簱 - skuType = "(2)"; + skuType = "(0,1,2,3)"; + inspectStatus = "2"; break; case "5"://涓棿鍝佸嚭搴� skuType = "(4)"; + inspectStatus = "0,1"; break; case "6"://浠e偍鍑哄簱 - skuType = "(2)"; + skuType = "(0,1,2,3)"; + inspectStatus = "0,1"; break; case "8"://瀵勫瓨鍑哄簱 - skuType = "(3)"; + skuType = "(0,1,2,3)"; + inspectStatus = "0,1"; break; default: //鍏跺畠鍑哄簱 skuType = "(0,1,2,3,4)"; + inspectStatus = "0,1"; break; } skuList = sku.Where(m => skuType.Contains(m.Type)).Select(m => m.SkuNo).ToList(); @@ -378,8 +397,9 @@ var stockDetailRst = new StockDetailServer(); Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>() //.And(it => it.WareHouseNo == wareHouseNo) - .And(it => it.InspectStatus == "1") + .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus)) .And(m => skuList.Contains(m.SkuNo)) + .AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓� .AndIF(!string.IsNullOrWhiteSpace(msg), it => (it.SkuNo.Contains(msg) || it.SkuName.Contains(msg) || it.LotNo.Contains(msg))) .And(it => (it.Qty - it.LockQty - it.FrozenQty) > 0) .And(it => (it.Status == "0" || it.Status == "1")) @@ -1466,11 +1486,11 @@ toLocation = outMode;//鍑哄簱鍙� } } - else + else { unstackingMode2 = "1";//闈炴垚鍝佸嚭搴撹蛋PDA鎷嗗灈 toLocation = outMode;//鍑哄簱鍙� - } + } #endregion // 鍌ㄤ綅鍙� @@ -1885,23 +1905,23 @@ try { - var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") - response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); - var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") + //var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") + //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); + //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); - } + //////瑙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) { @@ -2087,6 +2107,86 @@ } } + /// <summary> + /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛� + /// </summary> + /// <param name="taskNo">浠诲姟鍙�</param> + /// <param name="userId">鎿嶄綔浜�</param> + /// <exception cref="Exception"></exception> + public void RelocationSuccess(string taskNo, int userId) + { + try + { + //褰撳墠浠诲姟淇℃伅 + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + } + if (task.Status == "2") + { + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); + } + Db.BeginTran(); + //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅 + //褰撳墠浠诲姟涓殑鍘熷偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); + if (locate == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); + if (locate2 == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + + try + { + task.Status = "2";//浠诲姟鐘舵�� + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + Db.Updateable(task).ExecuteCommand(); + + #region 淇敼鍌ㄤ綅鐘舵�� + + //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0 + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + + //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1 + locate2.Status = "1"; + Db.Updateable(locate2).ExecuteCommand(); + foreach (var item in stockDetail) + { + item.WareHouseNo = locate2.WareHouseNo; + item.AreaNo = locate2.AreaNo; + item.RoadwayNo = locate2.RoadwayNo; + item.LocatNo = locate2.LocatNo; + } + Db.Updateable(stockDetail).ExecuteCommand(); + + #endregion + + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + catch (Exception ex) + { + throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); + } + } + + //閲嶆柊涓嬪彂鍑哄簱浠诲姟 public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url) { @@ -2208,7 +2308,16 @@ //鑾峰彇鍌ㄤ綅淇℃伅 var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat); - + //鑾峰彇绉诲簱浠诲姟瀵瑰簲鐩爣鍌ㄤ綅淇℃伅 + SysStorageLocat endlocat = new SysStorageLocat(); + if (task.Type == "2") + { + endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W03" && a.LocatNo == task.EndLocat); + if (endlocat == null) + { + throw new Exception("鏈煡璇㈠埌鐩爣鍌ㄤ綅淇℃伅"); + } + } if (locat == null) { Db.RollbackTran(); @@ -2216,6 +2325,11 @@ } locat.Status = "1"; //鏈夌墿鍝� Db.Updateable(locat).ExecuteCommand(); + if (endlocat != null) + { + endlocat.Status = "0"; //绌哄偍浣� 0 + Db.Updateable(endlocat).ExecuteCommand(); + } if (noticeDetail.FactQty == 0) { @@ -2454,11 +2568,11 @@ { stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && m.IsDel == "0").ToList(); } - + } else { - stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo) + stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo) } if (stockDetail.Count < 1) @@ -2466,19 +2580,23 @@ throw new Exception("搴撳瓨涓嶈冻,鏃犲彲鍑哄簱搴撳瓨"); } //0:鎴愬搧鍑哄簱銆�1:棰嗘枡鍑哄簱銆�2:鎶芥鍑哄簱銆�3锛氱墿鏂欏彇鏍峰嚭搴撱��4:涓嶅悎鏍煎搧鍑哄簱銆�5:涓棿鍝佸嚭搴撱��6:浠e偍鍑哄簱銆�7:鍏朵粬鍑哄簱銆�8:瀵勫瓨鍑哄簱 - if (notice.Type == "0" || notice.Type == "1" || notice.Type == "2" || notice.Type == "5")//鎴愬搧銆佸師杈呮枡鍑哄簱 + if (notice.Type == "0" || notice.Type == "1" )//鎴愬搧銆佸師杈呮枡鍑哄簱 { stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList(); } - else if (notice.Type == "3" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//鍙栨牱鍑哄簱 + else if (notice.Type == "3" )//鍙栨牱鍑哄簱 { stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList(); + } + else if (notice.Type == "5" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8") + { + stockDetail = stockDetail.Where(m => m.InspectStatus == "0" || m.InspectStatus == "1").ToList(); } else if (notice.Type == "4")//涓嶅悎鏍煎嚭搴� { stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList(); - } - + } + #region 鍖呰淇℃伅 var pack = packList.FirstOrDefault(p => p.PackagNo == detail.PackagNo); @@ -2575,17 +2693,17 @@ if (string.IsNullOrWhiteSpace(detail.LotNo)) { detail.LotNo = s.LotNo; - + } else { if (!detail.LotNo.Contains(s.LotNo)) { - detail.LotNo += ";" + s.LotNo; + detail.LotNo += ";" + s.LotNo; } } } - + } detail.AllotQty += qty; detail.UpdateUser = userId; @@ -2594,7 +2712,7 @@ { detail.Status = "1"; } - + //搴撳瓨鎬昏〃 //var stock = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo); //stock.LockQty += qty; @@ -2724,6 +2842,15 @@ d.Status = "0"; d.UpdateUser = userId; d.UpdateTime = DateTime.Now; + + if (notice.Type == "1" || notice.Type == "5" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//1锛氶鏂欏嚭搴撱�� + { + if (d.IsIssueLotNo != "1") + { + d.LotNo = ""; + } + + } } notice.Status = "0"; notice.UpdateUser = userId; @@ -2899,7 +3026,7 @@ { throw new Exception("鎿嶄綔澶辫触锛岄儴鍒嗗偍浣嶅簱瀛樺紓甯革紒"); } - if (st.Qty > (stock.Qty - stock.LockQty - stock.FrozenQty - stock.InspectQty)) + if (st.Qty > (stock.Qty - stock.LockQty - stock.FrozenQty)) // 杈撳叆鐨勬暟閲� - 鎵樼洏涓婂彲鐢ㄧ殑鏁伴噺锛堟墭鐩樹笂鏁伴噺-閿佸畾鐨勬暟閲�-鍐荤粨鐨勬暟閲忥級 { throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忚秴鍑哄簱瀛樻暟閲忥紒"); } @@ -3071,10 +3198,7 @@ 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}' - 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(); if (addressModels.Count > 0) // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅 -- Gitblit v1.8.0