From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期五, 28 二月 2025 11:06:36 +0800
Subject: [PATCH] 修改客户需求
---
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 468 ++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 358 insertions(+), 110 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 594ae57..12de074 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
{
@@ -388,7 +389,7 @@
{
throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
}
- if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)
{
throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
}
@@ -399,9 +400,21 @@
{
throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
}
- if (notice.Status != "3")
+ 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))
{
- throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ if (notice.Status != "3")
+ {
+ throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ }
+ }
+ if (type2.Contains(notice.Type))
+ {
+ if (notice.Status != "3" && notice.Status != "4")
+ {
+ throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛屾垨鎵ц瀹屾垚锛屼笉鑳芥嫞璐�");
+ }
}
//鍑哄簱鍗曟槑缁�
var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
@@ -520,6 +533,7 @@
Db.Updateable(pallet).ExecuteCommand();
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
+ noticeDetail.Status = "2";
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -527,7 +541,10 @@
if (num <= 0)
{
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
}
+
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
}
@@ -535,7 +552,7 @@
{
var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
List<DataBoxInfo> boxInfos;
- var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo && m.StockDetailId == stockDetail.Id);
if (boxInfo.Count() == 0)
{
throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
@@ -576,18 +593,18 @@
biaoShi = "1";
}
- else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
{
if (boxInfo.Count() > 1)
{
throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
}
decimal boxQty = boxInfo.First().Qty;
- if (Convert.ToInt32(pickQty1) > boxQty)
+ if (Convert.ToDecimal(pickQty1) > boxQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
}
- if (Convert.ToInt32(pickQty1) > needQty)
+ if (Convert.ToDecimal(pickQty1) > needQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
}
@@ -649,6 +666,7 @@
if (biaoShi != "2")
{
+ pickQty += item.Qty;
//鍒犻櫎搴撳瓨绠辩爜鏄庣粏
Db.Deleteable(item).ExecuteCommand();
}
@@ -656,17 +674,20 @@
{
if (decimal.Parse(pickQty1) == item.Qty)
{
+ pickQty += item.Qty;
//鍒犻櫎搴撳瓨绠辩爜鏄庣粏
Db.Deleteable(item).ExecuteCommand();
+
}
else
{
+ pickQty += decimal.Parse(pickQty1);
item.Qty -= decimal.Parse(pickQty1);
item.BitBoxMark = "1";//闆剁鏍囪瘑
Db.Updateable(item).ExecuteCommand();
}
}
- pickQty += item.Qty;
+
}
//鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
if (biaoShi == "1")
@@ -739,6 +760,7 @@
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
+ noticeDetail.Status = "2";
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -746,6 +768,9 @@
if (num <= 0)
{
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
}
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
@@ -809,7 +834,7 @@
}
//鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
var needQty = allot.Qty - allot.CompleteQty;
- if (int.Parse(PickQty) > needQty)
+ if (decimal.Parse(PickQty) > needQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺");
}
@@ -872,7 +897,7 @@
}
else if (isComplete == 1)
{
- complete.CompleteQty += int.Parse(PickQty);
+ complete.CompleteQty += decimal.Parse(PickQty);
complete.UpdateUser = userId;
complete.UpdateTime = Db.GetDate();
@@ -880,7 +905,7 @@
}
//淇敼鍑哄簱鍒嗛厤淇℃伅
- allot.CompleteQty += int.Parse(PickQty);
+ allot.CompleteQty += decimal.Parse(PickQty);
allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
allot.UpdateTime = DateTime.Now;
Db.Updateable(allot).ExecuteCommand();
@@ -889,8 +914,8 @@
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
- stockDetail.Qty -= int.Parse(PickQty);
- stockDetail.LockQty -= int.Parse(PickQty);
+ stockDetail.Qty -= decimal.Parse(PickQty);
+ stockDetail.LockQty -= decimal.Parse(PickQty);
if (stockDetail.Qty == stockDetail.LockQty)
{
stockDetail.Status = "2";
@@ -913,8 +938,8 @@
Db.Updateable(stockDetail).ExecuteCommand();
}
//鍒犻櫎鎴栦慨鏀瑰簱瀛�
- stock.Qty -= int.Parse(PickQty);
- stock.LockQty -= int.Parse(PickQty);
+ stock.Qty -= decimal.Parse(PickQty);
+ stock.LockQty -= decimal.Parse(PickQty);
if (stock.Qty <= 0)
{
Db.Deleteable(stock).ExecuteCommand();
@@ -940,6 +965,7 @@
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += int.Parse(PickQty);
+ noticeDetail.Status = "2";
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -947,6 +973,8 @@
if (num <= 0)
{
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
}
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
@@ -1337,35 +1365,35 @@
{
#region 鍒嗛厤
- //娣诲姞鍒嗛厤琛ㄤ俊鎭�
- var allot = new BllExportAllot
- {
- SONo = "",
- WaveNo = "",
- SODetailNo = 0,
- StockId = s.Id,
- LotNo = "",
- LotText = "",
- SupplierLot = "",
- SkuNo = s.SkuNo,
- SkuName = s.SkuName,
- Standard = s.Standard,
- PalletNo = s.PalletNo,
- IsBale = "0", //鏄惁瑁瑰寘
- IsBelt = "0", //鏄惁鎵撳甫
+ ////娣诲姞鍒嗛厤琛ㄤ俊鎭�
+ //var allot = new BllExportAllot
+ //{
+ // SONo = "",
+ // WaveNo = "",
+ // SODetailNo = 0,
+ // StockId = s.Id,
+ // LotNo = "",
+ // LotText = "",
+ // SupplierLot = "",
+ // SkuNo = s.SkuNo,
+ // SkuName = s.SkuName,
+ // Standard = s.Standard,
+ // PalletNo = s.PalletNo,
+ // IsBale = "0", //鏄惁瑁瑰寘
+ // IsBelt = "0", //鏄惁鎵撳甫
- //BoxexQty = s.Qty,
- Qty = (int)s.Qty,
- CompleteQty = 0,
- Status = "1",
- LogisticsId = 0,
- IsAdvance = "0",
- OutMode = model.OutMode,//鍑哄簱鍙�
+ // //BoxexQty = s.Qty,
+ // Qty = (int)s.Qty,
+ // CompleteQty = 0,
+ // Status = "1",
+ // LogisticsId = 0,
+ // IsAdvance = "0",
+ // OutMode = model.OutMode,//鍑哄簱鍙�
- CreateUser = userId,
- CreateTime = DateTime.Now
- };
- Db.Insertable(allot).ExecuteCommand();
+ // CreateUser = userId,
+ // CreateTime = DateTime.Now
+ //};
+ //Db.Insertable(allot).ExecuteCommand();
#endregion
@@ -1380,7 +1408,10 @@
}
//鑾峰彇绉诲簱鐨勫簱浣�
var newSlot = MoveAddress(slotBefore.LocatNo, slotBefore.RoadwayNo, SkuNo, slotBefore.AreaNo);
-
+ if (string.IsNullOrWhiteSpace(newSlot))
+ {
+ continue;
+ }
var taskNo = new Common().GetMaxNo("TK");
var exTask = new LogTask //鍑哄簱浠诲姟
{
@@ -1400,7 +1431,7 @@
OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
CreateTime = serverTime, //鍒涘缓鏃堕棿
CreateUser = userId, //鍒涘缓浜�
- Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : slotBefore.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
//FinishDate = serverTime, //瀹屾垚鏃堕棿
};
moveDto.Add(new OutCommandDto()
@@ -1410,7 +1441,7 @@
StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
EndLocate = exTask.EndLocat, // 鐩爣浣嶇疆
TaskNo = exTask.TaskNo, // 浠诲姟鍙�
- TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)
+ TaskType = "2",// 浠诲姟绫诲瀷 (绉诲簱)
OutMode = "", //鐩爣鍦板潃
Order = 1
});
@@ -1422,6 +1453,12 @@
//鏇存敼鍌ㄤ綅鐘舵�佷负绉诲嚭涓�
slotBefore.Status = "5"; //5 绉诲嚭涓�
Db.Updateable(slotBefore).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ var newSlot2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == newSlot && m.IsDel == "0");
+ if (newSlot2!= null)
+ {
+ newSlot2.Status = "4";//绉诲叆涓�
+ Db.Updateable(newSlot2).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ }
#endregion
}
else //鍑哄簱
@@ -1429,17 +1466,17 @@
#region 鏀瑰彉搴撳瓨
//澧炲姞搴撳瓨閿佸畾鏁伴噺
- stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺
+ stock.LockQty += (int)pallSku.Qty; //閿佸畾鏁伴噺
stock.UpdateTime = serverTime; //淇敼鏃堕棿
stock.UpdateUser = userId; //淇敼浜�
Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅
//澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺
- s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺
- s.UpdateTime = serverTime; //淇敼鏃堕棿
- s.UpdateUser = userId; //淇敼浜�
- s.Status = "2"; //2 宸插垎閰�
- Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅
+ pallSku.LockQty += (int)pallSku.Qty; //閿佸畾鏁伴噺
+ pallSku.UpdateTime = serverTime; //淇敼鏃堕棿
+ pallSku.UpdateUser = userId; //淇敼浜�
+ pallSku.Status = "2"; //2 宸插垎閰�
+ Db.Updateable(pallSku).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅
#endregion
@@ -1451,19 +1488,19 @@
SONo = "",
WaveNo = "",
SODetailNo = 0,
- StockId = s.Id,
+ StockId = pallSku.Id,
LotNo = "",
LotText = "",
SupplierLot = "",
- SkuNo = s.SkuNo,
- SkuName = s.SkuName,
- Standard = s.Standard,
- PalletNo = s.PalletNo,
+ SkuNo = pallSku.SkuNo,
+ SkuName = pallSku.SkuName,
+ Standard = pallSku.Standard,
+ PalletNo = pallSku.PalletNo,
IsBale = "0", //鏄惁瑁瑰寘
IsBelt = "0", //鏄惁鎵撳甫
//BoxexQty = s.Qty,
- Qty = (int)s.Qty,
+ Qty = (int)pallSku.Qty,
CompleteQty = 0,
Status = "1",
LogisticsId = 0,
@@ -1487,9 +1524,9 @@
Receiver = "PDA",
IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ StartLocat = locat == null ? "" : pallSku.LocatNo,//璧峰浣嶇疆
EndLocat = model.OutMode,//鐩爣浣嶇疆
- PalletNo = s.PalletNo,//鎵樼洏鐮�
+ PalletNo = pallSku.PalletNo,//鎵樼洏鐮�
IsSend = 1,//鏄惁鍙啀娆′笅鍙�
IsCancel = 1,//鏄惁鍙彇娑�
IsFinish = 1,//鏄惁鍙畬鎴�
@@ -1498,7 +1535,7 @@
OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
CreateTime = serverTime, //鍒涘缓鏃堕棿
CreateUser = userId, //鍒涘缓浜�
- Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : pallSku.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
//FinishDate = serverTime, //瀹屾垚鏃堕棿
};
outDto2.Add(new OutCommandDto()
@@ -2375,6 +2412,153 @@
}
+ /// <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;
+ EndLocate = "B15010101";
+ }
+ 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;
+ EndLocate = "B15020101";
+ }
+
+ //娣诲姞鍑哄簱浠诲姟
+ 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 = "";
@@ -2714,7 +2898,7 @@
{
throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
}
- if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)
{
throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
}
@@ -2889,7 +3073,7 @@
}
biaoShi = "1";
}
- else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
{
if (boxInfo.Count() > 1)
{
@@ -3055,7 +3239,7 @@
{
throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
}
- if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)
{
throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
}
@@ -3143,18 +3327,18 @@
}
biaoShi = "1";
}
- else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
{
if (boxInfo.Count() > 1)
{
throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
}
decimal boxQty = boxInfo.First().Qty;
- if (Convert.ToInt32(pickQty1) > boxQty)
+ if (Convert.ToDecimal(pickQty1) > boxQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
}
- if (Convert.ToInt32(pickQty1) > needQty)
+ if (Convert.ToDecimal(pickQty1) > needQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
}
@@ -3219,6 +3403,7 @@
if (biaoShi != "2")
{
+ pickQty += item.Qty;
//鍒犻櫎搴撳瓨绠辩爜鏄庣粏
Db.Deleteable(item).ExecuteCommand();
}
@@ -3226,17 +3411,19 @@
{
if (decimal.Parse(pickQty1) == item.Qty)
{
+ pickQty += item.Qty;
//鍒犻櫎搴撳瓨绠辩爜鏄庣粏
Db.Deleteable(item).ExecuteCommand();
}
else
{
+ pickQty += decimal.Parse(pickQty1);
item.Qty -= decimal.Parse(pickQty1);
item.BitBoxMark = "1";//闆剁鏍囪瘑
Db.Updateable(item).ExecuteCommand();
}
}
- pickQty += item.Qty;
+
}
//鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
if (biaoShi == "1")
@@ -3515,7 +3702,7 @@
SkuName = allot2.SkuName,
Standard = allot2.Standard,
PalletNo = palletNo,
- CompleteQty = int.Parse(PickQty),
+ CompleteQty = decimal.Parse(PickQty),
InspectMark = "1",
CreateUser = userId
@@ -3527,7 +3714,7 @@
}
else if (isComplete == 1)
{
- complete.CompleteQty += int.Parse(PickQty);
+ complete.CompleteQty += decimal.Parse(PickQty);
complete.UpdateUser = userId;
complete.UpdateTime = Db.GetDate();
@@ -3537,8 +3724,8 @@
//淇敼鍑哄簱鍒嗛厤淇℃伅
- allot2.Qty += int.Parse(PickQty);
- allot2.CompleteQty += int.Parse(PickQty);
+ allot2.Qty += decimal.Parse(PickQty);
+ allot2.CompleteQty += decimal.Parse(PickQty);
Db.Updateable(allot2).ExecuteCommand();
int isDel = 0;
@@ -3546,7 +3733,7 @@
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
stockDetail.InspectMark = "1";//淇敼涓烘娊妫�鎵樻爣璇�
- stockDetail.Qty -= int.Parse(PickQty);
+ stockDetail.Qty -= decimal.Parse(PickQty);
if (stockDetail.Qty == stockDetail.LockQty && stockDetail.Qty != 0)
{
stockDetail.Status = "2";
@@ -3594,10 +3781,10 @@
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
- noticeDetail.Qty += int.Parse(PickQty);
- noticeDetail.AllotQty += int.Parse(PickQty);
- noticeDetail.FactQty += int.Parse(PickQty);
- noticeDetail.CompleteQty += int.Parse(PickQty);
+ noticeDetail.Qty += decimal.Parse(PickQty);
+ noticeDetail.AllotQty += decimal.Parse(PickQty);
+ noticeDetail.FactQty += decimal.Parse(PickQty);
+ noticeDetail.CompleteQty += decimal.Parse(PickQty);
noticeDetail.Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * noticeDetail.Qty;
Db.Updateable(noticeDetail).ExecuteCommand();
@@ -3646,7 +3833,7 @@
}
//鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
var needQty = allot.Qty - allot.CompleteQty;
- if (int.Parse(PickQty) > needQty)
+ if (decimal.Parse(PickQty) > needQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺");
}
@@ -3696,7 +3883,7 @@
SkuName = allot.SkuName,
Standard = allot.Standard,
PalletNo = palletNo,
- CompleteQty = int.Parse(PickQty),
+ CompleteQty = decimal.Parse(PickQty),
CreateUser = userId,
CreateTime = Db.GetDate(),
@@ -3708,7 +3895,7 @@
}
else if (isComplete == 1)
{
- complete.CompleteQty += int.Parse(PickQty);
+ complete.CompleteQty += decimal.Parse(PickQty);
complete.UpdateUser = userId;
complete.UpdateTime = Db.GetDate();
@@ -3718,7 +3905,7 @@
//淇敼鍑哄簱鍒嗛厤淇℃伅
- allot.CompleteQty += int.Parse(PickQty);
+ allot.CompleteQty += decimal.Parse(PickQty);
allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
allot.UpdateTime = DateTime.Now;
@@ -3728,8 +3915,8 @@
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
- stockDetail.Qty -= int.Parse(PickQty);
- stockDetail.LockQty -= int.Parse(PickQty);
+ stockDetail.Qty -= decimal.Parse(PickQty);
+ stockDetail.LockQty -= decimal.Parse(PickQty);
if (stockDetail.Qty == stockDetail.LockQty)
{
stockDetail.Status = "2";
@@ -3752,8 +3939,8 @@
Db.Updateable(stockDetail).ExecuteCommand();
}
//鍒犻櫎鎴栦慨鏀瑰簱瀛�
- stock.Qty -= int.Parse(PickQty);
- stock.LockQty -= int.Parse(PickQty);
+ stock.Qty -= decimal.Parse(PickQty);
+ stock.LockQty -= decimal.Parse(PickQty);
if (stock.Qty <= 0)
{
Db.Deleteable(stock).ExecuteCommand();
@@ -3778,7 +3965,7 @@
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
- noticeDetail.CompleteQty += int.Parse(PickQty);
+ noticeDetail.CompleteQty += decimal.Parse(PickQty);
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -3835,7 +4022,7 @@
{
throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
}
- if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)
{
throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
}
@@ -3857,10 +4044,14 @@
{
throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
}
- if (notice.Status != "3")
+ if (notice.Type != "1" && notice.Type != "2" && notice.Type != "3")
{
- throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ if (notice.Status != "3")
+ {
+ throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ }
}
+
//鍑哄簱鍗曟槑缁�
var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
.First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId));
@@ -3897,7 +4088,7 @@
#region 鎷兼墭淇℃伅
var sdId = 0;
bool isNew = false;
- var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo == allot.SkuNo && m.LotNo == allot.LotNo);
+ var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
if (pinStockDetail != null)
{
if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐�
@@ -4068,6 +4259,7 @@
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
+ noticeDetail.Status = "2";
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -4075,6 +4267,8 @@
if (num <= 0)
{
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
}
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
@@ -4083,7 +4277,7 @@
{
var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
List<DataBoxInfo> boxInfos;
- var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo && m.StockDetailId == stockDetail.Id);
if (boxInfo.Count() == 0)
{
throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
@@ -4124,18 +4318,18 @@
biaoShi = "1";
}
- else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
{
if (boxInfo.Count() > 1)
{
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)
+ if (decimal.Parse(pickQty1) > needQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
}
@@ -4220,6 +4414,8 @@
}
else//鏁伴噺鎷h揣
{
+ var boxInfo2 = Db.Queryable<DataBoxInfo>().First(m => m.IsDel == "0" && m.BoxNo == boxNo && m.StockDetailId == sdId);
+
if (decimal.Parse(pickQty1) == item.Qty)
{
//淇敼搴撳瓨绠辩爜鏄庣粏
@@ -4231,12 +4427,56 @@
}
else
{
+ if (boxInfo2 == null)
+ {
+ var dataBoxInfo = new DataBoxInfo()
+ {
+ StockDetailId = sdId,
+ BindNo = item.BindNo,
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+ PalletNo = item.PalletNo,
+ PalletNo2 = item.PalletNo2,
+ PalletNo3 = item.PalletNo3,
+ Qty = decimal.Parse(pickQty1),
+ FullQty = item.FullQty,
+ Status = "5",
+ LotNo = item.LotNo,
+ LotText = item.LotText,
+ SkuNo = item.SkuNo,
+ SkuName = item.SkuName,
+ Standard = item.Standard,
+ ProductionTime = item.ProductionTime,
+ SupplierLot = item.SupplierLot,
+ InspectMark = item.InspectMark,
+ BitBoxMark = "1",
+ InspectStatus = item.InspectStatus,
+ InspectTime = item.InspectTime,
+ };
+
+ Db.Insertable(dataBoxInfo).ExecuteCommand();
+ }
+ else
+ {
+ boxInfo2.Qty += decimal.Parse(pickQty1);
+ item.BitBoxMark = boxInfo2.Qty>= boxInfo2.FullQty? "0":"1" ;//闆剁鏍囪瘑
+ Db.Updateable(boxInfo2).ExecuteCommand();
+ }
item.Qty -= decimal.Parse(pickQty1);
item.BitBoxMark = "1";//闆剁鏍囪瘑
- Db.Updateable(item).ExecuteCommand();
+ if (item.Qty<=0)
+ {
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(item).ExecuteCommand();
+ }
+
}
- pickQty += int.Parse(pickQty1);
+ pickQty += decimal.Parse(pickQty1);
}
}
//鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
@@ -4300,6 +4540,7 @@
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
+ noticeDetail.Status = "2";
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -4307,17 +4548,21 @@
if (num <= 0)
{
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
}
+
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
}
if (isNew)
{
- sd.Qty = pickQty;
- sd.LockQty = pickQty;
+ var sd2 = Db.Queryable<DataStockDetail>().First(m=>m.Id == sdId);
+ sd2.Qty = pickQty;
+ sd2.LockQty = pickQty;
- Db.Updateable(sd).ExecuteCommand();
+ Db.Updateable(sd2).ExecuteCommand();
}
else
{
@@ -4401,7 +4646,7 @@
}
//鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
var needQty = allot.Qty - allot.CompleteQty;
- if (int.Parse(PickQty) > needQty)
+ if (decimal.Parse(PickQty) > needQty)
{
throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺");
}
@@ -4420,7 +4665,7 @@
}
if (palletNo == palletNoNew)//鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷�
{
- if (int.Parse(PickQty) != stockDetail.Qty)
+ if (decimal.Parse(PickQty) != stockDetail.Qty)
{
throw new Exception("鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷达紝闇�瑕佹妸鎵樼洏涓婃墍鏈夋暟閲忔嫞璐�");
}
@@ -4469,8 +4714,8 @@
sd.SkuName = stockDetail.SkuName;
sd.Standard = stockDetail.Standard;
- sd.Qty = int.Parse(PickQty);
- sd.LockQty = int.Parse(PickQty);
+ sd.Qty = decimal.Parse(PickQty);
+ sd.LockQty = decimal.Parse(PickQty);
sd.FrozenQty = 0;
sd.InspectQty = 0;
@@ -4513,8 +4758,8 @@
if (palletNo != palletNoNew)
{
//淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏
- pinStockDetail.Qty += int.Parse(PickQty);
- pinStockDetail.LockQty += int.Parse(PickQty);
+ pinStockDetail.Qty += decimal.Parse(PickQty);
+ pinStockDetail.LockQty += decimal.Parse(PickQty);
Db.Updateable(pinStockDetail).ExecuteCommand();
}
else
@@ -4558,7 +4803,7 @@
SkuName = allot.SkuName,
Standard = allot.Standard,
PalletNo = palletNo,
- CompleteQty = int.Parse(PickQty),
+ CompleteQty = decimal.Parse(PickQty),
CreateUser = userId,
CreateTime = Db.GetDate(),
@@ -4570,7 +4815,7 @@
}
else if (isComplete == 1)
{
- complete.CompleteQty += int.Parse(PickQty);
+ complete.CompleteQty += decimal.Parse(PickQty);
complete.UpdateUser = userId;
complete.UpdateTime = Db.GetDate();
@@ -4578,7 +4823,7 @@
}
//淇敼鍑哄簱鍒嗛厤淇℃伅
- allot.CompleteQty += int.Parse(PickQty);
+ allot.CompleteQty += decimal.Parse(PickQty);
allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
allot.UpdateTime = DateTime.Now;
Db.Updateable(allot).ExecuteCommand();
@@ -4589,8 +4834,8 @@
{
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
- stockDetail.Qty -= int.Parse(PickQty);
- stockDetail.LockQty -= int.Parse(PickQty);
+ stockDetail.Qty -= decimal.Parse(PickQty);
+ stockDetail.LockQty -= decimal.Parse(PickQty);
if (stockDetail.Qty == stockDetail.LockQty)
{
stockDetail.Status = "2";
@@ -4632,7 +4877,8 @@
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
- noticeDetail.CompleteQty += int.Parse(PickQty);
+ noticeDetail.CompleteQty += decimal.Parse(PickQty);
+ noticeDetail.Status = "2";
Db.Updateable(noticeDetail).ExecuteCommand();
var num = Db.Queryable<BllExportNoticeDetail>()
@@ -4640,6 +4886,8 @@
if (num <= 0)
{
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ noticeDetail.Status = "3";
+ Db.Updateable(noticeDetail).ExecuteCommand();
}
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
--
Gitblit v1.8.0