From 33b47abc54be9d7047936d5e93fb6b0401052933 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 11 六月 2025 00:08:07 +0800
Subject: [PATCH] 1
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 83 ++++++++++++++++++++++++++++++++---------
1 files changed, 65 insertions(+), 18 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
index 2fc803e..cfd7567 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
@@ -1,5 +1,6 @@
锘�
using AutoMapper;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -15,6 +16,9 @@
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.QMS;
+using WIDESEA_External.Model;
+using WIDESEA_External.QMSService;
using WIDESEA_IBasicRepository;
using WIDESEA_ICheckRepository;
using WIDESEA_IInboundRepository;
@@ -32,8 +36,10 @@
private readonly IBasicRepository _basicRepository;
private readonly ICheckOrderRepository _checkOrderRepository;
private readonly IStockRepository _stockRepository;
+ private readonly ISupplierInfoRepository _supplierInfoRepository;
+ private readonly IInvokeQMSService _invokeQMSService;
- public ReceiveOrderDetailService(IReceiveOrderDetailRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, ICheckOrderRepository checkOrderRepository, IStockRepository stockRepository) : base(BaseDal)
+ public ReceiveOrderDetailService(IReceiveOrderDetailRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, ICheckOrderRepository checkOrderRepository, IStockRepository stockRepository,ISupplierInfoRepository supplierInfoRepository,IInvokeQMSService invokeQMSService) : base(BaseDal)
{
_mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
@@ -41,6 +47,8 @@
_basicRepository = basicRepository;
_checkOrderRepository = checkOrderRepository;
_stockRepository = stockRepository;
+ _supplierInfoRepository = supplierInfoRepository;
+ _invokeQMSService = invokeQMSService;
}
private static object _rowNoLocker = new object();
@@ -64,11 +72,12 @@
{
return WebResponseContent.Instance.Error($"璇ュ崟鎹凡鏀惰揣瀹屾垚");
}
-
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == receiveOrder.WarehouseId);
MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
+ Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == receiveOrder.SuppliersId);
//鏀惰揣澧炲姞鎵规鍗℃帶
//鏌ヨ鏀惰揣鏄庣粏鏄惁鏈夊瓨鍦ㄥ悓涓�涓壒娆�
- Dt_ReceiveOrderDetail receiveOrderDetailOld = _inboundRepository.ReceiveOrderDetailRepository.QueryFirst(x => x.LotNo == model.LotNo);
+ Dt_ReceiveOrderDetail receiveOrderDetailOld = _inboundRepository.ReceiveOrderDetailRepository.QueryFirst(x => x.LotNo == model.LotNo && x.MaterielCode == model.MaterielCode);
Dt_ReceiveOrder? receiveOrderOld = null;
if (receiveOrderDetailOld!=null)
{
@@ -79,7 +88,7 @@
return WebResponseContent.Instance.Error($"鏀惰揣鍗曞彿{receiveOrderOld.ReceiveOrderNo}涓壒娆model.LotNo}宸插瓨鍦�");
}
//鏌ヨ搴撳瓨鎵规鏄惁鏈夊瓨鍦ㄥ悓涓�涓壒娆�
- Dt_StockInfoDetail stockInfoDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == model.LotNo);
+ Dt_StockInfoDetail stockInfoDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == model.LotNo && x.MaterielCode == model.MaterielCode);
Dt_StockInfo? stockInfo = null;
if (stockInfoDetail!=null)
{
@@ -205,7 +214,7 @@
{
return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏀惰揣宸插畬鎴�");
}
- Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.Where(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())).FirstOrDefault();
+ Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.Where(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())).OrderBy(x=>x.Id).FirstOrDefault();
if (purchaseOrderDetail == null)
{
return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏄庣粏鏀惰揣宸插畬鎴�");
@@ -227,7 +236,7 @@
purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity;
if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
{
- return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�");
+ return WebResponseContent.Instance.Error($"閲囪喘鍗曡鍙穥purchaseOrderDetail.RowNo}鐗╂枡{purchaseOrderDetail.MaterielCode}鏁伴噺婧㈠嚭:{purchaseOrderDetail.PurchaseDetailReceiveQty - purchaseOrderDetail.PurchaseDetailQuantity}");
}
if (purchaseOrderDetail.PurchaseDetailReceiveQty == purchaseOrderDetail.PurchaseDetailQuantity)
{
@@ -295,7 +304,7 @@
}
if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
{
- return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�");
+ return WebResponseContent.Instance.Error($"閲囪喘鍗曡鍙穥purchaseOrderDetail.RowNo}鐗╂枡{purchaseOrderDetail.MaterielCode}鏁伴噺婧㈠嚭:{purchaseOrderDetail.PurchaseDetailReceiveQty - purchaseOrderDetail.PurchaseDetailQuantity}");
}
if (purchaseOrderDetail.PurchaseDetailQuantity == purchaseOrderDetail.PurchaseDetailReceiveQty)
{
@@ -313,20 +322,58 @@
purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt();
_inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
}
+ if(purchaseOrder.PurchaseOrderStatus== PurchaseOrderStatusEnum.NotReceived.ObjToInt())
+ {
+ purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Receiving.ObjToInt();
+ _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
+ }
_inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
_inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
+
+
+ QMSReceiveCheckModel qMSReceiveCheck = new QMSReceiveCheckModel()
+ {
+ EntryNumber=receiveOrder.ReceiveOrderNo,
+ MaterialCode=receiveOrderDetail.MaterielCode,
+ MaterialName=receiveOrderDetail.MaterielName,
+ Quantity=(decimal)receiveOrderDetail.ReceivedQuantity,
+ SupplierCode=receiveOrder.SuppliersId,
+ SupplierName= supplierInfo.SupplierName,
+ BatchNumber=receiveOrderDetail.LotNo,
+ DeliveryNumber=receiveOrder.DeliveryCode,
+ PurchaseNumber=receiveOrderDetail.PurchaseOrderNo,
+ RowNumber= receiveOrderDetail.RowNo,
+ WarehouseCode= warehouse.WarehouseCode,
+ ReceiptDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+ Remark=" "
+ };
+ string response = _invokeQMSService.InvokeReceiveCheckApi(qMSReceiveCheck);
+ MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>();
+ if (!mesResponseContent.BSucc)
+ {
+ throw new Exception(mesResponseContent.StrMsg);
+ }
+ ReceiveResultDTO receiveResult = JsonConvert.DeserializeObject<ReceiveResultDTO>(mesResponseContent.Content.ToString());
+ if (receiveResult==null)
+ {
+ throw new Exception("鎺ユ敹QMS缁撴灉澶辫触");
+ }
#region 娉ㄩ噴
- ////if (materielInfo.IsCheck == WhetherEnum.True)
- ////{
- //// Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
- //// checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
- //// checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
- //// checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
- //// checkOrder.ScrappedQuantity = 0;
- //// checkOrder.ReturnQuantity = 0;
- //// checkOrder.DefectedQuantity = 0;
- //// _checkOrderRepository.AddData(checkOrder);
- ////}
+ if (materielInfo.IsCheck == WhetherEnum.True)
+ {
+ Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+ checkOrder.CheckOrderNo = receiveResult.InspectionNumber;
+ checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
+ checkOrder.Result = CheckAcceptEnum.NotCheckAccept.ToString();
+ checkOrder.QualifiedQuantity = 0;
+ checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
+ checkOrder.WarehouseId = receiveOrder.WarehouseId;
+ checkOrder.ScrappedQuantity = 0;
+ checkOrder.MaterielSpec = materielInfo.MaterielSpec;
+ checkOrder.ReturnQuantity = 0;
+ checkOrder.DefectedQuantity = 0;
+ _checkOrderRepository.AddData(checkOrder);
+ }
#endregion
_unitOfWorkManage.CommitTran();
}
--
Gitblit v1.9.3