From 146545654c8128b52f1ba396cb84b82456115062 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期一, 13 十月 2025 16:04:05 +0800
Subject: [PATCH] 1.委外接口接收优化
---
MES.Service/service/BasicData/ProductionOrderManager.cs | 67 ++++++++++++++++++++++++++++-----
1 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/MES.Service/service/BasicData/ProductionOrderManager.cs b/MES.Service/service/BasicData/ProductionOrderManager.cs
index ccd6353..412bbf0 100644
--- a/MES.Service/service/BasicData/ProductionOrderManager.cs
+++ b/MES.Service/service/BasicData/ProductionOrderManager.cs
@@ -14,12 +14,14 @@
private readonly ProductionOrderSubManager _productionOrderSubManager =
new();
+ private string ORDERNO = "";
+
//ErpWYOrder
public bool Save(ErpWYOrder wyOrder)
{
var erpProductionOrderDto = wyOrder.OrderDto;
- var mesRohIn = ConvertErpToProductionOrder(erpProductionOrderDto);
+ var mesRohIn = ConvertErpToProductionOrder(erpProductionOrderDto, wyOrder.Items[0].FBILLNO);
var mesRohInDatas =
ConvertErpToProductionOrderSub(wyOrder.Items);
@@ -33,7 +35,11 @@
// ? 1
// : 0;
case "3":
- return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
+ //return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;//鏀逛负涓嶅垹闄�
+ return SaveOrUpdateData(db, mesRohIn, mesRohInDatas,
+ erpProductionOrderDto.Type)
+ ? 1
+ : 0;
case "2":
case "4":
return SaveOrUpdateData(db, mesRohIn, mesRohInDatas,
@@ -68,6 +74,12 @@
private bool SaveOrUpdateData(SqlSugarScope db, ProductionOrder mesRohIn,
List<ProductionOrderSub> mesRohInDatas, string type)
{
+ if(type == "3" || (mesRohIn.DocumentStatus != null && mesRohIn.DocumentStatus != "C"))
+ {
+ mesRohIn.Typea = "3"; // 鏂板瀛楁璧嬪��
+ mesRohIn.OrderNo = mesRohIn.OrderNo + "F" + mesRohIn.ErpProductionEntryCode;
+ }
+
if (StringUtil.CheckGuid(mesRohIn.Guid))
db.Deleteable<ProductionOrder>()
.Where(s => s.Guid == mesRohIn.Guid)
@@ -75,10 +87,16 @@
if (mesRohInDatas.Count > 0)
db.Deleteable<ProductionOrderSub>()
- .Where(s => s.ErpHeaderId == mesRohIn.ErpId).ExecuteCommand();
+ .Where(s => s.ErpProductionEntryCode == mesRohIn.ErpProductionEntryCode).ExecuteCommand();
- var orUpdate = base.Insert(mesRohIn);
- var baOrUpdate = _productionOrderSubManager.InsertRange(mesRohInDatas);
+ var orUpdate = db.Insertable(mesRohIn)
+ .IgnoreColumns(true).ExecuteCommand() > 0;
+
+
+ var baOrUpdate = db.Insertable(mesRohInDatas).PageSize(1)
+ .IgnoreColumnsNull()
+ .ExecuteCommand() > 0;
+
if (orUpdate && baOrUpdate) return true;
throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
@@ -92,7 +110,7 @@
}
private ProductionOrder ConvertErpToProductionOrder(
- ErpProductionOrderDto erpDto)
+ ErpProductionOrderDto erpDto,string SUBBOM)
{
DateTime parsedDate;
@@ -110,7 +128,7 @@
var productionOrder = new ProductionOrder
{
- OrderNo = erpDto.FBillNo,
+ OrderNo = SUBBOM,
Warehouse = erpDto.FStockID,
OrderDate = ParseDateTime(erpDto.FDate) ?? null,
OrderType = erpDto.FBillType,
@@ -142,17 +160,32 @@
ClosingPerson = erpDto.FFORCECLOSERID,
ClosingType = erpDto.FCloseType,
Remarks = erpDto.FDescription,
- ErpId = erpDto.FPPOMID,
+ ErpId = erpDto.FID,
ErpProductionEntryCode = erpDto.FSUBENTRYID,
Purchaseorderno = erpDto.FPurOrderNo,
Purchaseorderentryseq = Convert.ToInt32(erpDto.FPurOrderEntrySeq),
Stockinqty = Convert.ToDecimal(erpDto.FBaseStockInQty),
Nostockinqty = Convert.ToDecimal(erpDto.FBaseNoStockInQty),
- Stockowner = erpDto.FInStockOwnerId
+ Stockowner = erpDto.FInStockOwnerId,
+ PlanConfirmation = erpDto.PlanConfirmation != null
+ ? DateTime.ParseExact(erpDto.PlanConfirmation,
+ "yyyy-MM-dd HH:mm:ss", null)
+ : null,
+ ReqSrc = erpDto.FReqSrc,
+ SrcSplitSeq = erpDto.SrcSplitSeq,
+ Typea = erpDto.TypeA,
+ DocumentStatus = erpDto.FDocumentStatus
+
};
- var single = base.GetSingle(it => it.ErpId == erpDto.FPPOMID);
- if (single != null) productionOrder.Guid = single.Guid;
+ var single = base.GetSingle(it => it.ErpProductionEntryCode == erpDto.FSUBENTRYID);
+ if (single != null)
+ {
+ productionOrder.Guid = single.Guid;
+ productionOrder.AuditDate = single.AuditDate;
+ productionOrder.AuditStatus = single.AuditStatus;
+ productionOrder.Auditor = single.Auditor;
+ }
return productionOrder;
}
@@ -190,6 +223,18 @@
ItemNo = erpDto.FReplaceGroup,
OwnerType = erpDto.FOwnerTypeId,
Owner = erpDto.FOwnerID2,
+ Fisgetscrap = erpDto.FISGETSCRAP,
+ Fiskeycomponent = erpDto.FISKEYCOMPONENT,
+ Fsrctransorgid = erpDto.FSRCTRANSORGID,
+ Fsrctransstockid = erpDto.FSRCTRANSSTOCKID,
+ Fstockstatusid = erpDto.FSTOCKSTATUSID,
+ Fneeddate = erpDto.FNEEDDATE != null
+ ? DateTime.ParseExact(erpDto.FNEEDDATE,
+ "yyyy-MM-dd HH:mm:ss", null)
+ : null,
+ Freservetype = erpDto.FRESERVETYPE,
+ Fmemo = erpDto.FMEMO,
+ Typeb = erpDto.TypeB,
ErpProductionEntryCode = erpDto.FSUBENTRYID
};
--
Gitblit v1.9.3