From cbf7fc81ec9a32896a20487817c884a5b46a8dd0 Mon Sep 17 00:00:00 2001
From: sjz <1240968267@qq.com>
Date: 星期一, 10 二月 2025 15:49:42 +0800
Subject: [PATCH] 煜昌接口代码 2025/2/10

---
 MES.Service/service/WomcaaManager.cs |  170 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 113 insertions(+), 57 deletions(-)

diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index bdddbe0..121bb55 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -1,7 +1,9 @@
-锘縰sing MES.Service.DB;
+锘縰sing Dm;
+using MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
 using SqlSugar;
+using System.Net.NetworkInformation;
 
 namespace MES.Service.service;
 
@@ -22,21 +24,21 @@
     public bool Save(ErpWOM wom)
     {
         var womErpCaa = wom.ErpCaa;
-        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
-        var mesWomcabs =
-            MapErpCABtoWomcab(wom.ErpCabs);
+        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo);
+        var mesWomcabs =MapErpCABtoWomcab(wom.ErpCabs);
 
         return UseTransaction(db =>
         {
             switch (womErpCaa.Type)
             {
                 case "3":
-                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
+                    return DeleteData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
+                case "1":
                 case "2":
                 case "4":
-                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
-                        ? 1
-                        : 0;
+                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
+                case "5":
+                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                 default:
                     throw new NotImplementedException(
                         $"type娌℃湁{womErpCaa.Type}杩欎釜绫诲瀷");
@@ -44,63 +46,102 @@
         }) > 0;
     }
 
-    private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,
-        List<Womcab> mesWomcabs)
+    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs)
     {
-        if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
-
+        if (mesWomcaa.Id != null)
+        {
+            base.DeleteById(mesWomcaa.Id);
+        }
         if (mesWomcabs.Count > 0)
-            db.Deleteable<Womcab>()
-                .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
-
+        {
+            db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
+        }
         var orUpdate = base.Insert(mesWomcaa);
         var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
+        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 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 = base.Insert(mesWomcaa);
+        var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
+
         if (orUpdate && baOrUpdate) return true;
         throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
     }
 
-    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
-        List<Womcab> mesWomcabs)
+    private bool DeleteData(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;
+        var insertOrUpdate = db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0;
 
         if (update && insertOrUpdate) return true;
         throw new NotImplementedException("鏇存柊澶辫触");
     }
 
-    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
+    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string FBillNo)
     {
         var entity = new Womcaa
         {
             Erpid = Convert.ToDecimal(dto.Id),
-            Caa001 = dto.FBillNo,
-            Caa021 = dto.FWorkShopID0,
+            Caa001 = 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,
+            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,
-            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,
-            Caa015 = dto.F_UNW_Text_xsddh,
             CreateType = dto.FCreateType,
             SrcBillType = dto.FSrcBillType,
             SrcBillNo = dto.FSrcBillNo,
@@ -110,11 +151,24 @@
             ForceCloserid = dto.FForceCloserId,
             CloseType = dto.FCloseType,
             SrcSplitBillno = dto.FSrcSplitBillNo,
-            Caa016 = dto.FMemoItem,
-            Caa018 = Convert.ToDecimal(dto.planId),
-            Caa019 = Convert.ToDecimal(dto.planSeq),
-            Caa020 = dto.planNum
+            PrdOrg=dto.FPrdOrgId,
+            TrustOrg=dto.FEnTrustOrgId,
+            TbTime=DateTime.Now,
+            JaBs = "0",
+            F_WWC_BASEPROPERTY = dto.F_wwc_BaseProperty,
+            F_WWC_DATETIME = dto.F_WWC_DATETIME != null ? DateTime.ParseExact(dto.F_WWC_DATETIME, "yyyy-MM-dd HH:mm:ss", null) : null,
+            FGS = Convert.ToDecimal(dto.FGS),
+            F_WWC_DECIMAL = Convert.ToDecimal(dto.F_WWC_DECIMAL),
+            F_WWC_XB = dto.F_WWC_XB,
+            F_WWC_BASE = dto.F_WWC_BASE,
+            IsXg = 0
+
         };
+        if (dto.FStatus == "6" || dto.FStatus == "7")
+        {
+            entity.JaBs = "1";
+            entity.JaTime = DateTime.Now;
+        }
 
         var single = base.GetSingle(it => it.Erpid == entity.Erpid);
         if (single != null) entity.Id = single.Id;
@@ -130,34 +184,36 @@
         {
             var womcab = new Womcab
             {
-                Erpid = Convert.ToDecimal(dto.ID),
+                Erpid = Convert.ToDecimal(dto.Id),
                 Cab001 = dto.FBillNo,
                 Cab002 = dto.FSeq,
-                Cab003 = dto.FMaterialID2,
-                Cab006 = !string.IsNullOrEmpty(dto.FNeedQty2)
-                    ? Convert.ToDecimal(dto.FNeedQty2)
-                    : null,
-                Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
-                    ? Convert.ToDecimal(dto.FPickedQty)
-                    : null,
+                Cab003 = dto.FMaterialID,
+                Cab006 = Convert.ToDecimal(dto.FMustQty),
+                Cab007 = Convert.ToDecimal(dto.FPickedQty),
+                Cab009 = dto.FUnitID,
+                Cab012 = Convert.ToDecimal(dto.FStdQty),
+                Cab014 = dto.FIsKeyItem,
+                Pid = Convert.ToDecimal(dto.Pid),
+                Eid = Convert.ToDecimal(dto.Pid),
                 PositionNo = dto.FPositionNO,
+                IssuingOrganization=dto.FSupplyOrg,
+                SupplyOrganization=dto.FChildSupplyOrgId,
                 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,
-                Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
-                    ? Convert.ToDecimal(dto.FStdQty)
-                    : null,
-                Cab014 = dto.FIsKeyItem,
-                Numerator = dto.FNumerator,
-                Denominator = dto.FDenominator,
-                Eid = Convert.ToDecimal(dto.PID),
+                Numerator = Convert.ToDecimal(dto.FNumerator),
+                Denominator = Convert.ToDecimal(dto.FDenominator),
                 SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty),
-                SCRAPRATE = Convert.ToDecimal(dto.FScrapRate)
+                SCRAPRATE = Convert.ToDecimal(dto.FScrapRate),
+                SalesOrder = dto.F_WWC_TEXT,
+                F_WWC_TEXT1 = dto.F_WWC_TEXT1,
+                F_WWC_DATE = dto.F_WWC_DATE != null ? DateTime.ParseExact(dto.F_WWC_DATE, "yyyy-MM-dd HH:mm:ss", null) : null,
+                F_WWC_BASEPROPERTY = dto.F_wwc_BaseProperty,
+                FUSERATE = dto.FUseRate,
+                FMATERIALTYPE = dto.FMaterialType
             };
 
             var entity = Db.Queryable<Womcab>()

--
Gitblit v1.9.3