From d016d7ff02586fb9535baef4916cd339e18c7867 Mon Sep 17 00:00:00 2001
From: cdk <2441919651@qq.com>
Date: 星期一, 22 十二月 2025 09:48:52 +0800
Subject: [PATCH] 增加新称重后端

---
 service/Warehouse/MesSuppScManager.cs |   71 +++++++++++++++++++++++++++++------
 1 files changed, 58 insertions(+), 13 deletions(-)

diff --git a/service/Warehouse/MesSuppScManager.cs b/service/Warehouse/MesSuppScManager.cs
index 20e7b6d..452ff9e 100644
--- a/service/Warehouse/MesSuppScManager.cs
+++ b/service/Warehouse/MesSuppScManager.cs
@@ -1,5 +1,4 @@
-锘�
-using Kingdee.CDP.WebApi.SDK;
+锘縰sing Kingdee.CDP.WebApi.SDK;
 using MES.Service.Models;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc.Filters;
@@ -11,6 +10,7 @@
 using Newtonsoft.Json.Linq;
 using SqlSugar;
 using System.Text;
+using System.Net.Http;
 
 namespace MES.Service.service.Warehouse;
 
@@ -20,7 +20,7 @@
     private const string SourceUrl = "https://qixizhaopin.modaniot.com:8443/wetchat/ToGSMesServlet?password=gsmes";
 
     /// <summary>
-    /// 浠庢寚瀹氱綉鍧�璇诲彇 JSON 鏁版嵁骞朵繚瀛樺埌 MES_SUPPSCORE 琛�
+    /// 浠庢寚瀹氱綉鍧�璇诲彇 JSON 鏁版嵁骞朵繚瀛樺埌 MES_SUPPSCORE锛堜富锛夊拰 MES_SUPPSCORE_DETAIL锛堝瓙锛夎〃
     /// </summary>
     public bool FetchAndSaveFromUrl()
     {
@@ -28,7 +28,6 @@
         try
         {
             using var http = new HttpClient();
-            // 鍙牴鎹渶瑕佽缃秴鏃�
             http.Timeout = TimeSpan.FromSeconds(30);
             json = http.GetStringAsync(SourceUrl).Result;
         }
@@ -54,35 +53,81 @@
         if (data == null || data.Count == 0)
             throw new Exception("JSON 涓湭鍖呭惈 data 鎴� data 涓虹┖");
 
-        var list = new List<MesSuppSc>();
+        var mains = new List<MesSuppSc>();
+        var details = new List<MesSuppScDetail>();
+
         foreach (var item in data)
         {
-            var rq = item["rq"]?.ToString();
             var gysmc = item["gysmc"]?.ToString();
             var zf = item["zf"]?.ToString();
+            var xmdfStr = item["xmdf"]?.ToString();
 
             decimal? zfDec = null;
             if (!string.IsNullOrWhiteSpace(zf) && decimal.TryParse(zf, out var tmp))
                 zfDec = tmp;
 
-            list.Add(new MesSuppSc
+            var mainId = Guid.NewGuid();
+            mains.Add(new MesSuppSc
             {
-                ID = Guid.NewGuid(),
-                SuppDate = rq,
+                ID = mainId,
+                SuppDate = null, // 鑻� JSON 鍖呭惈鏃ユ湡瀛楁锛屽彲鍦ㄦ濉厖
                 SuppName = gysmc,
                 SuppNum = zfDec
             });
+
+            // 瑙f瀽瀛愯〃 xmdf 瀛楃涓诧紙xmdf 鏈韩鏄竴涓� JSON 瀛楃涓诧級
+            if (!string.IsNullOrWhiteSpace(xmdfStr))
+            {
+                try
+                {
+                    var subArr = JArray.Parse(xmdfStr);
+                    foreach (var sub in subArr)
+                    {
+                        var xm1 = sub["xm1"]?.ToString();
+                        var xm2 = sub["xm2"]?.ToString();
+                        var dykhdf = sub["dykhdf"]?.ToString();
+
+                        decimal? score = null;
+                        if (!string.IsNullOrWhiteSpace(dykhdf) && decimal.TryParse(dykhdf, out var s))
+                            score = s;
+
+                        details.Add(new MesSuppScDetail
+                        {
+                            ID = Guid.NewGuid(),
+                            PID = mainId,
+                            XM1 = xm1,
+                            XM2 = xm2,
+                            DYKHDF = score
+                        });
+                    }
+                }
+                catch (Exception ex)
+                {
+                    // 蹇界暐鍗曟潯瑙f瀽閿欒锛屼絾璁板綍寮傚父淇℃伅
+                    Console.WriteLine($"瑙f瀽 xmdf 澶辫触锛堜緵搴斿晢 {gysmc}锛�: {ex.Message}");
+                }
+            }
         }
 
-        // 鍐欏叆鏁版嵁搴擄細鍏堟竻绌鸿〃鍐嶆彃鍏ワ紙鎸夊師閫昏緫锛�
+        // 鍐欏叆鏁版嵁搴擄細浜嬪姟鍐呭厛鍒犻櫎鏃ф暟鎹啀鎻掑叆鏂版暟鎹�
         var result = UseTransaction(db =>
         {
-            // 娉ㄦ剰锛氳繖閲屼娇鐢ㄤ紶鍏ョ殑 db锛圫qlSugarScope锛夋墽琛屽師瀛愭搷浣�
+            // 鍏堟竻瀛愯〃锛屽啀娓呬富琛�
+            db.Deleteable<MesSuppScDetail>().ExecuteCommand();
             db.Deleteable<MesSuppSc>().ExecuteCommand();
-            var inserted = db.Insertable(list).ExecuteCommand();
-            return inserted > 0 ? 1 : 0;
+
+            var mainInserted = 0;
+            if (mains.Count > 0)
+                mainInserted = db.Insertable(mains).ExecuteCommand();
+
+            var detailInserted = 0;
+            if (details.Count > 0)
+                detailInserted = db.Insertable(details).ExecuteCommand();
+
+            return (mainInserted + detailInserted) > 0 ? 1 : 0;
         }) > 0;
 
         return result;
     }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3