first commit
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
using JSMachine.WMS.Common;
|
||||
using JSMachine.WMS.Infrastructure.Attributes;
|
||||
using JSMachine.WMS.Infrastructure.Enums;
|
||||
using JSMachine.WMS.Infrastructure.Helper;
|
||||
using JSMachine.WMS.RPC.PmsRPC.Dto.In;
|
||||
using JSMachine.WMS.RPC.PmsRPC.Dto.Out;
|
||||
using JSMachine.WMS.RPC.PmsRPC.Enum;
|
||||
using JSMachine.WMS.RPC.PmsRPC.IService;
|
||||
using Newtonsoft.Json;
|
||||
using RestSharp;
|
||||
|
||||
namespace JSMachine.WMS.RPC.PmsRPC.Service.ACS
|
||||
{
|
||||
[PmsTypeAttribute(PmsType.ACS)]
|
||||
/// <summary>
|
||||
/// ACS 系统备纸需求接口实现,将外部响应转换为按机台分类的备纸需求。
|
||||
/// </summary>
|
||||
public class AcsPaperPreparService : IPaperPreparService
|
||||
{
|
||||
private static readonly string acsUrl = "Global.AppSettings.PmsConfig.PmsUrl";
|
||||
private static readonly string queryPmsOrdersUrl = "throw new NotImplementedException();";
|
||||
|
||||
/// <summary>
|
||||
/// 处理后的备纸需求
|
||||
/// </summary>
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<MachinePaperNeedDto>> GetMachinePaperNeeds()
|
||||
{
|
||||
ApiResult<PaperPreparDto[]> apiResult = await this.GetPaperPrepars(1, 10000);
|
||||
PaperPreparDto[] paperPrepars = apiResult?.Data;
|
||||
|
||||
if (paperPrepars == null)
|
||||
return null;
|
||||
|
||||
IEnumerable<PaperNeed> hc = paperPrepars
|
||||
.Where(p => !string.IsNullOrEmpty(p.DC_PaperMass))
|
||||
.Select(p => new PaperNeed { PaperMassCode = p.DC_PaperMass, Web = p.Web });
|
||||
IEnumerable<PaperNeed> sc1W = paperPrepars
|
||||
.Where(p => !string.IsNullOrEmpty(p.SC1_CorrPaperMass))
|
||||
.Select(p => new PaperNeed { PaperMassCode = p.SC1_CorrPaperMass, Web = p.Web });
|
||||
IEnumerable<PaperNeed> sc1X = paperPrepars
|
||||
.Where(p => !string.IsNullOrEmpty(p.SC1_SurfPaperMass))
|
||||
.Select(p => new PaperNeed { PaperMassCode = p.SC1_SurfPaperMass, Web = p.Web });
|
||||
IEnumerable<PaperNeed> sc2W = paperPrepars
|
||||
.Where(p => !string.IsNullOrEmpty(p.SC2_CorrPaperMass))
|
||||
.Select(p => new PaperNeed { PaperMassCode = p.SC2_CorrPaperMass, Web = p.Web });
|
||||
IEnumerable<PaperNeed> sc2X = paperPrepars
|
||||
.Where(p => !string.IsNullOrEmpty(p.SC2_SurfPaperMass))
|
||||
.Select(p => new PaperNeed { PaperMassCode = p.SC2_SurfPaperMass, Web = p.Web });
|
||||
|
||||
|
||||
List<MachinePaperNeedDto> machinePaperNeeds = new(5)
|
||||
{
|
||||
new MachinePaperNeedDto {PlateType=PlateType.HC,PaperNeeds=hc.ToList()},
|
||||
new MachinePaperNeedDto {PlateType=PlateType.SC1W,PaperNeeds=sc1W.ToList()},
|
||||
new MachinePaperNeedDto {PlateType=PlateType.SC1X,PaperNeeds=sc1X.ToList()},
|
||||
new MachinePaperNeedDto {PlateType=PlateType.SC2W,PaperNeeds=sc2W.ToList()},
|
||||
new MachinePaperNeedDto {PlateType=PlateType.SC2X,PaperNeeds=sc2X.ToList()}
|
||||
};
|
||||
|
||||
return machinePaperNeeds;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取ACS,Token
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<string> GetACSToken()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取ACS湿段+干段备注
|
||||
/// </summary>
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult<PaperPreparDto[]>> GetPaperPrepars(int pageIndex, int pageSize)
|
||||
{
|
||||
string url = acsUrl + queryPmsOrdersUrl;
|
||||
var jsonParam = new
|
||||
{
|
||||
PageIndex = pageIndex,
|
||||
PageSize = pageSize,
|
||||
};
|
||||
// 先获取访问令牌,再携带令牌调用 ACS 接口;空响应直接转换为空结果。
|
||||
var token = await GetACSToken();
|
||||
string resStr = await HttpRequestHelper.RequestByJson(url, Method.POST, JsonConvert.SerializeObject(jsonParam), token);
|
||||
if (string.IsNullOrEmpty(resStr))
|
||||
return null;
|
||||
|
||||
var apiResultDto = JsonConvert.DeserializeObject<ApiResult<PaperPreparDto[]>>(resStr);
|
||||
return apiResultDto;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user