加入erp的相关服务

This commit is contained in:
tongfei
2023-10-25 15:31:26 +08:00
parent 25c09f4a0a
commit 22213af18f
16 changed files with 1827 additions and 0 deletions

View File

@@ -0,0 +1,35 @@

using ERP;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Threading.Tasks;
using WMS.Web.Domain.IService.Public;
namespace WMS.Web.Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly IErpService _erpService;
public TestController(IErpService erpService)
{
this._erpService = erpService;
}
[HttpGet]
[Route("hj")]
public async Task<string> TestHJ()
{
var result= await this._erpService.BillQueryForPurchaseInStock();
if (!result.IsSuccess)
return "";
return JsonConvert.SerializeObject(result.Data);
}
}
}

View File

@@ -18,9 +18,14 @@
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" />
<PackageReference Include="NLog" Version="4.7.12" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.14.0" />
<PackageReference Include="System.ServiceModel.Duplex" Version="4.7.*" />
<PackageReference Include="System.ServiceModel.Http" Version="4.7.*" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.7.*" />
<PackageReference Include="System.ServiceModel.Security" Version="4.7.*" />
</ItemGroup>
<ItemGroup>
<Folder Include="Connected Services\" />
<Folder Include="wwwroot\" />
</ItemGroup>

View File

@@ -34,6 +34,12 @@
"PublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsaVH9M7ooPlO1SwKy0MQImmJTid8aeBjQ99FED+WPwRlktAMtHiaTqlqmkeYhJT6XC5P72vqDDGfXOVr9s4BHuQsSGyzx7ChABmANMlsxy6xtI4II9gV5qAciZdviEDFCOD69C/ZJACX+36N0EjiricuYr/6KNMgDo1tXVUvTzgQEJTym6mZXl2Hs5HbERjEM5SNqBJW+iO+07twROG3sKvNCYBmB1XLsHQ99EbyvBQ1P2w/NqHXjtDSxy3sFhpFtxpgHSNe8eHJcFmPfj+Q6JUi4wEWmZUOjsLDhev6aaN7whQZfgdsPN3M8MMsVGpo3V+coWivprsCpzUIIUTLCQIDAQAB",
"PrivateKey": "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCxpUf0zuig+U7VLArLQxAiaYlOJ3xp4GND30UQP5Y/BGWS0Ay0eJpOqWqaR5iElPpcLk/va+oMMZ9c5Wv2zgEe5CxIbLPHsKEAGYA0yWzHLrG0jggj2BXmoByJl2+IQMUI4Pr0L9kkAJf7fo3QSOKuJy5iv/oo0yAOjW1dVS9POBAQlPKbqZleXYezkdsRGMQzlI2oElb6I77Tu3BE4bewq80JgGYHVcuwdD30RvK8FDU/bD82odeO0NLHLewWGkW3GmAdI17x4clwWY9+P5DolSLjARaZlQ6OwsOF6/ppo3vCFBl+B2w83czwwyxUamjdX5yhaK+muwKnNQghRMsJAgMBAAECggEAG2NYDK45v1ewh70ajOvx+Nw8hwgfblNh+nzZsP+csmqDHndk/g35/FayUMbpBMfTMZMST99bXjXoU/IrCwoHsjOLgD8CGK9qoxFLatgDJVJVo3iiWKRf/AaDX9MxJtiViCDnj+4wlBRjWirQwmP6Ts9Ln33pm5GxR40WZ2VSveutCkXWW16MmcT0gKHtEGoREoj+DYCziXaKpvFz+14p0u7wyCUsIEM0qxuGftjOkSGz0RhT6QfwY3TLKPD3C2N2slx3zdNEyFZNPSaugqEkZdUb2ZRGefIopmduo4eoeBce1d3HkyCeyOhmVBt0OBg5KXTey7FR7TDYpOJPFv/ZYQKBgQDRtQQfARg8fVouPPHlwBd90hMTaocmtp7gmIPRvNJgrXMEHU9SJuLifzml6gwX+3i2ltxenKOCHkUzA+rK7/iaUNcjTe2gRxJaLDoDRoLVc6M5Y4Mah3XkDpbYtQ4dJ4FZWxqZLwjeLikmcbPks1CqGFjFKyVwdqSLITvNC7AVZwKBgQDY3GeqBXcDe9SSRzwW52yp/R70TJMRMnCyg3lriJ0XvrFK3xGNWrBngxyODEZFUbphmkTBJlyMsEMYbAAJ7ofGAdmUhFa3rzD9q81dXNazk+suPmzBIepme7XSnthKUCEl7KJokhSZknnjmFncuIASpD2P5b2HyhA9ALrnVt/mDwKBgG1evxt8cqt5pQLgfjiZCqdwXMqPkJU8QXhZksZceEw7qfTHZIswBLykJejGPDB10utHmv8tKom+R9Dnhhj5Nuskpk+fYQNqjcPBtS/oImw4tzRDFilL5MxgX4P+SbIi3G9B+IlT4ogeAxAt1Oi+LJ/JuuJ6MjiJaB+34Xx7UAaZAoGATLgEkHiodvoK5MkAsBWlMqoSlli0uqO+jNjITsugz7KtpBAwdHJ979DJfFNJVOKp7jeWVUKOAVOmGPC0Ps89B0bGQ61hxE/dJBDwcTQT3KnazJxW+yhVdXYUh/OcDwY0A+eoORhc40uXhXXzbIt0+6NRCCQ9ndlVT09/z7HDOe8CgYBgDTUR7gwpWarWgD3eNcdmzvQCm/NAMVabUPnNu+79490vFJPUwXssjoN3W6q4VcPejaoEsOxbM5IoW5reDkybEoyPXu5EmLNMOa4XRklJAUmuDA2ASy6hlXB0bGfnmF9U+DFyYF6LR+YEVKnBL4IvZt/Fq6ni9/E+ReaZvQLX5w=="
},
"ErpOptions": {
"EndpointAddress": "http://119.23.206.129/k3cloud/ERPGW.asmx",
"UserName": "mes",
"Password": "A1B2C3Dh.",
"ErpId": "ce20210909"
},
"Qiniu": {
"AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms",
"SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q",

View File

@@ -4,6 +4,162 @@
<name>WMS.Web.Core</name>
</assembly>
<members>
<member name="T:ERP.VoucherInfo">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.ACCESSTOKEN">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FVOUCHERBILL">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FACCOUNTBOOKID">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FACCBOOKORGID">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FDATE">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FVOUCHERGROUPID">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FATTACHMENTS">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.FVOUCHERGROUPNO">
<remarks/>
</member>
<member name="P:ERP.VoucherInfo.VOUCHERDETAILS">
<remarks/>
</member>
<member name="T:ERP.credentialDetail">
<remarks/>
</member>
<member name="P:ERP.credentialDetail.FEXPLANATION">
<remarks/>
</member>
<member name="P:ERP.credentialDetail.FSubordinateUnit">
<remarks/>
</member>
<member name="P:ERP.credentialDetail.FBankAccount">
<remarks/>
</member>
<member name="P:ERP.credentialDetail.FACCOUNTID">
<remarks/>
</member>
<member name="P:ERP.credentialDetail.FDEBIT">
<remarks/>
</member>
<member name="P:ERP.credentialDetail.FCREDIT">
<remarks/>
</member>
<member name="T:ERP.AccessResulDetail">
<remarks/>
</member>
<member name="P:ERP.AccessResulDetail.Code">
<remarks/>
</member>
<member name="P:ERP.AccessResulDetail.Message">
<remarks/>
</member>
<member name="P:ERP.AccessResulDetail.BillNO">
<remarks/>
</member>
<member name="P:ERP.AccessResulDetail.Yid">
<remarks/>
</member>
<member name="T:ERP.AccessResult">
<remarks/>
</member>
<member name="P:ERP.AccessResult.Code">
<remarks/>
</member>
<member name="P:ERP.AccessResult.Message">
<remarks/>
</member>
<member name="P:ERP.AccessResult.Details">
<remarks/>
</member>
<member name="P:ERP.AccessResult.AccessToken">
<remarks/>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.ErpBillQueryDto">
<summary>
ERP单据查询-dto
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryDto.AccessToken">
<summary>
令牌
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryDto.Data">
<summary>
参数
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto">
<summary>
ERP单据查询-参数-dto
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.FormId">
<summary>
业务对象表单Id必录
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.FieldKeys">
<summary>
需查询的字段key集合字符串类型格式"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如FEntryKey_FEntryId
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.FilterString">
<summary>
过滤条件,数组类型,如:[{"Left":"(","FieldName":"Field1","Compare":"=","Value":"111","Right":")","Logic":"AND"},{"Left":"(","FieldName":"Field2","Compare":"=","Value":"222","Right":")","Logic":""}]
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.OrderString">
<summary>
排序字段,字符串类型(非必录)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.TopRowCount">
<summary>
返回总行数,整型(非必录)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.StartRow">
<summary>
开始行索引,整型(非必录)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.Limit">
<summary>
最大行数整型不能超过10000非必录
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto.SubSystemId">
<summary>
表单所在的子系统内码,字符串类型(非必录)
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.Purchase.ErpPurchaseInStockResultDto">
<summary>
erp-采购入库-返回数据源
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.Purchase.ErpPurchaseInStockResultDto.BillNo">
<summary>
单据编号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.Purchase.ErpPurchaseInStockResultDto.Specifications">
<summary>
物料规格信号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Login.AccessTokenDto.Token">
<summary>
授权token -- 给前端用的验证token

View File

@@ -4,6 +4,12 @@
<name>WMS.Web.Domain</name>
</assembly>
<members>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStock">
<summary>
erp:单据查询-采购入库单
</summary>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.IService.Public.ILoginService">
<summary>
登录服务接口
@@ -236,6 +242,31 @@
是否允许缓存
</summary>
</member>
<member name="T:WMS.Web.Domain.Options.ErpOptions">
<summary>
erp相关配置文件
</summary>
</member>
<member name="P:WMS.Web.Domain.Options.ErpOptions.EndpointAddress">
<summary>
erp-请求地址
</summary>
</member>
<member name="P:WMS.Web.Domain.Options.ErpOptions.UserName">
<summary>
账号
</summary>
</member>
<member name="P:WMS.Web.Domain.Options.ErpOptions.Password">
<summary>
密码
</summary>
</member>
<member name="P:WMS.Web.Domain.Options.ErpOptions.ErpId">
<summary>
erp-Id
</summary>
</member>
<member name="P:WMS.Web.Domain.Options.SoaOptions.Url">
<summary>
单点系统地址
@@ -266,6 +297,23 @@
私钥
</summary>
</member>
<member name="T:WMS.Web.Domain.Services.Public.ErpService">
<summary>
erp数据交互服务
</summary>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.Init">
<summary>
初始化ERP登录到ERP
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForPurchaseInStock">
<summary>
erp:单据查询-采购入库单
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.GetAsync``1(System.String,System.Int32)">
<summary>
Get方法

View File

@@ -0,0 +1,85 @@
{
"ExtendedData": {
"inputs": [
"http://119.23.206.129/K3cloud/erpgw.asmx?WSDL"
],
"collectionTypes": [
"System.Array",
"System.Collections.Generic.Dictionary`2"
],
"namespaceMappings": [
"*, ERP"
],
"references": [
"BouncyCastle.Crypto, {BouncyCastle.NetCore, 1.8.5}",
"Google.Protobuf, {Google.Protobuf, 3.19.4}",
"ICSharpCode.SharpZipLib, {SharpZipLib, 1.2.0}",
"K4os.Compression.LZ4, {K4os.Compression.LZ4, 1.2.6}",
"K4os.Compression.LZ4.Streams, {K4os.Compression.LZ4.Streams, 1.2.6}",
"K4os.Hash.xxHash, {K4os.Hash.xxHash, 1.0.6}",
"Microsoft.EntityFrameworkCore, {Microsoft.EntityFrameworkCore, 5.0.10}",
"Microsoft.EntityFrameworkCore.Abstractions, {Microsoft.EntityFrameworkCore.Abstractions, 5.0.10}",
"Microsoft.EntityFrameworkCore.Relational, {Microsoft.EntityFrameworkCore.Relational, 5.0.10}",
"Microsoft.Extensions.Caching.Abstractions, {Microsoft.Extensions.Caching.Abstractions, 6.0.0}",
"Microsoft.Extensions.Caching.Memory, {Microsoft.Extensions.Caching.Memory, 6.0.1}",
"Microsoft.Extensions.Configuration.Abstractions, {Microsoft.Extensions.Configuration.Abstractions, 6.0.0}",
"Microsoft.Extensions.DependencyInjection, {Microsoft.Extensions.DependencyInjection, 5.0.2}",
"Microsoft.Extensions.DependencyInjection.Abstractions, {Microsoft.Extensions.DependencyInjection.Abstractions, 6.0.0}",
"Microsoft.Extensions.Diagnostics.HealthChecks, {Microsoft.Extensions.Diagnostics.HealthChecks, 2.2.0}",
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, {Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, 2.2.0}",
"Microsoft.Extensions.FileProviders.Abstractions, {Microsoft.Extensions.FileProviders.Abstractions, 2.2.0}",
"Microsoft.Extensions.Hosting.Abstractions, {Microsoft.Extensions.Hosting.Abstractions, 2.2.0}",
"Microsoft.Extensions.Logging, {Microsoft.Extensions.Logging, 5.0.0}",
"Microsoft.Extensions.Logging.Abstractions, {Microsoft.Extensions.Logging.Abstractions, 6.0.0}",
"Microsoft.Extensions.Options, {Microsoft.Extensions.Options, 6.0.0}",
"Microsoft.Extensions.Primitives, {Microsoft.Extensions.Primitives, 6.0.0}",
"Microsoft.IdentityModel.Logging, {Microsoft.IdentityModel.Logging, 5.5.0}",
"Microsoft.IdentityModel.Tokens, {Microsoft.IdentityModel.Tokens, 5.5.0}",
"MySql.Data, {MySql.Data, 8.0.29}",
"MySqlConnector, {MySqlConnector, 1.3.13}",
"Newtonsoft.Json, {Newtonsoft.Json, 13.0.1}",
"NPinyin.Core, {NPinyin.Core, 3.0.0}",
"NPOI, {NPOI, 2.5.1}",
"Npoi.Mapper, {Npoi.Mapper, 3.5.1}",
"NPOI.OOXML, {NPOI, 2.5.1}",
"NPOI.OpenXml4Net, {NPOI, 2.5.1}",
"NPOI.OpenXmlFormats, {NPOI, 2.5.1}",
"PinYinConverterCore, {PinYinConverterCore, 1.0.2}",
"Pipelines.Sockets.Unofficial, {Pipelines.Sockets.Unofficial, 2.2.0}",
"Pomelo.EntityFrameworkCore.MySql, {Pomelo.EntityFrameworkCore.MySql, 5.0.2}",
"Quartz, {Quartz, 3.4.0}",
"Quartz.AspNetCore, {Quartz.AspNetCore, 3.4.0}",
"Quartz.Extensions.DependencyInjection, {Quartz.Extensions.DependencyInjection, 3.4.0}",
"Quartz.Extensions.Hosting, {Quartz.Extensions.Hosting, 3.4.0}",
"Quartz.Serialization.Json, {Quartz.Serialization.Json, 3.4.0}",
"StackExchange.Redis, {StackExchange.Redis, 2.2.79}",
"System.Collections.Immutable, {System.Collections.Immutable, 5.0.0}",
"System.ComponentModel.Annotations, {System.ComponentModel.Annotations, 5.0.0}",
"System.Configuration.ConfigurationManager, {System.Configuration.ConfigurationManager, 5.0.0}",
"System.Diagnostics.DiagnosticSource, {System.Diagnostics.DiagnosticSource, 5.0.1}",
"System.Diagnostics.PerformanceCounter, {System.Diagnostics.PerformanceCounter, 5.0.0}",
"System.Drawing.Common, {System.Drawing.Common, 5.0.0}",
"System.IO, {System.IO, 4.3.0}",
"System.IO.Pipelines, {System.IO.Pipelines, 5.0.0}",
"System.Json, {System.Json, 4.7.1}",
"System.Reflection, {System.Reflection, 4.3.0}",
"System.Reflection.Emit, {System.Reflection.Emit, 4.3.0}",
"System.Reflection.Emit.ILGeneration, {System.Reflection.Emit.ILGeneration, 4.3.0}",
"System.Reflection.Primitives, {System.Reflection.Primitives, 4.3.0}",
"System.Runtime, {System.Runtime, 4.3.0}",
"System.Runtime.CompilerServices.Unsafe, {System.Runtime.CompilerServices.Unsafe, 6.0.0}",
"System.Security.AccessControl, {System.Security.AccessControl, 5.0.0}",
"System.Security.Cryptography.Cng, {System.Security.Cryptography.Cng, 4.5.0}",
"System.Security.Permissions, {System.Security.Permissions, 5.0.0}",
"System.Security.Principal.Windows, {System.Security.Principal.Windows, 5.0.0}",
"System.Text.Encoding, {System.Text.Encoding, 4.3.0}",
"System.Text.Encoding.CodePages, {System.Text.Encoding.CodePages, 4.4.0}",
"System.Threading.Tasks, {System.Threading.Tasks, 4.3.0}",
"System.Windows.Extensions, {System.Windows.Extensions, 5.0.0}",
"Ubiety.Dns.Core, {MySql.Data, 8.0.29}",
"ZstdNet, {MySql.Data, 8.0.29}"
],
"targetFramework": "netcoreapp3.1",
"typeReuseMode": "All"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.Erp
{
/// <summary>
/// ERP单据查询-dto
/// </summary>
public class ErpBillQueryDto
{
public ErpBillQueryDto() { }
public ErpBillQueryDto(string accessToken)
{
this.AccessToken = accessToken;
}
/// <summary>
/// 令牌
/// </summary>
[JsonProperty(PropertyName = "ACCESSTOKEN")]
public string AccessToken { get; set; }
/// <summary>
/// 参数
/// </summary>
[JsonProperty(PropertyName = "data")]
public string Data { get; set; }
}
}

View File

@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.Erp
{
/// <summary>
/// ERP单据查询-参数-dto
/// </summary>
public class ErpBillQueryParamDto
{
/// <summary>
/// 业务对象表单Id必录
/// </summary>
public string FormId { get; set; } = "STK_InStock";
/// <summary>
/// 需查询的字段key集合字符串类型格式"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如FEntryKey_FEntryId
/// </summary>
public string FieldKeys { get; set; } = "FBillNo,FUOM";
/// <summary>
/// 过滤条件,数组类型,如:[{"Left":"(","FieldName":"Field1","Compare":"=","Value":"111","Right":")","Logic":"AND"},{"Left":"(","FieldName":"Field2","Compare":"=","Value":"222","Right":")","Logic":""}]
/// </summary>
public string FilterString { get; set; }
/// <summary>
/// 排序字段,字符串类型(非必录)
/// </summary>
public string OrderString { get; set; }
/// <summary>
/// 返回总行数,整型(非必录)
/// </summary>
public int TopRowCount { get; set; }
/// <summary>
/// 开始行索引,整型(非必录)
/// </summary>
public int StartRow { get; set; } = 1;
/// <summary>
/// 最大行数整型不能超过10000非必录
/// </summary>
public int Limit { get; set; } = 10;
/// <summary>
/// 表单所在的子系统内码,字符串类型(非必录)
/// </summary>
public string SubSystemId { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.Erp.Purchase
{
/// <summary>
/// erp-采购入库-返回数据源
/// </summary>
[Serializable]
public class ErpPurchaseInStockResultDto
{
/// <summary>
/// 单据编号
/// </summary>
public string BillNo { get; set; }
/// <summary>
/// 物料规格信号
/// </summary>
public string Specifications { get; set; }
}
}

View File

@@ -26,6 +26,10 @@
<PackageReference Include="StackExchange.Redis" Version="2.2.79" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="System.Json" Version="4.7.1" />
<PackageReference Include="System.ServiceModel.Duplex" Version="4.7.*" />
<PackageReference Include="System.ServiceModel.Http" Version="4.7.*" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.7.*" />
<PackageReference Include="System.ServiceModel.Security" Version="4.7.*" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto.Erp.Purchase;
using WMS.Web.Core.Internal.Results;
namespace WMS.Web.Domain.IService.Public
{
public interface IErpService
{
/// <summary>
/// erp:单据查询-采购入库单
/// </summary>
/// <returns></returns>
Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock();
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Domain.Options
{
/// <summary>
/// erp相关配置文件
/// </summary>
public class ErpOptions
{
/// <summary>
/// erp-请求地址
/// </summary>
public string EndpointAddress { get; set; }
/// <summary>
/// 账号
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; }
/// <summary>
/// erp-Id
/// </summary>
public string ErpId { get; set; }
}
}

View File

@@ -0,0 +1,89 @@
using AutoMapper;
using ERP;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.Erp.Purchase;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Options;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Services.Public
{
/// <summary>
/// erp数据交互服务
/// </summary>
public class ErpService : IErpService
{
private IMapper _mapper;
private ErpOptions _erpOptions;
private ILogger<ErpService> _logger;
public ErpService(
IMapper mapper,
IOptions<ErpOptions> erpOptions,
ILogger<ErpService> logger)
{
this._erpOptions = erpOptions?.Value;
this._mapper = mapper;
this._logger = logger;
}
/// <summary>
/// 初始化ERP登录到ERP
/// </summary>
/// <returns></returns>
public async Task<Result<AccessResult>> Init()
{
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress(this._erpOptions.EndpointAddress);
ERPGWSoapClient client = new ERPGWSoapClient(binding, address);
try
{
var result = await client.ValidateSystemAsync(this._erpOptions.UserName, this._erpOptions.Password, this._erpOptions.ErpId, "");
if (result == null)
return Result<AccessResult>.ReFailure(ResultCodes.Erp_Login_Error);
return Result<AccessResult>.ReSuccess(result);
}
catch (Exception ex)
{
return Result<AccessResult>.ReFailure(ResultCodes.Erp_Login_Error);
}
}
/// <summary>
/// erp:单据查询-采购入库单
/// </summary>
/// <returns></returns>
public async Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock()
{
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress(this._erpOptions.EndpointAddress);
ERPGWSoapClient client = new ERPGWSoapClient(binding, address);
var token_result = await client.ValidateSystemAsync(this._erpOptions.UserName, this._erpOptions.Password, this._erpOptions.ErpId, "");
var query = new ErpBillQueryDto(token_result.AccessToken);
var param = new ErpBillQueryParamDto();
query.Data = JsonConvert.SerializeObject(param);
var json = JsonConvert.SerializeObject(query);
var result_json = await client.ExecuteBillQueryAsync(json);
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
var list = new List<ErpPurchaseInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpPurchaseInStockResultDto();
lis.BillNo = item[0];
lis.Specifications = item[1];
list.Add(lis);
}
return ResultList<ErpPurchaseInStockResultDto>.ReSuccess(list);
}
}
}

View File

@@ -9,5 +9,8 @@ namespace WMS.Web.Domain.Values
/// </summary>
public partial class ResultCodes
{
public static ValueTuple<int, string> Erp_Login_Error = (1001, "Erp登录返回错误");
public static ValueTuple<int, string> Erp_BillQuery_Error = (1002, "Erp单据查询返回错误");
}
}

View File

@@ -168,6 +168,8 @@ namespace WMS.Web.Repositories.DependencyInjection
Services.Configure<SoaOptions>(Configuration.GetSection("SoaOptions"));
Services.AddOptions<HttpOptions>();
Services.Configure<HttpOptions>(Configuration.GetSection("HttpOptions"));
Services.AddOptions<ErpOptions>();
Services.Configure<ErpOptions>(Configuration.GetSection("ErpOptions"));
}
/// <summary>
@@ -182,6 +184,7 @@ namespace WMS.Web.Repositories.DependencyInjection
Services.AddTransient<ILoginService, LoginService>();
Services.AddTransient<IHttpClientService, HttpClientService>();
Services.AddTransient<ISingleDataService, SingleDataService>();
Services.AddTransient<IErpService, ErpService>();
}
}
}