cnf
9 天以前 8f25fecab6e6a79096b9940ab3432401b9045b39
MES.Service/service/PLM/PLMManager.cs
@@ -1,6 +1,6 @@
using Kingdee.CDP.WebApi.SDK;
using MES.Service.Dto.webApi.PLM;
using Newtonsoft.Json;
using System.Diagnostics;
using System.Text;
namespace MES.Service.service.PLM;
@@ -10,19 +10,30 @@
    public List<StdDocument> RetrieveDrawings(string ItemNo)
    {
        List<BaseObject> baseObjects = GetPlmCfgBase(ItemNo);
        List<RelatedObject> relatedObjects = GetPlmCfgRelatedObject(baseObjects[0].FID);
        Debug.WriteLine($"第一完整内容(JSON): {Newtonsoft.Json.JsonConvert.SerializeObject(baseObjects, Newtonsoft.Json.Formatting.Indented)}");
        // 检查返回结果是否为空
        if (relatedObjects == null || !relatedObjects.Any())
        if (baseObjects == null || !baseObjects.Any())
        {
            throw new NotImplementedException("返回结果为空");
        }
        List<StdDocument> stdDocuments = GetPlmStdDocument(relatedObjects);
        return stdDocuments;
        else
        {
            List<RelatedObject> relatedObjects = GetPlmCfgRelatedObject(baseObjects[0].FID);
            Debug.WriteLine($"第二完整内容(JSON): {Newtonsoft.Json.JsonConvert.SerializeObject(relatedObjects, Newtonsoft.Json.Formatting.Indented)}");
            // 检查返回结果是否为空
            if (relatedObjects == null || !relatedObjects.Any())
            {
                throw new NotImplementedException("返回结果为空");
            }
            List<StdDocument> stdDocuments = GetPlmStdDocument(relatedObjects);
            return stdDocuments;
        }
    }
    #region 1.通过物料编码(需要唯一)获取物料id
    public List<BaseObject> GetPlmCfgBase(string ItemNo)
    {
        //注意 1:此处不再使用参数形式传入用户名及密码等敏感信息,改为在登录配置文件中设置。
@@ -57,6 +68,7 @@
        };
        //调用接口
        var result = client.ExecuteBillQuery(param.ToJson());
        Debug.WriteLine($"第一个元素内容: {result}");
        return result.Select(s =>
        {
@@ -69,7 +81,9 @@
            return entity;
        }).ToList();
    }
    #endregion
    #region 2.通过物料id获取相关对象【下载需要的文档】的id
    public List<RelatedObject> GetPlmCfgRelatedObject(long? FRelatedObject)
    {
        //注意 1:此处不再使用参数形式传入用户名及密码等敏感信息,改为在登录配置文件中设置。
@@ -104,6 +118,7 @@
        };
        //调用接口
        var result = client.ExecuteBillQuery(param.ToJson());
        Debug.WriteLine(result);
        return result.Select(s =>
        {
@@ -116,7 +131,9 @@
            return entity;
        }).ToList();
    }
    #endregion
    #region 3.根据文档id获取文档物理文件id
    public List<StdDocument> GetPlmStdDocument(List<RelatedObject> relatedObjects)
    {
        //注意 1:此处不再使用参数形式传入用户名及密码等敏感信息,改为在登录配置文件中设置。
@@ -168,4 +185,5 @@
            return entity;
        }).ToList();
    }
    #endregion
}