From d8db1698c125618c1b5f62b009204ddc5d4eed5a Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 19 三月 2025 20:34:08 +0800
Subject: [PATCH] 成品代码更新....
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs | 133 ++++++++++++++++++++++++++++++++------------
1 files changed, 96 insertions(+), 37 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 f2a2084..0477465 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"
@@ -11,7 +11,9 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
+using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.ERP;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IBasicRepository;
@@ -40,7 +42,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()))
@@ -79,7 +90,11 @@
return base.AddData(saveModel);
}
-
+ /// <summary>
+ /// 鏀惰揣瀹屾垚骞跺洖浼燛RP
+ /// </summary>
+ /// <param name="orderId"></param>
+ /// <returns></returns>
public WebResponseContent FeedbackReceiveOrder(int orderId)
{
try
@@ -88,6 +103,10 @@
if (receiveOrder == null)
{
return WebResponseContent.Instance.Error($"鏈壘鍒版敹璐у崟");
+ }
+ if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.Completed.ObjToInt())
+ {
+ return WebResponseContent.Instance.Error($"鏀惰揣鍗曞凡瀹屾垚");
}
if (receiveOrder.Details == null || receiveOrder.Details.Count == 0)
{
@@ -112,34 +131,48 @@
PriceInTax = 0,
PurchaseOrderCode = item.PurchaseOrderNo,
PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
- QtyReceived = item.ReceivedQuantity,
+ QtyRecieved = item.ReceivedQuantity,
Serno = item.RowNo,
- Supplotno = "",
- Taxrate = ""
+ Supplotno = item.LotNo,
+ Taxrate = "",
+
};
+ if (receiveOrder.ReceiveOrderType!=ReceiveOrderTypeEnum.PO.ObjToInt())
+ {
+ recevieOrderDetail.Taxrate = "ZZ11";
+ recevieOrderDetail.Currcode = "RMB";
+ }
recevieOrderDetails.Add(recevieOrderDetail);
}
ERPReceiveModel receiveModel = new ERPReceiveModel()
{
Code = receiveOrder.ReceiveOrderNo,
- CompanyId = "",
DeliveryCode = receiveOrder.DeliveryCode,
CustomerId = receiveOrder.CustomerId,
CreatorId = receiveOrder.Creater,
- EndDate = receiveOrder.CreateDate,
- ReceiveDate = receiveOrder.CreateDate,
- PlantsId = "",
+ EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
+ ReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
SuppliersId = receiveOrder.SuppliersId,
- Type = "PO",
+ Type = Enum.GetName(typeof(ReceiveOrderTypeEnum), receiveOrder.ReceiveOrderType) ?? throw new Exception($"閲囪喘鍗曠被鍨嬮敊璇�"),
UniqueTag = receiveOrder.ReceiveOrderId.ToString(),
WarehouseCode = warehouse.WarehouseCode,
Way = 1,
Details = recevieOrderDetails
};
+ //鏇存柊鏀惰揣鍗曚俊鎭�
+ receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt();
+ //鏀惰揣鎺ㄩ�佽嚦ER
string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
-
+ ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+ if (requestContent.res == 1)
+ {
+ receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
+ }
+ BaseDal.UpdateData(receiveOrder);
+ //鍒涘缓鍏ュ簱鍗�
+ CreateInboundOrder(orderId);
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
@@ -154,15 +187,16 @@
try
{
int pageNo = saveModel.MainData["pageNo"].ObjToInt();
+ int warehouseId = saveModel.MainData["warehouseId"].ObjToInt();
string orderNo = saveModel.MainData["orderNo"].ToString();
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()).ToPageList(pageNo, 5);
+ dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).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()).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).ToPageList(pageNo, 5);
}
content.OK(data: dt_ReceiveOrders);
@@ -174,12 +208,20 @@
}
return content;
}
-
+ /// <summary>
+ /// 鍒涘缓鍏ュ簱鍗�
+ /// </summary>
+ /// <param name="receiveOrderId">鏀惰揣鍗曠紪鍙�</param>
+ /// <returns></returns>
public WebResponseContent CreateInboundOrder(int receiveOrderId)
{
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($"鏈壘鍒拌鏀惰揣鍗曚俊鎭�");
@@ -192,17 +234,23 @@
{
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)
+ Dt_InboundOrder OldCreateOrder = _inboundRepository.InboundOrderRepository.QueryFirst(x => x.UpperOrderNo == receiveOrder.ReceiveOrderNo);
+ if (receiveOrder.CreateInOrderStatus==WhetherEnum.True.ObjToInt() || OldCreateOrder!=null)
{
- return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚");
+ 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($"璇ユ敹璐у崟鏈川妫�瀹屾垚");
+ ////}
- if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
- {
- return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�");
- }
+ ////if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
+ ////{
+ //// return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�");
+ ////}
+ #endregion
Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
{
@@ -214,22 +262,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;
- 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();
- }
+ #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();
+ ////}
+ #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,
@@ -260,7 +312,7 @@
{
return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�");
}
- if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0)
+ if (purchaseOrder.Details.Count == 0)
{
return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅");
}
@@ -307,24 +359,27 @@
};
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);
}
+ #endregion
}
receiveOrder = new Dt_ReceiveOrder()
{
ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(),
CustomerId = "",
- DeliveryCode = "",
+ DeliveryCode = "/",
ReceiveDate = DateTime.Now,
ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(),
SuppliersId = purchaseOrder.SupplierCode,
@@ -371,12 +426,14 @@
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);
}
}
@@ -395,11 +452,13 @@
Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
}
- _checkOrderRepository.AddData(checkOrders);
+ if (checkOrders.Count > 0)
+ {
+ _checkOrderRepository.AddData(checkOrders);
+ }
_inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
_inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
_unitOfWorkManage.CommitTran();
-
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
--
Gitblit v1.9.3