diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
index 60ee8ab81..468d43f51 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.Office2010.Drawing;
@@ -25,7 +26,7 @@ namespace Win_in.Sfs.Basedata.Application;
/// 接口模拟测试
///
[AllowAnonymous]
-[Route($"CargoState")]
+
public class TestService:ApplicationService
{
private readonly IServiceProvider _serviceProvider;
@@ -35,7 +36,7 @@ public class TestService:ApplicationService
_serviceProvider = serviceProvider;
_options = options;
}
-
+ /*
///
/// 生命周期操作
///
@@ -76,6 +77,7 @@ public class TestService:ApplicationService
return t;
}
+ */
//[HttpPost("SyncIssueJobStereo")]
//public virtual async Task SyncIssueJobStereoAsync(IssueJobToRestoDTO input)
@@ -92,22 +94,52 @@ public class TestService:ApplicationService
//}
- [HttpPost("GetCargoStatic1")]
- ///
- /// 异步开始生命周期操作不能堵塞
- ///
- public async Task GetCargoStatic1(ResponCargos p_cas)
+ //[HttpPost("GetCargoStatic1")]
+ /////
+ ///// 异步开始生命周期操作不能堵塞
+ /////
+ //public async Task GetCargoStatic1(ResponCargos p_cas)
+ //{
+
+
+
+ // return p_cas;
+
+ //}
+
+ [HttpPost("pushOutTask4FW")]
+ public async Task pushOutTask4FW(AgvRequest request)
{
+
+ AgvResultObject reusltObject = new AgvResultObject();
+ reusltObject.Code = "0";
+ reusltObject.Message = "OK";
+ reusltObject.ReqCode = "T6000001970";
+ return reusltObject;
- return p_cas;
- }
+ //List result = new List();
+
+ //result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB1", PartCode = "TMDLYA0A071AB", Flag = 0 });
+ //result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB2", PartCode = "TMDLYA0A061AB", Flag = 0 });
+ //result.Add(new ResponCargoItem() { AreaID = "2", CargoID = "ZSXB2", PartCode = "TMDLYD0ABM5A", Flag = 0 });
+ //result = result.Where(p => p.AreaID == AreaID).ToList();
+ //var t = new ResponCargos();
+ //t.Code = 200;
+ //t.Msg = "Success";
+ //t.Datalist = result;
+
+
+ //return t;
+
+ }
+
@@ -145,6 +177,76 @@ public class ReusltObject
public string Message { set; get; }
public string OperateTime { set; get; }
}
+public class AgvResultObject
+{
+ public string Code { set; get; }
+ public string Message { set; get; }
+ public string ReqCode { set; get; }
+}
+public class AgvRequestHK
+{
+ [Display(Name ="请求编号")]
+ public string ReqCode { set; get; }
+ [Display(Name ="明细")]
+ public List Data { set; get; }
+
+}
+public class AgvRequestHKDetail
+{
+ [Display(Name = "任务类型")]
+ public string OrderType { set; get; }
+ [Display(Name = "任务编号")]
+ public string OrderNum { set; get; }
+ [Display(Name = "物料编号")]
+ public string MatCode { set; get; }
+ [Display(Name = "物料数量")]
+ public decimal MatQty { set; get; }
+ [Display(Name = "起始点")]
+ public string BeginPosition { set; get; }
+ [Display(Name = "终点")]
+ public string EndPosition { set; get; }
+ [Display(Name = "批次属性07")]
+ public string BatchAttr07 { set; get; }
+ [Display(Name = "批次属性08")]
+ public string BatchAttr08 { set; get; }
+ [Display(Name = "批次属性09")]
+ public string BatchAttr09 { set; get; }
+ [Display(Name = "批次属性10")]
+ public string BatchAttr10 { set; get; }
+ [Display(Name = "批次属性11")]
+ public string BatchAttr11 { set; get; }
+ [Display(Name = "批次属性12")]
+ public string BatchAttr12 { set; get; }
+ [Display(Name = "批次属性13")]
+ public string BatchAttr13 { set; get; }
+ [Display(Name = "批次属性14")]
+ public string BatchAttr14 { set; get; }
+ [Display(Name = "批次属性15")]
+ public string BatchAttr15 { set; get; }
+
+}
+
+
+///
+/// 闻荫调海康入参
+///
+public class AgvRequest
+{
+ [Display(Name = "任务类型")]
+ public string OrderType { set; get; }
+ [Display(Name = "任务编号")]
+ public string OrderNum { set; get; }
+ [Display(Name = "物料编号")]
+ public string MatCode { set; get; }
+ [Display(Name = "物料数量")]
+ public string MatQty { set; get; }
+ [Display(Name = "目标工位")]
+ public string EndPosition { set; get; }
+
+}
+
+
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs
new file mode 100644
index 000000000..d82b05379
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+
+namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
+public interface AgvJobOutputService: IApplicationService
+{
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobOutputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobOutputService.cs
new file mode 100644
index 000000000..3f4a5fdd9
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobOutputService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+
+namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
+public interface IAgvJobOutputService:IApplicationService
+{
+ public Output
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj
index 4cfe35956..90381c415 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj
@@ -45,6 +45,7 @@
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvDto.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvDto.cs
new file mode 100644
index 000000000..49a75f6ef
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvDto.cs
@@ -0,0 +1,76 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
+///
+/// 海康调闻荫入参数
+///
+public class AgvRequestHK
+{
+ [Display(Name = "请求编号")]
+ public string ReqCode { set; get; }
+ [Display(Name = "明细")]
+ public List Data { set; get; }
+
+}
+///
+/// 海康调闻荫入参明细
+///
+public class AgvRequestHKDetail
+{
+ [Display(Name = "任务类型")]
+ public string OrderType { set; get; }
+ [Display(Name = "任务编号")]
+ public string OrderNum { set; get; }
+ [Display(Name = "物料编号")]
+ public string MatCode { set; get; }
+ [Display(Name = "物料数量")]
+ public decimal MatQty { set; get; }
+ [Display(Name = "起始点")]
+ public string BeginPosition { set; get; }
+ [Display(Name = "终点")]
+ public string EndPosition { set; get; }
+ [Display(Name = "批次属性07")]
+ public string BatchAttr07 { set; get; }
+ [Display(Name = "批次属性08")]
+ public string BatchAttr08 { set; get; }
+ [Display(Name = "批次属性09")]
+ public string BatchAttr09 { set; get; }
+ [Display(Name = "批次属性10")]
+ public string BatchAttr10 { set; get; }
+ [Display(Name = "批次属性11")]
+ public string BatchAttr11 { set; get; }
+ [Display(Name = "批次属性12")]
+ public string BatchAttr12 { set; get; }
+ [Display(Name = "批次属性13")]
+ public string BatchAttr13 { set; get; }
+ [Display(Name = "批次属性14")]
+ public string BatchAttr14 { set; get; }
+ [Display(Name = "批次属性15")]
+ public string BatchAttr15 { set; get; }
+
+}
+///
+/// 闻荫调海康入参
+///
+public class AgvRequest
+{
+ [Display(Name = "任务类型")]
+ public string OrderType { set; get; }
+ [Display(Name = "任务编号")]
+ public string OrderNum { set; get; }
+ [Display(Name = "物料编号")]
+ public string MatCode { set; get; }
+ [Display(Name = "物料数量")]
+ public string MatQty { set; get; }
+ [Display(Name = "目标工位")]
+ public string EndPosition { set; get; }
+
+}
+
+
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs
new file mode 100644
index 000000000..bab8297fe
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Uow;
+using Volo.Abp.Users;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Basedata.Domain;
+using Win_in.Sfs.Basedata.Domain.Shared;
+using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
+
+
+[AllowAnonymous]
+[Route($"{StoreConsts.RootPath}agv-job-out")]
+public class AgvJobOutput:ApplicationService
+{
+
+
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobOutputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobOutputService.cs
new file mode 100644
index 000000000..41ab16d3a
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobOutputService.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Uow;
+using Volo.Abp.Users;
+using Win_in.Sfs.Basedata.Application.Contracts;
+using Win_in.Sfs.Basedata.Domain;
+using Win_in.Sfs.Basedata.Domain.Shared;
+using Win_in.Sfs.Shared.Domain.Shared;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Application.Contracts;
+using Win_in.Sfs.Wms.Store.Domain.Shared;
+
+namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
+[AllowAnonymous]
+[Route($"{StoreConsts.RootPath}agv-job-in")]
+public class AgvJobInputService : ApplicationService
+{
+
+
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/AgvJobClient.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/AgvJobClient.cs
new file mode 100644
index 000000000..7ab2160e2
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/AgvJobClient.cs
@@ -0,0 +1,459 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
+
+
+ [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class AgvJobClient
+ {
+#pragma warning disable 8618
+ private string _baseUrl;
+#pragma warning restore 8618
+
+ private System.Net.Http.HttpClient _httpClient;
+ private static System.Lazy _settings = new System.Lazy(CreateSerializerSettings, true);
+ private System.Text.Json.JsonSerializerOptions _instanceSettings;
+
+#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
+ public AgvJobClient(string baseUrl, System.Net.Http.HttpClient httpClient)
+#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
+ {
+ BaseUrl = baseUrl;
+ _httpClient = httpClient;
+ Initialize();
+ }
+
+ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings()
+ {
+ var settings = new System.Text.Json.JsonSerializerOptions();
+ UpdateJsonSerializerSettings(settings);
+ return settings;
+ }
+
+ public string BaseUrl
+ {
+ get { return _baseUrl; }
+ set
+ {
+ _baseUrl = value;
+ if (!string.IsNullOrEmpty(_baseUrl) && !_baseUrl.EndsWith("/"))
+ _baseUrl += '/';
+ }
+ }
+
+ private string _path;
+ public string Path
+ {
+ get { return _path; }
+ set
+ {
+ _path = value;
+
+ }
+ }
+
+
+ protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get { return _instanceSettings ?? _settings.Value; } }
+
+ static partial void UpdateJsonSerializerSettings(System.Text.Json.JsonSerializerOptions settings);
+
+ partial void Initialize();
+
+ partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url);
+ partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder);
+ partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response);
+
+ /// Success
+ /// A server side error occurred.
+ public virtual System.Threading.Tasks.Task PushOutTask4FWAsync(AgvRequest body)
+ {
+ return PushOutTask4FWAsync(body, System.Threading.CancellationToken.None);
+ }
+
+ /// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ /// Success
+ /// A server side error occurred.
+ public virtual async System.Threading.Tasks.Task PushOutTask4FWAsync(AgvRequest body, System.Threading.CancellationToken cancellationToken)
+ {
+ var client_ = _httpClient;
+ var disposeClient_ = false;
+ try
+ {
+ using (var request_ = new System.Net.Http.HttpRequestMessage())
+ {
+ var json_ = System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(body, JsonSerializerSettings);
+ var content_ = new System.Net.Http.ByteArrayContent(json_);
+ content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json");
+ request_.Content = content_;
+ request_.Method = new System.Net.Http.HttpMethod("POST");
+ request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("text/plain"));
+
+ var urlBuilder_ = new System.Text.StringBuilder();
+ if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
+ // Operation Path: "pushOutTask4FW"
+ urlBuilder_.Append(_path);
+
+ PrepareRequest(client_, request_, urlBuilder_);
+
+ var url_ = urlBuilder_.ToString();
+ request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute);
+
+ PrepareRequest(client_, request_, url_);
+
+ var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);
+ var disposeResponse_ = true;
+ try
+ {
+ var headers_ = new System.Collections.Generic.Dictionary>();
+ foreach (var item_ in response_.Headers)
+ headers_[item_.Key] = item_.Value;
+ if (response_.Content != null && response_.Content.Headers != null)
+ {
+ foreach (var item_ in response_.Content.Headers)
+ headers_[item_.Key] = item_.Value;
+ }
+
+ ProcessResponse(client_, response_);
+
+ var status_ = (int)response_.StatusCode;
+ if (status_ == 200)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ return objectResponse_.Object;
+ }
+ else
+ if (status_ == 403)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ throw new ApiException("Forbidden", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
+ }
+ else
+ if (status_ == 401)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ throw new ApiException("Unauthorized", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
+ }
+ else
+ if (status_ == 400)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ throw new ApiException("Bad Request", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
+ }
+ else
+ if (status_ == 404)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ throw new ApiException("Not Found", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
+ }
+ else
+ if (status_ == 501)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ throw new ApiException("Server Error", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
+ }
+ else
+ if (status_ == 500)
+ {
+ var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false);
+ if (objectResponse_.Object == null)
+ {
+ throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null);
+ }
+ throw new ApiException("Server Error", status_, objectResponse_.Text, headers_, objectResponse_.Object, null);
+ }
+ else
+ {
+ var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false);
+ throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null);
+ }
+ }
+ finally
+ {
+ if (disposeResponse_)
+ response_.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (disposeClient_)
+ client_.Dispose();
+ }
+ }
+
+ protected struct ObjectResponseResult
+ {
+ public ObjectResponseResult(T responseObject, string responseText)
+ {
+ this.Object = responseObject;
+ this.Text = responseText;
+ }
+
+ public T Object { get; }
+
+ public string Text { get; }
+ }
+
+ public bool ReadResponseAsString { get; set; }
+
+ protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken)
+ {
+ if (response == null || response.Content == null)
+ {
+ return new ObjectResponseResult(default(T), string.Empty);
+ }
+
+ if (ReadResponseAsString)
+ {
+ var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
+ try
+ {
+ var typedBody = System.Text.Json.JsonSerializer.Deserialize(responseText, JsonSerializerSettings);
+ return new ObjectResponseResult(typedBody, responseText);
+ }
+ catch (System.Text.Json.JsonException exception)
+ {
+ var message = "Could not deserialize the response body string as " + typeof(T).FullName + ".";
+ throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception);
+ }
+ }
+ else
+ {
+ try
+ {
+ using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false))
+ {
+ var typedBody = await System.Text.Json.JsonSerializer.DeserializeAsync(responseStream, JsonSerializerSettings, cancellationToken).ConfigureAwait(false);
+ return new ObjectResponseResult(typedBody, string.Empty);
+ }
+ }
+ catch (System.Text.Json.JsonException exception)
+ {
+ var message = "Could not deserialize the response body stream as " + typeof(T).FullName + ".";
+ throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception);
+ }
+ }
+ }
+
+ private string ConvertToString(object value, System.Globalization.CultureInfo cultureInfo)
+ {
+ if (value == null)
+ {
+ return "";
+ }
+
+ if (value is System.Enum)
+ {
+ var name = System.Enum.GetName(value.GetType(), value);
+ if (name != null)
+ {
+ var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name);
+ if (field != null)
+ {
+ var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute))
+ as System.Runtime.Serialization.EnumMemberAttribute;
+ if (attribute != null)
+ {
+ return attribute.Value != null ? attribute.Value : name;
+ }
+ }
+
+ var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo));
+ return converted == null ? string.Empty : converted;
+ }
+ }
+ else if (value is bool)
+ {
+ return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant();
+ }
+ else if (value is byte[])
+ {
+ return System.Convert.ToBase64String((byte[])value);
+ }
+ else if (value is string[])
+ {
+ return string.Join(",", (string[])value);
+ }
+ else if (value.GetType().IsArray)
+ {
+ var valueArray = (System.Array)value;
+ var valueTextArray = new string[valueArray.Length];
+ for (var i = 0; i < valueArray.Length; i++)
+ {
+ valueTextArray[i] = ConvertToString(valueArray.GetValue(i), cultureInfo);
+ }
+ return string.Join(",", valueTextArray);
+ }
+
+ var result = System.Convert.ToString(value, cultureInfo);
+ return result == null ? "" : result;
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class RemoteServiceErrorInfo
+ {
+
+ [System.Text.Json.Serialization.JsonPropertyName("code")]
+ public string Code { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("message")]
+ public string Message { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("details")]
+ public string Details { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public System.Collections.Generic.IDictionary Data { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("validationErrors")]
+ public System.Collections.Generic.ICollection ValidationErrors { get; set; }
+
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class RemoteServiceErrorResponse
+ {
+
+ [System.Text.Json.Serialization.JsonPropertyName("error")]
+ public RemoteServiceErrorInfo Error { get; set; }
+
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class RemoteServiceValidationErrorInfo
+ {
+
+ [System.Text.Json.Serialization.JsonPropertyName("message")]
+ public string Message { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("members")]
+ public System.Collections.Generic.ICollection Members { get; set; }
+
+ }
+
+ ///
+ /// 闻荫调海康入参
+ ///
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class AgvRequest
+ {
+ ///
+ /// 任务类型
+ ///
+
+ [System.Text.Json.Serialization.JsonPropertyName("orderType")]
+ public string OrderType { get; set; }
+
+ ///
+ /// 任务编号
+ ///
+
+ [System.Text.Json.Serialization.JsonPropertyName("orderNum")]
+ public string OrderNum { get; set; }
+
+ ///
+ /// 物料编号
+ ///
+
+ [System.Text.Json.Serialization.JsonPropertyName("matCode")]
+ public string MatCode { get; set; }
+
+ ///
+ /// 物料数量
+ ///
+
+ [System.Text.Json.Serialization.JsonPropertyName("matQty")]
+ public string MatQty { get; set; }
+
+ ///
+ /// 目标工位
+ ///
+
+ [System.Text.Json.Serialization.JsonPropertyName("endPosition")]
+ public string EndPosition { get; set; }
+
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class AgvResultObject
+ {
+
+ [System.Text.Json.Serialization.JsonPropertyName("code")]
+ public string Code { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("message")]
+ public string Message { get; set; }
+
+ [System.Text.Json.Serialization.JsonPropertyName("reqCode")]
+ public string ReqCode { get; set; }
+
+ }
+
+
+
+ [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class ApiException : System.Exception
+ {
+ public int StatusCode { get; private set; }
+
+ public string Response { get; private set; }
+
+ public System.Collections.Generic.IReadOnlyDictionary> Headers { get; private set; }
+
+ public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Exception innerException)
+ : base(message + "\n\nStatus: " + statusCode + "\nResponse: \n" + ((response == null) ? "(null)" : response.Substring(0, response.Length >= 512 ? 512 : response.Length)), innerException)
+ {
+ StatusCode = statusCode;
+ Response = response;
+ Headers = headers;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("HTTP Response: \n\n{0}\n\n{1}", Response, base.ToString());
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("NSwag", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class ApiException : ApiException
+ {
+ public TResult Result { get; private set; }
+
+ public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, TResult result, System.Exception innerException)
+ : base(message, statusCode, response, headers, innerException)
+ {
+ Result = result;
+ }
+ }
+
+
+