From b9f7560cbe0e562a40e9515a0559a3e951f0fee6 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期一, 07 四月 2025 09:16:01 +0800
Subject: [PATCH] 问题修改
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 182 +++++++++++++++++++++++++++++++--------------
1 files changed, 125 insertions(+), 57 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 71613e4..3cc81a2 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -306,6 +306,10 @@
{
throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
}
+ if (date.Id == notice.CreateUser)
+ {
+ throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍒涘缓璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
+ }
var list = new List<SoDetail>();
foreach (var d in detail)
{
@@ -1283,8 +1287,7 @@
throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄");
}
}
- if (d.Qty < d.CompleteQty)
- {
+
//鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺
var allotList = Db.Queryable<BllExportAllot>().Where(o => o.SODetailNo == d.Id && o.Status == "3" && o.IsDel == "0").ToList();
foreach (var o in allotList)
@@ -1335,7 +1338,7 @@
Db.Updateable(st).UpdateColumns(it => new { it.LockQty }).ExecuteCommand();
}
#endregion
- }
+
}
//娣诲姞鎿嶄綔鏃ュ織璁板綍
@@ -1687,7 +1690,7 @@
#region 涓嬪彂鍑哄簱銆佸嚭搴撳畬鎴愩�侀噸鏂颁笅鍙戜换鍔°�佸彇娑堜换鍔°�佸紓甯稿鐞�
// 涓嬪彂鍑哄簱锛堣皟鐢╟s鎺ュ彛缁欎粬搴撲綅鍦板潃锛�
- public List<OutCommandDto> IssueOutHouse(string soNo, string unstackingMode, string outMode, string loadingAddre, int userId, string url, out string str)
+ public List<OutCommandDto> IssueOutHouse(string soNo, string unstackingMode, string outMode,string checkmode, string loadingAddre, int userId, string url, out string str)
{
try
{
@@ -1707,8 +1710,11 @@
{
throw new Exception($"鏈壘鍒皗soNo}鍑哄簱鍗曚俊鎭�");
}
- //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭�)
- var list = Db.Queryable<BllExportAllot>().Where(a => a.IsDel == "0" && a.SONo == soNo && a.Status == "0").ToList();
+ //鏇存柊鍑哄簱鍗曟嫞閫夋柟寮�
+ notice.UDF1 = checkmode;
+ Db.Updateable(notice).ExecuteCommand();
+ //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭拰閮ㄥ垎鎷h揣鍚庡洖娴佸叆搴撶殑鎵樼洏)
+ var list = Db.Queryable<BllExportAllot>().Where(a => a.IsDel == "0" && a.SONo == soNo && (a.Status == "0" || a.Status == "3")).ToList();
if (list.Count == 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鍑哄簱娴佹按
{
throw new Exception("褰撳墠鍑哄簱鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
@@ -1758,7 +1764,7 @@
if (isChai == "0")
{
var boxInfo = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == item.PalletNo && w.BitBoxMark == "1").ToList();
- if (boxInfo != null)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
+ if (boxInfo.Count>0)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
{
isChai = "1";
unstackingMode2 = "1";//闇�瑕佹媶绠遍渶璧癙DA鎷嗗灈
@@ -2249,10 +2255,10 @@
//鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙�
var TtaskNo = taskNo;
var outLine = "";
- if (userId == 0)
+ if (taskNo.Length == 18)
{
- TtaskNo = taskNo.Substring(0, taskNo.Length - 4);
- outLine = taskNo.Substring(taskNo.Length - 4, 3);
+ TtaskNo = taskNo.Substring(0, taskNo.Length - 3);
+ outLine = taskNo.Substring(taskNo.Length - 3, 3);
}
//褰撳墠浠诲姟淇℃伅
var task = Db.Queryable<LogTask>().First(m => m.TaskNo == TtaskNo && m.IsDel == "0");
@@ -2395,52 +2401,69 @@
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", TtaskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{TtaskNo}鐨勪换鍔�", userId);
}
- if (outLine != "")
+ if (outLine != "" && outLine != "009" && outLine != "013" && outLine != "018" && outLine != "022")
{
#region 鍒嗛厤鍑哄簱鐩殑浣�
- string positionStart = outLine, positionEnd = "" ,type ="D00";
+ string positionStart = outLine, positionEnd = "", type = "D00";
var type1 = Db.Queryable<BllExportNotice>().Where(m => m.SONo == allot.First().SONo && m.IsDel == "0" && m.Status == "3").First();
if (type1 == null)
{
var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B13").ToList();
- type = "D02" ; //绌烘墭鐩樺灈鍑哄簱
- if (outLine == "443")//瑗夸晶鍑哄簱
+ type = "D02"; //绌烘墭鐩樺灈鍑哄簱
+ if (outLine == "443")//瑗夸晶鍑哄簱
{
- positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01" && m.LocatNo.Substring(3, 2) == "02" && m.LocatNo.Substring(3, 2) == "03" &&
- m.Status == "0" && m.Flag == "0").LocatNo;
+ positionEnd = locateno.First(m => m.Row == 1 && m.Status == "0" && m.Flag == "0").LocatNo;
}
else if (outLine == "440") //涓滀晶鍑哄簱
{
- positionEnd = locateno.First(m => m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" && m.LocatNo.Substring(4, 2) == "06" &&
- m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+ positionEnd = locateno.First(m => m.Row == 2 && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
+ }
+ else //1妤肩┖鎵樼洏鍑哄簱涓嶈皟鐢ˋGV
+ {
+ Db.CommitTran();
+ return;
}
}
- if (type1.Type == "1" && (type1.Type == "5" || (positionStart == "440" && positionStart == "440"))) //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴�
- {
- var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList();
- if (outLine == "443")//瑗夸晶鍑哄簱
+ else
+ {
+ if (type1.Type == "1" || (type1.Type == "5" && (positionStart == "440" || positionStart == "443"))) //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴�
{
- positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01"&& m.LocatNo.Substring(4, 2) == "02" && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅
- }
- else if(outLine == "440") //涓滀晶鍑哄簱
- {
- positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "03" && m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" &&
- m.LocatNo.Substring(4, 2) == "06" && m.LocatNo.Substring(3, 2) == "07" && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅
- }
- }
- else if (type1.Type == "2" && type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱
- {
- positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo;
- }
- else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱
- {
+ var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList();
+ if (outLine == "443")//瑗夸晶鍑哄簱
+ {
- positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B03" && m.Status == "0" && m.Flag == "0").LocatNo;
- }
- else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯
- {
- positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo;
+ positionEnd = locateno.OrderBy(m => m.LocatNo).First(m => m.Row == 1 && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅
+ }
+ else if (outLine == "440") //涓滀晶鍑哄簱
+ {
+ positionEnd = locateno.OrderBy(m => m.LocatNo).First(m => m.Row == 3 && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅鍜屽闈㈡埧闂�
+ }
+ }
+ else if (type1.Type == "2" || type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱
+ {
+ positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m=>m.LocatNo).First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱
+ {
+
+ positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => (m.AreaNo == "B01"|| m.AreaNo == "B02"||m.AreaNo == "B04") && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ else if (type1.Type == "0")//鎴愬搧鍑哄簱
+ {
+ if (type1.UDF1 == "0") //鍑哄簱鍒版殏瀛樺尯
+ {
+ positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
+ else
+ {
+ return;
+ }
+ }
+ else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯
+ {
+ positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo;
+ }
}
#endregion
@@ -2475,7 +2498,8 @@
agvTask.CtnrTyp = "1"; //瀹瑰櫒绫诲瀷锛屽�间负1
if (type == "D02")
{
- agvTask.CtnrNum = "10"; //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
+ var palnoNum = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo);
+ agvTask.CtnrNum = palnoNum.Qty.ToString(); //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺
}
agvTaskList.Add(agvTask);
@@ -2495,6 +2519,41 @@
LogFile.SaveLogToFile($"AGV浠诲姟鍙嶉鎵ц閫氱煡锛�( {jsonData} ),", logStr);
}
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+ var taskNonew = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //灏忚溅绉诲簱浠诲姟
+ {
+ TaskNo = TtaskNo,
+ Sender = "WMS",
+ Receiver = "AGV",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = positionStart,//璧峰浣嶇疆
+ EndLocat = positionEnd,//鐩爣浣嶇疆
+ PalletNo = task.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = DateTime.Now, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "灏忚溅浠�" + positionStart + "鍒�" + positionEnd + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ var locat = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == positionEnd);
+ locat.Status = "4"; //4 绉诲叆涓�
+ Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
#endregion
}
Db.CommitTran();
@@ -2627,8 +2686,9 @@
StartLocate = locateNo, // 璧峰浣嶇疆
StartRoadway = locate.RoadwayNo,
EndLocate = task.EndLocat, // 鐩爣浣嶇疆
+ EndRoadway = task.EndRoadway,
TaskNo = task.TaskNo, // 浠诲姟鍙�
- TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ TaskType = task.Type,// 浠诲姟绫诲瀷 (鍑哄簱)
OutMode = "", //鐩爣鍦板潃
Order = 1
}; //鍑哄簱鏁版嵁
@@ -2882,7 +2942,15 @@
// 鍑哄簱鎬昏〃 鐘舵�佹敼涓洪儴鍒嗗垎閰�
var noticeModel = Db.Queryable<BllExportNotice>().First(m => m.SONo == noticeDetailModel.SONo && m.IsDel == "0");
- noticeModel.Status = "1";
+ if (noticeDetailModel.AllotQty<=0)
+ {
+ noticeModel.Status = "0";
+ }
+ else
+ {
+ noticeModel.Status = "1";
+ }
+
Db.Updateable(noticeModel).ExecuteCommand();
// 搴撳瓨鏄庣粏琛� 鐘舵�佷慨鏀逛负寮傚父閿佸畾 閿佸畾鏁伴噺淇敼涓烘墭鐩樹笂鏁伴噺
@@ -2896,7 +2964,7 @@
// 搴撳瓨鎬昏〃 閿佸畾鏁伴噺=褰撳墠閿佸畾鏁伴噺 + (搴撳瓨鏄庣粏鎵樼洏涓婃暟閲�-搴撳瓨鏄庣粏鎵樼洏涓婂凡閿佸畾鐨勬暟閲�)
var stockModel = Db.Queryable<DataStock>().First(m => m.LotNo == stockDetailModel.LotNo && m.SkuNo == stockDetailModel.SkuNo && m.IsDel == "0");
- stockModel.LockQty = stockModel.LockQty + (int)(stockDetailModel.Qty - lockQty);
+ stockModel.LockQty = stockModel.LockQty + (decimal)(stockDetailModel.Qty - lockQty);
Db.Updateable(stockModel).ExecuteCommand();
// 鎷h揣鏄庣粏琛� 鍒犻櫎
@@ -3581,7 +3649,7 @@
foreach (var item in detailList)
{
totalQty += item.Qty;
- totalAllotQty += Convert.ToInt32(item.AllotQty);
+ totalAllotQty += Convert.ToDecimal(item.AllotQty);
}
if (totalAllotQty >= totalQty)
@@ -3655,7 +3723,7 @@
}
}
var boxInfo = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == item.PalletNo && w.BitBoxMark == "1").ToList();
- if (boxInfo != null)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
+ if (boxInfo.Count>0)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠�
{
result = "1";//闇�瑕佹媶绠�
break;
@@ -3748,14 +3816,14 @@
try
{
// 鍒ゆ柇褰撳墠浠诲姟鐘舵�� Status 1:姝e湪鎵ц 3:寮傚父缁撴潫
- var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
+ var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" );
if (taskModel == null)
{
throw new Exception("姝や换鍔′笉瀛樺湪鎴栦换鍔$姸鎬佸凡鍙樻洿!");
}
// 楠岃瘉鎵樼洏鍒嗛厤淇℃伅
- var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
- if (palletBindModel != null)
+ var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "2");
+ if (palletBindModel == null)
{
throw new Exception("鏈壘鍒板綋鍓嶆墭鐩樺垎閰嶄换鍔′俊鎭�!");
}
@@ -3804,10 +3872,10 @@
}
/// <summary>
- /// 鑾峰彇鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱
+ /// 鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱
/// </summary>
- /// <param name="model">鎷嗗灈鎵樼洏鍙峰拰WCS浠诲姟鍙�</param>
- /// <returns>鎷嗗灈鎵樼洏淇℃伅</returns>
+ /// <param name="model">绠卞彿</param>
+ /// <returns>鍑哄簱鍒嗘嫞鍙�</returns>
public string BoxInfoExportWcs(string boxno)
{
try
@@ -3882,7 +3950,7 @@
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
}
decimal pickQty = 0;//鎷h揣鐨勬暟閲�
-
+ Db.BeginTran();
var comList = new List<BllCompleteDetail>();
foreach (var item in boxInfos)
{
@@ -3989,12 +4057,12 @@
}
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
-
- return "";
+ Db.CommitTran();
+ return allot.LoadingAddre;
}
catch (Exception e)
{
-
+ Db.RollbackTran();
throw new Exception(e.Message);
}
}
--
Gitblit v1.8.0