From ea4fe1a6d1decf926292d3d71e7656bbcff4c937 Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@DESKTOP-5BIMHQ3> Date: 星期三, 03 七月 2024 16:58:52 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllTransServer/RcsServer.cs | 227 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 156 insertions(+), 71 deletions(-) diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs index 672a451..eff7a95 100644 --- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs +++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs @@ -1,5 +1,4 @@ -锘縰sing Microsoft.IdentityModel.Protocols; -using Newtonsoft.Json; +锘縰sing Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; @@ -30,7 +29,6 @@ public void GetPalletNo(Pallnetmsg pallnetmsg) { DataStockDetail pallet = new DataStockDetail(); - SysStorageLocat locat = new SysStorageLocat(); try { var house = "W01";//鍙《浣嶇疆锛屽悗缁牴鎹綅缃叧鑱旀垨瀹氫箟锛屾潵鍒ゆ柇鍙《浣嶇疆鎵�灞炶溅闂� @@ -40,66 +38,13 @@ switch (pallnetmsg.Type) { case "0"://鍙噣妗� - List<DataStockDetail> jtpallet = new List<DataStockDetail>(); - sql += $"and WareHouseNo = '{house}' and AreaNo like '%01' order by CreateTime desc"; - jtpallet = Db.Ado.SqlQuery<DataStockDetail>(sql).ToList(); - if (jtpallet.Count == 0) + sql += $"and WareHouseNo = '{house}' and AreaNo like '%01' and PalletStatus = '0' order by CreateTime desc"; + pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault(); + if (pallet == null) { throw new Exception("鏆傛棤鍑�妗跺彲鍒嗛厤"); } - //閬嶅巻搴撳瓨鍑�妗讹紝杩斿洖MES楠岃瘉 - foreach (var item in jtpallet) - { - string jsonReq = JsonConvert.SerializeObject(item.PalletNo); - var response = HttpHelper.DoPost(url, jsonReq, "鍥炰紶MES鍑�妗剁紪鍙�", "RCS").ToString(); - var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.Success == "0") - { - if (obj.Result != "0")//鍙敤锛岀敓鎴愬皬杞︽媺鍑�妗朵换鍔� - { - //鏌ユ壘鏄惁鏈夌┖浣欒剰妗朵綅 - sql = $"select LocatNo from SysStorageLocat where AreaNo like '%04' and WareHouseNo = '{house}' and Status = 0"; - locat = Db.Ado.SqlQuery<SysStorageLocat>(sql).FirstOrDefault(); - if (locat == null) - { - Db.Ado.BeginTran(); - //鑴忔《鍖烘棤绌轰綑搴撲綅锛屽垯閿佸畾姝ゅ噣妗跺簱瀛�,骞堕噸鏂伴亶鍘� - sql = $"UPDATE DataStockDetail Set Status = '5' Where locat ='{locat.LocatNo}'"; - Db.Ado.ExecuteCommand(sql); - Db.Ado.CommitTran(); - break; - } - //鐢熸垚璋冨害灏忚溅鍑�妗跺幓鑴忔《鍖轰换鍔� - var ztask = new TaskDetial - { - Startport = item.LocatNo, - Endport = locat.LocatNo, - Pallno = item.PalletNo, - Type = "3", - Crtype = "0", - Noticedetailno = int.Parse(noticeno), - }; - CreateLotTask(ztask); - continue; - } - //涓嬪彂灏忚溅浠诲姟 - var task2 = new TaskDetial - { - Startport = item.LocatNo, - Endport = pallnetmsg.Location, - Pallno = item.PalletNo, - Type = pallnetmsg.Type, - Crtype = "1", - Noticedetailno = int.Parse(noticeno), - }; - CreateLotTask(task2); - return; - } - else - { - throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒"); - } - } + break; case "1"://鍙枡妗讹紙娣锋枡锛� //鍒ゆ柇鏄惁鏈夋壒娆″彿 @@ -117,8 +62,8 @@ } noticeno = ArriveMes.Id.ToString();*/ //鏌ユ壘搴撳瓨涓槸鍚︽湁鍙敤鐨勬鎵规鐨勬贩鏂欐《 - sql= $"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%02' " + - $"and WareHouseNo = '{house}' and status = '0' order by CompleteTime desc"; + sql= $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%02' + and WareHouseNo = '{house}' and status = '0' and PalletStatus = '1' order by CompleteTime desc"; pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault(); if (pallet == null) { @@ -142,8 +87,8 @@ } noticeno = bllSo.Id.ToString(); //鏌ユ壘搴撳瓨涓槸鍚︽湁姝ゆ壒娆$殑涓嬫枡妗� - sql = $"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%03' " + - $"and WareHouseNo = '{house}' and status = '0' order by CompleteTime desc"; + sql = $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%03' + and WareHouseNo = '{house}' and status = '0' and PalletStatus = '2' order by CompleteTime desc"; pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault(); if (pallet == null) { @@ -152,13 +97,46 @@ break; case "3"://鍙剰妗� - sql += $"and WareHouseNo = '{house}' and AreaNo like '%04' order by CreateTime desc"; - pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault(); - if (pallet == null) + sql += $"and WareHouseNo = '{house}' and AreaNo like '%04' and PalletStatus='3' order by CreateTime desc"; + List<DataStockDetail> palletList = Db.Ado.SqlQuery<DataStockDetail>(sql).ToList(); + if (palletList.Count <= 0) { throw new Exception("鏆傛棤鑴忔《鍙垎閰�"); } + //閬嶅巻搴撳瓨鑴忔《锛岃繑鍥濵ES楠岃瘉 + foreach (var item in palletList) + { + string jsonReq = JsonConvert.SerializeObject(item.PalletNo); + var response = HttpHelper.DoPost(url, jsonReq, "鍥炰紶MES鑴忔《缂栧彿", "RCS").ToString(); + var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.Success == "0") + { + if (obj.Result != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨 + { + item.Status = "5";//寮傚父鍐荤粨 + //淇敼璇ユ《搴撳瓨鐘舵�� + Db.Updateable(item).ExecuteCommand(); + continue; + } + //涓嬪彂灏忚溅浠诲姟 + var task2 = new TaskDetial + { + Startport = item.LocatNo, + Endport = pallnetmsg.Location, + Pallno = item.PalletNo, + Type = pallnetmsg.Type, + Crtype = "1", + Noticedetailno = int.Parse(noticeno), + }; + CreateLotTask(task2); + return; + } + else + { + throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒"); + } + } break; } //涓嬪彂灏忚溅浠诲姟 @@ -178,6 +156,102 @@ catch (Exception ex) { Db.Ado.RollbackTran(); + throw ex; + } + } + + /// <summary> + /// MES涓嬪彂灏嗗噣妗舵敼涓鸿剰妗跺苟鎷夊埌鑴忔《鍖� + /// </summary> + /// <param name="PalletNo"></param> + /// <returns></returns> + public void ChangePalletStatus(string PalletNo) + { + try + { + var detail = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == PalletNo && w.PalletStatus == "0"); + if (detail == null) + { + throw new Exception($"搴撳瓨涓笉瀛樺湪妗跺彿涓猴細{PalletNo}鐨勫簱瀛�!"); + } + //璧峰鐩爣鍌ㄤ綅淇℃伅 + var statrtLocat = Db.Queryable<SysStorageLocat>().First(w => w.WareHouseNo == detail.WareHouseNo && w.AreaNo == detail.AreaNo && w.LocatNo == detail.LocatNo); + if (statrtLocat == null) + { + throw new Exception($"璇ユ《鎵�鍦ㄧ殑鍌ㄤ綅淇℃伅涓嶅瓨鍦�!"); + } + //寮�鍚簨鍔� + Db.BeginTran(); + + //鏌ユ壘鏄惁鏈夌┖浣欒剰妗朵綅 + var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.WareHouseNo == detail.WareHouseNo && w.AreaNo.Contains("04") && w.Status == "0" && w.Flag=="0"); + if (endLocat == null) + { + detail.Status = "5";//寮傚父閿佸畾 + detail.PalletStatus = "3";//鑴忔《 + //淇敼搴撳瓨鐘舵�� + Db.Updateable(detail).ExecuteCommand(); + } + else + { + //鐢熸垚璋冨害灏忚溅鍑�妗跺幓鑴忔《鍖轰换鍔� + var ztask = new TaskDetial + { + Startport = detail.LocatNo, + Endport = endLocat.LocatNo, + Pallno = PalletNo, + Type = "3", + Crtype = "2", + Noticedetailno = 0, + }; + CreateLotTask(ztask); + + statrtLocat.Status = "3";//鍑哄簱涓� + //淇敼璧峰鍌ㄤ綅鐘舵�� + Db.Updateable(statrtLocat).ExecuteCommand(); + + detail.Status = "5";//寮傚父閿佸畾 + detail.PalletStatus = "3";//鑴忔《 + //淇敼搴撳瓨鐘舵�� + Db.Updateable(detail).ExecuteCommand(); + } + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw ex; + } + } + + /// <summary> + /// MES涓嬪彂娓呮礂閿佸畾鑴忔《 + /// </summary> + /// <param name="pallnetmsg"></param> + public void CleanPallet(Pallnetmsg pallnetmsg) + { + try + { + var detail = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == pallnetmsg.PalletNo && w.PalletStatus == "3"); + if (detail == null) + { + throw new Exception($"搴撳瓨涓笉瀛樺湪妗跺彿涓猴細{pallnetmsg.PalletNo}鐨勫簱瀛�!"); + } + //涓嬪彂灏忚溅浠诲姟 + var task = new TaskDetial + { + Startport = detail.LocatNo, + Endport = pallnetmsg.Location, + Pallno = detail.PalletNo, + Type = "3", + Crtype = "1", + Noticedetailno = 0, + LotNo = "", + }; + CreateLotTask(task); + } + catch (Exception ex) + { throw ex; } } @@ -262,7 +336,7 @@ { Startport = pallnetmsg.Location, Endport = loction.LocatNo, - Pallno = pallnetmsg.Palletno, + Pallno = pallnetmsg.PalletNo, Type = pallnetmsg.Type, Crtype = "0", Noticedetailno = int.Parse(noticeno), @@ -371,7 +445,19 @@ { //寮�鍚簨鍔� Db.BeginTran(); - var na = taskDetial.Crtype == "0"?"鍏ュ簱":"鍑哄簱"; + var na = ""; + switch (taskDetial.Crtype) + { + case "0": + na = "鍏ュ簱"; + break; + case "1": + na = "鍑哄簱"; + break; + case "2": + na = "绉诲簱"; + break; + } var bz = ""; switch (taskDetial.Type) { @@ -459,7 +545,7 @@ logTaskEntry.IsSuccess = 1; logTaskEntry.BackDate = DateTime.Now; logTaskEntry.Status = "1"; - if (taskDetial.Crtype == "0") + if (taskDetial.Crtype == "0" || taskDetial.Crtype == "2") { sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'"; if (taskDetial.Type == "2") @@ -483,7 +569,6 @@ Db.RollbackTran(); throw ex; } - } } } -- Gitblit v1.8.0