From b88cbdbc97735732fe6406fbe5aa3228eaa1b551 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期一, 20 十月 2025 13:13:44 +0800
Subject: [PATCH] 修改包装管理,包装可输入小数
---
Wms/WMS.BLL/HttpServer.cs | 220 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 155 insertions(+), 65 deletions(-)
diff --git a/Wms/WMS.BLL/HttpServer.cs b/Wms/WMS.BLL/HttpServer.cs
index 6999955..8994443 100644
--- a/Wms/WMS.BLL/HttpServer.cs
+++ b/Wms/WMS.BLL/HttpServer.cs
@@ -6,6 +6,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Threading.Tasks;
using Utility.Tools;
using WMS.BLL.Logic;
using WMS.BLL.LogServer;
@@ -35,7 +36,7 @@
#region 鍒ゆ柇
if (string.IsNullOrEmpty(palletNo))
{
- throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+ throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�!");
}
if (string.IsNullOrEmpty(houseNo))
{
@@ -50,7 +51,7 @@
throw new Exception("璧峰浣嶇疆涓嶈兘涓虹┖");
}
//鑾峰彇鍌ㄤ綅淇℃伅
- var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == houseNo && m.LocatNo == Strlocate);
+ var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.LocatNo == Strlocate);
if (locateInfo == null)
{
throw new Exception("鏈煡璇㈠埌绌哄偍浣�");
@@ -86,8 +87,8 @@
{
throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒扮┖鎵樼洏鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱");
}
- var pNum = 0;
- var bNum = 0;
+ var pNum = 0m;
+ var bNum = 0m;
new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
@@ -103,7 +104,7 @@
PalletNo = palletNo,
Qty = palletNum,
FullQty = pNum,
- Status = "3", //涓婃灦瀹屾垚
+ Status = "2", //涓婃灦瀹屾垚
Type = "1", //0 鐗╂枡鎵� 1 绌烘墭
LotNo = "",
LotText = "",
@@ -144,7 +145,12 @@
for (int i = 1; i <= 2; i++)
{
var iStr = i.ToString();
- locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr);
+ try
+ {
+ locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr);
+ }
+ catch (Exception e)
+ { }
if (locate != null)
{
break;
@@ -170,10 +176,10 @@
InspectQty = 0,
ASNNo = modelpb.ASNNo,
ASNDetailNo = modelpb.ASNDetailNo,
- WareHouseNo = locate.WareHouseNo,
- RoadwayNo = locate.RoadwayNo,
- AreaNo = locate.AreaNo,
- LocatNo = locate.LocatNo,
+ //WareHouseNo = locate.WareHouseNo,
+ //RoadwayNo = locate.RoadwayNo,
+ //AreaNo = locate.AreaNo,
+ //LocatNo = locate.LocatNo,
PalletNo = modelpb.PalletNo,
PalletNo2 = modelpb.PalletNo2,
PalletNo3 = modelpb.PalletNo3,
@@ -257,8 +263,8 @@
BackDate = DateTime.Now, //杩斿洖鏃堕棿
StartRoadway = "", // 璧峰宸烽亾
StartLocat = Strlocate,//璧峰浣嶇疆
- EndLocat = locateInfo.LocatNo,//鐩爣浣嶇疆
- EndRoadway = locateInfo.RoadwayNo, // 鐩爣宸烽亾
+ EndLocat = locate.LocatNo,//鐩爣浣嶇疆
+ EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾
PalletNo = palletNo,//鎵樼洏鐮�
IsSend = 1,//鏄惁鍙啀娆′笅鍙�
IsCancel = 1,//鏄惁鍙彇娑�
@@ -320,7 +326,7 @@
#endregion
- return null;
+ return comDto;
}
catch (Exception e)
{
@@ -720,18 +726,18 @@
//鎵樼洏搴撳瓨淇℃伅
var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList();
//楠岃瘉鐗╂枡鏄惁鏈夋垚鍝�
- foreach (var item in stockDetail)
- {
- var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
- if (skuItem.SkuNo == "100099")
- {
- continue;
- }
- if (skuItem.Type != "2")
- {
- throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
- }
- }
+ //foreach (var item in stockDetail)
+ //{
+ // var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
+ // if (skuItem.SkuNo == "100099")
+ // {
+ // continue;
+ // }
+ // if (skuItem.Type != "2")
+ // {
+ // throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
+ // }
+ //}
var upShelfOld = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
if (upShelfOld != null) //姝e父鍏ュ簱
@@ -840,7 +846,15 @@
var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m=>m.RoadwayNo).ToList();
//宸烽亾缁勪俊鎭�
var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo) && roadStr.Contains(m.RoadwayNo))
- .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
+ .GroupBy(m => m.RoadwayNo)
+ .Select(m => m.RoadwayNo)
+ .ToList()
+ .OrderBy(roadwayNo =>
+ {
+ // 绉婚櫎鎵�鏈夐潪鏁板瓧瀛楃锛屽彧淇濈暀鏁板瓧
+ var numbersOnly = new string(roadwayNo.Where(char.IsDigit).ToArray());
+ return int.TryParse(numbersOnly, out int result) ? result : 0;
+ }).ToList();
#endregion
@@ -1027,18 +1041,18 @@
var oldTaskNo = ""; //鏃т换鍔″彿
var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList();
//楠岃瘉鐗╂枡鏄惁鏈夋垚鍝�
- foreach (var item in stockDetail)
- {
- var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
- if (skuItem.SkuNo == "100099")
- {
- continue;
- }
- if (skuItem.Type != "2")
- {
- throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
- }
- }
+ //foreach (var item in stockDetail)
+ //{
+ // var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
+ // if (skuItem.SkuNo == "100099")
+ // {
+ // continue;
+ // }
+ // if (skuItem.Type != "2")
+ // {
+ // throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
+ // }
+ //}
var upShelfOld = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
@@ -1468,7 +1482,7 @@
var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
//鍒ゆ柇鏄惁鏄洖娴佸叆搴撳畬鎴�
- if (!stockDetail.Any())
+ if (!stockDetail.Any() && task.EndLocat!= "B100101")//B100101鏄┖鎵樼洏鏀堕泦鍣紝涓嶇敤鏍¢獙搴撳瓨
{
throw new Exception("娌℃湁鏌ヨ鍒板簱瀛樹俊鎭�");
}
@@ -1763,9 +1777,9 @@
{
throw new Exception("鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱");
}
- if (locate.WareHouseNo != "W02")
+ if (locate.WareHouseNo != "W02" && locate.WareHouseNo != "W04")
{
- throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂");
+ throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂涔熶笉鍦ㄥ钩搴�");
}
var locateEnd = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭�
if (locateEnd == null)
@@ -1774,11 +1788,20 @@
}
else if (locateEnd.Status != "0")
{
- throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅");
+ var logEnd = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.EndLocat == locateEnd.LocatNo);
+ if (logEnd != null && logEnd.PalletNo != palletNo)
+ {
+ throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅");
+ }
+ var detailEnd = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == locateEnd.LocatNo);
+ if (detailEnd != null && detailEnd.PalletNo != palletNo)
+ {
+ throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅");
+ }
}
#endregion
- if (locate.Status == "1") //鏈夌墿鍝�
+ if (locate.WareHouseNo == "W02" && locate.Status == "1") //鏈夌墿鍝�
{
#region 娣诲姞鍑哄簱浠诲姟
@@ -1857,9 +1880,9 @@
Db.Updateable(item).ExecuteCommand();
#endregion
-
+
}
- else if (locate.Status == "3") //鍑哄簱涓�
+ else if (locate.Status == "3" || locate.WareHouseNo == "W04") //鍑哄簱涓垨宸插湪骞冲簱
{
#region 鏀瑰彉鏁版嵁
//鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
@@ -1883,21 +1906,31 @@
}
}
}
- var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
- if (taskNo == null)
+ if (locate.WareHouseNo == "W04")
{
- taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱
+ item.TaskNo = "";
+ item.Status = "2"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
+ item.OutMode = item.OutMode;//鍑哄簱鍙�
+ //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
+ Db.Updateable(item).ExecuteCommand();
}
- if (taskNo == null)
+ else
{
- throw new Exception($"鎵樼洏鍙凤細{item.PalletNo},鍑哄簱寮傚父");
- }
- item.TaskNo = taskNo.TaskNo;
- item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
- item.OutMode = item.OutMode;//鍑哄簱鍙�
- //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
- Db.Updateable(item).ExecuteCommand();
-
+ var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
+ if (taskNo == null)
+ {
+ taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱
+ }
+ if (taskNo == null)
+ {
+ throw new Exception($"鎵樼洏鍙凤細{item.PalletNo},鍑哄簱寮傚父");
+ }
+ item.TaskNo = taskNo.TaskNo;
+ item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
+ item.OutMode = item.OutMode;//鍑哄簱鍙�
+ //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
+ Db.Updateable(item).ExecuteCommand();
+ }
#endregion
}
else if (locate.Status == "5") //绉诲嚭涓�
@@ -1960,7 +1993,64 @@
throw new Exception(e.Message);
}
}
+ /// <summary>
+ /// PDA骞冲簱涓嬪彂鍑哄簱
+ /// </summary>
+ /// <param name="soNo"></param>
+ /// <param name="detailId"></param>
+ /// <param name="palletNo"></param>
+ /// <param name="userId"></param>
+ /// <exception cref="Exception"></exception>
+ public void IssueOutHousePk(string soNo, string detailId, string palletNo, int userId)
+ {
+ try
+ {
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0");
+ if (notice == null)
+ {
+ throw new Exception($"鏈壘鍒皗soNo}鍑哄簱鍗曚俊鎭�");
+ }
+ var detail=Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (detail.WareHouseNo != "W04")
+ {
+ throw new Exception("浠撳簱鍙烽敊璇�");
+ }
+ var intDetailId = int.Parse(detailId);
+ if (intDetailId <= 0)
+ {
+ throw new Exception("閫夋嫨鐨勫嚭搴撳崟鏄庣粏鍙傛暟閿欒");
+ }
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ notice.Status = "3";//姝e湪杩涜
+ Db.Updateable(notice).ExecuteCommand();
+
+ //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭�)
+ var allot = Db.Queryable<BllExportAllot>().Where(a => a.IsDel == "0" && a.PalletNo == palletNo && a.Status == "0").ToList();
+ if (allot == null || allot.Count <= 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鍑哄簱娴佹按
+ {
+ throw new Exception("褰撳墠鍑哄簱鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
+ }
+ //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
+ foreach (var item in allot)
+ {
+ item.Status = "2";
+ Db.Updateable(item).ExecuteCommand();
+ }
+
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "涓嬪彂鍑哄簱", soNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鍗曞彿涓猴細{soNo}鐨勫嚭搴撳崟", userId);
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ //鍥炴粴浜嬪姟
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
#region MyRegion
@@ -2008,15 +2098,15 @@
//Db.Insertable(exTask).ExecuteCommand();
- // 璋冪敤Limes鎺ュ彛鍙戣捣璇烽獙
- var sendModel = new SendLimesModel()
+ // 璋冪敤Sqp鎺ュ彛鍙戣捣璇烽獙
+ var sendModel = new SendSapQcDetailVm()
{
QcNo = data.QcNo,
- SkuNo = data.SkuNo,
- Qty = data.Qty.ToString(),
- LotNo = data.LotNo,
- SupplierLot = data.SupplierLot,
- RequestUser = userName, // 璇烽獙浜�
+ skuNo=data.SkuNo,
+ skuName = data.SkuNo,
+ lotNo = data.LotNo,
+ Qty = Convert.ToDecimal(data.Qty),
+ SupplierLot = data.SupplierLot
};
var jsonData = JsonConvert.SerializeObject(sendModel);
string response = "";
@@ -2024,7 +2114,7 @@
try
{
var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
- //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Limes绯荤粺鍙戣捣璇烽獙", "Limes");
+ //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Sap绯荤粺鍙戣捣璇烽獙", "Sap");
var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
////瑙f瀽杩斿洖鏁版嵁
--
Gitblit v1.8.0