From a4ae3bf5f1826e8e29a95da3dc2c947d713d4ebb Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 06 六月 2025 15:38:14 +0800
Subject: [PATCH] 1.仓库信息储存逻辑调整 2.生产订单接口优化。
---
MES.Service/service/BasicData/MesRohInManager.cs | 194 ++++++++++++++++++++++--------------------------
1 files changed, 90 insertions(+), 104 deletions(-)
diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs
index ddfda86..fd0edbc 100644
--- a/MES.Service/service/BasicData/MesRohInManager.cs
+++ b/MES.Service/service/BasicData/MesRohInManager.cs
@@ -1,7 +1,9 @@
-锘縰sing MES.Service.DB;
+锘縰sing Masuit.Tools;
+using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
+using System.Globalization;
namespace MES.Service.service.BasicData;
@@ -15,79 +17,37 @@
var rohInErpRohIn = rohIn.ErpRohIn;
var mesRohIn = GetMesRohIn(rohInErpRohIn);
var mesRohInDatas =
- GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type);
+ GetMesRohInDatas(rohIn.ErpRohinDatas);
return UseTransaction(db =>
{
- switch (rohInErpRohIn.Type)
+ return rohInErpRohIn.Type switch
{
- case "2":
- case "4":
- case "5":
- return SaveOrUpdateData(db, mesRohIn, mesRohInDatas)
- ? 1
- : 0;
- case "3":
- return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
- default:
- throw new NotImplementedException(
- $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷");
- }
+ "2" or "4" or "5" => SaveOrUpdateData(db, mesRohIn,
+ mesRohInDatas)
+ ? 1
+ : 0,
+ "3" => UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0,
+ _ => throw new NotImplementedException(
+ $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷")
+ };
}) > 0;
}
- // 鎻掑叆鏁版嵁鐨勬柟娉�
- private bool InsertData(SqlSugarScope db, MesRohIn mesRohIn,
- List<MesRohInData> mesRohInDatas, string FBILLTYPE)
- {
- switch (FBILLTYPE)
- {
- case "A":
- {
- var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
-
- if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id);
-
- if (decimals.Length > 0)
- db.Deleteable<MesRohInData>().In(decimals).ExecuteCommand();
-
- var insert = base.Insert(mesRohIn);
- var insertRange =
- rohInDataManager.InsertRange(mesRohInDatas);
-
- if (insert && insertRange) return true;
- throw new NotImplementedException("鎻掑叆澶辫触");
- }
- case "B":
- {
- var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
- if (base.DeleteById(mesRohIn.Id) && db
- .Deleteable<MesRohInData>().In(decimals)
- .ExecuteCommand() > 0)
- {
- var insert = base.Insert(mesRohIn);
- var insertRange =
- rohInDataManager.InsertRange(mesRohInDatas);
-
- if (insert && insertRange) return true;
- throw new NotImplementedException("鎻掑叆澶辫触");
- }
-
- break;
- }
- }
-
- throw new NotImplementedException("閲囪喘璁㈠崟绫诲瀷閿欒");
- }
// 鏇存柊鏁版嵁鐨勬柟娉�
private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn,
List<MesRohInData> mesRohInDatas)
{
- var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
- var update = base.DeleteById(mesRohIn.Id);
+ var decimals = mesRohInDatas.Select(s => s.Guid).ToArray();
+
+ var update = db.Deleteable<MesRohIn>()
+ .Where(a => a.Guid == mesRohIn.Guid)
+ .ExecuteCommand() > 0;
+
var insertOrUpdate = db
- .Deleteable<MesRohInData>().In(decimals)
+ .Deleteable<MesRohInData>()
+ .Where(s => decimals.Contains(s.Guid))
.ExecuteCommand() > 0;
if (update && insertOrUpdate) return true;
@@ -98,14 +58,22 @@
private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
List<MesRohInData> mesRohInDatas)
{
- if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id);
+ if (mesRohIn.Guid != null)
+ db.Deleteable<MesRohIn>().Where(s => s.Guid == mesRohIn.Guid)
+ .ExecuteCommand();
if (mesRohInDatas.Count > 0)
db.Deleteable<MesRohInData>()
.Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand();
- var orUpdate = base.Insert(mesRohIn);
- var baOrUpdate = rohInDataManager.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("鎻掑叆鎴栨洿鏂板け璐�");
}
@@ -123,8 +91,9 @@
var eid = long.Parse(rohIn.id);
var mesRohIn = new MesRohIn();
+
var single = base.GetSingle(it => it.EbelnK3id == eid);
- if (single != null) mesRohIn.Id = single.Id;
+ if (single != null) mesRohIn.Guid = single.Guid;
mesRohIn.EbelnK3id = eid;
mesRohIn.BillNo = rohIn.FBillNo;
@@ -144,15 +113,16 @@
mesRohIn.Purchaser = rohIn.FPurchaserId;
mesRohIn.SettlementParty = rohIn.FSettleId;
mesRohIn.PaymentParty = rohIn.FChargeId;
- mesRohIn.Emall = rohIn.FProviderEMail;
- mesRohIn.Remarks = rohIn.F_XIFG_Text_qtr1;
+ mesRohIn.Email = rohIn.FProviderEMail;
+ mesRohIn.Remarks = rohIn.Remarks;
mesRohIn.CancellationStatus = rohIn.FCancelStatus;
mesRohIn.CancellationPerson = rohIn.FCancellerId;
if (rohIn.FCancelDate != null)
- mesRohIn.CancellationDate =
- DateTime.ParseExact(rohIn.FCancelDate,
- "yyyy-MM-dd HH:mm:ss", null);
+ if (!mesRohIn.CancellationPerson.IsNullOrEmpty())
+ mesRohIn.CancellationDate =
+ DateTime.ParseExact(rohIn.FCancelDate,
+ "yyyy-MM-dd HH:mm:ss", null);
mesRohIn.CreateBy = rohIn.FCreatorId;
@@ -169,21 +139,27 @@
mesRohIn.ErpCheckBy = rohIn.FApproverId;
mesRohIn.ErpCheckDate = rohIn.FApproveDate;
mesRohIn.Changereason = rohIn.FChangeReason;
- mesRohIn.Prearrivaldate = rohIn.FPREARRIVALDATE != null
- ? DateTime.ParseExact(rohIn.FPREARRIVALDATE,
+ mesRohIn.Prearrivaldate = rohIn.Prearrivaldate != null
+ ? DateTime.ParseExact(rohIn.Prearrivaldate,
"yyyy-MM-dd HH:mm:ss", null)
: null;
mesRohIn.ReceiveOrgId = rohIn.FReceiveOrgId;
+ mesRohIn.ProviderId = rohIn.FProviderId;
- mesRohIn.Remark1 = rohIn.F_XIFG_PrintTimes_qtr;
+ mesRohIn.Anred = rohIn.FTContact;
+ mesRohIn.Telf1 = rohIn.Fmobilephone;
+ mesRohIn.FixedTelephone = rohIn.FixedTelephone;
+ mesRohIn.Address = rohIn.Address;
+ mesRohIn.Acctype = rohIn.Acctype;
+ mesRohIn.SynchronousDate = DateTime.Now;
return mesRohIn;
}
// 灏� ErpRohinData 瀵硅薄杞崲涓� MesRohInData 瀵硅薄鐨勬柟娉�
private List<MesRohInData> GetMesRohInDatas(
- List<ErpRohinData> erpRohinDatas, string type)
+ List<ErpRohinData> erpRohinDatas)
{
return erpRohinDatas.Select(s =>
{
@@ -192,14 +168,12 @@
EbelnK3id = Convert.ToDecimal(s.id),
ErpId = Convert.ToDecimal(s.Eid),
BillNo = s.FBillNo,
- SalesOrderId = s.F_XIFG_Text_k79,
ItemId = s.FMaterialId,
PurchaseUnit = s.FUnitId,
PurchaseQty = Convert.ToDecimal(s.FQty),
InventoryUnit = s.FStockUnitID,
PricingUnit = s.FPriceUnitId,
PricingQty = Convert.ToDecimal(s.FPriceUnitQty),
-
DeliveryDate = s.FDeliveryDate != null
? DateTime.ParseExact(s.FDeliveryDate,
"yyyy-MM-dd HH:mm:ss", null)
@@ -212,11 +186,6 @@
? DateTime.ParseExact(s.FDeliveryLastDate,
"yyyy-MM-dd HH:mm:ss", null)
: null,
- DemandOrg = s.FRequireOrgId,
- DemandDepartment = s.FRequireDeptId,
- ReceivingOrg = s.FReceiveOrgId,
- ReceivingDepartment = s.FReceiveDeptId,
- SettlementOrg = s.FEntrySettleOrgId,
IsGift = s.FGiveAway,
Remarks = s.FEntryNote,
SupplierItemCode = s.FSupMatId,
@@ -226,47 +195,64 @@
BusinessClose = s.FMRPCloseStatus,
BusinessFreeze = s.FMRPFreezeStatus,
Freezer = s.FFreezerId,
- FreezeTime = s.FFreezeDate != null
- ? DateTime.ParseExact(s.FFreezeDate,
- "yyyy-MM-dd HH:mm:ss", null)
- : null,
+ //FreezeTime = !string.IsNullOrEmpty(s.FFreezeDate)
+ // && DateTime.TryParseExact(s.FFreezeDate,
+ // new[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd" }, // 鏀寔澶氱鏍煎紡
+ // CultureInfo.InvariantCulture,
+ // DateTimeStyles.None,
+ // out var parsedDate)
+ // && parsedDate > new DateTime(1900, 1, 1)
+ // ? parsedDate
+ // : (DateTime?)null,
BusinessTerminate = s.FMRPTerminateStatus,
Terminator = s.FTerminaterId,
- TerminateTime = s.FTerminateDate != null
- ? DateTime.ParseExact(s.FTerminateDate,
- "yyyy-MM-dd HH:mm:ss", null)
- : null,
- TotalReceivedQty = Convert.ToDecimal(s.FBASERECEIVEQTY), //绱鏀舵枡鏁�
+ //TerminateTime = s.FTerminateDate != null
+ // ? DateTime.ParseExact(s.FTerminateDate,
+ // "yyyy-MM-dd HH:mm:ss", null)
+ // : null,
+ TotalReceivedQty = Convert.ToDecimal(s.FReceiveQty), //绱鏀舵枡鏁�
RemainingReceivedQty =
Convert.ToDecimal(s.FRemainReceiveQty),
- TotalStoredQty = Convert.ToDecimal(s.FBASESTOCKINQTY), //绱鍏ュ簱鏁�
+ TotalStoredQty = Convert.ToDecimal(s.FStockInQty), //绱鍏ュ簱鏁�
RemainingStoredQty = Convert.ToDecimal(s.FRemainStockINQty),
TotalReturnedQty = Convert.ToDecimal(s.FMrbQty),
ReturnableReceivedQty =
- Convert.ToDecimal(s.FBASECHECKRETQTY), //鏀舵枡鍙��鏁�
- ReturnableStoredQty =
- Convert.ToDecimal(s.FBASESTOCKRETQTY), //搴撳瓨鍙��鏁�
+ Convert.ToDecimal(s.FCHECKRETQTY), //鏀舵枡鍙��鏁�
+ ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY), //搴撳瓨鍙��鏁�
SourceDocumentType = s.FSrcBillTypeId,
- SourceDocumentId = s.FSourceBillNo,
+ SourceDocumentId = s.FSrcBillNo,
DemandTrackingId = s.FReqTraceNo,
PlanTrackingId = s.FMtoNo,
ChangeFlag = s.FChangeFlag,
DemandSource = s.FDEMANDTYPE,
DemandDocumentId = s.FDEMANDBILLNO,
DemandDocumentLineId = s.FDEMANDBILLENTRYSEQ,
- prearrivaldate = s.FTerminateDate != null
- ? DateTime.ParseExact(s.FPREARRIVALDATE,
- "yyyy-MM-dd HH:mm:ss", null)
- : null,
- Remark1 = s.F_XIFG_Text_ne1,
- Remark2 = s.F_XIFG_Text_6oq,
- Remark3 = s.F_XIFG_Base_c1c,
- Remark4 = s.F_XIFG_Text_qtr4,
+ DemandOrg = s.FRequireOrgId,
+ ReceivingOrg = s.FReceiveOrgId,
+ SettlementOrg = s.FEntrySettleOrgId,
+ PurchaseOrderLineNumber = s.FSEQ,
+ Demand = s.FRequireOrgId,
+ Receiving = s.FReceiveOrgId,
+ Settlement = s.FSETTLEORGID,
+ DemandDepartment = s.FRequireDeptId,
+ ReceivingDepartment = s.FReceiveDeptId
};
+
+ if (s.FFreezeDate != null)
+ if (!s.FFreezerId.IsNullOrEmpty())
+ entity.FreezeTime =
+ DateTime.ParseExact(s.FFreezeDate,
+ "yyyy-MM-dd HH:mm:ss", null);
+
+ if (s.FTerminateDate != null)
+ if (!s.FTerminaterId.IsNullOrEmpty())
+ entity.TerminateTime =
+ DateTime.ParseExact(s.FTerminateDate,
+ "yyyy-MM-dd HH:mm:ss", null);
var single = rohInDataManager.GetSingle(it =>
it.EbelnK3id == entity.EbelnK3id);
- if (single != null) entity.Id = single.Id;
+ if (single != null) entity.Guid = single.Guid;
return entity;
}).ToList();
--
Gitblit v1.9.3