From ac8813cde64f7bf9882657416a1d102191aae960 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期六, 19 七月 2025 17:32:59 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RworkTaskModel.cs | 16 ++++
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_MesRworkOutboundOrder.cs | 7 ++
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs | 27 ++++++---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/成品仓/AGV_CPExtend.cs | 4 +
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs | 71 +++++++++++++++++++----
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs | 3
6 files changed, 102 insertions(+), 26 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
index 5e4b31f..67bb753 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
@@ -61,6 +61,10 @@
{
taskDTO.GroupId=task.GroupId;
}
+ if (task.TaskType==TaskTypeEnum.OutMesRworkProduct.ObjToInt())
+ {
+ taskDTO.Priority = "127";
+ }
//鍙戦�丄GV浠诲姟
WebResponseContent content = _taskService.AgvSendTask(taskDTO, APIEnum.Agv_CPSendTask);
if (!content.Status)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RworkTaskModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RworkTaskModel.cs"
index 813b7d3..dc9ecfa 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RworkTaskModel.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RworkTaskModel.cs"
@@ -39,14 +39,26 @@
[PropertyValidate("鍛ㄦ湡", NotNullAndEmpty = true)]
public string DateCode { get; set; }
/// <summary>
- /// 闇�姹傛暟閲�
+ /// 闇�姹侾CS鏁伴噺
/// </summary>
[PropertyValidate("闇�姹傛暟閲�", NotNullAndEmpty = true)]
public float RequiredQuantity { get; set; }
/// <summary>
+ /// 闇�姹係ET鏁伴噺
+ /// </summary>
+ public float RequiredSetCount { get; set; }
+ /// <summary>
+ /// 浠撳簱
+ /// </summary>
+ public string WarehouseCode { get; set; }
+ /// <summary>
/// 宸ュ巶
/// </summary>
- public string FactoryCode { get; set; }
+ public string FactoryCode { get; set; } = "HA02";
+ /// <summary>
+ /// 鎺ユ敹
+ /// </summary>
+ public int ReceiveDown { get; set; }
/// <summary>
/// 閿�鍞鍗�
/// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_MesRworkOutboundOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_MesRworkOutboundOrder.cs"
index 86e7760..6467471 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_MesRworkOutboundOrder.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_MesRworkOutboundOrder.cs"
@@ -93,11 +93,16 @@
[SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍛ㄦ湡")]
public string DateCode { get; set; }
/// <summary>
- /// 闇�姹傛暟閲�
+ /// 闇�姹侾CS鏁伴噺
/// </summary>
[SugarColumn(IsNullable = false, ColumnDescription = "闇�姹傛暟閲�", DefaultValue = "0")]
public float RequiredQuantity { get; set; }
/// <summary>
+ /// 闇�姹係ET鏁伴噺
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "闇�姹傛暟閲�", DefaultValue = "0")]
+ public float RequiredSetCount { get; set; }
+ /// <summary>
/// 宸ュ巶
/// </summary>
[SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "宸ュ巶")]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
index 0f2a144..7449017 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
@@ -77,8 +77,7 @@
proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode))
.Includes(x => x.proStockInfoDetails)
.Where(x => x.proStockInfoDetails
- .Any(v => v.SaleOrder == mesRworkOutboundOrder.SaleOrder
- && v.ProductCode == mesRworkOutboundOrder.ProductCode
+ .Any(v => v.ProductCode == mesRworkOutboundOrder.ProductCode
&& v.ProductVersion == mesRworkOutboundOrder.ProductVersion
&& (isCanDate ? isCanDate : v.DateCode == mesRworkOutboundOrder.DateCode)
))
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
index a50e159..ab0e7bb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
@@ -109,7 +109,7 @@
public List<Dt_ProStockInfo> GetUseableStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder)
{
//杞崲鎴� 鎴愬搧浠撲粨搴撲俊鎭幏鍙栧熬鏁板睘鎬х殑璐т綅
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA71.ToString());
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId== mesRworkOutboundOrder.WarehouseId);
List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehouse.WarehouseId);
return BaseDal.GetProStocks(mesRworkOutboundOrder, locationCodes);
}
@@ -125,10 +125,14 @@
public List<Dt_ProStockInfo> GetOutboundStocks(List<Dt_ProStockInfo> stockInfos, Dt_ProOutOrderDetail outOrderDetail, float needQuantity, out float residueQuantity)
{
List<Dt_ProStockInfo> assignOutStocks =new List<Dt_ProStockInfo>();
- float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
- //stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
bool isCanLot = string.IsNullOrEmpty(outOrderDetail.PLot);
bool isCanDate = string.IsNullOrEmpty(outOrderDetail.DateCode);
+ float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1))
+ && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot)
+ && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode))
+ .Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
+ //stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
+
if (stockTotalQuantity >= needQuantity)//搴撳瓨澶�
{
int index = 0;
@@ -233,7 +237,10 @@
public List<Dt_ProStockInfo> GetOutboundStocks(List<Dt_ProStockInfo> stockInfos, Dt_ErpProScrapSheetDetail outOrderDetail, float needQuantity, out float residueQuantity)
{
List<Dt_ProStockInfo> assignOutStocks = new List<Dt_ProStockInfo>();
- float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
+ float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x =>
+ x.ProductCode == outOrderDetail.ScrapProCode
+ && x.ProductVersion == outOrderDetail.ScrapProVersion
+ && x.LotNumber == outOrderDetail.ScrapProLotNo).Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
//stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
if (stockTotalQuantity >= needQuantity)//搴撳瓨澶�
{
@@ -293,9 +300,12 @@
public List<Dt_ProStockInfo> GetOutboundStocks(List<Dt_ProStockInfo> stockInfos, Dt_MesRworkOutboundOrder mesRworkOutboundOrder, float needQuantity, out float residueQuantity)
{
List<Dt_ProStockInfo> assignOutStocks = new List<Dt_ProStockInfo>();
- float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
- //stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
bool isCanDate = string.IsNullOrEmpty(mesRworkOutboundOrder.DateCode);
+ float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x => x.ProductCode == mesRworkOutboundOrder.ProductCode
+ && x.ProductVersion == mesRworkOutboundOrder.ProductVersion
+ && (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode))
+ .Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
+ //stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
if (stockTotalQuantity >= needQuantity)//搴撳瓨澶�
{
int index = 0;
@@ -303,8 +313,7 @@
{
Dt_ProStockInfo stockInfo = stockInfos[index];
float useableStockQuantity = stockInfo.proStockInfoDetails
- .Where(x => x.SaleOrder == mesRworkOutboundOrder.SaleOrder
- && x.ProductCode == mesRworkOutboundOrder.ProductCode
+ .Where(x => x.ProductCode == mesRworkOutboundOrder.ProductCode
&& x.ProductVersion == mesRworkOutboundOrder.ProductVersion
&& (isCanDate? isCanDate: x.DateCode == mesRworkOutboundOrder.DateCode))
.Sum(x => x.StockPcsQty - x.OutboundQuantity);
@@ -317,7 +326,7 @@
{
stockInfo.proStockInfoDetails.ForEach(x =>
{
- if ((x.StockPcsQty > x.OutboundQuantity) && x.SaleOrder == mesRworkOutboundOrder.SaleOrder
+ if ((x.StockPcsQty > x.OutboundQuantity)
&& x.ProductCode == mesRworkOutboundOrder.ProductCode
&& x.ProductVersion == mesRworkOutboundOrder.ProductVersion
&& (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode))
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs"
index d56e520..d96efaa 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesProductService.cs"
@@ -531,7 +531,7 @@
MesResponseContent content = new MesResponseContent();
try
{
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA72.ToString());
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == model.WarehouseCode);
if (warehouse == null)
{
return content.Error($"灏炬暟浠撲俊鎭湭閰嶇疆");
@@ -546,17 +546,58 @@
{
WarehouseId = warehouse.WarehouseId,
TaskNo = model.TaskNo,
- OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(),
+ OrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt(),
CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
ProductCode = model.ProductCode,
- ProductName = model.ProductName,
+ ProductName = model.ProductCode,
ProductVersion = model.ProductVersion,
DateCode = model.DateCode,
RequiredQuantity = model.RequiredQuantity,
+ RequiredSetCount=model.RequiredSetCount,
FactoryCode = model.FactoryCode,
- SaleOrder = model.SaleOrder,
+ SaleOrder = model.SaleOrder ?? "",
OrderType = model.InventoryType
};
+ if (model.DateCode.IndexOf("骞冲簱")>0 || warehouse.WarehouseCode==WarehouseEnum.HA101.ToString())
+ {
+ Dt_Warehouse warehousePing = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
+ mesRworkOutboundOrder.WarehouseId = warehousePing.WarehouseId;
+ mesRworkOutboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ _outboundService.RworkOutboundOrderService.Repository.AddData(mesRworkOutboundOrder);
+ MesInventoryInfo mesInventoryInfo = new MesInventoryInfo()
+ {
+ Warhouseno = warehousePing.WarehouseCode,
+ InternalPackageNumber = model.ProductCode,
+ SetCount = (int)model.RequiredSetCount,
+ EligiblePcsCount = (int)model.RequiredQuantity
+ };
+
+ MesProductOutBound mesProductOutBound = new MesProductOutBound()
+ {
+ TaskNo = mesRworkOutboundOrder.TaskNo,
+ ProductCode = mesRworkOutboundOrder.ProductCode,
+ ProductVersion = mesRworkOutboundOrder.ProductVersion,
+ DateCode = mesRworkOutboundOrder.DateCode,
+ SaleOrder = mesRworkOutboundOrder.SaleOrder,
+ InventoryInfo = new List<MesInventoryInfo> { mesInventoryInfo }
+ };
+ if (model.ReceiveDown==EnableEnum.Enable.ObjToInt())
+ {
+ _unitOfWorkManage.RollbackTran();
+ }
+ else
+ {
+ //MES鎴愬搧搴撳瓨鏉垮嚭搴撳悓姝�
+ WebResponseContent responseContentPing = _outboundService.RworkOutboundOrderService.ProductOutBoundSync(mesProductOutBound);
+ if (!responseContentPing.Status)
+ {
+ throw new Exception("鍚屾MES搴撳瓨鏉垮嚭搴撳け璐�,閿欒:" + responseContentPing.Message);
+ }
+ _unitOfWorkManage.CommitTran();
+ }
+ return content.OK($"鎻愪緵杩斿簱鍗曟帴鏀舵垚鍔�,ReceiveDown:{model.ReceiveDown}");
+ }
List<Dt_Task> tasks = new List<Dt_Task>();
List<Dt_ProStockInfo>? proStockInfos = null;
List<Dt_OutProStockInfo>? outProStockInfos = null;
@@ -605,19 +646,25 @@
if (!updateContent.Status)
{
- _unitOfWorkManage.RollbackTran();
- return content.Error(updateContent.Message);
+ throw new Exception(updateContent.Message);
}
}
_outboundService.RworkOutboundOrderService.Repository.AddData(mesRworkOutboundOrder);
- //MES鎴愬搧搴撳瓨鏉垮嚭搴撳悓姝�
- WebResponseContent responseContent = _outboundService.RworkOutboundOrderService.ProductOutBoundSync(_outboundService.RworkOutboundOrderService.MesProOutBound(mesRworkOutboundOrder, proStockInfoDetails));
- if (!responseContent.Status)
+ if (model.ReceiveDown == EnableEnum.Enable.ObjToInt())
{
- throw new Exception("鍚屾MES搴撳瓨鏉垮嚭搴撳け璐�,閿欒:" + responseContent.Message);
+ _unitOfWorkManage.RollbackTran();
}
- _unitOfWorkManage.CommitTran();
- return content.OK("鎻愪緵杩斿簱鍗曟帴鏀舵垚鍔�");
+ else
+ {
+ //MES鎴愬搧搴撳瓨鏉垮嚭搴撳悓姝�
+ WebResponseContent responseContent = _outboundService.RworkOutboundOrderService.ProductOutBoundSync(_outboundService.RworkOutboundOrderService.MesProOutBound(mesRworkOutboundOrder, proStockInfoDetails));
+ if (!responseContent.Status)
+ {
+ throw new Exception("鍚屾MES搴撳瓨鏉垮嚭搴撳け璐�,閿欒:" + responseContent.Message);
+ }
+ _unitOfWorkManage.CommitTran();
+ }
+ return content.OK($"鎻愪緵杩斿簱鍗曟帴鏀舵垚鍔�,ReceiveDown:{model.ReceiveDown}");
}
catch (Exception ex)
{
--
Gitblit v1.9.3