From d07f25c163706ac46a83bd2c63db1e3c52715222 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期四, 27 三月 2025 15:54:25 +0800
Subject: [PATCH] 解决问题
---
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 270 insertions(+), 25 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 5d6d22b..8746b3a 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -20,6 +20,7 @@
using WMS.Entity.LogEntity;
using Model.ModelDto.SysDto;
using Model.ModelDto.BllSoDto;
+using System.Security.Policy;
namespace WMS.BLL.BllPdaServer
{
@@ -69,11 +70,11 @@
{
throw new Exception("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜");
}
- var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo);
- if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1")
- {
- throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�");
- }
+ //var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo);
+ //if (string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1")
+ //{
+ // throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�");
+ //}
if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁
{
var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
@@ -81,6 +82,11 @@
}
//鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗�
var allotList2 = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
+
+ if (allotList2.Count == 0)
+ {
+ throw new Exception("姝ゆ墭鐩樺凡鎷h揣鎴栨棤鎷h揣浠诲姟");
+ }
//var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
//鑾峰彇鍑哄簱鍗曟嵁涓嶄负寰呮嫞璐� 鎵ц瀹屾瘯 璁㈠崟鍏抽棴 绛夊緟鎵ц鐨勫崟鎹�
@@ -399,8 +405,8 @@
{
throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
}
- var type1 = new List<string>() { "0", "4" }; //鎷h揣涓嶅彲澶氬嚭
- var type2 = new List<string>() { "1", "2", "3", "5", "6", "7", "8" };//鎷h揣鍙鍑�
+ var type1 = new List<string>() { "0", "4" }; //鎷h揣涓嶅彲澶氬嚭 鎴愬搧鍑哄簱銆佷笉鍚堟牸鍝佸嚭搴�
+ var type2 = new List<string>() { "1", "2", "3", "5", "6", "7", "8" };//鎷h揣鍙鍑� 棰嗘枡鍑哄簱銆佹娊妫�鍑哄簱銆佺墿鏂欏彇鏍峰嚭搴撱�佷腑闂村搧鍑哄簱銆佷唬鍌ㄥ嚭搴撱�佸叾浠栧嚭搴撱�佸瘎瀛樺嚭搴�
if (type1.Contains(notice.Type))
{
if (notice.Status != "3")
@@ -527,6 +533,13 @@
if (pallet == null)
{
throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
}
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
@@ -756,6 +769,13 @@
}
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
@@ -954,12 +974,19 @@
{
throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
}
-
+
//鍒ゆ柇鎵樼洏涓婄墿鏂欐槸鍚︽嫞璐у畬姣�
if (isDel == 0)
{
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ }
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
@@ -2411,6 +2438,179 @@
}
+ /// <summary>
+ /// WMS鐢宠鎷h揣绌烘墭
+ /// </summary>
+ /// <param name="model"> </param>
+ /// <param name="userId"> </param>
+ /// <param name="url"> </param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId, string url)
+ {
+ try
+ {
+ string StartLocate = "" ,EndLocate = "";
+
+ Db.BeginTran();
+ if (model.OutMode == "001") //瑗夸晶鎷h揣浣嶅彨绌烘墭鐩�
+ {
+ var xLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101"));
+ if (xLocate == null)
+ {
+ throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏");
+ }
+ StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo;
+
+ //鏍¢獙鏄惁涓虹2灞傛嫞璐ф墭鐩樹綅
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.Row == 2 && w.LocatNo == model.OutCode);
+ if (locate == null)
+ {
+ throw new Exception("璇烽�夋嫨姝g‘鐨勬嫞璐т綅");
+ }
+ //鏍¢獙鐩殑璐т綅鏄惁鍙敤
+ var isuse = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && w.LocatNo == model.OutCode);
+ if (locate == null)
+ {
+ throw new Exception("姝ゆ嫞璐т綅鐘舵�佷笉涓虹┖璐т綅");
+ }
+ EndLocate = model.OutCode;
+ }
+ else//涓滀晶鎷h揣浣嶅彨绌烘墭鐩�
+ {
+ var dLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101"));
+ if (dLocate == null)
+ {
+ throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏");
+ }
+ StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")).LocatNo;
+
+ //鏍¢獙鏄惁涓虹2灞傛嫞璐ф墭鐩樹綅
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.Row == 4 && w.LocatNo == model.OutCode);
+ if (locate == null)
+ {
+ throw new Exception("璇烽�夋嫨姝g‘鐨勬嫞璐т綅");
+ }
+ //鏍¢獙鐩殑璐т綅鏄惁鍙敤
+ var isuse = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && w.LocatNo == model.OutCode);
+ if (locate == null)
+ {
+ throw new Exception("姝ゆ嫞璐т綅鐘舵�佷笉涓虹┖璐т綅");
+ }
+ EndLocate = model.OutCode;
+ }
+
+ //娣诲姞鍑哄簱浠诲姟
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "AGV",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = StartLocate,//璧峰浣嶇疆
+ EndLocat = EndLocate,//鐩爣浣嶇疆
+ PalletNo = "",//鎵樼洏鐮�
+ Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", StartLocate, EndLocate),
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+
+ CreateTime = DateTime.Now
+ };
+ Db.Insertable(exTask).ExecuteCommand();
+
+ var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == EndLocate);
+ //淇敼鐩爣鍌ㄤ綅鍦板潃鐘舵��
+ if (storageLocatEnd != null)
+ {
+ storageLocatEnd.Status = "4";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑
+ Db.Updateable(storageLocatEnd).ExecuteCommand();
+ }
+
+ #region 鍛煎彨灏忚溅浠g爜
+
+ var endlono = EndLocate;
+ string tasktype = "D01";
+
+ //鐐瑰埌鐐规寚浠ら泦鍚�
+ object[] position = new object[2];
+ position[0] = new
+ {
+ positionCode = StartLocate,
+ type = "00"
+ };
+ position[1] = new
+ {
+ positionCode = endlono,
+ type = "00"
+ };
+
+ List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>();
+ AgvSchedulingTask agvTask = new AgvSchedulingTask();
+ Random r = new Random();
+ long ran = DateTime.Now.Ticks;
+ agvTask.ReqCode = ran.ToString();
+ agvTask.TaskCode = taskNo;
+ agvTask.TaskTyp = tasktype;
+ agvTask.PositionCodePath = position;
+ agvTask.CtnrTyp = "1";
+
+ agvTaskList.Add(agvTask);
+
+ string str = "";
+ var list2 = agvTaskList.Select(m => m.TaskCode).ToList();
+ var jsonData = JsonConvert.SerializeObject(agvTaskList);
+ jsonData = jsonData.Substring(1, jsonData.Length - 1);
+ jsonData = jsonData.Substring(0, jsonData.Length - 1);
+ string response = "";
+
+ try
+ {
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+ var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+ //////瑙f瀽杩斿洖鏁版嵁
+ var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+ if (agvModel.Code == "0")
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ str += "涓嬪彂鎴愬姛";
+ }
+ if (agvModel.Code == "1")
+ {
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message);
+ throw new Exception(agvModel.Message);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+
+ #endregion
+
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", "", "绉诲簱", $"PDA鍛煎彨灏忚溅鎷嗙┖鎵樼洏鎷h揣", userId);
+ Db.CommitTran();
+
+ return "";
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+
+
public string MoveAddress(string oldAddress, string roadWay, string skuNo,string areaNo="")//01020201 鎺�-鍒�-灞�-娣卞害
{
string nowAddress = "";
@@ -3065,6 +3265,13 @@
}
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.Qty += pickQty;
@@ -3345,6 +3552,13 @@
}
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
@@ -3631,6 +3845,13 @@
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
}
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.Qty += decimal.Parse(PickQty);
@@ -3814,6 +4035,13 @@
{
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ }
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
@@ -4059,6 +4287,7 @@
LotNo = allot.LotNo,
LotText = allot.LotText,
SupplierLot = allot.SupplierLot,
+
SkuNo = allot.SkuNo,
SkuName = allot.SkuName,
Standard = allot.Standard,
@@ -4155,10 +4384,10 @@
throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
}
var boxQty = boxInfos.First().Qty;
- if (boxQty > needQty)
- {
- throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
- }
+ //if (boxQty > needQty)
+ //{
+ // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ //}
foreach (var item in boxInfos)
{
@@ -4177,14 +4406,14 @@
throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
}
decimal boxQty = boxInfo.First().Qty;
- if (Convert.ToInt32(pickQty1) > boxQty)
+ if (decimal.Parse(pickQty1) > boxQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
}
- if (Convert.ToInt32(pickQty1) > needQty)
- {
- throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
- }
+ //if (decimal.Parse(pickQty1) > needQty)
+ //{
+ // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ //}
biaoShi = "2";
}
@@ -4199,10 +4428,10 @@
throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
}
var boxQty = boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList();
- if (boxQty[0] > needQty)
- {
- throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
- }
+ //if (boxQty[0] > needQty)
+ //{
+ // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
+ //}
foreach (var item in boxInfos)
{
@@ -4300,6 +4529,7 @@
SkuName = item.SkuName,
Standard = item.Standard,
ProductionTime = item.ProductionTime,
+ ExpirationTime = item.ExpirationTime,
SupplierLot = item.SupplierLot,
InspectMark = item.InspectMark,
BitBoxMark = "1",
@@ -4389,6 +4619,14 @@
}
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
+
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
@@ -4498,10 +4736,10 @@
}
//鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
var needQty = allot.Qty - allot.CompleteQty;
- if (decimal.Parse(PickQty) > needQty)
- {
- throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺");
- }
+ //if (decimal.Parse(PickQty) > needQty)
+ //{
+ // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺");
+ //}
//搴撳瓨鏄庣粏
var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId);
@@ -4726,6 +4964,13 @@
pallet.Status = "0";
Db.Updateable(pallet).ExecuteCommand();
+ //淇敼鍌ㄤ綅鐘舵��
+ var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
--
Gitblit v1.8.0