From c9fe2c53364abe0e0e495a1b756267f865159e2e Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期三, 25 六月 2025 12:17:26 +0800
Subject: [PATCH] Merge branch 'csc'
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 788 +++++++++++++++++++++++++++----------------------------
1 files changed, 387 insertions(+), 401 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e0f4851..361b515 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -29,6 +29,7 @@
using System.Diagnostics;
using System.Drawing.Drawing2D;
using Model.ModelDto.LogDto;
+using AutoMapper.Internal;
namespace WMS.BLL.BllSoServer
{
@@ -1013,10 +1014,11 @@
skuList = skuList.Where(m => m.SkuNo == "100088").ToList();
}
skuStrList = skuList.Select(m => m.SkuNo).ToList();
+ var areaStr = new List<string>() { "B06", "B07", "B09" };
var stockRst = new StockServer();
var stockDetailRst = new StockDetailServer();
Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
- .And(it => it.WareHouseNo == house)
+ .And(it => it.WareHouseNo == house || string.IsNullOrWhiteSpace(it.LocatNo) || (it.WareHouseNo == "W04" && !areaStr.Contains(it.AreaNo)))
.AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus))
.And(m => skuStrList.Contains(m.SkuNo))
.AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓�
@@ -1249,7 +1251,7 @@
IsWave = "0",
WaveNo = "",
IsDespatch = "0",
-
+ WareHouseNo = model.WareHouseNo,
CreateUser = userId,
};
@@ -2199,17 +2201,17 @@
var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
////瑙f瀽杩斿洖鏁版嵁
- var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
- if (wcsModel.StatusCode == 0)
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+ if (wcsModel.code == 200)
{
//鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
new TaskServer().EditTaskIssueOk(list2, time1, time2);
str += "涓嬪彂鎴愬姛";
}
- if (wcsModel.StatusCode == -1)
+ else
{
- new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
- throw new Exception(wcsModel.Msg);
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+ throw new Exception(wcsModel.message);
}
}
catch (Exception ex)
@@ -3025,9 +3027,44 @@
try
{
List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴�
+ var i = 0;
+ var outLocatelist1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B02" && m.Flag == "0").ToList();
+ var outLocatelist2 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B05" && m.Flag == "0").ToList();
//寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
foreach (var item in list)
{
+ var outModeLocate = "";
+ if (outMode == "17")
+ {
+ if (i < outLocatelist1.Count)
+ {
+ outModeLocate = outLocatelist1[i].LocatNo;
+ }
+ else
+ {
+ var j = i % outLocatelist1.Count;
+
+ outModeLocate = outLocatelist1[j].LocatNo;
+ }
+ }
+ else if (outMode == "18")
+ {
+ if (i < outLocatelist1.Count)
+ {
+ outModeLocate = outLocatelist2[i].LocatNo;
+ }
+ else
+ {
+ var j = i % outLocatelist1.Count;
+
+ outModeLocate = outLocatelist2[j].LocatNo;
+ }
+ }
+ else
+ {
+ throw new Exception("鍑哄簱鍙e伐浣嶅紓甯�");
+ }
+
var taskNoStr = "";
// 鍌ㄤ綅鍙�
@@ -3050,7 +3087,7 @@
{
//濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鍒嗛厤淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚
item.Status = "2";//鐘舵��
- item.OutMode = outMode;//鍑哄簱鍙�
+ item.OutMode = outModeLocate;//鍑哄簱鍙�
Db.Updateable(item).ExecuteCommand();
var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.SODetailNo);
if (noticeDetail != null) //鏇存柊鍑哄簱鍗曟嵁鐨勪笅鍙戞暟閲�
@@ -3072,6 +3109,7 @@
}
flagList.Add(0);
continue;
+
}
var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
@@ -3102,7 +3140,7 @@
IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
StartLocat = locate.LocatNo,//璧峰浣嶇疆
- EndLocat = outMode,//鐩爣浣嶇疆
+ EndLocat = outModeLocate,//鐩爣浣嶇疆
PalletNo = item.PalletNo,//鎵樼洏鐮�
IsSend = 1,//鏄惁鍙啀娆′笅鍙�
IsCancel = 1,//鏄惁鍙彇娑�
@@ -3110,25 +3148,24 @@
Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
- Msg = "浠�" + locate.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ Msg = "浠�" + locate.LocatNo + "鍒�" + outModeLocate + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
};
Db.Insertable(exTask).ExecuteCommand();
logTaskList.Add(exTask);
outDto1.Add(new OutCommandDto()
{
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
+
PalletNo = item.PalletNo,//鎵樼洏鍙�
StartLocate = locate.LocatNo, // 璧峰浣嶇疆
StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
- EndLocate = outMode, // 鐩爣浣嶇疆
- TaskNo = exTask.TaskNo, // 浠诲姟鍙�
- TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
- OutMode = outMode, //鍑哄簱鍙�
- Order = 1,
-
- //UnstackingMode = "unstackingMode2",//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑�
- //CompleteQty = outCount2, //鎷嗙殑浠舵暟
- //BoxexQty = outCount, //鎬讳欢鏁�
+ EndLocate = outModeLocate, // 鐩爣浣嶇疆
+
+ Order = 999,
+ Type = PLCTypeEnum.AGV
+
});
taskNoStr = exTask.TaskNo;
@@ -3157,17 +3194,21 @@
}
locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
Db.Updateable(locate).ExecuteCommand();
+ var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭�
+ locate2.Status = "4";
+ Db.Updateable(locate2).ExecuteCommand();
item.TaskNo = taskNoStr; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
//item.UnstackingMode = unstackingMode2;//鎷嗗灈鏂瑰紡
- item.OutMode = outMode;//鍑哄簱鍙�
+ item.OutMode = outModeLocate;//鍑哄簱鍙�
//item.LoadingAddre = unstackingMode2 == "0" ? loadingAddre : "";//瑁呰溅鍙�
Db.Updateable(item).ExecuteCommand();
#endregion
flagList.Add(0);
+ i++;
}
else if (locate.Status == "3") //鍑哄簱涓�
{
@@ -3310,7 +3351,8 @@
#endregion
var com = new Common();
-
+ var allot = new AllotLocation();
+
var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0");
if (notice == null)
{
@@ -3338,11 +3380,12 @@
try
{
List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴�
+
+
//寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
foreach (var item in list)
{
var taskNoStr = "";
- string toLocation = string.Empty;//鐩爣浣嶇疆
// 鍌ㄤ綅鍙�
var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo).LocatNo;
@@ -3352,11 +3395,11 @@
//鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
if (string.IsNullOrWhiteSpace(locateNo)) //搴撳
{
- if (notice.Type == "0")
- {
- flagList.Add(5);
- continue;
- }
+ //if (notice.Type == "0")
+ //{
+ // flagList.Add(5);
+ // continue;
+ //}
//鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
var imBl = com.GetImTask(item.PalletNo);
if (imBl != null)
@@ -3408,8 +3451,6 @@
}
#endregion
-
-
if (locate.Status == "1") //鏈夌墿鍝�
{
@@ -3477,7 +3518,7 @@
Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
- Msg = "浠�" + locate.LocatNo + "鍒�" + toLocation + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ Msg = "浠�" + locate.LocatNo + "鍒�" + moveAddress + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
};
Db.Insertable(ykTask).ExecuteCommand();
logTaskList.Add(ykTask);
@@ -3487,10 +3528,11 @@
PalletNo = item.PalletNo,//鎵樼洏鍙�
StartLocate = locate.LocatNo, // 璧峰浣嶇疆
StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
- EndLocate = toLocation,//outMode, // 鐩爣浣嶇疆
+ EndLocate = moveAddress,//outMode, // 鐩爣浣嶇疆
TaskNo = ykTaskNo, // 浠诲姟鍙�
- TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
+ TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
Order = Math.Abs(row2 - rows),
+ Type = PLCTypeEnum.ShuttleCar
});
var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == s);
@@ -3524,7 +3566,7 @@
IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
StartLocat = locate.LocatNo,//璧峰浣嶇疆
- EndLocat = toLocation,//outMode,//鐩爣浣嶇疆
+ EndLocat = outMode,//outMode,//鐩爣浣嶇疆
PalletNo = item.PalletNo,//鎵樼洏鐮�
IsSend = 1,//鏄惁鍙啀娆′笅鍙�
IsCancel = 1,//鏄惁鍙彇娑�
@@ -3532,21 +3574,23 @@
Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
- Msg = "浠�" + locate.LocatNo + "鍒�" + toLocation + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ Msg = "浠�" + locate.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
};
Db.Insertable(exTask).ExecuteCommand();
logTaskList.Add(exTask);
-
+ var endroad = allot.RoadwayToStationNum(locate.RoadwayNo, outMode);
outDto1.Add(new OutCommandDto()
{
PalletNo = item.PalletNo,//鎵樼洏鍙�
StartLocate = locate.LocatNo, // 璧峰浣嶇疆
- StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
- EndLocate = toLocation,//outMode, // 鐩爣浣嶇疆
+ StartRoadway = locate.RoadwayNo,//璧峰宸烽亾
+ EndLocate = outMode,//, // 鐩爣浣嶇疆
+ EndRoadway = endroad,
TaskNo = exTask.TaskNo, // 浠诲姟鍙�
TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
- OutMode = toLocation, //鍑哄簱鍙�
+ OutMode = outMode, //鍑哄簱鍙�
Order = Math.Abs(row2 - row1),
+ Type = PLCTypeEnum.ShuttleCar
});
taskNoStr = exTask.TaskNo;
@@ -3674,23 +3718,23 @@
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")
+ 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);
- // str += "涓嬪彂鎴愬姛";
- //}
- //if (wcsModel.StatusCode == -1)
- //{
- // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
- // throw new Exception(wcsModel.Msg);
- //}
+ ////瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+ if (wcsModel.code == 200)
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ str += "涓嬪彂鎴愬姛";
+ }
+ else
+ {
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+ throw new Exception(wcsModel.message);
+ }
}
catch (Exception ex)
{
@@ -4100,7 +4144,6 @@
return bl;
}
-
private class addreClass
{
public string slotCode { get; set; }
@@ -4113,6 +4156,289 @@
public string AisleOne { get; set; }
}
+
+ /// <summary>
+ /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛�
+ /// </summary>
+ /// <param name="taskNo"></param>
+ /// <param name="userId"></param>
+ /// <exception cref="Exception"></exception>
+ public void ExportSuccess(string taskNo, int userId)
+ {
+ try
+ {
+ //褰撳墠浠诲姟淇℃伅
+ var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+ if (task == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
+ }
+ if (task.Status == "2")
+ {
+ throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
+ }
+ Db.BeginTran();
+ //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
+ var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault();
+ //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo);
+ try
+ {
+ task.Status = "2";//浠诲姟鐘舵��
+ task.IsSend = 0;
+ task.IsCancel = 0;
+ task.IsFinish = 0;
+ task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
+ Db.Updateable(task).ExecuteCommand();
+ if (locate != null)
+ {
+ locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級
+ Db.Updateable(locate).ExecuteCommand();
+ }
+ foreach (var item in stockDetail)
+ {
+ if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴�
+ {
+ //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺
+ var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099");
+
+ if (stock != null)
+ {
+ if (item.LockQty != null)
+ {
+ stock.Qty -= item.LockQty.Value;
+ stock.LockQty -= item.LockQty.Value;
+ Db.Updateable(stock).ExecuteCommand();
+ }
+
+ if (stock.Qty == 0)
+ {
+ Db.Deleteable(stock).ExecuteCommand();
+ }
+ }
+
+ //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤
+ var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo);
+ if (sCode != null)
+ {
+ sCode.Status = "0";
+ Db.Updateable(sCode).ExecuteCommand();
+ }
+ Db.Deleteable(item).ExecuteCommand();
+
+ continue;
+ }
+ item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
+ item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
+ item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
+ item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
+
+ }
+ //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
+ var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList();
+ var PalletType = "0"; //0锛氱墿鏂欐墭 1锛氱┖鎵樼洏鎵�
+
+ foreach (var item in allot)
+ {
+ if (item.SkuNo == "100099")
+ {
+ item.Status = "5";
+ item.CompleteQty += stockDetail[0].Qty;
+ PalletType = "1";
+ }
+ else
+ {
+ item.Status = "2";
+ }
+
+ }
+
+ var endLocateList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && (m.AreaNo == "B02" || m.AreaNo == "B05")).Select(m=>m.LocatNo).ToList();
+ //鍒ゆ柇鏄惁鏄師杈呮枡鍑哄簱浠诲姟 璐ф灦鍌ㄤ綅=銆嬪钩搴撳偍浣�
+ if ( endLocateList.Contains(task.EndLocat) && PalletType == "0")
+ {
+ //淇敼鐩爣鍦板潃鐘舵��
+ var endLocat = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == task.EndLocat);
+ endLocat.Status = "1";
+ Db.Updateable(endLocat).ExecuteCommand();
+ foreach (var item in stockDetail)
+ {
+ item.LocatNo = endLocat.LocatNo;//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
+ item.WareHouseNo = endLocat.WareHouseNo;//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
+ item.RoadwayNo = endLocat.RoadwayNo;//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
+ item.AreaNo = endLocat.AreaNo;//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
+ }
+ }
+ Db.Updateable(stockDetail).ExecuteCommand();
+ Db.Updateable(allot).ExecuteCommand();
+
+ if (userId != 0)
+ {
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+ }
+
+ Db.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ Db.RollbackTran();
+ throw new Exception(ex.Message);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛�
+ /// </summary>
+ /// <param name="taskNo">浠诲姟鍙�</param>
+ /// <param name="userId">鎿嶄綔浜�</param>
+ /// <exception cref="Exception"></exception>
+ public void RelocationSuccess(string taskNo, int userId)
+ {
+ try
+ {
+ //褰撳墠浠诲姟淇℃伅
+ var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
+ if (task == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
+ }
+ if (task.Status == "2")
+ {
+ throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
+ }
+ Db.BeginTran();
+ //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
+ //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅
+ //褰撳墠浠诲姟涓殑鍘熷偍浣�
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat);
+ if (locate == null)
+ {
+ throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�");
+ }
+ var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat);
+ if (locate2 == null)
+ {
+ throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�");
+ }
+ //骞冲簱涓偍浣嶉泦鍚�
+ var pingKuLocate = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0").ToList();
+ var pingKuList = pingKuLocate.Select(m => m.LocatNo).ToList();
+ try
+ {
+
+ //task.Status = "5";//浠诲姟鐘舵��
+ ////鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱
+ //if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat))
+ //{
+ task.Status = "2";
+ //}
+
+ task.IsSend = 0;
+ task.IsCancel = 0;
+ task.IsFinish = 0;
+ task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
+ Db.Updateable(task).ExecuteCommand();
+
+ #region 淇敼鍌ㄤ綅鐘舵��
+
+ if (!pingKuList.Contains(task.StartLocat))
+ {
+ //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
+
+
+ //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1
+ locate2.Status = "1";
+ Db.Updateable(locate2).ExecuteCommand();
+ //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱
+ if ( pingKuList.Contains(task.EndLocat))
+ {
+ foreach (var item in stockDetail)
+ {
+ item.WareHouseNo = locate2.WareHouseNo;
+ item.AreaNo = locate2.AreaNo;
+ item.RoadwayNo = locate2.RoadwayNo;
+ item.LocatNo = locate2.LocatNo;
+ }
+ Db.Updateable(stockDetail).ExecuteCommand();
+ }
+
+
+ #endregion
+
+ Db.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ Db.RollbackTran();
+ throw new Exception(ex.Message);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// AGV浠诲姟鍙栬揣瀹屾垚鍙嶉
+ /// </summary>
+ /// <param name="taskNo"></param>
+ public void AGVQuHuoSuccess(string taskNo)
+ {
+ try
+ {
+ Db.BeginTran();
+ var task = Db.Queryable<LogTask>().First(m=>m.IsDel =="0" && m.TaskNo == taskNo);
+ if (task == null)
+ {
+ throw new Exception("娌℃湁鏌ヨ鍒颁换鍔′俊鎭�");
+ }
+ if (task.Status!="1")
+ {
+ throw new Exception("浠诲姟鐘舵�佷笉鏄鍦ㄦ墽琛岋紝璇锋牳瀹�");
+ }
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat && m.IsDel == "0");
+ if (locate == null)
+ {
+ throw new Exception("娌℃湁鏌ヨ鍒拌捣濮嬪偍浣嶄俊鎭�");
+ }
+ if (locate.WareHouseNo!="W04")
+ {
+ throw new Exception("璧峰鍌ㄤ綅涓嶆槸骞冲簱鍌ㄤ綅锛岃鏍稿疄");
+ }
+ locate.Status = "0"; //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+ Db.Updateable(locate).ExecuteCommand();
+ //鏌ヨ鍑烘墭鐩樹俊鎭� 鏇存敼搴撳瓨鍌ㄤ綅淇℃伅
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == task.PalletNo).ToList();
+ foreach (var item in stockDetail)
+ {
+ item.WareHouseNo = "";
+ item.AreaNo = "";
+ item.RoadwayNo = "";
+ item.LocatNo = "";
+ }
+ Db.Updateable(stockDetail).ExecuteCommand();
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+
#endregion
#endregion
@@ -5251,9 +5577,6 @@
OutMode = toLocation, //鍑哄簱鍙�
Order = 1,
- UnstackingMode=unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑�
- CompleteQty= outCount2, //鎷嗙殑浠舵暟
- BoxexQty = outCount, //鎬讳欢鏁�
});
taskNoStr = exTask.TaskNo;
}
@@ -5368,9 +5691,7 @@
OutMode = toLocation, //鐩爣鍦板潃
Order = 1,
- UnstackingMode = "1",//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑�
- CompleteQty = 0, //鎷嗙殑浠舵暟
- BoxexQty = 0, //鎬讳欢鏁�
+
});
#endregion
@@ -5426,9 +5747,6 @@
OutMode = toLocation, //鐩爣鍦板潃
Order = 1,
- UnstackingMode = unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑�
- CompleteQty = outCount2, //鎷嗙殑浠舵暟
- BoxexQty = outCount, //鎬讳欢鏁�
});
taskNoStr = exTask1.TaskNo;
#endregion
@@ -5599,338 +5917,6 @@
}
}
- //wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛�
- public void ExportSuccess(string taskNo, int userId)
- {
- try
- {
- //褰撳墠浠诲姟淇℃伅
- var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
- if (task == null)
- {
- throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
- }
- if (task.Status == "2")
- {
- throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
- }
- Db.BeginTran();
- //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
- var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
- var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault();
- //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
- var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo);
- try
- {
- task.Status = "2";//浠诲姟鐘舵��
- task.IsSend = 0;
- task.IsCancel = 0;
- task.IsFinish = 0;
- task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
- Db.Updateable(task).ExecuteCommand();
- if (locate != null)
- {
- locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級
- Db.Updateable(locate).ExecuteCommand();
- }
- foreach (var item in stockDetail)
- {
- if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴�
- {
- //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺
- var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099");
-
- if (stock != null)
- {
- if (item.LockQty != null)
- {
- stock.Qty -= item.LockQty.Value;
- stock.LockQty -= item.LockQty.Value;
- Db.Updateable(stock).ExecuteCommand();
- }
-
- if (stock.Qty == 0)
- {
- Db.Deleteable(stock).ExecuteCommand();
- }
- }
-
- //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤
- var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo);
- if (sCode != null)
- {
- sCode.Status = "0";
- Db.Updateable(sCode).ExecuteCommand();
- }
- Db.Deleteable(item).ExecuteCommand();
-
- #region 鎷h揣淇℃伅
-
- //var pickQty = 0;//鎷h揣鐨勬暟閲�
- //var comList = new List<BllCompleteDetail>();
- // //娣诲姞鎷h揣鏄庣粏
- // var completeDetail = new BllCompleteDetail()
- // {
- // SONo = "",
- // SODetailNo = 0,
- // ExportAllotId = 0,
- // StockId = exportAllot.StockId,
- // BoxNo = item.BoxNo,
- // BoxNo2 = item.BoxNo2,
- // BoxNo3 = item.BoxNo3,
-
- // LotNo = exportAllot.LotNo,
- // LotText = exportAllot.LotText,
- // SupplierLot = exportAllot.SupplierLot,
- // SkuNo = exportAllot.SkuNo,
- // SkuName = exportAllot.SkuName,
- // Standard = exportAllot.Standard,
- // PalletNo = palletNo,
- // CompleteQty = item.Qty,
-
- // CreateUser = userId
- // };
- // comList.Add(completeDetail);
-
- // //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
- // Db.Deleteable(item).ExecuteCommand();
- // pickQty += item.Qty;
-
- // exportAllot.Status = "5"; //寰呭洖搴� : 宸插畬鎴�
- // exportAllot.CompleteQty += item.Qty; //鎷h揣鏁伴噺
- // exportAllot.UpdateUser = userId; //淇敼浜�
- // exportAllot.UpdateTime = serverTime; //淇敼鏃堕棿
-
- // Db.Updateable(exportAllot).ExecuteCommand();
-
- // //楠岃瘉鎷h揣淇℃伅鏄惁涓哄凡瀹屾垚
- // if (exportAllot.Status == "5")
- // {
- // break;
- // }
-
-
- //Db.Insertable(comList).ExecuteCommand();
-
-
- #endregion
-
- continue;
- }
- item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
- item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
- item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
- item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
- Db.Updateable(item).ExecuteCommand();
- }
- //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
- var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList();
- var PalletType = "0"; //0锛氱墿鏂欐墭 1锛氱┖鎵樼洏鎵�
- var soNo = "";
- var sku = "";
- foreach (var item in allot)
- {
- if (item.SkuNo == "100099")
- {
- item.Status = "5";
- item.CompleteQty += stockDetail[0].Qty;
- PalletType = "1";
- }
- else
- {
- item.Status = "2";
- soNo = item.SONo;
- sku = item.SkuNo;
- }
-
- }
- //涓嬪彂鍥涙ゼ璋冨害AGV鐨勪换鍔�
- if ((task.EndLocat == "outMode" || task.EndLocat == "outMode") && PalletType == "0")
- {
- foreach (var item in allot)
- {
- var detail = Db.Queryable<DataStockDetail>().First(m => m.Id == item.StockId);
- detail.SONo = item.SONo;
- Db.Updateable(detail).ExecuteCommand();
- }
-
- var locatePing = new AllotLocation().GetPingLocate(soNo, sku);
- if (locatePing == null)
- {
- throw new Exception("骞冲簱鏈煡璇㈠埌绌轰綅缃�");
- }
- var exTask = new LogTask //鍑哄簱浠诲姟
- {
- TaskNo = new Common().GetMaxNo("TK"),
- Sender = "WMS",
- Receiver = "AGV",
- IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
-
- StartLocat = task.EndLocat,//璧峰浣嶇疆
- EndLocat = locatePing.LocatNo,//outMode,//鐩爣浣嶇疆
- PalletNo = task.PalletNo,//鎵樼洏鐮�
- IsSend = 1,//鏄惁鍙啀娆′笅鍙�
- IsCancel = 1,//鏄惁鍙彇娑�
- IsFinish = 1,//鏄惁鍙畬鎴�
- Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
- Msg = "浠�" + task.EndLocat + "鍒�" + locatePing.LocatNo + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
- };
- Db.Insertable(exTask).ExecuteCommand();
-
- var outDto = new List<OutCommandDto>
- {
- new OutCommandDto()
- {
- PalletNo = task.PalletNo,//鎵樼洏鍙�
- StartLocate = task.EndLocat, // 璧峰浣嶇疆
- StartRoadway = "",//鍏跺疄宸烽亾
- EndLocate = locatePing.LocatNo,//outMode, // 鐩爣浣嶇疆
- TaskNo = exTask.TaskNo, // 浠诲姟鍙�
- TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
- OutMode = "", //鍑哄簱鍙�
- Order = 1,
-
- //UnstackingMode = unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑�
- //CompleteQty = outCount2, //鎷嗙殑浠舵暟
- //BoxexQty = outCount, //鎬讳欢鏁�
- }
- };
- // 姝e紡杩愯绋嬪簭鏀惧紑
- var list2 = outDto.Select(m => m.TaskNo).ToList();
- var jsonData = JsonConvert.SerializeObject(outDto);
- 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);
- }
- }
-
- Db.Updateable(allot).ExecuteCommand();
-
- if (userId != 0)
- {
- //娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
- }
-
-
-
- Db.CommitTran();
- }
- catch (Exception ex)
- {
- Db.RollbackTran();
- throw new Exception(ex.Message);
- }
- }
- catch (Exception ex)
- {
- throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message);
- }
- }
-
- /// <summary>
- /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛�
- /// </summary>
- /// <param name="taskNo">浠诲姟鍙�</param>
- /// <param name="userId">鎿嶄綔浜�</param>
- /// <exception cref="Exception"></exception>
- public void RelocationSuccess(string taskNo, int userId)
- {
- try
- {
- //褰撳墠浠诲姟淇℃伅
- var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
- if (task == null)
- {
- throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
- }
- if (task.Status == "2")
- {
- throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
- }
- Db.BeginTran();
- //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
- var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
- //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅
- //褰撳墠浠诲姟涓殑鍘熷偍浣�
- var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat);
- if (locate == null)
- {
- throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�");
- }
- var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat);
- if (locate2 == null)
- {
- throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�");
- }
-
- try
- {
- task.Status = "2";//浠诲姟鐘舵��
- task.IsSend = 0;
- task.IsCancel = 0;
- task.IsFinish = 0;
- task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
- Db.Updateable(task).ExecuteCommand();
-
- #region 淇敼鍌ㄤ綅鐘舵��
-
- //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0
- locate.Status = "0";
- Db.Updateable(locate).ExecuteCommand();
-
- //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1
- locate2.Status = "1";
- Db.Updateable(locate2).ExecuteCommand();
- foreach (var item in stockDetail)
- {
- item.WareHouseNo = locate2.WareHouseNo;
- item.AreaNo = locate2.AreaNo;
- item.RoadwayNo = locate2.RoadwayNo;
- item.LocatNo = locate2.LocatNo;
- }
- Db.Updateable(stockDetail).ExecuteCommand();
-
- #endregion
-
- Db.CommitTran();
- }
- catch (Exception ex)
- {
- Db.RollbackTran();
- throw new Exception(ex.Message);
- }
- }
- catch (Exception ex)
- {
- throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message);
- }
- }
-
-
//閲嶆柊涓嬪彂鍑哄簱浠诲姟
public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url)
{
@@ -5987,17 +5973,17 @@
var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
////瑙f瀽杩斿洖鏁版嵁
- var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
- if (wcsModel.StatusCode == 0)
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+ if (wcsModel.code == 200)
{
//鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
new TaskServer().EditTaskIssueOk(list, time1, time2);
}
- if (wcsModel.StatusCode == -1)
+ else
{
- new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg);
- throw new Exception($"wcs杩斿洖鐘舵�佸紓甯革細{wcsModel.Msg}");
+ new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.message);
+ throw new Exception($"wcs杩斿洖鐘舵�佸紓甯革細{wcsModel.message}");
}
}
catch (Exception ex)
--
Gitblit v1.8.0