From 2b49f7643d15b74889d190f216630559006ed93a Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 01 十二月 2025 09:48:43 +0800
Subject: [PATCH] pad和后端的优化
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs | 116 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 67 insertions(+), 49 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
index ec8fbe9..4b58f33 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
@@ -25,16 +25,22 @@
{
private readonly ICabinOrderServices _cabinOrderServices;
private readonly IDeliveryOrderServices _deliveryOrderServices;
+ private readonly ICabinOrderHtyServices _cabinOrderHtyServices;
+ private readonly IDeliveryOrderHtyServices _deliveryOrderHtyServices;
private readonly ISupplyTaskService _supplyTaskService;
+ private readonly ISupplyTaskHtyService _supplyTaskHtyService;
private readonly IInventory_BatchServices _inventoryBatchServices;
private readonly IMessageInfoService _infoService;
- public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService) : base(BaseDal)
+ public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService,ICabinOrderHtyServices cabinOrderlHtyServices,IDeliveryOrderHtyServices deliveryOrderHtyServices, ISupplyTaskHtyService supplyTaskHtyService) : base(BaseDal)
{
_cabinOrderServices = cabinOrderServices;
_deliveryOrderServices = deliveryOrderServices;
_supplyTaskService = supplyTaskService;
_inventoryBatchServices = inventoryBatchServices;
_infoService = infoService;
+ _cabinOrderHtyServices = cabinOrderlHtyServices;
+ _deliveryOrderHtyServices = deliveryOrderHtyServices;
+ _supplyTaskHtyService = supplyTaskHtyService;
}
/// <summary>
@@ -44,59 +50,26 @@
/// <param name="batch_num">鎵瑰彿</param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
- public WebResponseContent GetInventoryList(int[] key)
+ public WebResponseContent GetInventoryList(int[] keys)
{
var responseContent = new WebResponseContent();
try
{
-
- List<Dt_Inventory_Batch> UpdateBatches = new List<Dt_Inventory_Batch>();
//鏍规嵁id鏌ヨ搴撳瓨鎵规淇℃伅琛紝鑾峰彇鍒颁粬浠殑鍟嗗搧缂栫爜鍜屾壒娆″彿
- var inventoryBatches = _inventoryBatchServices.Repository.QueryData(); //鏌ュ叏閮�
+ var inventoryBatches = _inventoryBatchServices.Repository.QueryData(x => keys.Contains(x.Id)); //鏌ュ叏閮�
- var inventory = inventoryBatches.Where(x => key.Contains(x.Id)).Select(x => new { x.MaterielCode, x.BatchNo }).ToList();
- if (inventory.Count < 1)
+ var url = "http://192.168.1.100:80/GYZ2/95fck/repositoryInfo";
+ foreach (var item in inventoryBatches)
{
- return WebResponseContent.Instance.Error("娌℃湁鎵惧埌搴撳瓨鎵规淇℃伅");
- }
-
- var requestData = inventory.Select(x => new { goods_no = x.MaterielCode, batch_num = x.BatchNo }).Distinct().ToList();
-
- foreach (var item in requestData)
- {
-
- var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/370999979?apifoxApiId=370999979";
- var result = HttpHelper.Post(url, new { item.goods_no, item.batch_num }.ToJsonString());
+ var result = HttpHelper.Post(url, new { goods_no = item.MaterielCode, batch_num = item.BatchNo }.ToJsonString());
var response = JsonConvert.DeserializeObject<UpstreamResponse<InventoryInfo>>(result);
-
- if (response.resultCode != "0")
- {
- //return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
- _infoService.AddMessageInfo(MessageGroupByEnum.SynchronismAlarm, "Erp鍚屾澶辫触", "涓婃父鎺ュ彛杩斿洖澶辫触");
- continue;
-
- }
-
- if (response.data == null || !response.data.Any())
- {
- return responseContent.OK("鏃犳柊搴撳瓨鏁版嵁");
- }
- var materialCodes = response.data.Select(x => x.goods_no).Distinct().ToList();
- var batchNos = response.data.Select(x => x.batch_num).Distinct().ToList();
- foreach (var inventoryInfo in response.data)
- {
- //// 浣跨敤 FirstOrDefault 閬垮厤鎵句笉鍒拌褰曟椂鎶涘嚭寮傚父
- var Inver = inventoryBatches.FirstOrDefault(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num);
-
- if (Inver != null)
- {
- Inver.ERPStockQuantity = inventoryInfo.business_qty;
- UpdateBatches.Add(Inver);
- }
- }
+ if (response == null) continue;
+ var data = response.data.FirstOrDefault();
+ if (data != null)
+ item.ERPStockQuantity = data.business_qty;
}
- _inventoryBatchServices.UpdateData(UpdateBatches);
+ _inventoryBatchServices.UpdateData(inventoryBatches);
return responseContent.OK("搴撳瓨淇℃伅鍚屾瀹屾垚");
}
@@ -105,8 +78,13 @@
return responseContent.Error("鍚屾澶辫触: " + ex.Message);
}
}
-
+
+ /// <summary>
+ /// wcs鍥炰紶缁欐垜璋冪敤鎴戠殑鏂规硶 涓嶇鏄叆搴� 鍑哄簱 鐩樼偣閮戒細璋冪敤杩欎釜鎺ュ彛(鐜板湪鐢ㄨ繖涓�)
+ /// </summary>
+ /// <param name="request"></param>
+ /// <returns></returns>
public ApiResponse<Dt_InventoryInfo> OrderFeedback(EdiOrderCallbackRequest request)
{
@@ -119,7 +97,22 @@
case "1": //鍏ュ簱
{
Dt_CabinOrder cabinOrder = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == Warecode).Includes(x => x.Details).First();
- if (cabinOrder == null) throw new Exception($"鏈壘鍒板叆搴撳崟鍙枫�恵request.externalOrderNo}銆戠殑鍏ュ簱鍗曚俊鎭�");
+ if (cabinOrder == null)
+ {
+ //鏌ユ壘鍘嗗彶鍏ュ簱鍗曪紝濡傛灉鏈夊氨杩斿洖0缁欎笅娓�
+
+ var inHty = _cabinOrderHtyServices.Repository.QueryData(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == Warecode).ToList();
+ if (inHty.Count>0)
+ {
+ return new ApiResponse<Dt_InventoryInfo>
+ {
+ code = "0",
+ msg = $"鎴愬姛"
+ };
+ }
+ throw new Exception($"鏈壘鍒板叆搴撳崟鍙枫�恵request.externalOrderNo}銆戠殑鍏ュ簱鍗曚俊鎭�");
+
+ }
if (cabinOrder.OdrderStatus == "宸插畬鎴�")
return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = $"鎴愬姛" };
WebResponseContent content = _cabinOrderServices.CompleteLKInOrder(cabinOrder, request);
@@ -129,7 +122,19 @@
case "2":
{
Dt_DeliveryOrder deliveryOrder = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == Warecode).Includes(x => x.Details).First();
- if (deliveryOrder == null) throw new Exception($"鏈壘鍒板嚭搴撳崟鍙枫�恵request.externalOrderNo}銆戠殑鍑哄簱鍗曚俊鎭�");
+ if (deliveryOrder == null)
+ {
+ var outHty = _deliveryOrderHtyServices.Repository.QueryData(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == Warecode).ToList();
+ if (outHty.Count>0)
+ {
+ return new ApiResponse<Dt_InventoryInfo>
+ {
+ code = "0",
+ msg = $"鎴愬姛"
+ };
+ }
+ throw new Exception($"鏈壘鍒板嚭搴撳崟鍙枫�恵request.externalOrderNo}銆戠殑鍑哄簱鍗曚俊鎭�");
+ }
if (deliveryOrder.OutStatus == "宸插畬鎴�")
return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = $"鎴愬姛" };
WebResponseContent content = _deliveryOrderServices.CompleteLKOutOrder(deliveryOrder, request);
@@ -143,7 +148,20 @@
foreach (var detail in request.details)
{
Dt_SupplyTask? supplyTask = supplyTasks.Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo).FirstOrDefault();
- if (supplyTask == null) throw new Exception($"鏈壘鍒拌鍗曞彿銆恵request.externalOrderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鐩樼偣浠诲姟");
+ if (supplyTask == null)
+ {
+ var suppHty = _supplyTaskHtyService.Repository.QueryData(x => x.OrderNo == request.externalOrderNo && x.WarehouseCode == Warecode).ToList();
+ if (suppHty.Count>0)
+ {
+ return new ApiResponse<Dt_InventoryInfo>
+ {
+ code = "0",
+ msg = $"鎴愬姛"
+ };
+ }
+ throw new Exception($"鏈壘鍒拌鍗曞彿銆恵request.externalOrderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鐩樼偣浠诲姟");
+ }
+
if (detail.isLossOrProfit == 1) // 鐩樹簭
{
supplyTask.SupplyQuantity = supplyTask.StockQuantity - detail.ea;
@@ -570,7 +588,7 @@
{
try
{
- var url = "http://121.37.118.63:80/GYZ2/95fck/exceptionLog";
+ var url = "http://192.168.1.100:80/GYZ2/95fck/exceptionLog";
var requestData = new
{
--
Gitblit v1.9.3