From 695571c6009ecbc12e7d4a4fb147df7967a1260e Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 07 七月 2025 20:21:19 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs | 200 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 138 insertions(+), 62 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
index f78eaf6..2e8992a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
@@ -1,8 +1,10 @@
锘縰sing AutoMapper;
using MailKit.Search;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.CommonEnum;
@@ -11,6 +13,7 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
+using WIDESEA_Core.Utilities;
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.ERP;
@@ -42,7 +45,16 @@
_basicRepository = basicRepository;
_invokeERPService = invokeERPService;
}
-
+ public override PageGridData<Dt_ReceiveOrder> GetPageData(PageDataOptions options)
+ {
+ PageGridData<Dt_ReceiveOrder> pageGridData = base.GetPageData(options);
+ //foreach (var item in pageGridData.Rows)
+ //{
+ // //鑾峰彇鏀惰揣鏄庣粏
+ // item.PurchaseOrderNo
+ //}
+ return pageGridData;
+ }
public override WebResponseContent AddData(SaveModel saveModel)
{
if (saveModel.MainData.ContainsKey(nameof(Dt_ReceiveOrder.ReceiveOrderStatus).FirstLetterToLower()))
@@ -72,14 +84,47 @@
if (saveModel.MainData.TryGetValue(nameof(Dt_ReceiveOrder.SuppliersId).FirstLetterToLower(), out object? suppliersId) && suppliersId != null && !string.IsNullOrEmpty(suppliersId.ToString()))
{
- Dt_ReceiveOrder receiveOrder = BaseDal.QueryFirst(x => x.SuppliersId == suppliersId.ToString() && x.WarehouseId == Convert.ToInt32(saveModel.MainData[nameof(Dt_ReceiveOrder.WarehouseId).FirstLetterToLower()]));
- if (receiveOrder != null && receiveOrder.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt())
+ Dt_ReceiveOrder receiveOrder = BaseDal.QueryFirst(x => x.SuppliersId == suppliersId.ToString() && x.WarehouseId == Convert.ToInt32(saveModel.MainData[nameof(Dt_ReceiveOrder.WarehouseId).FirstLetterToLower()]) && x.ReceiveOrderStatus< ReceiveOrderStatusEnum.Completed.ObjToInt());
+ if (receiveOrder != null)
{
return WebResponseContent.Instance.Error("璇ヤ緵搴斿晢鏈夋湭瀹屾垚鐨勬敹璐у崟");
}
}
return base.AddData(saveModel);
+ }
+ public override object GetDetailPage(PageDataOptions pageData)
+ {
+ Type t = typeof(Dt_ReceiveOrder);
+
+ if (pageData.Value == null) return new PageGridData<object>(total: 0, null);
+ string keyName = t.GetKeyName();
+ ////鐢熸垚鏌ヨ鏉′欢
+ //Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal);
+ int totalCount = 0;
+ PropertyInfo propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null);
+ if (propertyInfo != null)
+ {
+ Type detailType = propertyInfo.PropertyType.GetGenericArguments()[0];
+ Navigate navigate = propertyInfo.GetCustomAttribute<Navigate>();
+ List<Dt_ReceiveOrderDetail> list = BaseDal.Db.Queryable<Dt_ReceiveOrderDetail>().Where(navigate.GetName(), "=", pageData.Value).ToPageList(pageData.Page, pageData.Rows, ref totalCount);
+ decimal sum = 0;
+ list.ForEach(x =>
+ {
+ sum += Convert.ToDecimal(x.ReceivedQuantity);
+ });
+ PageGridData<Dt_ReceiveOrderDetail> pageGridData = new PageGridData<Dt_ReceiveOrderDetail>()
+ {
+ Total = totalCount,
+ Rows = list,
+ Summary = new
+ {
+ ReceivedQuantity = Math.Round(sum, 3),
+ }
+ };
+ return pageGridData;
+ }
+ return new PageGridData<object>(total: 0, null);
}
/// <summary>
/// 鏀惰揣瀹屾垚骞跺洖浼燛RP
@@ -122,12 +167,17 @@
PriceInTax = 0,
PurchaseOrderCode = item.PurchaseOrderNo,
PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
- QtyRecieved = item.ReceivedQuantity.ObjToInt(),
+ QtyRecieved = item.ReceivedQuantity,
Serno = item.RowNo,
- Supplotno = "",
+ Supplotno = item.LotNo,
Taxrate = "",
};
+ if (receiveOrder.ReceiveOrderType!=ReceiveOrderTypeEnum.PO.ObjToInt())
+ {
+ recevieOrderDetail.Taxrate = "ZZ11";
+ recevieOrderDetail.Currcode = "RMB";
+ }
recevieOrderDetails.Add(recevieOrderDetail);
}
@@ -146,17 +196,23 @@
Way = 1,
Details = recevieOrderDetails
};
- //鏀惰揣鎺ㄩ�佽嚦ERP
- string Content = _invokeERPService.InvokeMatReceiveApi(receiveModel);
- ErpRequestContent erpRequest = Content.DeserializeObject<ErpRequestContent>();
- if (erpRequest.res == 0)
- {
- return WebResponseContent.Instance.Error(erpRequest.Data);
- }
+
//鏇存柊鏀惰揣鍗曚俊鎭�
receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt();
+ //鏀惰揣鎺ㄩ�佽嚦ER
+ string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
+ ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+ if (requestContent.res != 1)
+ {
+ return WebResponseContent.Instance.Error($"{requestContent.Data}");
+ }
receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
BaseDal.UpdateData(receiveOrder);
+ if (receiveOrder.Details.FirstOrDefault(x=>x.IfInspection==WhetherEnum.True.ObjToInt())==null)
+ {
+ //鍒涘缓鍏ュ簱鍗� todo:鏄庣粏閮芥槸涓嶆楠岃嚜鍔ㄥ垱寤哄叆搴撳崟
+ CreateInboundOrder(orderId);
+ }
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
@@ -176,11 +232,11 @@
List<Dt_ReceiveOrder> dt_ReceiveOrders = new List<Dt_ReceiveOrder>();
if (string.IsNullOrEmpty(orderNo))
{
- dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5);
+ dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).Includes(x=>x.Details).OrderByDescending(x=>x.ReceiveOrderId).ToPageList(pageNo, 5);
}
else
{
- dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5);
+ dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.ReceiveOrderId).Includes(x => x.Details).ToPageList(pageNo, 5);
}
content.OK(data: dt_ReceiveOrders);
@@ -202,6 +258,10 @@
try
{
Dt_ReceiveOrder receiveOrder = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderId == receiveOrderId).Includes(x => x.Details).First();
+ if (receiveOrder.UploadStatus!= WhetherEnum.True.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏉ユ枡涓婁紶ERP澶辫触鏃犳硶鍒涘缓鍏ュ簱鍗曟嵁");
+ }
if (receiveOrder == null)
{
return WebResponseContent.Instance.Error($"鏈壘鍒拌鏀惰揣鍗曚俊鎭�");
@@ -214,17 +274,26 @@
{
return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈畬鎴�");
}
+ Dt_InboundOrder OldCreateOrder = _inboundRepository.InboundOrderRepository.QueryFirst(x => x.UpperOrderNo == receiveOrder.ReceiveOrderNo);
+ if (receiveOrder.CreateInOrderStatus==WhetherEnum.True.ObjToInt() || OldCreateOrder!=null)
+ {
+ return WebResponseContent.Instance.Error($"璇ユ敹璐у崟瀵瑰簲鐨勫叆搴撳崟宸插瓨鍦�");
+ }
#region 娉ㄩ噴
- //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo);
- //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null)
- //{
- // return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚");
- //}
+ List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo);
+ if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null)
+ {
+ return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚");
+ }
//if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
//{
// return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�");
//}
+ if (checkOrders.FirstOrDefault(x => x.Result != CheckAcceptEnum.Accept.ToString()) != null)
+ {
+ return WebResponseContent.Instance.Error($"鏀惰揣鏄庣粏涓瓨鏈夎川妫�鏈�氳繃");
+ }
#endregion
Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
@@ -237,24 +306,26 @@
SupplierId = receiveOrder.SuppliersId,
Details = new List<Dt_InboundOrderDetail>()
};
-
+ List<Dt_MaterielInfo> materielCodeInfos = _basicRepository.MaterielInfoRepository.QueryData(x => receiveOrder.Details.Select(x => x.MaterielCode).ToList().Contains(x.MaterielCode));
foreach (var item in receiveOrder.Details)
{
float quantity = item.ReceivedQuantity;
#region 娉ㄩ噴
- //if (item.IfInspection == WhetherEnum.True.ObjToInt())
- //{
- // Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo);
- // if (checkOrder == null)
- // {
- // return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�");
- // }
- // quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault();
- //}
+ if (item.IfInspection == WhetherEnum.True.ObjToInt())
+ {
+ Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo);
+ if (checkOrder == null)
+ {
+ return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�");
+ }
+ quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault();
+ }
#endregion
Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail()
{
MaterielCode = item.MaterielCode,
+ MaterielName = materielCodeInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "",
+ MaterielSpec= materielCodeInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielSpec ?? "",
OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
OrderQuantity = quantity,
OverInQuantity = 0,
@@ -265,17 +336,21 @@
};
inboundOrder.Details.Add(detail);
}
-
+ //鏇存柊鍏ュ簱鍗曞垱寤虹姸鎬�
+ receiveOrder.CreateInOrderStatus = WhetherEnum.True.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ BaseDal.UpdateData(receiveOrder);
_inboundRepository.InboundOrderRepository.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
-
+ _unitOfWorkManage.CommitTran();
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
{
+ _unitOfWorkManage.RollbackTran();
return WebResponseContent.Instance.Error(ex.Message);
}
}
-
+ #region 娴嬭瘯
public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo)
{
try
@@ -333,19 +408,19 @@
rowNo += 1;
receiveOrderDetails.Add(receiveOrderDetail);
#region 娉ㄩ噴
- //if (materielInfo.IsCheck == WhetherEnum.True)
- //{
- // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
- // checkOrder.CheckOrderNo = "TestCheckNo21";//娴嬭瘯
- // checkOrder.ReceiveOrderNo = "";
- // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
- // checkOrder.ScrappedQuantity = 0;
- // checkOrder.ReturnQuantity = 0;
- // checkOrder.DefectedQuantity = 0;
- // checkOrder.ReceiveDetailRowNo = rowNo;
- // checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
- // checkOrders.Add(checkOrder);
- //}
+ if (materielInfo.IsCheck == WhetherEnum.True)
+ {
+ Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+ checkOrder.CheckOrderNo = "TestCheckNo21";//娴嬭瘯
+ checkOrder.ReceiveOrderNo = "";
+ checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+ checkOrder.ScrappedQuantity = 0;
+ checkOrder.ReturnQuantity = 0;
+ checkOrder.DefectedQuantity = 0;
+ checkOrder.ReceiveDetailRowNo = rowNo;
+ checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
+ checkOrders.Add(checkOrder);
+ }
#endregion
}
receiveOrder = new Dt_ReceiveOrder()
@@ -396,19 +471,19 @@
rowNo += 1;
receiveOrderDetails.Add(receiveOrderDetail);
- //if (materielInfo.IsCheck == WhetherEnum.True)
- //{
- // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
- // checkOrder.CheckOrderNo = "Test-CheckNo1";//娴嬭瘯
- // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
- // checkOrder.ScrappedQuantity = 0;
- // checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
- // checkOrder.ReturnQuantity = 0;
- // checkOrder.DefectedQuantity = 0;
- // checkOrder.ReceiveDetailRowNo = rowNo;
- // checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
- // checkOrders.Add(checkOrder);
- //}
+ if (materielInfo.IsCheck == WhetherEnum.True)
+ {
+ Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+ checkOrder.CheckOrderNo = "Test-CheckNo1";//娴嬭瘯
+ checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+ checkOrder.ScrappedQuantity = 0;
+ checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
+ checkOrder.ReturnQuantity = 0;
+ checkOrder.DefectedQuantity = 0;
+ checkOrder.ReceiveDetailRowNo = rowNo;
+ checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
+ checkOrders.Add(checkOrder);
+ }
}
}
@@ -425,10 +500,10 @@
Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
}
- //if (checkOrders.Count > 0)
- //{
- // _checkOrderRepository.AddData(checkOrders);
- //}
+ if (checkOrders.Count > 0)
+ {
+ _checkOrderRepository.AddData(checkOrders);
+ }
_inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
_inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
_unitOfWorkManage.CommitTran();
@@ -440,5 +515,6 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
+ #endregion
}
}
--
Gitblit v1.9.3