From e561870f9644a5e80925346485fe623da678177f Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期二, 14 十月 2025 10:20:57 +0800
Subject: [PATCH] 调整WMS出库逻辑,原辅料可选择成品库出库;
---
Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs | 278 +++++++++----------------------------------------------
1 files changed, 47 insertions(+), 231 deletions(-)
diff --git a/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs b/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs
index 54187e7..330a533 100644
--- a/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs
+++ b/Wms/WMS.BLL/BllQualityServer/InspectionRequestServer.cs
@@ -358,98 +358,15 @@
var Locats = Db.Queryable<SysStorageLocat>()
.Where(m => m.LocatNo == pallet.LocatNo && m.WareHouseNo == pallet.WareHouseNo
&& m.IsDel == "0").ToList().FirstOrDefault();
-
- if (Locats.Depth == "02")
+ var Locats2 = Db.Queryable<SysStorageLocat>().Where(m => m.LocatNo == model.Code && m.IsDel == "0").ToList().FirstOrDefault();
+ if (Locats2 == null)
{
- // 鑾峰彇澶栦晶鍌ㄤ綅鍦板潃
- string locatNo = Locats.LocatNo.Substring(0, 6) + "01";
- var Locatwc = Db.Queryable<SysStorageLocat>()
- .Where(m => m.LocatNo == locatNo && m.WareHouseNo == pallet.WareHouseNo
- && m.IsDel == "0").ToList().FirstOrDefault();
-
- if (Locatwc.Status == "1")
- {
- // 澶栦晶鏈夎揣鐗�
- var Locatwcsku = Db.Queryable<DataStockDetail>()
- .Where(m => m.LocatNo == locatNo
- && m.IsDel == "0"
- && m.WareHouseNo== Locatwc.WareHouseNo).ToList().FirstOrDefault();
-
- // 鑾峰彇绉诲簱鍦板潃
- var newSlot = com.MoveAddress(locatNo, Locatwc.RoadwayNo, Locatwcsku.SkuNo);
-
- var taskNo1 = new Common().GetMaxNo("TK");
- var exTask1 = new LogTask(); //鍑哄簱浠诲姟
- exTask1.TaskNo = taskNo1;
- exTask1.Sender = "WMS";
- exTask1.Receiver = "WCS";
- exTask1.IsSuccess = 0; //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- exTask1.StartLocat = locatNo; //璧峰浣嶇疆
- exTask1.PalletNo = Locatwcsku.PalletNo; //鎵樼洏鐮�
- exTask1.IsSend = 1;//鏄惁鍙啀娆′笅鍙�
- exTask1.IsCancel = 1;//鏄惁鍙彇娑�
- exTask1.IsFinish = 1;//鏄惁鍙畬鎴�
- exTask1.Status = "0";//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- exTask1.OrderType = "4"; //0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� 4 鍙栨牱鍑哄簱鍗�
-
-
- OutCommandDto taskModel = new OutCommandDto();
- taskModel.TaskNo = com.GetMaxNo("TK"); // 浠诲姟鍙�
- taskModel.StartRoadway = Locatwc.RoadwayNo;
- taskModel.PalletNo = Locatwcsku.PalletNo; // 鎵樼洏鍙�
- taskModel.StartLocate = locatNo; // 璧峰浣嶇疆
- taskModel.Order = 1;
- if (newSlot == "")
- {
- exTask1.EndLocat = model.Code; //鐩爣浣嶇疆
- exTask1.Type = "1"; //浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- exTask1.Msg = Locats.LocatNo +"鎵樼洏鍑哄簱鍒涘缓鐨�"+locatNo + "鎵樼洏鐨勫嚭搴撲换鍔�";
-
- // 娌℃湁澶氫綑鐨勭┖鍌ㄤ綅
- taskModel.EndLocate = model.Code; // 鍑哄簱鍙�
- taskModel.EndRoadway = ""; // 鐩爣宸烽亾
- taskModel.TaskType = "1";// 浠诲姟绫诲瀷 (鍑哄簱)
- taskModel.OutMode = model.Code; //鐩爣鍦板潃
-
- // 鏇存柊鍌ㄤ綅鍦板潃
- Locatwc.Status = "3";
- Db.Updateable(Locatwc).ExecuteCommand();
- }
- else
- {
- // 鑾峰彇绉诲簱宸烽亾鍙�
- var Locatyk = Db.Queryable<SysStorageLocat>()
- .Where(m => m.LocatNo == newSlot && m.WareHouseNo == pallet.WareHouseNo
- && m.IsDel == "0").ToList().FirstOrDefault();
-
- exTask1.EndLocat = newSlot; //鐩爣浣嶇疆
- exTask1.Type = "2"; //浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- exTask1.Msg = Locats.LocatNo + "鎵樼洏鍑哄簱鍒涘缓鐨�" + locatNo + "鎵樼洏鐨勭Щ搴撲换鍔�";
-
- taskModel.EndLocate = newSlot; // 鐩爣鍦板潃
- taskModel.EndRoadway = Locatyk.RoadwayNo; // 鐩爣宸烽亾
- taskModel.TaskType = "2"; // 浠诲姟绫诲瀷 (绉诲簱)
- taskModel.OutMode = newSlot;
-
- // 鏇存柊鍌ㄤ綅鍦板潃
- Locatwc.Status = "5"; // 绉诲嚭涓�
- Locatyk.Status = "4"; // 绉诲叆涓�
- Db.Updateable(Locatyk).ExecuteCommand();
- }
- Db.Updateable(Locatwc).ExecuteCommand();
-
- // 鎻掑叆浠诲姟鏃ュ織
- Db.Insertable(exTask1).ExecuteCommand();
- outWhs.Add(taskModel);
- }
- if (Locatwc.Status == "2" || Locatwc.Status == "4")
- {
- numberQty = numberQty + pallet.Qty;
- continue;
- }
+ throw new Exception("鐩爣鍌ㄤ綅閿欒");
}
-
-
+ if (Locats2.Status != "0")
+ {
+ throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅锛岃鏍稿疄");
+ }
var taskNo2 = new Common().GetMaxNo("TK");
var exTask2 = new LogTask(); //鍑哄簱浠诲姟
exTask2.TaskNo = taskNo2;
@@ -464,7 +381,7 @@
exTask2.Status = "0";//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
exTask2.OrderType = "4"; //0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� 4 鍙栨牱鍑哄簱鍗�
exTask2.EndLocat = model.Code; //鐩爣浣嶇疆
- exTask2.Type = "1"; //浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ exTask2.Type = "2"; //浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
exTask2.Msg = pallet.LocatNo + "鎵樼洏鍑哄簱浠诲姟";
// 鎻掑叆浠诲姟鏃ュ織
Db.Insertable(exTask2).ExecuteCommand();
@@ -476,51 +393,53 @@
taskModel1.Order = 1;
taskModel1.EndLocate = model.Code; // 鐩爣鍦板潃
taskModel1.EndRoadway = ""; // 鐩爣宸烽亾
- taskModel1.TaskNo = com.GetMaxNo("TK"); // 浠诲姟鍙�
- taskModel1.TaskType = "1";// 浠诲姟绫诲瀷 (鍑哄簱)
- taskModel1.OutMode = model.Code;
+ taskModel1.TaskNo = taskNo2; // 浠诲姟鍙�
+ taskModel1.TaskType = "2";// 浠诲姟绫诲瀷 (鍑哄簱)
+ taskModel1.Type = PLCTypeEnum.AGV;
// 鏇存柊鍌ㄤ綅鐘舵��
- Locats.Status = "3";
+ Locats.Status = "5";
Db.Updateable(Locats).ExecuteCommand();
+ Locats2.Status = "4";
+ Db.Updateable(Locats2).ExecuteCommand();
outWhs.Add(taskModel1);
- // 鍚慦CS涓嬪彂鍑哄簱浠诲姟
- if (outWhs.Count > 0)
- {
- // 姝e紡杩愯绋嬪簭鏀惧紑
- var list2 = outWhs.Select(m => m.TaskNo).ToList();
- var jsonData = JsonConvert.SerializeObject(outWhs);
- //string response = "";
-
- 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")
-
- ////瑙f瀽杩斿洖鏁版嵁
- //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
- //if (wcsModel.StatusCode == 0)
- //{
- // //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- //new TaskServer().EditTaskIssueOk(list2, time1, time2);
- //}
- //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);
- }
-
- }
+
}
+ // 鍚慦CS涓嬪彂鍑哄簱浠诲姟
+ if (outWhs.Count > 0)
+ {
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var list2 = outWhs.Select(m => m.TaskNo).ToList();
+ var jsonData = JsonConvert.SerializeObject(outWhs);
+ string response = "";
+ 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")
+
+ //瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+ if (wcsModel.code == 200)
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ }
+ else
+ {
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+ throw new Exception(wcsModel.message);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+
+ }
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationCrServer()
.AddLogOperationCr("璐ㄩ噺绠$悊", "璐ㄦ璇烽獙", data.QcNo, "鍑哄簱", $"鐐瑰嚮浜嗗嚭搴撴搷浣滐紱璇烽獙鍗�:{data.QcNo}!", userId);
@@ -536,109 +455,6 @@
}
}
- /// <summary>
- /// 鍚慙imes鍙戦�佽楠屼俊鎭�
- /// </summary>
- /// <param name="model">model.Id:璇烽獙鍗曚富閿紱model.Code:鍑哄簱鍙� </param>
- /// <param name="userId">鎿嶄綔鐢ㄦ埛</param>
- /// <param name="url">Wcs鍦板潃</param>
- /// <returns></returns>
- public bool SendInspectionRequest(IdVm model, int userId, string url, string userName)
- {
- try
- {
- // 鍒ゆ柇璇烽獙鍗曠姸鎬�
- var data = Db.Queryable<BllQualityInspectionRequest>()
- .Where(m => m.QcNo == model.Code && m.IsDel == "0" && m.Status == "0").ToList().FirstOrDefault();
- if (data == null)
- {
- throw new Exception("鎿嶄綔澶辫触!璇烽獙鍗曠姸鎬佸彉鏇�.");
- }
-
- // 璁板綍浠诲姟鏃ュ織
- var taskNo = new Common().GetMaxNo("TK");
- var exTask = new LogTask()
- {
- TaskNo = taskNo,
- Sender = "WMS",
- Receiver = "Limes",
- IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- StartLocat = "", //璧峰浣嶇疆
- PalletNo = "", //鎵樼洏鐮�
- IsSend = 1, //鏄惁鍙啀娆′笅鍙�
- IsCancel = 1, //鏄惁鍙彇娑�
- IsFinish = 1, //鏄惁鍙畬鎴�
- Status = "0", //浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- OrderType = "5", //0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� 4 鍙栨牱鍑哄簱鍗� 5 鍏朵粬
- EndLocat = "", //鐩爣浣嶇疆
- Type = "3", //浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- Msg = "璇烽獙浠诲姟"
- };
-
- // 鎻掑叆浠诲姟鏃ュ織
- Db.Insertable(exTask).ExecuteCommand();
-
-
- // 璋冪敤Limes鎺ュ彛鍙戣捣璇烽獙
- var sendModel = new SendLimesModel()
- {
- QcNo = data.QcNo,
- SkuNo = data.SkuNo,
- Qty = data.Qty.ToString(),
- LotNo = data.LotNo,
- SupplierLot = data.SupplierLot,
- RequestUser = userName, // 璇烽獙浜�
- };
- var jsonData = JsonConvert.SerializeObject(sendModel);
- string response = "";
-
- try
- {
- var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
- //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Limes绯荤粺鍙戣捣璇烽獙", "Limes");
- var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
-
- ////瑙f瀽杩斿洖鏁版嵁
- //var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
- List<string> list1 = new List<string>();
- list1.Add(taskNo);
- //if (limesModel.Success == 0)
- //{
- //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- new TaskServer().EditTaskIssueOk(list1, time1, time2);
-
- // 鏇存柊璇烽獙鍗曚俊鎭�
- data.Status = "1";
- data.SamplingQty = 10;//decimal.Parse(limesModel.SamplingQty);
- data.RequestUser = userId;
- data.RequestTime = DateTime.Now;
- data.UpdateTime = DateTime.Now;
- data.UpdateUser = userId;
-
- Db.Updateable(data).ExecuteCommand();
- //}
- //if (limesModel.Success == -1)
- //{
- // new TaskServer().EditTaskIssueNo(list1, time1, time2,limesModel.Message);
- // throw new Exception(limesModel.Message);
- //}
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- //娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationCrServer()
- .AddLogOperationCr("璐ㄩ噺绠$悊", "璐ㄦ璇烽獙", model.Code, "璇烽獙", $"鍚戣川閲忛儴鍒嗗彂璧疯楠�!", userId);
-
- return true;
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- }
#endregion
}
}
--
Gitblit v1.8.0