From 8a83e6f21af0a764950e45b2565a370fff74daa5 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期四, 08 五月 2025 16:47:45 +0800
Subject: [PATCH] Merge branch 'csc'
---
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 188 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 180 insertions(+), 8 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index 6b68462..c5960a5 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -21,6 +21,7 @@
using Model.ModelDto.DataDto;
using System.Xml.Schema;
using ZXing.OneD;
+using System.Threading.Tasks;
namespace WMS.BLL.BllPdaServer
{
@@ -1826,11 +1827,16 @@
{
if (models[0].Status == "1")
{
- sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';";
- int rowNum = Db.Ado.GetInt(sqlString);
- if (rowNum > 0)
+ var detail = Db.Queryable<DataStockDetail>().First(m=>m.PalletNo == palletNo );
+
+ if (detail!= null && !string.IsNullOrWhiteSpace(detail.LocatNo))
{
- sqlMsg = "-1:鎵樼洏浣跨敤涓紝姝ゆ墭鐩樺簲鍦ㄥ簱鍐呰鏍稿疄!";
+ var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList();
+ var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == detail.LocatNo && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0");
+ if (pingLocateInfo == null)
+ {
+ sqlMsg = "-1:鎵樼洏浣跨敤涓紝姝ゆ墭鐩樺簲鍦ㄥ簱鍐呰鏍稿疄!";
+ }
}
}
}
@@ -1889,6 +1895,172 @@
catch (Exception ex)
{
throw ex;
+ }
+ }
+
+ /// <summary>
+ /// 淇濆瓨鎸囧畾鐨勫偍浣�
+ /// </summary>
+ /// <param name="palletNo"></param>
+ /// <param name="locateNo"></param>
+ /// <param name="userId"></param>
+ /// <exception cref="Exception"></exception>
+ public void SaveAppointLocate(string palletNo, string locateNo, int userId)
+ {
+ try
+ {
+ //鎵樼洏搴撳瓨淇℃伅
+ var stockDetailList = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList();
+ if (stockDetailList.Count(m=> string.IsNullOrWhiteSpace(m.LocatNo)) > 0)
+ {
+ throw new Exception("鎵樼洏娌℃湁鍦ㄥ钩搴撳偍浣嶄笂");
+ }
+ //鍒ゆ柇鎵樼洏鐨勫偍浣嶆槸鍚︽槸骞冲簱
+ var stockDetail = stockDetailList.First();
+ var oldLocate = stockDetail.LocatNo;
+ var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList();
+ var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldLocate && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0");
+ if (pingLocateInfo == null)
+ {
+ throw new Exception("褰撳墠鎵樼洏鎵�鍦ㄧ殑鍌ㄤ綅娌℃湁鍦ㄧ郴缁熶腑鎵惧埌淇℃伅");
+ }
+
+ var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
+ //楠岃瘉鐗╂枡鏄惁鏈夋垚鍝�
+ foreach (var item in stockDetailList)
+ {
+ var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
+ if (skuItem.Type == "2")
+ {
+ throw new Exception("鎴愬搧鐗╂枡璇峰叆鎴愬搧搴�");
+ }
+ }
+ //鍌ㄤ綅
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateNo);
+ if (locate == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍌ㄤ綅鐨勪俊鎭�");
+ }
+ if (locate.WareHouseNo != "W02")
+ {
+ throw new Exception("鍙兘鎸囧畾绔嬪簱鐨勫偍浣�");
+ }
+ if (locate.Status != "0" || locate.Flag != "0")
+ {
+ throw new Exception("璇ュ偍浣嶇姸鎬佷笉鏄┖鍌ㄤ綅鎴栨爣蹇椾笉鏄甯哥殑");
+ }
+
+
+ Db.BeginTran();
+ try
+ {
+ var time = DateTime.Now;
+ //鍒ゆ柇褰撳墠鎵樼洏鏄惁瀛樺湪缁戝畾淇℃伅
+ var task = Db.Queryable<LogTask>().First(m=> m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1") && m.OrderType == "0" && m.Type == "0");
+
+ var upShelf = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
+ if (task != null)
+ {
+ if (task.Status == "1")
+ {
+ throw new Exception("鎵樼洏姝e湪鎵ц浠诲姟锛屼笉鍙寚瀹氬偍浣�");
+ }
+ if (task.Status == "0")
+ {
+ if (upShelf != null)
+ {
+ if (upShelf.Status == "1")
+ {
+ throw new Exception("鎵樼洏姝e湪鎵ц涓婃灦浠诲姟锛屼笉鍙寚瀹氬偍浣�");
+ }
+ if (upShelf.Status == "0")
+ {
+ if (locate.LocatNo == task.EndLocat)
+ {
+ throw new Exception("宸叉寚瀹氬偍浣嶏紝鏃犻渶閲嶅鎸囧畾");
+ }
+ //閲嶆柊鎸囧畾鍌ㄤ綅
+ task.EndLocat = locate.LocatNo;
+ task.EndRoadway = locate.RoadwayNo;
+ upShelf.LocatNo = locate.LocatNo;
+ upShelf.RoadwayNo = locate.RoadwayNo;
+ Db.Updateable(task).ExecuteCommand();
+ Db.Updateable(upShelf).ExecuteCommand();
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎸囧畾鍌ㄤ綅", palletNo, "缂栬緫", $"鎸囧畾浜嗗偍浣嶏細{locate.LocatNo}銆佹墭鐩樼爜锛歿palletNo}鐨勪俊鎭�", userId);
+ Db.CommitTran();
+ return;
+ }
+ }
+ else
+ {
+ throw new Exception("鏌ヨ鍑轰换鍔′絾娌℃湁涓婃灦璁板綍锛屼俊鎭敊璇�");
+ }
+ }
+ }
+
+ // 娣诲姞鍏ュ簱鏃ュ織璁板綍
+ var taskNo = new Common().GetMaxNo("TK");
+ var addTask = new LogTask //鍏ュ簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+ SendDate = DateTime.Now, //鍙戦�佹椂闂�
+ //BackDate = DateTime.Now, //杩斿洖鏃堕棿
+ StartRoadway = "", // 璧峰宸烽亾
+ StartLocat = oldLocate,//璧峰浣嶇疆
+ EndLocat = locate.LocatNo,//鐩爣浣嶇疆
+ EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾
+ PalletNo = palletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ Msg = $"{oldLocate}鍒�=>>{locate.LocatNo}鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅
+
+ };
+ Db.Insertable(addTask).ExecuteCommand();
+
+ //娣诲姞鎵樼洏涓婃灦璁板綍
+ var upShelfAdd = new BllPalletUpShelf()
+ {
+ TaskNo = addTask.TaskNo,
+ TraceNo = "",
+ PalletNo = palletNo,
+ SkuNo = stockDetail.SkuNo,
+ SkuName = stockDetail.SkuName,
+ LotNo = stockDetail.LotNo,
+ Status = "0",
+
+ WareHouseNo = locate.WareHouseNo,
+ RoadwayNo = locate.RoadwayNo,
+ AreaNo = locate.AreaNo,
+ LocatNo = locate.LocatNo,
+
+ CreateUser = 0,
+ };
+ Db.Insertable(upShelfAdd).ExecuteCommand();
+
+ locate.Status = "2";
+
+ Db.Updateable(locate).ExecuteCommand();
+
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎸囧畾鍌ㄤ綅", palletNo, "缂栬緫", $"鎸囧畾浜嗗偍浣嶏細{locate.LocatNo}銆佹墭鐩樼爜锛歿palletNo}鐨勪俊鎭�", userId);
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
}
}
@@ -3287,7 +3459,7 @@
try
{
string strMsg = "";
- var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W02");
+ var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W04");
if (storageLocat == null)
{
throw new Exception("-1:鍦扮爜(鍌ㄤ綅淇℃伅)涓嶅瓨鍦ㄦ垨闈炵┖闂茬姸鎬侊紝璇锋牳鏌�!");
@@ -5424,7 +5596,7 @@
//淇敼搴撳瓨鏄庣粏淇℃伅
foreach (var item in stockDetail)
{
- item.Status = "0"; // 鐘舵�佹洿鏀逛负寰呭垎閰�
+ //item.Status = "0"; // 鐘舵�佹洿鏀逛负寰呭垎閰�
item.WareHouseNo = storageLocat.WareHouseNo; // 鎵�灞炰粨搴�
item.RoadwayNo = storageLocat.RoadwayNo; // 鎵�灞炲贩閬�
item.AreaNo = storageLocat.AreaNo; // 鎵�灞炲尯鍩�
@@ -5456,14 +5628,14 @@
SendDate = DateTime.Now, //鍙戦�佹椂闂�
BackDate = DateTime.Now, //杩斿洖鏃堕棿
StartLocat = "",//璧峰浣嶇疆
- EndLocat = "骞冲簱",//鐩爣浣嶇疆
+ EndLocat = model.LocatNo,//鐩爣浣嶇疆
PalletNo = model.PalletNo,//鎵樼洏鐮�
IsSend = 0,//鏄惁鍙啀娆′笅鍙�
IsCancel = 0,//鏄惁鍙彇娑�
IsFinish = 0,//鏄惁鍙畬鎴�
Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
Status = "2",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
Msg = "骞冲簱鐨勫叆搴撲换鍔�",
};
Db.Insertable(exTask).ExecuteCommand();
--
Gitblit v1.8.0