From 69e9f4f7ea3467e4030b60200705a750598827b6 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期一, 23 十二月 2024 13:21:18 +0800
Subject: [PATCH] 11
---
MES.Service/service/WomcaaManager.cs | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 221 insertions(+), 0 deletions(-)
diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
new file mode 100644
index 0000000..e88f9fb
--- /dev/null
+++ b/MES.Service/service/WomcaaManager.cs
@@ -0,0 +1,221 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+
+namespace MES.Service.service;
+
+public class WomcaaManager : Repository<Womcaa>
+{
+ //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+
+ //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomcaaManager.cs
+
+ private readonly WomcabManager _womcabManager = new();
+
+ public bool SaveList(List<ErpWOM> rohIns)
+ {
+ var result = rohIns.Select(Save).ToList();
+ return result.All(b => b);
+ }
+
+ public bool Save(ErpWOM wom)
+ {
+ var womErpCaa = wom.ErpCaa;
+ var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
+ var mesWomcabs =
+ MapErpCABtoWomcab(wom.ErpCabs);
+
+ return UseTransaction(db =>
+ {
+ switch (womErpCaa.Type)
+ {
+ case "3":
+ return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
+ case "2":
+ case "4":
+ //kyy 2024-09-13 鍙樻洿
+ case "5":
+ return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
+ ? 1
+ : 0;
+ default:
+ throw new NotImplementedException(
+ $"type娌℃湁{womErpCaa.Type}杩欎釜绫诲瀷");
+ }
+ }) > 0;
+ }
+
+ private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,
+ List<Womcab> mesWomcabs)
+ {
+ if (StringUtil.CheckGuid(mesWomcaa.Guid))
+ base.DeleteById(mesWomcaa.Guid);
+
+
+ if (mesWomcabs.Count > 0)
+ db.Deleteable<Womcab>()
+ .Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand();
+
+ //鍗曟潯鎻掑叆蹇界暐绌哄瓧娈�
+ var orUpdate = db.Insertable(mesWomcaa)
+ .IgnoreColumns(true).ExecuteCommand() > 0;
+
+ //鎵归噺鎻掑叆蹇界暐绌哄瓧娈�
+ var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1)
+ .IgnoreColumnsNull()
+ .ExecuteCommand() > 0;
+
+ if (orUpdate && baOrUpdate) return true;
+ throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+ }
+
+ private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
+ List<Womcab> mesWomcabs)
+ {
+ var decimals = mesWomcabs.Select(s => s.Guid).ToArray();
+ var update = base.DeleteById(mesWomcaa.Guid);
+ var insertOrUpdate = db
+ .Deleteable<Womcab>().In(decimals)
+ .ExecuteCommand() > 0;
+
+ if (update && insertOrUpdate) return true;
+ throw new NotImplementedException("鏇存柊澶辫触");
+ }
+
+ private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
+ {
+ var entity = new Womcaa
+ {
+ Erpid = Convert.ToInt32(dto.Id), /// ERPID
+ Caa001 = dto.FBillNo, /// 鍗曞彿
+ Caa021 = dto.FWorkShopID, /// 宸ヤ綔杞﹂棿
+ RoutingId = dto.FRoutingId, /// 宸ヨ壓璺嚎
+ WorkShopId = dto.FREMWorkShopId, /// 浜х嚎
+ DepotCode = dto.FStockId, /// 浠撳簱
+ CreateDate = dto.FDate, /// 鍗曟嵁鏃ユ湡
+ Caa004 = dto.FBILLTYPE, /// 鍗曟嵁绫诲瀷
+ Caa023 = dto.FStatus, /// 鐘舵�� 瀹屽伐锛屾湭瀹屽伐
+ Caa006 = dto.FMaterialId, /// 浜у搧缂栫爜
+ Caa009 = dto.FUnitId, /// 鍗曚綅
+ Caa012 = !string.IsNullOrEmpty(dto.FQty)
+ ? Convert.ToDecimal(dto.FQty)
+ : null, /// 鏁伴噺
+ WorkGroupId = dto.FWorkGroupId, /// 璁″垝缁�
+ PlanId = dto.FPlannerID, /// 璁″垝鍛�
+ Caa010 = dto.FPlanStartDate, /// 棰勮寮�宸ユ椂闂�
+ Caa011 = dto.FPlanFinishDate, /// 棰勮瀹屽伐鏃堕棿
+ Caa005 = dto.FConveyDate, /// 寮�鍗曟棩鏈�
+ StockInlimith = dto.FStockInLimitH, /// 鍏ュ簱涓婇檺
+ StockInlimitl = dto.FStockInLimitL, /// 鍏ュ簱涓嬮檺
+ Mtono = dto.FMTONO, /// 璁″垝璺熻釜鍙�
+ Lot = dto.FLot, /// 鎵瑰彿
+ Caa013 = dto.FBomId, /// BOM鐗堟
+
+ 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)
+ : null, /// ERP婧愬崟ID
+ Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ)
+ ? Convert.ToInt32(dto.PLAN_SEQ)
+ : null, /// ERP婧愬崟琛屽彿
+ Caa020 = dto.PLAN_NUM, /// ERP婧愬崟鍗曞彿(浠诲姟鍗曞彿)
+ //Caa015 = dto.F_UNW_Text_xsddh, /// 閿�鍞鍗曞彿
+ 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), /// 涓讳骇鍝佺敓浜ф暟閲�
+ // CustomerItemNumber = dto.F_XIFG_Text_fg2, /// 瀹㈡埛璐у彿
+ // PackingListNumber = dto.F_XIFG_Text_yrr, /// 鍖呰鍗曞彿
+ // CustomerName = dto.F_XIFG_Text_qtr1, /// 瀹㈡埛鍚嶇О
+ // Customer = dto.F_XIFG_Base_83g1, /// 瀹㈡埛
+ Caa0111 = dto.FPlanFinishDate, /// 棰勮瀹屽伐鏃堕棿澶囦唤
+ Typea = dto.TypeA /// 棰勮瀹屽伐鏃堕棿澶囦唤
+ //Typeb = dto.TypeB /// 棰勮瀹屽伐鏃堕棿澶囦唤
+ };
+
+ var single = base.GetSingle(it => it.Erpid == entity.Erpid);
+ if (single != null) entity.Guid = single.Guid;
+
+ return entity;
+ }
+
+ private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList)
+ {
+ var womcabList = new List<Womcab>();
+
+ foreach (var dto in dtoList)
+ {
+ var womcab = new Womcab
+ {
+ Erpid = Convert.ToInt32(dto.Id), /// ERPID
+ Cab001 = dto.FBillNo, /// 宸ュ崟鍗曞彿
+ Cab002 = Convert.ToInt32(dto.FSeq), /// 搴忓彿
+ Cab003 = dto.FMaterialID, /// 鏉愭枡缂栫爜
+ Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
+ ? Convert.ToDecimal(dto.FNeedQty)
+ : null, /// 闇�棰嗙敤閲�
+ Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
+ ? Convert.ToInt32(dto.FPickedQty)
+ : null, /// 宸查鐢ㄩ噺
+ PositionNo = dto.FPositionNO, /// 浣嶇疆鍙�
+ SupplyOrganization = dto.FChildSupplyOrgId, /// 渚涘簲缁勭粐
+ IssuingOrganization = dto.FSUPPLYORG, /// 鍙戞枡缁勭粐
+ OwnerId = dto.FOwnerID, /// 璐т富
+ Mtono = dto.FMTONO, /// 璁″垝璺熻釜鍙�
+ Lot = dto.FLot, /// 鎵瑰彿
+ DepotCode = dto.FStockID, /// 浠撳簱
+ IssueType = dto.FIssueType, /// 鍙戞枡鏂瑰紡
+ // Cab008 = dto.F_UNW_Text_tpgy, /// 宸ヨ壓
+ Cab009 = dto.FUnitID, /// 鍗曚綅
+ SupplyType = dto.FSupplyType, /// 渚涘簲绫诲瀷(C閲囪喘 Z鑷埗 W濮斿)
+ Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
+ ? Convert.ToDecimal(dto.FStdQty)
+ : null, /// 缁勬垚鐢ㄩ噺
+ Cab014 = dto.FIsKeyItem, /// 鏄惁鏇挎枡
+ Numerator = dto.FNumerator, /// 鍒嗗瓙
+ Denominator = dto.FDenominator, /// 鍒嗘瘝
+ Pid = Convert.ToInt32(dto.PID), /// ERP澶碔D
+ Eid = Convert.ToInt32(dto.Id), /// ERP ID
+
+ Scrapqty = dto.FFixScrapQty, /// 鍥哄畾鎹熻��
+ Scraprate = dto.FScrapRate, /// 鍙樺姩鎹熻�楃巼
+ Freplacegroup = Convert.ToInt32(dto.FReplaceGroup),
+ UseRate = Convert.ToDecimal(dto.FUseRate),
+ MaterialType = dto.FMaterialType,
+ MustQty = Convert.ToDecimal(dto.FMustQty),
+ Typeb = dto.TypeB
+ // Fsaleorderno = dto.FSALEORDERNO, /// 閿�鍞鍗�
+ //
+ // CustomerItemNumber = dto.F_XIFG_Text_re5, /// 瀹㈡埛璐у彿
+ // PackingListNumber = dto.F_XIFG_Text_apv, /// 鍖呰鍗曞彿
+ // MainProduct = dto.F_XIFG_Base_re5, /// 涓讳骇鍝�
+ // MainProductQty =
+ // Convert.ToInt32(dto.F_XIFG_Qty_apv), /// 涓讳骇鍝佹暟閲�
+ // ParentItemName = dto.F_XIFG_Base_apv /// 鐖堕」鐗╂枡鍚嶇О
+ };
+
+ var entity = Db.Queryable<Womcab>()
+ .Where(s => s.Eid == womcab.Eid).Single();
+ if (entity != null) womcab.Guid = entity.Guid;
+
+ womcabList.Add(womcab);
+ }
+
+ return womcabList;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3