From 34847674372afeee3a28565214f3660db15c8e92 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期二, 16 十二月 2025 09:53:13 +0800
Subject: [PATCH] 生产订单
---
MES.Service/service/WomcaaManager.cs | 135 ++++++++++++++++++++++++++++++++++++++------
1 files changed, 115 insertions(+), 20 deletions(-)
diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index 9f9a6e6..f0fff71 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -119,12 +119,17 @@
var entity = new Womcaa
{
Erpid = Convert.ToInt32(dto.Id), /// ERPID
- Caa001 = PPBOMNO, /// 鍗曞彿
- Caa021 = dto.FWorkShopID, /// 宸ヤ綔杞﹂棿
+
+ SrcBillType = dto.FSrcBillType, /// 宸ュ崟鍗曞埆
+ Caa001=dto.FBillNo, /// 宸ュ崟鍗曞彿
+ //Caa001 = PPBOMNO, /// 鍗曞彿
+ Caa021 = dto.FWorkShopID0, /// 宸ヤ綔涓績
+ //Caa021 = dto.FWorkShopID, /// 宸ヤ綔杞﹂棿
RoutingId = dto.FRoutingId, /// 宸ヨ壓璺嚎
WorkShopId = dto.FREMWorkShopId, /// 浜х嚎
DepotCode = dto.FStockId, /// 浠撳簱
CreateDate = dto.FDate, /// 鍗曟嵁鏃ユ湡
+
Caa004 = dto.FBILLTYPE, /// 鍗曟嵁绫诲瀷
Caa023 = dto.FStatus, /// 鐘舵�� 瀹屽伐锛屾湭瀹屽伐
Caa006 = dto.FMaterialId, /// 浜у搧缂栫爜
@@ -144,17 +149,9 @@
Mtono = dto.FMTONO, /// 璁″垝璺熻釜鍙�
Lot = dto.FLot, /// 鎵瑰彿
Caa013 = dto.FBomId, /// BOM鐗堟
-
+ Caa015 = dto.F_UNW_Text_xsddh, /// 璁㈠崟鍗曞彿
+ Caa015Head = dto.xsddh_type, /// 璁㈠崟鍗曞埆
CreateType = dto.FCreateType, /// 鐢熸垚鏂瑰紡
- SrcBillType = dto.FSrcBillType, /// 婧愬崟绫诲瀷
- SrcBillNo = dto.FSrcBillNo, /// 婧愬崟缂栧彿
- SrcBillentryseq = dto.FSrcBillEntrySeq, /// 婧愬崟鍒嗗綍琛屽彿
- SaleOrderNo = dto.FSaleOrderNo, /// 闇�姹傚崟鎹彿
- SaleOrderEntryseq = dto.FSaleOrderEntrySeq, /// 闇�姹傚崟鎹鍙�
- ForceCloserid = dto.FForceCloserId, /// 缁撴浜�
- CloseType = dto.FCloseType, /// 缁撴绫诲瀷
- SrcSplitBillno = dto.FSrcSplitBillNo, /// 婧愭媶鍒嗚鍗曠紪鍙�
- Caa016 = dto.FDESCRIPTION, /// 澶囨敞
Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID)
? Convert.ToInt32(dto.PLAN_ID)
@@ -163,11 +160,23 @@
? Convert.ToInt32(dto.PLAN_SEQ)
: null, /// ERP婧愬崟琛屽彿
Caa020 = dto.PLAN_NUM, /// ERP婧愬崟鍗曞彿(浠诲姟鍗曞彿)
- //Caa015 = dto.F_UNW_Text_xsddh, /// 閿�鍞鍗曞彿
+
+ ForceCloserid = dto.FForceCloserId, /// 缁撴浜�
+ CloseType = dto.FCloseType, /// 缁撴绫诲瀷
+ SrcSplitBillno = dto.FSrcSplitBillNo, /// 婧愭媶鍒嗚鍗曠紪鍙�
+ Caa016 = dto.FMemoItem, /// 澶囨敞
+
+ SrcBillNo = dto.FSrcBillNo, /// 婧愬崟缂栧彿
+ SrcBillentryseq = dto.FSrcBillEntrySeq, /// 婧愬崟鍒嗗綍琛屽彿
+ SaleOrderNo = dto.FSaleOrderNo, /// 闇�姹傚崟鎹彿
+ SaleOrderEntryseq = dto.FSaleOrderEntrySeq, /// 闇�姹傚崟鎹鍙�
+
+
+
ErpSczz = Convert.ToInt32(dto.FPrdOrgId), /// 鐢熶骇缁勭粐ID
ErpWtzz = Convert.ToInt32(dto.FEnTrustOrgId), /// 濮旀墭缁勭粐ID
Btbz = dto.Btbz, /// 濮旀墭缁勭粐ID
- //Caa015Head = dto.F_XIFG_Integer_tzk, /// 閿�鍞鍗曡鍙�
+
//MainProductNo = dto.F_XIFG_Base_w5c, /// 涓讳骇鍝佺紪鐮�
// MainProductQty =
// Convert.ToInt32(dto.F_XIFG_Qty_yrr), /// 涓讳骇鍝佺敓浜ф暟閲�
@@ -175,12 +184,31 @@
// PackingListNumber = dto.F_XIFG_Text_yrr, /// 鍖呰鍗曞彿
// CustomerName = dto.F_XIFG_Text_qtr1, /// 瀹㈡埛鍚嶇О
// Customer = dto.F_XIFG_Base_83g1, /// 瀹㈡埛
- Caa0111 = dto.FPlanFinishDate, /// 棰勮瀹屽伐鏃堕棿澶囦唤
- Typea = dto.TypeA, /// 棰勮瀹屽伐鏃堕棿澶囦唤
+ //Caa0111 = dto.FPlanFinishDate, /// 棰勮瀹屽伐鏃堕棿澶囦唤
+ //Typea = dto.TypeA, /// 棰勮瀹屽伐鏃堕棿澶囦唤
//Typeb = dto.TypeB /// 棰勮瀹屽伐鏃堕棿澶囦唤
SynchronousDate = DateTime.Now,
DocumentStatus = dto.FDocumentStatus
};
+
+ //鏍规嵁鍗曞彿+鍗曞埆锛岃幏鍙栧搴旂殑id
+ var singleId = Db.Queryable<Womcaa>()
+ .Where(x => x.SrcBillType == dto.FSrcBillType && x.Caa001 == dto.FBillNo)
+ .Select(x => x.Erpid)
+ .First();
+
+ //濡傛灉娌℃湁鍒欑敓鎴愪竴涓柊鐨刬d
+ if (singleId == null || string.IsNullOrWhiteSpace(singleId.ToString()))
+ {
+ entity.Erpid = (int)GenerateNewId();
+ //entity.Erpid = GenerateNewId().ToString();
+ //rohIn.id = GenerateNewId().ToString("0");
+ }
+ else//濡傛灉鏈夊垯浣跨敤宸叉湁鐨刬d
+ {
+ entity.Erpid = Convert.ToInt32(singleId);
+ //entity.Erpid = singleId.ToString();
+ }
var single = base.GetSingle(it => it.Erpid == entity.Erpid);
if (single != null) entity.Guid = single.Guid;
@@ -198,8 +226,9 @@
{
Erpid = Convert.ToInt32(dto.Id), /// ERPID
Cab001 = dto.FBillNo, /// 宸ュ崟鍗曞彿
- Cab002 = Convert.ToInt32(dto.FSeq), /// 搴忓彿
- Cab003 = dto.FMaterialID, /// 鏉愭枡缂栫爜
+ //Cab002 = Convert.ToInt32(dto.FSeq), /// 搴忓彿
+ Cab002 = Convert.ToInt32(dto.FBillNoType), /// 搴忓彿
+ Cab003 = dto.FMaterialID2, /// 鏉愭枡缂栫爜
Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
? Convert.ToDecimal(dto.FNeedQty)
: null, /// 闇�棰嗙敤閲�
@@ -214,7 +243,7 @@
Lot = dto.FLot, /// 鎵瑰彿
DepotCode = dto.FStockID, /// 浠撳簱
IssueType = dto.FIssueType, /// 鍙戞枡鏂瑰紡
- // Cab008 = dto.F_UNW_Text_tpgy, /// 宸ヨ壓
+ Cab008 = dto.F_UNW_Text_tpgy, /// 宸ヨ壓
Cab009 = dto.FUnitID, /// 鍗曚綅
SupplyType = dto.FSupplyType, /// 渚涘簲绫诲瀷(C閲囪喘 Z鑷埗 W濮斿)
Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
@@ -244,13 +273,79 @@
// ParentItemName = dto.F_XIFG_Base_apv /// 鐖堕」鐗╂枡鍚嶇О
};
+ //鏍规嵁鍗曞彿+鍗曞埆+鏉愭枡鍝佸彿锛岃幏鍙栧搴旂殑id
+ var singleId = Db.Queryable<Womcab>()
+ .Where(x => x.Cab001 == dto.FBillNo && x.Cab003 == dto.FMaterialID2 && x.Cab002 == Convert.ToInt32(dto.FBillNoType))
+ .Select(x => x.Erpid)
+ .First();
+
+ if (singleId == null)//濡傛灉娌℃湁鍒欑敓鎴愪竴涓柊鐨刬d
+ {
+ //entity.EbelnK3id = GenerateNewId2().ToString();
+ womcab.Erpid = (int)GenerateNewId2();
+ }
+ else//濡傛灉鏈夊垯浣跨敤宸叉湁鐨刬d
+ {
+ //entity.EbelnK3id = singleId.EbelnK3id;
+ womcab.Erpid = singleId;
+ }
+
var entity = Db.Queryable<Womcab>()
.Where(s => s.Eid == womcab.Eid).Single();
- if (entity != null) womcab.Guid = entity.Guid;
+ if (entity != null)
+ womcab.Guid = entity.Guid;
+ else
+ womcab.Guid = Guid.NewGuid();
womcabList.Add(womcab);
}
return womcabList;
}
+
+ /// <summary>
+ /// 鐢熸垚鏂扮殑涓昏〃ID锛岀‘淇濅笉閲嶅
+ /// </summary>
+ private decimal GenerateNewId()
+ {
+ // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮�
+ var maxId = Db.Queryable<Womcaa>().Max(x => (decimal?)x.Erpid) ?? 0;
+ var newId = maxId + 1;
+
+ // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨処D涓嶅瓨鍦�
+ while (Db.Queryable<Womcaa>().Where(x => x.Erpid == newId).Any())
+ {
+ newId++;
+ }
+
+ return newId;
+ }
+
+ /// <summary>
+ /// 鐢熸垚鏂扮殑瀛愯〃ID锛岄�氳繃鏁版嵁搴撳簭鍒楄幏鍙栧敮涓�ID
+ /// </summary>
+ private decimal GenerateNewId2()
+ {
+ try
+ {
+ // 鏇挎崲涓猴細
+ var sequenceValueObj = Db.Ado.GetScalar("SELECT NEXT VALUE FOR MES_WOMCAB_IN_DATA_seq");
+ var sequenceValue = Convert.ToDecimal(sequenceValueObj);
+ // 楠岃瘉搴忓垪鍊兼槸鍚︽湁鏁�
+ if (sequenceValue <= 0)
+ {
+ throw new InvalidOperationException($"鏁版嵁搴撳簭鍒� MES_WOMCAB_IN_DATA_seq 杩斿洖浜嗘棤鏁堢殑鍊�: {sequenceValue}");
+ }
+
+ return sequenceValue;
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍寮傚父淇℃伅
+ Console.WriteLine($"璋冪敤鏁版嵁搴撳簭鍒� MES_WOMCAB_IN_DATA_seq 澶辫触: {ex.Message}");
+
+ // 鍚戜笂灞傛姏鍑烘槑纭殑寮傚父淇℃伅
+ throw new InvalidOperationException($"鐢熸垚瀛愯〃ID澶辫触锛屾棤娉曡幏鍙栨暟鎹簱搴忓垪鍊�: {ex.Message}", ex);
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3