cnf
2025-03-24 0529fdff6aec54e5af03e69af16bfe73139ee46c
MES.Service/service/ProductionOrder/ProductionOrderManager.cs
@@ -73,7 +73,7 @@
        return new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client(config);
    }
    public string GetSpaceId()
    public string GetProductionDetail( string InstanceId)
    {
        string accessToken = GetToken();
        if (string.IsNullOrEmpty(accessToken))
@@ -81,18 +81,48 @@
            return "获取 Access Token 失败";
        }
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClientOa();
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceHeaders getAttachmentSpaceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceHeaders();
        getAttachmentSpaceHeaders.XAcsDingtalkAccessToken = accessToken;
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceRequest getAttachmentSpaceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetAttachmentSpaceRequest
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceHeaders getProcessInstanceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceHeaders();
        getProcessInstanceHeaders.XAcsDingtalkAccessToken = accessToken;
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceRequest getProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetProcessInstanceRequest
        {
            UserId = "923188102",
            AgentId = 3179487642,
            ProcessInstanceId = InstanceId,
        };
        try
        {
            var response = client.GetAttachmentSpaceWithOptions(getAttachmentSpaceRequest, getAttachmentSpaceHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
            var response = client.GetProcessInstanceWithOptions(getProcessInstanceRequest, getProcessInstanceHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            // 将响应体转换为 JSON 字符串
            var responseJson = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
            // 解析 JSON 字符串为动态对象
            dynamic responseObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseJson);
            // 查找 "生产制造单" 对应的 Value
            string fileId = null;
            foreach (var formValue in responseObj.Result.FormComponentValues)
            {
                if (formValue.Name == "生产制造单" && formValue.Value != null)
                {
                    // 解析 Value 中的 JSON 数组
                    var fileInfoArray = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FileInfoProduction>>(formValue.Value.ToString());
                    if (fileInfoArray != null && fileInfoArray.Count > 0)
                    {
                        fileId = fileInfoArray[0].fileId; // 提取第一个文件的 fileId
                        break;
                    }
                }
            }
            Debug.WriteLine(fileId);
            var result = GetDownloadUrl(fileId, InstanceId);
            return (Newtonsoft.Json.JsonConvert.SerializeObject(result));
        }
        catch (TeaException err)
        {
@@ -103,16 +133,9 @@
            return $"Exception: {_err.Message}";
        }
     }
    public string GetProcessList()
    public string GetDownloadUrl(string fileId, string InstanceId)
    {
        DateTime targetTime = new DateTime(2025, 3, 10, 0, 0, 0, DateTimeKind.Utc);
        // 转换为 Unix 时间戳
        long unixTimestamp = ((DateTimeOffset)targetTime).ToUnixTimeMilliseconds();
        Debug.WriteLine(unixTimestamp);
        long currentTimestamp = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeMilliseconds();
        Debug.WriteLine(currentTimestamp);  // 输出当前时间的 Unix 时间戳
        string accessToken = GetToken();
        if (string.IsNullOrEmpty(accessToken))
@@ -120,65 +143,18 @@
            return "获取 Access Token 失败";
        }
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClientOa();
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsHeaders listProcessInstanceIdsHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsHeaders();
        listProcessInstanceIdsHeaders.XAcsDingtalkAccessToken = accessToken;
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsRequest listProcessInstanceIdsRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ListProcessInstanceIdsRequest
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GrantProcessInstanceForDownloadFileHeaders grantProcessInstanceForDownloadFileHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GrantProcessInstanceForDownloadFileHeaders();
        grantProcessInstanceForDownloadFileHeaders.XAcsDingtalkAccessToken = accessToken;
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GrantProcessInstanceForDownloadFileRequest grantProcessInstanceForDownloadFileRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GrantProcessInstanceForDownloadFileRequest
        {
            ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
            StartTime = unixTimestamp,
            EndTime = currentTimestamp,
            NextToken = 0,
            MaxResults = 10,
            UserIds = new List<string>
                {
                    "923188102"
                },
            //Statuses = new List<string>
            //    {
            //    },
        };
        try
        {
            var response = client.ListProcessInstanceIdsWithOptions(listProcessInstanceIdsRequest, listProcessInstanceIdsHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
        }
        catch (TeaException err)
        {
            return $"TeaException: Code={err.Code}, Message={err.Message}";
        }
        catch (Exception _err)
        {
            return $"Exception: {_err.Message}";
        }
    }
    public string GetPermissions()
    {
        string accessToken = GetToken();
        if (string.IsNullOrEmpty(accessToken))
        {
            return "获取 Access Token 失败";
        }
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClientOa();
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthHeaders getSpaceWithDownloadAuthHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthHeaders();
        getSpaceWithDownloadAuthHeaders.XAcsDingtalkAccessToken = accessToken;
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthRequest getSpaceWithDownloadAuthRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.GetSpaceWithDownloadAuthRequest
        {
            UserId = "071839512032683883",
            AgentId = 3179487642,
            ProcessInstanceId = "3vHyv40ZQUe2zK6wvl11dg06561742534701",
            FileId = "173564282626",
            //FileIdList = new List<string>
            //    {
            //        "123"
            //    },
            ProcessInstanceId = InstanceId,
            FileId = fileId,
        };
        try
        {
            var response = client.GetSpaceWithDownloadAuthWithOptions(getSpaceWithDownloadAuthRequest, getSpaceWithDownloadAuthHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            var response = client.GrantProcessInstanceForDownloadFileWithOptions(grantProcessInstanceForDownloadFileRequest, grantProcessInstanceForDownloadFileHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
        }
        catch (TeaException err)
@@ -197,48 +173,48 @@
         * @return Client
         * @throws Exception
         */
    public static AlibabaCloud.SDK.Dingtalkyida_1_0.Client CreateClient()
    {
        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
        config.Protocol = "https";
        config.RegionId = "central";
        return new AlibabaCloud.SDK.Dingtalkyida_1_0.Client(config);
    }
    //public static AlibabaCloud.SDK.Dingtalkyida_1_0.Client CreateClient()
    //{
    //    AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
    //    config.Protocol = "https";
    //    config.RegionId = "central";
    //    return new AlibabaCloud.SDK.Dingtalkyida_1_0.Client(config);
    //}
    public string GetFileUrl(string imageUrl)
    {
    //public string GetFileUrl(string imageUrl)
    //{
        string accessToken = GetToken();
        if (string.IsNullOrEmpty(accessToken))
        {
            return "获取 Access Token 失败";
        }
        AlibabaCloud.SDK.Dingtalkyida_1_0.Client client = CreateClient();
        AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders getOpenUrlHeaders = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders();
        getOpenUrlHeaders.XAcsDingtalkAccessToken = accessToken;
        AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest getOpenUrlRequest = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest
        {
            SystemToken = "54A66HC1YDSSO9DP61Y93CWQ2W9B36IZZOY6MC81",
            UserId = "923188102",
            Language = "zh_CN",
            FileUrl = imageUrl,
            Timeout = 3600000,
        };
        try
        {
    //    string accessToken = GetToken();
    //    if (string.IsNullOrEmpty(accessToken))
    //    {
    //        return "获取 Access Token 失败";
    //    }
    //    AlibabaCloud.SDK.Dingtalkyida_1_0.Client client = CreateClient();
    //    AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders getOpenUrlHeaders = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlHeaders();
    //    getOpenUrlHeaders.XAcsDingtalkAccessToken = accessToken;
    //    AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest getOpenUrlRequest = new AlibabaCloud.SDK.Dingtalkyida_1_0.Models.GetOpenUrlRequest
    //    {
    //        SystemToken = "54A66HC1YDSSO9DP61Y93CWQ2W9B36IZZOY6MC81",
    //        UserId = "923188102",
    //        Language = "zh_CN",
    //        FileUrl = imageUrl,
    //        Timeout = 3600000,
    //    };
    //    try
    //    {
           
            var response = client.GetOpenUrlWithOptions("APP_Q7PLYKXMKFUJ5HY6DMWR", getOpenUrlRequest, getOpenUrlHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
        }
        catch (TeaException err)
        {
            return $"TeaException: Code={err.Code}, Message={err.Message}";
        }
        catch (Exception _err)
        {
            return $"Exception: {_err.Message}";
        }
    }
    //        var response = client.GetOpenUrlWithOptions("APP_Q7PLYKXMKFUJ5HY6DMWR", getOpenUrlRequest, getOpenUrlHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
    //        return (Newtonsoft.Json.JsonConvert.SerializeObject(response.Body));
    //    }
    //    catch (TeaException err)
    //    {
    //        return $"TeaException: Code={err.Code}, Message={err.Message}";
    //    }
    //    catch (Exception _err)
    //    {
    //        return $"Exception: {_err.Message}";
    //    }
    //}
    public dynamic Save(ErpProductionOrder erpProductionOrder)
@@ -275,4 +251,6 @@
        if (orUpdate) return true;
        throw new NotImplementedException("插入或更新失败");
    }
}