From f512b0475560ed449f936e0b7a27ba197e6bafe5 Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期四, 26 九月 2024 15:16:08 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/liudongl/jc24-wms
---
Wms/Wms/appsettings.json | 1
Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs | 2
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 48 ++
Wms/Wms/Tools/ApiUrlConfig.cs | 6
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 787 ++++++++++++++++++++++++++++++++++++++++++------
Wms/Wms/Controllers/BllAsnController.cs | 8
Wms/Model/InterFaceModel/HttpModel.cs | 44 ++
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 40 +-
8 files changed, 805 insertions(+), 131 deletions(-)
diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index 57c5de1..bb9669c 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -315,6 +315,50 @@
public int? QtyCount { get; set; }
}
+
+ //鍏ュ簱浠诲姟鍗曟嵁淇℃伅
+ public class ResponseOrderTaskModel
+ {
+ /// <summary>
+ /// WMS涓嬪彂鍗曞彿
+ /// </summary>
+ public string? OrderNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ public string? SkuNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? SkuName { get; set; }
+
+ /// <summary>
+ /// 瑙勬牸
+ /// </summary>
+ public string? BoxType { get; set; }
+
+ /// <summary>
+ /// 鎬荤鏁�/璁″垝绠辨暟/棰勪及绠辨暟
+ /// </summary>
+ public int? Qty { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ public int? TaskType { get; set; }
+ }
#endregion
#region AGV-Model
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index a23c682..34dfe6f 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -18,6 +18,8 @@
using WMS.Entity.SysEntity;
using WMS.IBLL.IBllAsnServer;
using WMS.BLL.SysServer;
+using System.Threading.Tasks;
+using System.Security.Policy;
namespace WMS.BLL.BllAsnServer
{
@@ -254,7 +256,7 @@
}
//娣诲姞鍏ュ簱鍗曟嵁
- public string AddArrivalNotice(ArrivalNoticeVm model)
+ public string AddArrivalNotice(ArrivalNoticeVm model, string url)
{
string strMessage = "";
string sqlString = string.Empty;
@@ -262,6 +264,7 @@
//0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
+ var addOder = new List<ResponseOrderTaskModel>();
try
{
if (model.Origin == "褰曞叆")
@@ -341,6 +344,20 @@
sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', ";
sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', ";
sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');";
+
+ if (model.Type == "1")
+ {
+ addOder.Add(new ResponseOrderTaskModel()
+ {
+ OrderNo = model.ASNNo,
+ LotNo = detailModel.LotNo,
+ SkuNo = detailModel.SkuNo,
+ SkuName = detailModel.SkuName,
+ BoxType = detailModel.Standard,
+ Qty = (int)detailModel.Qty,
+ TaskType = 0
+ });
+ }
}
if (sqlDetailStr == string.Empty)
@@ -359,6 +376,35 @@
if (rowCount > 0 && rowDetailCount > 0)
{
new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser));
+
+ if (addOder.Count > 0)
+ {
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var jsonData = JsonConvert.SerializeObject(addOder);
+ string response = "";
+
+ try
+ {
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+
+ //////瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
+ if (wcsModel.StatusCode == 0)
+ {
+
+ }
+ if (wcsModel.StatusCode == -1)
+ {
+
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
return strMessage;
}
else
diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
index eb2d920..6079f7a 100644
--- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -77,12 +77,13 @@
{
throw new Exception("鍗曟嵁鍙蜂笉鍙负绌�!");
}
- if (model.AsnDetailNo == 0)
- {
- throw new Exception("鍗曟嵁鏄庣粏涓嶅彲涓虹┖!");
- }
+ //if (model.AsnDetailNo == 0)
+ //{
+ // throw new Exception("鍗曟嵁鏄庣粏涓嶅彲涓虹┖!");
+ //}
//鏍规嵁鍗曟嵁鍙疯幏鍙栧叆搴撳崟鎬诲崟
- notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo && a.OrderCode == model.OrderCode);
+ notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo);
+ //notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo && a.OrderCode == model.OrderCode);
if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2")
{
throw new Exception("璇ュ崟鎹凡鍏冲崟!");
@@ -96,7 +97,8 @@
throw new Exception("鎵规涓嶈兘涓虹┖!");
}
// 楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦�
- detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailNo && m.ASNNo == model.AsnNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo);
+ detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo);
+ //detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailNo && m.ASNNo == model.AsnNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo);
if (detail == null)
{
throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!");
@@ -176,14 +178,14 @@
#endregion
//鍒ゆ柇鎵樼洏缁戝畾淇℃伅涓槸鍚︽湁
- var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailNo && m.PalletNo == model.PalletNo && m.Status != "2");
+ var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == detail.Id && m.PalletNo == model.PalletNo && m.Status != "2");
var bindId = 0;
if (bind == null)
{
bind = new BllPalletBind
{
- ASNNo = model.AsnNo,
- ASNDetailNo = model.AsnDetailNo,
+ ASNNo = notice.ASNNo,
+ ASNDetailNo = detail.Id,
PalletNo = model.PalletNo,
PalletNo2 = "",
PalletNo3 = "",
@@ -230,8 +232,8 @@
{
var boxInfo = new BllBoxInfo()
{
- ASNNo = model.AsnNo,
- ASNDetailNo = model.AsnDetailNo,
+ ASNNo = notice.ASNNo,
+ ASNDetailNo = detail.Id,
OrderCode = box.OrderCode,
BindNo = bindId,
BoxNo = box.BoxNo,
@@ -270,10 +272,10 @@
}
else if (model.Type == "0")//鐗╂枡鎵�
{
- if (model.Detail.Count(m => m.OrderCode != detail.OrderDetailCode) > 0)
- {
- throw new Exception($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐢熶骇宸ュ崟涓嶄竴鑷�");
- }
+ //if (model.Detail.Count(m => m.OrderCode != detail.OrderDetailCode) > 0)
+ //{
+ // throw new Exception($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐢熶骇宸ュ崟涓嶄竴鑷�");
+ //}
if (model.Detail.Count(m => m.SkuNo != model.SkuNo || m.LotNo != model.LotNo) > 0)
{
throw new Exception($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐗╂枡鎴栨壒娆′笉涓�鑷�");
@@ -288,8 +290,8 @@
boxFullQty += box.Qty;
var boxInfo = new BllBoxInfo()
{
- ASNNo = model.AsnNo,
- ASNDetailNo = model.AsnDetailNo,
+ ASNNo = detail.ASNNo,
+ ASNDetailNo = detail.Id,
OrderCode = box.OrderCode,
BindNo = bindId,
BoxNo = box.BoxNo,
@@ -376,9 +378,9 @@
// 鏇存敼鎵樼洏浣跨敤鐘舵��
var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';";
//娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹�
- sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
+ sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{notice.ASNNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
Db.Ado.ExecuteCommand(sqlStr);
- new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", model.AsnNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId);
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", notice.ASNNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId);
Db.CommitTran();
}
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index b506589..ad272a5 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -18,6 +18,8 @@
using WMS.BLL.LogServer;
using WMS.DAL;
using WMS.Entity.LogEntity;
+using Model.ModelDto.SysDto;
+using Model.ModelDto.BllSoDto;
namespace WMS.BLL.BllPdaServer
{
@@ -973,7 +975,9 @@
try
{
string strMsg = "";
- var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚�
+ var outDto1 = new List<OutCommandDto>(); //鍏堝嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负1鐨勫偍浣嶏級
+ var outDto2 = new List<OutCommandDto>(); //鍚庡嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负2鐨勫偍浣嶏級
+ var moveDto = new List<OutCommandDto>(); //瑕佺Щ搴撴暟鎹殑闆嗗悎
//鑾峰彇褰撳墠鏃堕棿
DateTime serverTime = Db.GetDate();
//鑾峰彇搴撳瓨鏄庣粏鏄惁灏忎簬绛変簬璇ュ灈鏁�
@@ -997,132 +1001,637 @@
return strMsg;
}
- int i = 0;
-
+ var com = new Common();
Db.BeginTran();
//閬嶅巻搴撳瓨淇℃伅
foreach (var s in stockDetail)
{
+ //if (outDto1.Contains(m=>m.PalletNo == s.PalletNo) >0)
+ //{
+ // continue;
+ //}
//鑾峰彇鍌ㄤ綅淇℃伅
var locat = Db.Queryable<SysStorageLocat>().First(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W01");
-
- if (locat != null)
+ if(locat == null)
{
- if (locat.Status != "1")
- {
- continue;
- }
- //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
- locat.Status = "3"; //3 鍑哄簱涓�
- locat.UpdateTime = serverTime; //淇敼鏃堕棿
- locat.UpdateUser = userId; //淇敼浜�
- //淇敼鍌ㄤ綅淇℃伅
- Db.Updateable(locat).ExecuteCommand();
+ continue;
}
-
- //澧炲姞搴撳瓨閿佸畾鏁伴噺
- //stock.AllotQty +=
- stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺
- stock.UpdateTime = serverTime; //淇敼鏃堕棿
- stock.UpdateUser = userId; //淇敼浜�
- //淇敼搴撳瓨鎬昏〃淇℃伅
- Db.Updateable(stock).ExecuteCommand();
-
- //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺
- //s.AllotQty +=
- s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺
- s.UpdateTime = serverTime; //淇敼鏃堕棿
- s.UpdateUser = userId; //淇敼浜�
- s.Status = "2"; //2 宸插垎閰�
- //淇敼搴撳瓨鏄庣粏淇℃伅
- Db.Updateable(s).ExecuteCommand();
-
- #region 鍒嗛厤
-
- //娣诲姞鍒嗛厤琛ㄤ俊鎭�
- var allot = new BllExportAllot
+
+ ////鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ //locat.Status = "3"; //3 鍑哄簱涓�
+ //locat.UpdateTime = serverTime; //淇敼鏃堕棿
+ //locat.UpdateUser = userId; //淇敼浜�
+ ////淇敼鍌ㄤ綅淇℃伅
+ //Db.Updateable(locat).ExecuteCommand();
+
+ if (locat.Status == "1")
{
- 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", //鏄惁鎵撳甫
+ if (locat.Depth == "01") //娣卞害涓�1
+ {
+ #region 鏀瑰彉搴撳瓨
- //BoxexQty = s.Qty,
- Qty = (int)s.Qty,
- CompleteQty = 0,
- Status = "1",
- LogisticsId = 0,
- IsAdvance = "0",
- OutMode = model.OutMode,//鍑哄簱鍙�
+ //澧炲姞搴撳瓨閿佸畾鏁伴噺
+ stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺
+ stock.UpdateTime = serverTime; //淇敼鏃堕棿
+ stock.UpdateUser = userId; //淇敼浜�
+ Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅
- CreateUser = userId,
- CreateTime = DateTime.Now
- };
- Db.Insertable(allot).ExecuteCommand();
+ //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺
+ s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺
+ s.UpdateTime = serverTime; //淇敼鏃堕棿
+ s.UpdateUser = userId; //淇敼浜�
+ s.Status = "2"; //2 宸插垎閰�
+ Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅
- #endregion
+ #endregion
- #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+ #region 鍒嗛厤
- var taskNo = new Common().GetMaxNo("TK");
- var exTask = new LogTask //鍑哄簱浠诲姟
+ //娣诲姞鍒嗛厤琛ㄤ俊鎭�
+ 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,//鍑哄簱鍙�
+
+ CreateUser = userId,
+ CreateTime = DateTime.Now
+ };
+ Db.Insertable(allot).ExecuteCommand();
+
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "PDA",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ EndLocat = model.OutMode,//鐩爣浣嶇疆
+ PalletNo = s.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = serverTime, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ outDto1.Add(new OutCommandDto()
+ {
+ PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+ EndLocate = model.OutMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = model.OutMode, //鐩爣鍦板潃
+ Order = 1
+ });
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ locat.Status = "3"; //3 鍑哄簱涓�
+ Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ #endregion
+ }
+ else if (locat.Depth == "02") //娣卞害涓�2
+ {
+ //鑾峰彇鍑哄簱娣卞害涓�2鍌ㄤ綅鍓嶉潰鐨勫偍浣嶄俊鎭�
+ var sql2 = $@"select * from SysStorageLocat where WareHouseNo = '{locat.WareHouseNo}' and row = {locat.Row} and [Column] = {locat.Column} and Layer = {locat.Layer} and Depth = '01'; ";
+ var slotBefore = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First();
+ if (slotBefore == null)
+ {
+ #region 鏀瑰彉搴撳瓨
+
+ //澧炲姞搴撳瓨閿佸畾鏁伴噺
+ stock.LockQty += (int)s.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();//淇敼搴撳瓨鏄庣粏淇℃伅
+
+ #endregion
+
+ #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", //鏄惁鎵撳甫
+
+ //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();
+
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "PDA",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ EndLocat = model.OutMode,//鐩爣浣嶇疆
+ PalletNo = s.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = serverTime, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ outDto1.Add(new OutCommandDto()
+ {
+ PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+ EndLocate = model.OutMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = model.OutMode, //鐩爣鍦板潃
+ Order = 1
+ });
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ locat.Status = "3"; //3 鍑哄簱涓�
+ Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ #endregion
+ }
+ else
+ {
+ //鍒ゆ柇鍌ㄤ綅鐘舵��
+ if (slotBefore.Status == "0")
+ {
+ #region 鏀瑰彉搴撳瓨
+
+ //澧炲姞搴撳瓨閿佸畾鏁伴噺
+ stock.LockQty += (int)s.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();//淇敼搴撳瓨鏄庣粏淇℃伅
+
+ #endregion
+
+ #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", //鏄惁鎵撳甫
+
+ //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();
+
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "PDA",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ EndLocat = model.OutMode,//鐩爣浣嶇疆
+ PalletNo = s.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = serverTime, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ outDto1.Add(new OutCommandDto()
+ {
+ PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+ EndLocate = model.OutMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = model.OutMode, //鐩爣鍦板潃
+ Order = 1
+ });
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ locat.Status = "3"; //3 鍑哄簱涓�
+ Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ #endregion
+ }
+ else if(slotBefore.Status == "1")
+ {
+ //鍒ゆ柇鎵樼洏涓婄墿鏂�
+ var pallSku = Db.Queryable<DataStockDetail>().First(m=>m.SkuNo == "100099" && m.LocatNo == slotBefore.LocatNo);
+ if (pallSku == null) //绉诲簱
+ {
+ #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", //鏄惁鎵撳甫
+
+ //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();
+
+ #endregion
+
+ #region 娣诲姞绉诲簱浠诲姟淇℃伅
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "PDA",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ EndLocat = model.OutMode,//鐩爣浣嶇疆
+ PalletNo = s.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = serverTime, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ moveDto.Add(new OutCommandDto()
+ {
+ PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+ EndLocate = model.OutMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = model.OutMode, //鐩爣鍦板潃
+ Order = 1
+ });
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+ //鏇存敼鍌ㄤ綅鐘舵�佷负绉诲嚭涓�
+ slotBefore.Status = "5"; //5 绉诲嚭涓�
+ Db.Updateable(slotBefore).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ #endregion
+ }
+ else //鍑哄簱
+ {
+ #region 鏀瑰彉搴撳瓨
+
+ //澧炲姞搴撳瓨閿佸畾鏁伴噺
+ stock.LockQty += (int)s.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();//淇敼搴撳瓨鏄庣粏淇℃伅
+
+ #endregion
+
+ #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", //鏄惁鎵撳甫
+
+ //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();
+
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "PDA",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ EndLocat = model.OutMode,//鐩爣浣嶇疆
+ PalletNo = s.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = serverTime, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ outDto2.Add(new OutCommandDto()
+ {
+ PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+ EndLocate = model.OutMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = model.OutMode, //鐩爣鍦板潃
+ Order = 1
+ });
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ slotBefore.Status = "3"; //3 鍑哄簱涓�
+ Db.Updateable(slotBefore).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ #endregion
+ }
+ if (int.Parse(model.Num) == outDto1.Count + outDto2.Count)
+ {
+ break;//闇�姹傚灈鏁板凡杈惧埌 鍙互鍑哄簱浜�
+ }
+ else
+ {
+ #region 鏀瑰彉搴撳瓨
+
+ //澧炲姞搴撳瓨閿佸畾鏁伴噺
+ stock.LockQty += (int)s.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();//淇敼搴撳瓨鏄庣粏淇℃伅
+
+ #endregion
+
+ #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", //鏄惁鎵撳甫
+
+ //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();
+
+ #endregion
+
+ #region 娣诲姞鍑哄簱浠诲姟淇℃伅
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "PDA",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
+ EndLocat = model.OutMode,//鐩爣浣嶇疆
+ PalletNo = s.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ CreateTime = serverTime, //鍒涘缓鏃堕棿
+ CreateUser = userId, //鍒涘缓浜�
+ Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ //FinishDate = serverTime, //瀹屾垚鏃堕棿
+ };
+ outDto2.Add(new OutCommandDto()
+ {
+ PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+ EndLocate = model.OutMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = model.OutMode, //鐩爣鍦板潃
+ Order = 1
+ });
+ Db.Insertable(exTask).ExecuteCommand();
+
+ #endregion
+ #region 鍌ㄤ綅鐘舵�佸彉鏇�
+
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ locat.Status = "3"; //3 鍑哄簱涓�
+ Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅
+ #endregion
+ }
+ }
+ }
+
+ }
+
+ }
+
+ if (int.Parse(model.Num) == outDto1.Count+ outDto2.Count)
{
- TaskNo = taskNo,
- Sender = "WMS",
- Receiver = "PDA",
- IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-
- StartLocat = locat == null ? "闆剁搴�" : s.LocatNo,//璧峰浣嶇疆
- EndLocat = model.OutMode,//鐩爣浣嶇疆
- PalletNo = s.PalletNo,//鎵樼洏鐮�
- IsSend = 1,//鏄惁鍙啀娆′笅鍙�
- IsCancel = 1,//鏄惁鍙彇娑�
- IsFinish = 1,//鏄惁鍙畬鎴�
- Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
- CreateTime = serverTime, //鍒涘缓鏃堕棿
- CreateUser = userId, //鍒涘缓浜�
- Msg = "Pda绌烘墭浠�" + locat == null ? "闆剁搴�" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
- //FinishDate = serverTime, //瀹屾垚鏃堕棿
- };
- outDtoList.Add(new OutCommandDto()
- {
- PalletNo = exTask.PalletNo,//鎵樼洏鍙�
- StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
- StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
- EndLocate = model.OutMode, // 鐩爣浣嶇疆
- TaskNo = exTask.TaskNo, // 浠诲姟鍙�
- TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
- OutMode = model.OutMode, //鐩爣鍦板潃
- Order = 1
- });
- Db.Insertable(exTask).ExecuteCommand();
-
- #endregion
- i += 1;
- if (i == int.Parse(model.Num))
- {
- //闇�姹傚灈鏁板凡杈惧埌 鍙互鍑哄簱浜�
- break;
+ break;//闇�姹傚灈鏁板凡杈惧埌 鍙互鍑哄簱浜�
}
}
-
- if (outDtoList.Count > 0)
+ outDto1.AddRange(moveDto);
+ outDto1.AddRange(outDto2);
+ if (outDto1.Count > 0)
{
// 姝e紡杩愯绋嬪簭鏀惧紑
- var list2 = outDtoList.Select(m => m.TaskNo).ToList();
- var jsonData = JsonConvert.SerializeObject(outDtoList);
+ var list2 = outDto1.Select(m => m.TaskNo).ToList();
+ var jsonData = JsonConvert.SerializeObject(outDto1);
string response = "";
try
@@ -1153,7 +1662,7 @@
}
//娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", i + "", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {i} 涓┖鎵樺灈", userId);
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", int.Parse(model.Num) + "", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {int.Parse(model.Num)} 涓┖鎵樺灈", userId);
Db.CommitTran();
return "";
@@ -1167,6 +1676,68 @@
}
+ public string MoveAddress(string oldAddress, string roadWay, string skuNo)//01020201 鎺�-鍒�-灞�-娣卞害
+ {
+ string nowAddress = "";
+
+ //鏍规嵁鐗╂枡缂栫爜鑾峰彇瀵瑰簲鍖哄煙
+ var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == skuNo).Select(a => a.CategoryNo).First();
+ var category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo);
+
+ // 鑾峰彇绉诲簱鐩爣鍌ㄤ綅
+ var row = int.Parse(oldAddress.Substring(0, 2));
+ var lie = int.Parse(oldAddress.Substring(2, 2));
+ var ceng = int.Parse(oldAddress.Substring(4, 2));
+
+ var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng})) as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;";
+
+ var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+ if (addressModels.Count > 0) // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅
+ {
+ var listLocaete = new List<string>();
+ foreach (var item in addressModels)
+ {
+ // 鐩爣鍐呭簱浣嶅搴旂殑澶栧簱浣�
+ string addressee = item.LocatNo.Substring(0, 6) + "01";
+
+ // 鍒ゆ柇鐩爣搴撲綅鐨勫搴撲綅鏄惁瀛樺湪璐х墿 (姝e父鎯呭喌涓嬫鍦ㄧЩ鍏ユ儏鍐典笉瀛樺湪锛屽洜涓虹Щ搴撳厛绉诲叆閲岄潰锛屽悗绉诲叆澶栭潰)
+ //SlotStatus 0: 绌哄偍浣� 1锛氭湁璐� 2锛氭鍦ㄥ叆搴� 3锛氭鍦ㄥ嚭搴� 4锛氭鍦ㄧЩ鍏� 5锛氭鍦ㄧЩ鍑�
+ sqlString = $"select count(*) from SysStorageLocat where LocatNo = '{addressee}' and Status = '0' and Flag in ('0','1') ; ";
+ var rowNum = Db.Ado.SqlQuery<int>(sqlString).First();
+ if (rowNum == 0)
+ {
+ continue;
+ }
+ else
+ {
+ nowAddress = item.LocatNo;
+ break;
+ }
+ }
+ }
+ if (nowAddress == "")
+ {
+ // 鍒ゆ柇鍚屽贩閬撳鎺掔┖搴撲綅
+ sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng})) as distNum
+ from SysStorageLocat
+ where Flag = '0' and Status = '0' and Depth = '01' and RoadwayNo = '{roadWay}' and AreaNo in '{category}'
+ order by distNum;";
+ var adderModeling = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+ if (adderModeling.Count > 0)
+ {
+ nowAddress = adderModeling[0].LocatNo;
+ }
+ else
+ {
+ // 搴撳唴涓嶅瓨鍦ㄧ┖鍌ㄤ綅
+ nowAddress = "";
+ }
+ }
+
+
+ return nowAddress;
+ }
+
//鑾峰彇骞冲簱鎵樼洏淇℃伅
public List<BoxInfo> GetPingKuInfoByPallet(string soNo, string palletNo)
{
diff --git a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
index 1d48688..a55e6df 100644
--- a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
@@ -45,7 +45,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- string AddArrivalNotice(ArrivalNoticeVm model);
+ string AddArrivalNotice(ArrivalNoticeVm model, string url);
/// <summary>
/// 缂栬緫鍏ュ簱鍗�
/// </summary>
diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs
index e31f593..a999bec 100644
--- a/Wms/Wms/Controllers/BllAsnController.cs
+++ b/Wms/Wms/Controllers/BllAsnController.cs
@@ -9,6 +9,8 @@
using WMS.IBLL.IBllAsnServer;
using WMS.IBLL.ILogServer;
using Model.ModelVm.BllAsnVm;
+using Wms.Tools;
+using Microsoft.Extensions.Options;
namespace Wms.Controllers
{
@@ -18,6 +20,7 @@
public class BllAsnController : ControllerBase
{
#region 渚濊禆娉ㄥ叆
+ private readonly ApiUrlConfig _config; //鎺ュ彛浜や簰璺緞
private readonly IArrivalNoticeServer _arrivalNoticeSvc; // 鍏ュ簱鍗曟嵁Svc
private readonly IPalletBindServer _PalletBindSvc; // 鎵樼洏缁戝畾Svc
private readonly IBllBoxInfoServer _BoxInfoSvc;
@@ -29,8 +32,9 @@
#endregion
#region 鏋勯�犲嚱鏁�
- public BllAsnController(IArrivalNoticeServer arrivalNoticeSvc, IPalletBindServer palletBindSvc,IBllBoxInfoServer bllBoxInfoSvc, ITaskServer taskSvc,IOperationASNServer logSvc, IPalletUnbindServer palletUnbind,IAuditLogServer auditLog,IBllLabelBoxNoServer labelBox)
+ public BllAsnController(IOptions<ApiUrlConfig> setting, IArrivalNoticeServer arrivalNoticeSvc, IPalletBindServer palletBindSvc,IBllBoxInfoServer bllBoxInfoSvc, ITaskServer taskSvc,IOperationASNServer logSvc, IPalletUnbindServer palletUnbind,IAuditLogServer auditLog,IBllLabelBoxNoServer labelBox)
{
+ _config = setting.Value;
_arrivalNoticeSvc = arrivalNoticeSvc;
_PalletBindSvc = palletBindSvc;
_BoxInfoSvc = bllBoxInfoSvc;
@@ -134,7 +138,7 @@
}
model.CreateUser = int.Parse(UserId);
- string strMesage = _arrivalNoticeSvc.AddArrivalNotice(model);
+ string strMesage = _arrivalNoticeSvc.AddArrivalNotice(model, _config.WcsHost + _config.AddOrderTaskUrl);
if (strMesage == "")
{
diff --git a/Wms/Wms/Tools/ApiUrlConfig.cs b/Wms/Wms/Tools/ApiUrlConfig.cs
index e037216..e219376 100644
--- a/Wms/Wms/Tools/ApiUrlConfig.cs
+++ b/Wms/Wms/Tools/ApiUrlConfig.cs
@@ -103,5 +103,11 @@
#endregion
+ #region WCS
+ /// <summary>
+ /// //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭�
+ /// </summary>
+ public string AddOrderTaskUrl { get; set; }
+ #endregion
}
}
diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json
index 7402f8d..0b01b9f 100644
--- a/Wms/Wms/appsettings.json
+++ b/Wms/Wms/appsettings.json
@@ -31,6 +31,7 @@
// WCS
"IssueComApiUrl": "/api/demo/wcsTasks", //涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
"IssueComApiUrl2": "/api/demo/wcsTask", //"/api/WCSApi/AddTask", //閲嶆柊涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�)
+ "AddOrderTaskUrl": "/api/demo/addOrderTask", //WMS缁橶CS涓嬪彂鐨勫叆搴撳崟浠诲姟
// ERP
"AsnFinishUrl": "/api/wmsInterface/OutStockTask", //鍏ュ簱璁㈠崟鍏抽棴
--
Gitblit v1.8.0