From b3cbeec348e826813c176340f1b0010bb2ece2cd Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期三, 12 二月 2025 16:13:55 +0800
Subject: [PATCH] 新增销售订单保存接口,销售退货通知单保存接口,销售发货通知单保存接口

---
 MES.Service/service/PLM/PLMManager.cs |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 112 insertions(+), 3 deletions(-)

diff --git a/MES.Service/service/PLM/PLMManager.cs b/MES.Service/service/PLM/PLMManager.cs
index 315c03b..eb82984 100644
--- a/MES.Service/service/PLM/PLMManager.cs
+++ b/MES.Service/service/PLM/PLMManager.cs
@@ -7,9 +7,19 @@
 
 public class PLMManager
 {
-    public List<BaseObject> RetrieveDrawings(string ItemNo)
+    public List<StdDocument> RetrieveDrawings(string ItemNo)
     {
-        return GetPlmCfgBase(ItemNo);
+        List<BaseObject> baseObjects = GetPlmCfgBase(ItemNo);
+
+        List<RelatedObject> relatedObjects = GetPlmCfgRelatedObject(baseObjects[0].FID);
+
+        // 妫�鏌ヨ繑鍥炵粨鏋滄槸鍚︿负绌�
+        if (relatedObjects == null || !relatedObjects.Any())
+        {
+            throw new NotImplementedException("杩斿洖缁撴灉涓虹┖");
+        }
+        List<StdDocument> stdDocuments = GetPlmStdDocument(relatedObjects);
+        return stdDocuments;
     }
 
 
@@ -29,7 +39,7 @@
         //string fieldKeys = "FCode,FFileId,FRelevantObject";
         //string FilterString = "FID='-2146304'";
         string fieldKeys = "FID,FCode,FName";
-        string FilterString = "FCode='5.03.14.1414'";
+        string FilterString = string.Format(@"FCode='{0}'", ItemNo);
         string OrderString = "";
         int TopRowCount = 0;
         int StartRow = 0;
@@ -59,4 +69,103 @@
             return entity;
         }).ToList();
     }
+
+    public List<RelatedObject> GetPlmCfgRelatedObject(long? FRelatedObject)
+    {
+        //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃��
+        //娉ㄦ剰 2锛氬繀椤诲厛閰嶇疆绗笁鏂圭郴缁熺櫥褰曟巿鏉冧俊鎭悗锛屽啀杩涜涓氬姟鎿嶄綔锛岃鎯呭弬鑰冨悇璇█鐗堟湰SDK浠嬬粛涓殑鐧诲綍閰嶇疆鏂囦欢璇存槑銆�
+        //璇诲彇閰嶇疆锛屽垵濮嬪寲SDK
+        K3CloudApi client = new K3CloudApi();
+        //鐢ㄤ簬璁板綍缁撴灉
+        StringBuilder Info = new StringBuilder();
+        //涓氬姟瀵硅薄鏍囪瘑
+        //string formId = "PLM_STD_DOCUMENT";
+        string formId = "PLM_CFG_RELATEDOBJECT";
+        DateTime dt = DateTime.Now;
+        //鏌ヨ瀛楁闆嗗悎锛屽嵆杩斿洖鍝簺鏁版嵁锛屼笉鑳戒负绌猴紝鏍规嵁涓嶅悓涓氬姟鍗曟嵁濉啓涓嶅悓鐨勫瓧娈靛悕锛屼互涓嬩粎涓虹ず渚�
+        //string fieldKeys = "FCode,FFileId,FRelevantObject";
+        //string FilterString = "FID='-2146304'";
+        string fieldKeys = "FID,FRE_FCode,FRelatedObject";
+        string FilterString = string.Format(@"FRelatedObject='{0}'", FRelatedObject);
+        string OrderString = "";
+        int TopRowCount = 0;
+        int StartRow = 0;
+        int Limit = 0;
+
+        var param = new QueryParam()
+        {
+            FormId = formId,
+            FieldKeys = fieldKeys,
+            FilterString = FilterString,
+            OrderString = OrderString,
+            TopRowCount = TopRowCount,
+            StartRow = StartRow,
+            Limit = Limit
+        };
+        //璋冪敤鎺ュ彛
+        var result = client.ExecuteBillQuery(param.ToJson());
+
+        return result.Select(s =>
+        {
+            var entity = new RelatedObject
+            {
+                FID = (long)s[0],
+                FRE_FCode = (string)s[1],
+                FRelatedObject = (long)s[2],
+            };
+            return entity;
+        }).ToList();
+    }
+
+    public List<StdDocument> GetPlmStdDocument(List<RelatedObject> relatedObjects)
+    {
+        //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃��
+        //娉ㄦ剰 2锛氬繀椤诲厛閰嶇疆绗笁鏂圭郴缁熺櫥褰曟巿鏉冧俊鎭悗锛屽啀杩涜涓氬姟鎿嶄綔锛岃鎯呭弬鑰冨悇璇█鐗堟湰SDK浠嬬粛涓殑鐧诲綍閰嶇疆鏂囦欢璇存槑銆�
+        //璇诲彇閰嶇疆锛屽垵濮嬪寲SDK
+        K3CloudApi client = new K3CloudApi();
+        //鐢ㄤ簬璁板綍缁撴灉
+        StringBuilder Info = new StringBuilder();
+        //涓氬姟瀵硅薄鏍囪瘑
+        string formId = "PLM_STD_DOCUMENT";
+        DateTime dt = DateTime.Now;
+        //鏌ヨ瀛楁闆嗗悎锛屽嵆杩斿洖鍝簺鏁版嵁锛屼笉鑳戒负绌猴紝鏍规嵁涓嶅悓涓氬姟鍗曟嵁濉啓涓嶅悓鐨勫瓧娈靛悕锛屼互涓嬩粎涓虹ず渚�
+        string fieldKeys = "FID,FCode,FName,FPhysicalFileName,FFileId,FRelevantObject";
+        // 鎻愬彇 FID 鍊�
+        var fidList = relatedObjects.Select(obj => obj.FID.ToString()).ToList();
+        // 灏� FID 鍊肩敤閫楀彿鍒嗛殧锛屽苟鍖呰9鍦ㄥ崟寮曞彿涓�
+        string fids = string.Join(",", fidList.Select(fid => $"'{fid}'"));
+        // 鏋勫缓 FilterString
+        string FilterString = $"FID in ({fids})";
+        string OrderString = "";
+        int TopRowCount = 0;
+        int StartRow = 0;
+        int Limit = 0;
+
+        var param = new QueryParam()
+        {
+            FormId = formId,
+            FieldKeys = fieldKeys,
+            FilterString = FilterString,
+            OrderString = OrderString,
+            TopRowCount = TopRowCount,
+            StartRow = StartRow,
+            Limit = Limit
+        };
+        //璋冪敤鎺ュ彛
+        var result = client.ExecuteBillQuery(param.ToJson());
+
+        return result.Select(s =>
+        {
+            var entity = new StdDocument
+            {
+                FID = (long)s[0],
+                FCode = (string)s[1],
+                FName = (string)s[2],
+                FPhysicalFileName = (string)s[3],
+                FFileId = (string)s[4],
+                FRelevantObject = (string)s[5],
+            };
+            return entity;
+        }).ToList();
+    }
 }

--
Gitblit v1.9.3