From 8276722de62e0be1e68adf65f150686a236268bd Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期五, 18 七月 2025 10:08:44 +0800
Subject: [PATCH] 产测接口代码提交

---
 StandardPda/MES.Service/service/WomcaaManager.cs |  319 ++++++++++++++++++++++++++++------------------------
 1 files changed, 172 insertions(+), 147 deletions(-)

diff --git a/StandardPda/MES.Service/service/WomcaaManager.cs b/StandardPda/MES.Service/service/WomcaaManager.cs
index c3199ae..014a5fc 100644
--- a/StandardPda/MES.Service/service/WomcaaManager.cs
+++ b/StandardPda/MES.Service/service/WomcaaManager.cs
@@ -1,19 +1,12 @@
-锘縰sing Dm;
-using MES.Service.DB;
+锘縰sing MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
 using SqlSugar;
-using System.Net.NetworkInformation;
-using System.Runtime.CompilerServices;
 
 namespace MES.Service.service;
 
 public class WomcaaManager : Repository<Womcaa>
 {
-    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
-
-    //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 WomcaaManager.cs
-
     private readonly WomcabManager _womcabManager = new();
 
     public bool SaveList(List<ErpWOM> rohIns)
@@ -37,14 +30,13 @@
                     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}杩欎釜绫诲瀷");
+                        $"type绫诲瀷涓簕womErpCaa.Type}鐨勪笉瀛樺湪");
             }
         }) > 0;
     }
@@ -58,17 +50,38 @@
             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) return true;
-        throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+
+        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,
@@ -86,130 +99,85 @@
 
     private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
     {
-        //string jabs="0";
-
-        //var entity = new Womcaa
-        //{
-        //    Erpid = Convert.ToDecimal(dto.Id),
-        //    Caa001 = dto.FBillNo,
-        //    Caa004 = dto.FBillType,
-        //    Caa005 = dto.FConveyDate,
-        //    Caa006 = dto.FMaterialId,
-        //    Caa009 = dto.FUnitId,
-        //    Caa010 = dto.FPlanStartDate,
-        //    Caa011 = dto.FPlanFinishDate,
-        //    Caa012 = Convert.ToDecimal(dto.FQty),
-        //    Caa013 = dto.FBomId,
-        //    Caa015 = dto.FSaleOrderNo,
-        //    Caa015Head = dto.FSaleOrderEntrySeq,
-        //    Caa016 = dto.FDescription,
-        //    Caa017 = 0,
-        //    Caa018 = Convert.ToDecimal(dto.PLAN_ID),
-        //    Caa019 = dto.PLAN_SEQ,
-        //    Caa020 = dto.PLAN_NUM,
-        //    Caa021 = dto.FWorkShopID,
-        //    Fstatus = 0,
-        //    Caa022 = Convert.ToDecimal(dto.FQty),
-        //    Caa023 = dto.FStatus,
-        //    Caa024 = 0,
-        //    RoutingId = dto.FRoutingId,
-        //    WorkShopId = dto.FREMWorkShopId,
-        //    DepotCode = dto.FStockId,
-        //    CreateDate = dto.FDate,
-        //    WorkGroupId = dto.FWorkGroupId,
-        //    PlanId = dto.FPlannerID,
-        //    StockInlimith = dto.FStockInLimitH,
-        //    StockInlimitl = dto.FStockInLimitL,
-        //    Mtono = dto.FMTONO,
-        //    Lot = dto.FLot,
-        //    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,
-        //    F_ZSXG_KH = dto.F_ZSXG_KH,
-        //    F_ZJXF_YHRQ = dto.F_ZJXF_YHRQ,
-        //    PrdOrg = dto.erP_SCZZ,
-        //    TrustOrg = dto.erP_WTZZ,
-        //    TbTime = DateTime.Now,
-        //    JaBs = "0"
-        //};
-
-        //if (dto.Type == "5")
-        //{
-        //    entity.IsXg = 1;
-        //}
-        //else
-        //{
-        //    entity.IsXg = 0;
-        //}
-
-        //if (dto.FStatus == "6" || dto.FStatus == "7")
-        //{
-        //    entity.JaBs = "1";
-        //    entity.JaTime = DateTime.Now;
-        //}
-
         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, ///     鍗曚綅
+            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, ///     BOM鐗堟
+                : 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, ///     鐢熸垚鏂瑰紡
-            Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID)
-                ? Convert.ToInt32(dto.PLAN_ID)
-                : null, ///     ERP婧愬崟ID
-            Caa019 = dto.PLAN_SEQ, ///     ERP婧愬崟琛屽彿
-            Caa020 = dto.PLAN_NUM, ///     ERP婧愬崟鍗曞彿(浠诲姟鍗曞彿)
-            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, ///     澶囨敞
-            BTBZ = dto.BTBZ, ///     澶囨敞
-            PrdOrg = dto.FPrdOrgId, ///     鐢熶骇缁勭粐ID
-            TrustOrg = dto.FEnTrustOrgId, ///     濮旀墭缁勭粐ID
-            Typea = dto.TypeA, ///     鍗曟嵁鐘舵��
-
-
-            //娌冨皵鏂板
-            WR_F_SCDD_SCTZD = dto.F_SCDD_SCTZD,
-            WR_F_SCDD_XH = dto.F_SCDD_XH
+            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,
+            Typea = dto.TypeA
         };
 
 
         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;
     }
@@ -222,43 +190,100 @@
         {
             var womcab = new Womcab
             {
-                Erpid = Convert.ToDecimal(dto.ID),
+                Erpid = !string.IsNullOrEmpty(dto.ID)
+                    ? Convert.ToDecimal(dto.ID)
+                    : throw new Exception("瀛愯〃id涓嶅厑璁镐负绌�"),
                 Cab001 = dto.FBillNo,
                 Cab002 = dto.FSeq,
                 Cab003 = dto.FMaterialID,
-                Cab006 = Convert.ToDecimal(dto.FNeedQty),
-                MustQty = Convert.ToDecimal(dto.FMustQty),
-                Cab007 = Convert.ToDecimal(dto.FPickedQty),
+                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,
-                OwnerId = dto.FOwnerID,
                 Mtono = dto.FMTONO,
                 Lot = dto.FLot,
                 DepotCode = dto.FStockID,
                 IssueType = dto.FIssueType,
                 Cab009 = dto.FUnitID,
                 SupplyType = dto.FSupplyType,
-                Cab012 = Convert.ToDecimal(dto.FStdQty),
-                Freplacegroup = Convert.ToInt32(dto.FReplaceGroup),
-                UseRate = Convert.ToDecimal(dto.FUseRate),
-                MaterialType = dto.FMaterialType,
-                Cab014 = dto.FIsKeyItem,
-                Numerator = Convert.ToDecimal(dto.FNumerator),
-                Denominator = Convert.ToDecimal(dto.FDenominator),
-                Pid = Convert.ToDecimal(dto.FID),
-                Eid = Convert.ToDecimal(dto.FID),
-                SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty),
-                SCRAPRATE = Convert.ToDecimal(dto.FScrapRate),
-                Typeb = dto.TypeB,
-                WR_F_XIFG_Base_qtr = dto.F_XIFG_Base_qtr,
-                WR_F_XIFG_Base_83g = dto.F_XIFG_Base_83g
+                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_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_xm != null) womcab.Project = mesLinkU9_xm.MesId;
+
             womcabList.Add(womcab);
         }
 

--
Gitblit v1.9.3