金蝶物料数据-可以使用了
This commit is contained in:
Binary file not shown.
@@ -12,6 +12,7 @@ using WMS.Web.Core.Internal.Results;
|
|||||||
using WMS.Web.Domain.Infrastructure;
|
using WMS.Web.Domain.Infrastructure;
|
||||||
using WMS.Web.Domain.IService.Public;
|
using WMS.Web.Domain.IService.Public;
|
||||||
using WMS.Web.Domain.Values;
|
using WMS.Web.Domain.Values;
|
||||||
|
using WMS.Web.Domain.Values.Single;
|
||||||
|
|
||||||
namespace WMS.Web.Api.Controllers
|
namespace WMS.Web.Api.Controllers
|
||||||
{
|
{
|
||||||
@@ -25,12 +26,16 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly ILoginService _loginService;
|
private readonly ILoginService _loginService;
|
||||||
private readonly IBasicsRepositories _basicsRepositories;
|
private readonly IBasicsRepositories _basicsRepositories;
|
||||||
private readonly IBoxRepositories _boxRepositories;
|
private readonly IBoxRepositories _boxRepositories;
|
||||||
|
private readonly IErpService _erpService;
|
||||||
|
private readonly ISingleDataService _singleDataService;
|
||||||
public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories,
|
public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories,
|
||||||
IBoxRepositories boxRepositories)
|
IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService)
|
||||||
{
|
{
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
_basicsRepositories = basicsRepositories;
|
_basicsRepositories = basicsRepositories;
|
||||||
_boxRepositories = boxRepositories;
|
_boxRepositories = boxRepositories;
|
||||||
|
_erpService = erpService;
|
||||||
|
_singleDataService = singleDataService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -111,6 +116,37 @@ namespace WMS.Web.Api.Controllers
|
|||||||
var r = await _basicsRepositories.GetSubUcStockAsync(id);
|
var r = await _basicsRepositories.GetSubUcStockAsync(id);
|
||||||
return Result<List<UcStockResponse>>.ReSuccess(r);
|
return Result<List<UcStockResponse>>.ReSuccess(r);
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据仓库获取金蝶子仓库
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">仓库id</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
[Route("GetErp_SubUcStock/{id}")]
|
||||||
|
public async Task<Result<List<UcStockResponse>>> GetErp_SubUcStock([FromRoute] int id)
|
||||||
|
{
|
||||||
|
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||||
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
|
return Result<List<UcStockResponse>>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
|
|
||||||
|
List<UcStockResponse> list = new List<UcStockResponse>();
|
||||||
|
var code = _singleDataService.GetSingleDataCode(SingleAction.Stocks, loginInfo.UserInfo.CompanyId, id);
|
||||||
|
if (code.Substring(0, 2).Equals("HD") || code.Substring(0, 2).Equals("GD"))
|
||||||
|
{
|
||||||
|
var subs = await _erpService.BillQueryForSubStock(code);
|
||||||
|
foreach (var s in subs.Data)
|
||||||
|
{
|
||||||
|
list.Add(new UcStockResponse()
|
||||||
|
{
|
||||||
|
Id = s.Id,
|
||||||
|
Code = s.Code,
|
||||||
|
Name = s.Name,
|
||||||
|
Disable = false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result<List<UcStockResponse>>.ReSuccess(list);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取仓位:模糊名称
|
/// 获取仓位:模糊名称
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.ServiceModel;
|
using System.ServiceModel;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using WMS.Web.Core.Dto;
|
||||||
using WMS.Web.Core.Internal.Results;
|
using WMS.Web.Core.Internal.Results;
|
||||||
using WMS.Web.Domain.Infrastructure;
|
using WMS.Web.Domain.Infrastructure;
|
||||||
using WMS.Web.Domain.IService;
|
using WMS.Web.Domain.IService;
|
||||||
@@ -23,19 +24,28 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly IErpService _erpService;
|
private readonly IErpService _erpService;
|
||||||
private IInStockTaskService _inStockTaskService;
|
private IInStockTaskService _inStockTaskService;
|
||||||
private IBasicsRepositories _transactionRepositories;
|
private IBasicsRepositories _transactionRepositories;
|
||||||
|
private readonly IOpsService _opsService;
|
||||||
|
|
||||||
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBasicsRepositories transactionRepositories)
|
public TestController(IErpService erpService, IInStockTaskService inStockTaskService,
|
||||||
|
IBasicsRepositories transactionRepositories, IOpsService opsService)
|
||||||
{
|
{
|
||||||
this._erpService = erpService;
|
this._erpService = erpService;
|
||||||
this._inStockTaskService = inStockTaskService;
|
this._inStockTaskService = inStockTaskService;
|
||||||
this._transactionRepositories = transactionRepositories;
|
this._transactionRepositories = transactionRepositories;
|
||||||
|
_opsService = opsService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route("hj")]
|
[Route("hj")]
|
||||||
public async Task<string> TestHJ()
|
public async Task<string> TestHJ()
|
||||||
{
|
{
|
||||||
var res = await this._erpService.BillQueryForTransferDirectOutStock();
|
OpsBoxRequest request = new OpsBoxRequest()
|
||||||
|
{
|
||||||
|
StrartTime = DateTime.Now.AddYears(-1),
|
||||||
|
EndTime=DateTime.Now
|
||||||
|
};
|
||||||
|
await _opsService.GetBox(request);
|
||||||
|
//var res = await this._erpService.BillQueryForSubStock();
|
||||||
//var result= await this._erpService.BillQueryForPurchaseInStock();
|
//var result= await this._erpService.BillQueryForPurchaseInStock();
|
||||||
//var result = await this._erpService.BillQueryForOrg();
|
//var result = await this._erpService.BillQueryForOrg();
|
||||||
var result = await this._erpService.BillQueryForMaterial();
|
var result = await this._erpService.BillQueryForMaterial();
|
||||||
|
|||||||
@@ -43,6 +43,11 @@
|
|||||||
"ErpId": "ce20210909",
|
"ErpId": "ce20210909",
|
||||||
"PurchaseInstockFieldKeys": "FBillNo,FUOM,FSupplierId.FName,FPurchaseOrgId.FName,FMaterialName,FMaterialId.FNumber"
|
"PurchaseInstockFieldKeys": "FBillNo,FUOM,FSupplierId.FName,FPurchaseOrgId.FName,FMaterialName,FMaterialId.FNumber"
|
||||||
},
|
},
|
||||||
|
"OpsOptions": {
|
||||||
|
"Url": "http://39.108.150.2:8050/",
|
||||||
|
"UserName": "admin",
|
||||||
|
"PassWord": "888888"
|
||||||
|
},
|
||||||
"Qiniu": {
|
"Qiniu": {
|
||||||
"AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms",
|
"AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms",
|
||||||
"SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q",
|
"SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q",
|
||||||
|
|||||||
@@ -283,6 +283,13 @@
|
|||||||
<param name="id">仓库id</param>
|
<param name="id">仓库id</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetErp_SubUcStock(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
根据仓库获取金蝶子仓库
|
||||||
|
</summary>
|
||||||
|
<param name="id">仓库id</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetSubUcStockByName(System.String)">
|
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetSubUcStockByName(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取仓位:模糊名称
|
获取仓位:模糊名称
|
||||||
|
|||||||
@@ -2280,6 +2280,16 @@
|
|||||||
操作 Id集合
|
操作 Id集合
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:WMS.Web.Core.Dto.OpsBoxRequest">
|
||||||
|
<summary>
|
||||||
|
老ops箱信息请求
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:WMS.Web.Core.Dto.OpsBoxResponse">
|
||||||
|
<summary>
|
||||||
|
老ops箱信息
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Core.Dto.OutStockTask.GetOutStockTaskByNoResponse">
|
<member name="T:WMS.Web.Core.Dto.OutStockTask.GetOutStockTaskByNoResponse">
|
||||||
<summary>
|
<summary>
|
||||||
根据单号搜索出库单任务信息
|
根据单号搜索出库单任务信息
|
||||||
|
|||||||
@@ -993,6 +993,11 @@
|
|||||||
仓位ID
|
仓位ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.TakeStock.Erp_SubStockId">
|
||||||
|
<summary>
|
||||||
|
子仓库(跟金蝶交互字段)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStock.BeforeQty">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStock.BeforeQty">
|
||||||
<summary>
|
<summary>
|
||||||
盘点前数量(wms系统数量)
|
盘点前数量(wms系统数量)
|
||||||
@@ -1598,6 +1603,12 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForSubStock(System.String)">
|
||||||
|
<summary>
|
||||||
|
获取仓位信息信息 根据仓库编码
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.IService.Public.ILoginService">
|
<member name="T:WMS.Web.Domain.IService.Public.ILoginService">
|
||||||
<summary>
|
<summary>
|
||||||
登录服务接口
|
登录服务接口
|
||||||
@@ -1924,6 +1935,11 @@
|
|||||||
采购入库:字段
|
采购入库:字段
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:WMS.Web.Domain.Options.OpsOptions">
|
||||||
|
<summary>
|
||||||
|
老ops对接
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Options.QuartzJobOptions">
|
<member name="T:WMS.Web.Domain.Options.QuartzJobOptions">
|
||||||
<summary>
|
<summary>
|
||||||
Quartz定时任务-配置项
|
Quartz定时任务-配置项
|
||||||
@@ -2373,6 +2389,13 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForSubStock(System.String)">
|
||||||
|
<summary>
|
||||||
|
根据仓库编码获取仓位
|
||||||
|
</summary>
|
||||||
|
<param name="code"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.Public.ErpService.Sync``1(``0,System.String)">
|
<member name="M:WMS.Web.Domain.Services.Public.ErpService.Sync``1(``0,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
同步数据(保存提交审核)
|
同步数据(保存提交审核)
|
||||||
@@ -2597,6 +2620,11 @@
|
|||||||
<param name="sessionId"></param>
|
<param name="sessionId"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:WMS.Web.Domain.Services.Public.OpsService">
|
||||||
|
<summary>
|
||||||
|
ops服务
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.SetStringKey(System.String,System.String,System.Nullable{System.TimeSpan})">
|
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.SetStringKey(System.String,System.String,System.Nullable{System.TimeSpan})">
|
||||||
<summary>
|
<summary>
|
||||||
保存单个key value
|
保存单个key value
|
||||||
|
|||||||
19
src/WMS.Web.Core/Dto/OpsBoxRequest.cs
Normal file
19
src/WMS.Web.Core/Dto/OpsBoxRequest.cs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WMS.Web.Core.Dto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 老ops箱信息请求
|
||||||
|
/// </summary>
|
||||||
|
public class OpsBoxRequest
|
||||||
|
{
|
||||||
|
public DateTime StrartTime { get; set; }
|
||||||
|
public DateTime EndTime { get; set; }
|
||||||
|
public string BoxBillNo { get; set; }
|
||||||
|
|
||||||
|
public int Page { get; set; } = 1;
|
||||||
|
public int Limit { get; set; } = 10000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
13
src/WMS.Web.Core/Dto/OpsBoxResponse.cs
Normal file
13
src/WMS.Web.Core/Dto/OpsBoxResponse.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WMS.Web.Core.Dto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 老ops箱信息
|
||||||
|
/// </summary>
|
||||||
|
public class OpsBoxResponse
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -34,7 +34,11 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 供应商Id
|
/// 供应商Id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int SupplierId { get; set; }
|
public int? SupplierId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 组织Id
|
||||||
|
/// </summary>
|
||||||
|
public int? OrgId { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建时间(对应老OPS的创建时间)
|
/// 创建时间(对应老OPS的创建时间)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -61,6 +61,11 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
[Column("SubStockId")]
|
[Column("SubStockId")]
|
||||||
public int SubStockId { get; set; }
|
public int SubStockId { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 子仓库(跟金蝶交互字段)
|
||||||
|
/// </summary>
|
||||||
|
[Column("Erp_SubStockId")]
|
||||||
|
public int Erp_SubStockId { get; set; } = 0;
|
||||||
|
/// <summary>
|
||||||
/// 盘点前数量(wms系统数量)
|
/// 盘点前数量(wms系统数量)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column("BeforeQty")]
|
[Column("BeforeQty")]
|
||||||
|
|||||||
@@ -65,6 +65,11 @@ namespace WMS.Web.Domain.IService.Public
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<ResultList<ErpStockDto>> BillQueryForStock();
|
Task<ResultList<ErpStockDto>> BillQueryForStock();
|
||||||
|
/// <summary>
|
||||||
|
/// 获取仓位信息信息 根据仓库编码
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code=null);
|
||||||
//同步数据(保存提交审核)
|
//同步数据(保存提交审核)
|
||||||
Task<Result> Sync<T>(T dto, string formId);
|
Task<Result> Sync<T>(T dto, string formId);
|
||||||
//下推
|
//下推
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ namespace WMS.Web.Domain.IService.Public
|
|||||||
{
|
{
|
||||||
public interface IHttpClientService
|
public interface IHttpClientService
|
||||||
{
|
{
|
||||||
|
HttpClient BuildHttpClient(Dictionary<string, string> dicDefaultHeaders, int? timeoutSecond = 180);
|
||||||
Task<T> GetAsync<T>(string url, int timeoutSecond = 180);
|
Task<T> GetAsync<T>(string url, int timeoutSecond = 180);
|
||||||
Task<T> GetAsync<T>(string url, Dictionary<string, string> dicHeaders, int timeoutSecond = 180);
|
Task<T> GetAsync<T>(string url, Dictionary<string, string> dicHeaders, int timeoutSecond = 180);
|
||||||
Task<T> PostAsync<T>(string url, string requestBody, int timeoutSecond = 180);
|
Task<T> PostAsync<T>(string url, string requestBody, int timeoutSecond = 180);
|
||||||
|
|||||||
13
src/WMS.Web.Domain/IService/Public/IOpsService.cs
Normal file
13
src/WMS.Web.Domain/IService/Public/IOpsService.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using WMS.Web.Core.Dto;
|
||||||
|
|
||||||
|
namespace WMS.Web.Domain.IService.Public
|
||||||
|
{
|
||||||
|
public interface IOpsService
|
||||||
|
{
|
||||||
|
Task GetBox(OpsBoxRequest request);
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/WMS.Web.Domain/Options/OpsOptions.cs
Normal file
16
src/WMS.Web.Domain/Options/OpsOptions.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WMS.Web.Domain.Options
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 老ops对接
|
||||||
|
/// </summary>
|
||||||
|
public class OpsOptions
|
||||||
|
{
|
||||||
|
public string Url { get; set; }
|
||||||
|
public string UserName { get; set; }
|
||||||
|
public string PassWord { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -195,6 +195,21 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
|
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
|
||||||
param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FForbidStatus,FUseOrgId";
|
param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FForbidStatus,FUseOrgId";
|
||||||
param.Limit = 10000;
|
param.Limit = 10000;
|
||||||
|
//查询条件:备注其中的条件值以金蝶的值为准!!!
|
||||||
|
//1.审核状态:已审核
|
||||||
|
//2.禁用状态:A否,B是
|
||||||
|
//3.使用组织:只查询“深圳市元创时代科技有限公司”这个组织;组织ID=100008--固定值查询(测试端和正式是一样的)
|
||||||
|
param.FilterString = "FDocumentStatus='C' and FForbidStatus='A' and FUseOrgId=100008";
|
||||||
|
param.OrderString = "FCreateDate ASC";
|
||||||
|
//3.获取金蝶物料:拼接参数和条件
|
||||||
|
var query = new ErpBillQueryDto(token_result.Data);
|
||||||
|
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
|
||||||
|
param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FForbidStatus,FUseOrgId";
|
||||||
|
param.Limit = 10000;
|
||||||
|
Console.Write("请输入第几行:");
|
||||||
|
var row = Console.ReadLine();
|
||||||
|
param.StartRow = (Convert.ToInt32(row) * param.Limit);
|
||||||
|
|
||||||
//查询条件:备注其中的条件值以金蝶的值为准!!!
|
//查询条件:备注其中的条件值以金蝶的值为准!!!
|
||||||
//1.审核状态:已审核
|
//1.审核状态:已审核
|
||||||
//2.禁用状态:A否,B是
|
//2.禁用状态:A否,B是
|
||||||
@@ -331,6 +346,49 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 根据仓库编码获取仓位
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="code"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code = null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var token_result = await this.Init();
|
||||||
|
if (!token_result.IsSuccess)
|
||||||
|
return ResultList<ErpStockDto>.ReFailure(token_result);
|
||||||
|
var query = new ErpBillQueryDto(token_result.Data);
|
||||||
|
var param = new ErpBillQueryParamDto(FormIdParam.BD_STOCK.ToString());
|
||||||
|
param.FieldKeys = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId,'0'";
|
||||||
|
param.Limit = 100000;
|
||||||
|
if (!string.IsNullOrEmpty(code))
|
||||||
|
param.FilterString = "FNumber='" + code + "'";//FNumber='C'
|
||||||
|
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<ErpStockDto>();
|
||||||
|
foreach (var item in result)
|
||||||
|
{
|
||||||
|
var lis = new ErpStockDto();
|
||||||
|
lis.Id = int.Parse(item[0]);
|
||||||
|
lis.Name = item[1];
|
||||||
|
lis.Code = item[2];
|
||||||
|
lis.OrgId = Convert.ToInt32(item[3]);
|
||||||
|
list.Add(lis);
|
||||||
|
|
||||||
|
}
|
||||||
|
return ResultList<ErpStockDto>.ReSuccess(list);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return ResultList<ErpStockDto>.ReFailure("错误", 10002);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
/// 同步数据(保存提交审核)
|
/// 同步数据(保存提交审核)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
@@ -833,6 +891,7 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,8 +105,8 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<T> PostAsync<T>(string url, string requestBody, Dictionary<string, string> dicHeaders, int timeoutSecond = 180)
|
public async Task<T> PostAsync<T>(string url, string requestBody, Dictionary<string, string> dicHeaders, int timeoutSecond = 180)
|
||||||
{
|
{
|
||||||
var client = BuildHttpClient(null, timeoutSecond);
|
var client = BuildHttpClient(dicHeaders, timeoutSecond);
|
||||||
var requestContent = GenerateStringContent(requestBody, dicHeaders);
|
var requestContent = GenerateStringContent(requestBody, contentHeaders);
|
||||||
var response = await client.PostAsync(url, requestContent);
|
var response = await client.PostAsync(url, requestContent);
|
||||||
var responseContent = await response.Content.ReadAsStringAsync();
|
var responseContent = await response.Content.ReadAsStringAsync();
|
||||||
if (response.IsSuccessStatusCode)
|
if (response.IsSuccessStatusCode)
|
||||||
@@ -213,7 +213,7 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// <param name="dicDefaultHeaders"></param>
|
/// <param name="dicDefaultHeaders"></param>
|
||||||
/// <param name="timeoutSecond"></param>
|
/// <param name="timeoutSecond"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private HttpClient BuildHttpClient(Dictionary<string, string> dicDefaultHeaders, int? timeoutSecond)
|
public HttpClient BuildHttpClient(Dictionary<string, string> dicDefaultHeaders, int? timeoutSecond=180)
|
||||||
{
|
{
|
||||||
var httpClient = _clientFactory.CreateClient("ops_client");
|
var httpClient = _clientFactory.CreateClient("ops_client");
|
||||||
httpClient.DefaultRequestHeaders.Clear(); //为了使客户端不受最后一个请求的影响,它需要清除DefaultRequestHeaders
|
httpClient.DefaultRequestHeaders.Clear(); //为了使客户端不受最后一个请求的影响,它需要清除DefaultRequestHeaders
|
||||||
|
|||||||
81
src/WMS.Web.Domain/Services/Public/OpsService.cs
Normal file
81
src/WMS.Web.Domain/Services/Public/OpsService.cs
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using WMS.Web.Core.Dto;
|
||||||
|
using WMS.Web.Domain.IService.Public;
|
||||||
|
using WMS.Web.Domain.Options;
|
||||||
|
|
||||||
|
namespace WMS.Web.Domain.Services.Public
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ops服务
|
||||||
|
/// </summary>
|
||||||
|
public class OpsService : IOpsService
|
||||||
|
{
|
||||||
|
private readonly IHttpClientService _httpClientService;
|
||||||
|
private readonly ILogger<OpsService> _logger;
|
||||||
|
private readonly IMemoryCache _memoryCache;
|
||||||
|
private int hours = 10;//过期时间 默认10小时
|
||||||
|
private readonly OpsOptions _option;
|
||||||
|
|
||||||
|
public OpsService(IHttpClientService httpClientService, ILogger<OpsService> logger,
|
||||||
|
IMemoryCache memoryCache, IOptions<OpsOptions> option)
|
||||||
|
{
|
||||||
|
this._memoryCache = memoryCache;
|
||||||
|
this._httpClientService = httpClientService;
|
||||||
|
this._logger = logger;
|
||||||
|
_option = option?.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task GetBox(OpsBoxRequest request)
|
||||||
|
{
|
||||||
|
var token = await GetToken();
|
||||||
|
Dictionary<string, string> dicHeaders = new Dictionary<string, string>();
|
||||||
|
dicHeaders.Add("Authorization", "Bearer " + token);
|
||||||
|
//_httpClientService.BuildHttpClient(contentHeaders);
|
||||||
|
var res= await _httpClientService.PostAsync<OpsReponse>(_option.Url + "BarCode/carton-box_api/carton-box", JsonConvert.SerializeObject(request), dicHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<string> GetToken()
|
||||||
|
{
|
||||||
|
OpsLogin login = new OpsLogin()
|
||||||
|
{
|
||||||
|
hAccount = _option.UserName,
|
||||||
|
hPassword = _option.PassWord
|
||||||
|
};
|
||||||
|
var res = await _httpClientService.PostAsync<OpsReponse>(_option.Url + "api/login", JsonConvert.SerializeObject(login));
|
||||||
|
var token = res.data?.token ?? "";
|
||||||
|
if (string.IsNullOrEmpty(token))
|
||||||
|
_logger.LogInformation("老Ops登录失败:" + res?.errors);
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public class OpsLogin
|
||||||
|
{
|
||||||
|
public OpsLogin() { }
|
||||||
|
public string hAccount { get; set; } = "admin";
|
||||||
|
public string hPassword { get; set; } = "888888";
|
||||||
|
}
|
||||||
|
public class OpsInfo
|
||||||
|
{
|
||||||
|
public int code { get; set; }
|
||||||
|
public string message { get; set; }
|
||||||
|
public string date { get; set; }
|
||||||
|
public string token { get; set; }
|
||||||
|
}
|
||||||
|
public class OpsReponse
|
||||||
|
{
|
||||||
|
public int statusCode { get; set; }
|
||||||
|
public bool succeeded { get; set; }
|
||||||
|
public string errors { get; set; }
|
||||||
|
public string extras { get; set; }
|
||||||
|
|
||||||
|
public OpsInfo data { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -174,6 +174,8 @@ namespace WMS.Web.Repositories.DependencyInjection
|
|||||||
Services.Configure<HttpOptions>(Configuration.GetSection("HttpOptions"));
|
Services.Configure<HttpOptions>(Configuration.GetSection("HttpOptions"));
|
||||||
Services.AddOptions<ErpOptions>();
|
Services.AddOptions<ErpOptions>();
|
||||||
Services.Configure<ErpOptions>(Configuration.GetSection("ErpOptions"));
|
Services.Configure<ErpOptions>(Configuration.GetSection("ErpOptions"));
|
||||||
|
Services.AddOptions<OpsOptions>();
|
||||||
|
Services.Configure<OpsOptions>(Configuration.GetSection("OpsOptions"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -234,6 +236,8 @@ namespace WMS.Web.Repositories.DependencyInjection
|
|||||||
Services.AddTransient<ISingleDataService, SingleDataService>();
|
Services.AddTransient<ISingleDataService, SingleDataService>();
|
||||||
Services.AddTransient<IErpService, ErpService>();
|
Services.AddTransient<IErpService, ErpService>();
|
||||||
Services.AddTransient<IBackRecordService, BackRecordService>();
|
Services.AddTransient<IBackRecordService, BackRecordService>();
|
||||||
|
Services.AddTransient<IOpsService, OpsService>();
|
||||||
|
|
||||||
Services.AddTransient<IErpBasicDataExtendService, ErpBasicDataExtendService>();
|
Services.AddTransient<IErpBasicDataExtendService, ErpBasicDataExtendService>();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user