From acaf02b70fca22bb94e6ae01aac048e6625a6df6 Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期三, 26 十一月 2025 16:46:58 +0800
Subject: [PATCH] 【平板端质检功能】去掉没有的功能,将现有的功能按指定顺序显示
---
StandardPda/MES.Service/service/WomcaaManager.cs | 300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 300 insertions(+), 0 deletions(-)
diff --git a/StandardPda/MES.Service/service/WomcaaManager.cs b/StandardPda/MES.Service/service/WomcaaManager.cs
new file mode 100644
index 0000000..29f7dd7
--- /dev/null
+++ b/StandardPda/MES.Service/service/WomcaaManager.cs
@@ -0,0 +1,300 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service;
+
+public class WomcaaManager : Repository<Womcaa>
+{
+ 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":
+ 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 (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
+
+ if (mesWomcabs.Count > 0)
+ db.Deleteable<Womcab>()
+ .Where(s => s.Eid == 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)
+ {
+ //瀹氫箟杈撳叆鍙傛暟
+ var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001);
+ // 瀹氫箟杈撳嚭鍙傛暟
+ var outParam1 = new SugarParameter("c_Result", null, true);
+ var outParam2 = new SugarParameter("C_MSG", null, true);
+ // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+ Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;", inputParam1, outParam1, outParam2);
+ // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+ int result = int.Parse((string)outParam1.Value);
+ string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
+ if (result == 1)
+ {
+ //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
+ //db.Ado.RollbackTran();
+ throw new Exception(message);
+ }
+ // 鎻愪氦浜嬪姟
+ //db.Ado.CommitTran();
+ return true;
+ }
+
+ throw new NotImplementedException("鏇存柊澶辫触");
+ }
+
+ private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
+ List<Womcab> mesWomcabs)
+ {
+ var decimals = mesWomcabs.Select(s => s.Id).ToArray();
+ var update = base.DeleteById(mesWomcaa.Id);
+ 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.ToInt64(dto.Id),
+ Caa001 = dto.FBillNo,
+ Caa021 = dto.FWorkShopID,
+ 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,
+
+ CreateType = dto.FCreateType,
+ Caa020 = dto.FBillNo,
+ 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,
+ PrdOrg = dto.FPrdOrgId,
+ TrustOrg = dto.FEnTrustOrgId,
+ Bomtype = dto.FBOMType,
+ Bommaster = dto.FBOMMaster,
+ Bomaltrnate = dto.FBOMAlternate,
+ Bomeffedate = dto.FBOMEffeDate,
+ Routingalternate = dto.FRoutingAlternate,
+ Routingeffedate = dto.FRoutingEffeDate,
+ Mrpqty = dto.FMRPQty,
+ Actualstartdate = dto.FActualStartDate,
+ Actualcompletedate = dto.FActualCompleteDate,
+ Mosourcedoctype = dto.FMOSourceDocType,
+ Project = dto.FProject,
+ Ownerorg = dto.FOwnerOrg,
+ Createdby = dto.FCreatedBy,
+ Createdon = dto.FCreatedOn,
+ Totalstartqty = dto.FTotalStartQty,
+ Totalcompleteqty = dto.FTotalCompleteQty,
+ Totalrcvqty = dto.FTotalRcvQty,
+ Totalreworkingqty = dto.FTotalReworkingQty,
+ Reasonforrework = dto.FReasonForRework,
+ Isforcewholeset = dto.FIsForceWholeSet,
+ PREVMO = dto.FPrevMO,
+ TsDate = DateTime.Now,
+ Typea = dto.TypeA,
+ ISCANCEL = dto.FIsCancel
+ };
+
+
+ var single = base.GetSingle(it => it.Erpid == entity.Erpid);
+ if (single != null) entity.Id = single.Id;
+
+ //Caa006 = dto.FMaterialId,
+ var mesLinkU9 = Db.Queryable<MesLinkU9>()
+ .Where(x => x.U9Id == dto.FMaterialId
+ && x.OrgId == dto.FPrdOrgId
+ && x.TableType == "MES_ITEMS").First();
+
+ var mesLinkU9_xm = Db.Queryable<MesLinkU9>()
+ .Where(x => x.U9Id == Convert.ToString(dto.FProject)
+ && x.OrgId == dto.FPrdOrgId
+ && x.TableType == "MES_PROJECT").First();
+
+ if (mesLinkU9 != null) entity.Caa006 = mesLinkU9.MesId;
+ if (mesLinkU9_xm != null) entity.Project = Convert.ToInt64(mesLinkU9_xm.MesId);
+
+ return entity;
+ }
+
+ private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList)
+ {
+ var womcabList = new List<Womcab>();
+
+ foreach (var dto in dtoList)
+ {
+ var womcab = new Womcab
+ {
+ Erpid = !string.IsNullOrEmpty(dto.ID)
+ ? Convert.ToDecimal(dto.ID)
+ : throw new Exception("瀛愯〃id涓嶅厑璁镐负绌�"),
+ Cab001 = dto.FBillNo,
+ Cab002 = dto.FSeq,
+ Cab003 = dto.FMaterialID,
+ Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
+ ? Convert.ToDecimal(dto.FNeedQty)
+ : null,
+ MustQty = !string.IsNullOrEmpty(dto.FMustQty)
+ ? Convert.ToDecimal(dto.FMustQty)
+ : null,
+ Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
+ ? Convert.ToDecimal(dto.FPickedQty)
+ : null,
+ PositionNo = dto.FPositionNO,
+ SupplyOrganization = dto.FChildSupplyOrgId,
+ IssuingOrganization = dto.FSupplyOrg,
+ Mtono = dto.FMTONO,
+ Lot = dto.FLot,
+ DepotCode = dto.FStockID,
+ IssueType = dto.FIssueType,
+ Cab009 = dto.FUnitID,
+ SupplyType = dto.FSupplyType,
+ Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
+ ? Convert.ToDecimal(dto.FStdQty)
+ : null,
+ FreplaceGroup = !string.IsNullOrEmpty(dto.FReplaceGroup)
+ ? Convert.ToInt64(dto.FReplaceGroup)
+ : null,
+ UseRate = !string.IsNullOrEmpty(dto.FUseRate)
+ ? Convert.ToDecimal(dto.FUseRate)
+ : null,
+
+ Cab014 = !string.IsNullOrEmpty(dto.FIsKeyItem)
+ ? Convert.ToInt64(dto.FIsKeyItem)
+ : null,
+ Numerator = !string.IsNullOrEmpty(dto.FNumerator)
+ ? Convert.ToDecimal(dto.FNumerator)
+ : null,
+ Denominator = !string.IsNullOrEmpty(dto.FDenominator)
+ ? Convert.ToDecimal(dto.FDenominator)
+ : null,
+ Pid = !string.IsNullOrEmpty(dto.FID)
+ ? Convert.ToDecimal(dto.FID)
+ : throw new Exception("鐖秈d涓嶅厑璁镐负绌�"),
+ Eid = !string.IsNullOrEmpty(dto.FID)
+ ? Convert.ToDecimal(dto.FID)
+ : throw new Exception("鐖秈d涓嶅厑璁镐负绌�"),
+ Scrapqty = !string.IsNullOrEmpty(dto.FFixScrapQty)
+ ? Convert.ToDecimal(dto.FFixScrapQty)
+ : null,
+ Scraprate = !string.IsNullOrEmpty(dto.FScrapRate)
+ ? Convert.ToDecimal(dto.FScrapRate)
+ : null,
+ Project = dto.FProject,
+ Bomreqqty = dto.FBOMReqQty,
+ Materialtype = dto.FMaterialType,
+ IsOverIssue = dto.FIsOverIssue,
+ StandardMaterialscale = dto.FStandardMaterialScale,
+ Fixedmaterialnum = dto.FFixedMaterialNum,
+ IsSubstitute = dto.FIsSubstitute,
+ Substituteditem = dto.FSubstitutedItem,
+ Issueuom = dto.FIssueUOM,
+ Qpa = dto.FQPA,
+ Scraptype = dto.FScrapType,
+ Bfopportunity = dto.FBFOpportunity,
+ Supplywh = dto.FSupplyWh,
+ Mocompletesetcheck = dto.FMOCompleteSetCheck,
+ Mostartsetcheck = dto.FMOStartSetCheck,
+ Iscoupleissue = dto.FIsCoupleIssue,
+ FDescription = dto.FDescription,
+ TypeB = dto.TypeB
+
+ };
+
+ var entity = Db.Queryable<Womcab>()
+ .Where(s => s.Erpid == womcab.Erpid).Single();
+ if (entity != null) womcab.Id = entity.Id;
+
+ //Cab003 = dto.FMaterialID
+ var mesLinkU9 = Db.Queryable<MesLinkU9>()
+ .Where(x => x.U9Id == dto.FMaterialID
+ && x.OrgId == "1002011210000095"
+ && x.TableType == "MES_ITEMS").First();
+
+ var mesLinkU9_TDL = Db.Queryable<MesLinkU9>()
+ .Where(x => x.U9Id == Convert.ToString(dto.FSubstitutedItem)
+ && x.OrgId == "1002011210000095"
+ && x.TableType == "MES_ITEMS").First();
+
+ var mesLinkU9_xm = Db.Queryable<MesLinkU9>()
+ .Where(x => x.U9Id == Convert.ToString(dto.FProject)
+ && x.OrgId == "1002011210000095"
+ && x.TableType == "MES_PROJECT").First();
+
+ if (mesLinkU9 != null) womcab.Cab003 = mesLinkU9.MesId;
+ if (mesLinkU9_TDL != null) womcab.Substituteditem = Convert.ToInt64(mesLinkU9_TDL.MesId);
+ if (mesLinkU9_xm != null) womcab.Project = mesLinkU9_xm.MesId;
+
+ womcabList.Add(womcab);
+ }
+
+ return womcabList;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3