using JSMachine.WMS.Common;
using JSMachine.WMS.Infrastructure.Attributes;
using JSMachine.WMS.Infrastructure.Enums;
using JSMachine.WMS.Infrastructure.Helper;
using JSMachine.WMS.RPC.PaperMESServerRPC.Bo;
using JSMachine.WMS.RPC.ErpRPC.Dto.In;
using JSMachine.WMS.RPC.ErpRPC.Dto.In.BusinessDto;
using JSMachine.WMS.RPC.ErpRPC.Dto.In.BusinessParam;
using JSMachine.WMS.RPC.ErpRPC.Dto.Out;
using JSMachine.WMS.RPC.ErpRPC.Dto.Out.BusinessResult;
using JSMachine.WMS.RPC.ErpRPC.IService;
using Newtonsoft.Json;
using RestSharp;
using JSMachine.WMS.RPC.ErpRPC.Dto.Out.XRBusinessResult;
using System.Security.Policy;
using JSMachine.WMS.RPC.ErpRPC.Dto.In.XRBusinessResult;
namespace JSMachine.WMS.RPC.ErpRPC.Service.WantitErp
{
[ErpTypeAttribute(ErpType.Wantit)]
public class WantitPaperStorageService : IPaperStorageService
{
private static string url = $"{Global.AppSettings.ErpConfig.ErpUrl}/DI/DIExecute.action";
///
/// 纸卷领用记录新增
///
///
///
public async Task AddPaperReceiptRecord(PaperReceiptRecordAddParam paperReceiptRecordParam)
{
var result = await AddPaperReceiptRecordSource(paperReceiptRecordParam);
return result
?.Data
?.Data
?.FirstOrDefault()
?.ALL;
}
///
/// 纸卷领用记录新增
/// 返回原生的接口调用信息
///
///
///
public async Task> AddPaperReceiptRecordSource(PaperReceiptRecordAddParam paperReceiptRecordParam)
{
var apiResultDto = new ApiResult();
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(ActionID.ODIRollPickInsert, paperReceiptRecordParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordParam.Barcode}领用记录新增(ODIRollPickInsert)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordParam.Barcode}领用记录新增(ODIRollPickInsert)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto;
}
///
/// 纸卷退库记录新增
///
///
///
public async Task AddPaperReturn(PaperReturnAddParam paperReturnAddParam)
{
var result = await AddPaperReturnSource(paperReturnAddParam);
return result
?.Data
?.Data
?.FirstOrDefault()
?.ALL;
}
///
/// 纸卷退库记录新增
/// 返回原生的接口调用信息
///
///
///
public async Task> AddPaperReturnSource(PaperReturnAddParam paperReturnAddParam)
{
ApiResult apiResultDto = new ApiResult();
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(ActionID.ODIRollReturnInsert, paperReturnAddParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{paperReturnAddParam.Barcode}退库记录新增(ODIRollReturnInsert)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{paperReturnAddParam.Barcode}退库记录新增(ODIRollReturnInsert)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto;
}
///
/// 纸卷领用记录删除
///
///
///
public async Task DelPaperReceiptRecord(PaperReceiptRecordDelParam paperReceiptRecordDelParam)
{
var result = false;
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(ActionID.ODIRollPickDelete, paperReceiptRecordDelParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordDelParam.Barcode}领用记录删除(ODIRollPickDelete)出错");
return result;
}
ApiResult apiResultDto = JsonConvert.DeserializeObject>(resStr);
result = apiResultDto.ResultCode == "200";
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordDelParam.Barcode}领用记录删除(ODIRollPickDelete)出错: {ex.Message} \n {ex.StackTrace}");
}
return result;
}
///
/// 纸卷库存按条码查询(获取某卷纸的库存信息)
///
///
///
public async Task QueryByBarcode(string barcode)
{
ApiResult apiResultDto = new();
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(
ActionID.ODIRollStockQueryByBarcode,
new PaperStorageParam
{
Barcode = barcode
})
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{barcode}库存按条码查询(ODIRollStockQueryByBarcode)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{barcode}库存按条码查询(ODIRollStockQueryByBarcode)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto
?.Data
?.Data
?.FirstOrDefault()
?.ALL;
}
///
/// 原纸退纸记录删除
///
///
public async Task DelPaperReturn(PaperReturnDelParam paperReturnDelParam)
{
var result = false;
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(ActionID.ODIRollReturnDelete, paperReturnDelParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp原纸{paperReturnDelParam.Barcode}退纸记录删除(ODIRollReturnDelete)出错");
return result;
}
ApiResult apiResultDto = JsonConvert.DeserializeObject>(resStr);
result = apiResultDto.ResultCode == "200";
}
catch (Exception ex)
{
LogHelper.Error($"Erp原纸{paperReturnDelParam.Barcode}退纸记录删除(ODIRollReturnDelete)出错: {ex.Message} \n {ex.StackTrace}");
}
return result;
}
///
/// 原纸库存,按门幅、纸质编码查询
///
///
///
public async Task> QueryByPaperWidthAndCode(PaperPreparationQueryParam param)
{
ApiResult apiResultDto = new();
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(
ActionID.ODIRollStockQuery,
new PaperPreparationQueryParam
{
Paper = param.Paper,
PaperWidth = param.PaperWidth
})
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷库存,按门幅、纸质编码查询(ODIRollStockQuery)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷库存,按门幅、纸质编码查询(ODIRollStockQuery)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto
?.Data
?.Data
?.Select(p => p.ALL)
.ToList();
}
///
/// 新卷入库信息查询(按起始时间)
///
///
///
public async Task> RollNewQueryByTime(PaperStorageQueryParam param)
{
List apiResultDto = new List();
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam.CreateParam(
ActionID.ODIRollNewQueryByTime,
new PaperStorageQueryParam
{
StartTime = param.StartTime,
EndTime = param.EndTime
})
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"新卷入库信息查询(按起始时间)(ODIRollNewQueryByTime)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"新卷入库信息查询(按起始时间)(ODIRollNewQueryByTime)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto;
}
///
/// PDA扫合格证码获取物料信息
///
///
public async Task GetMateriaInfo(string barCode)
{
throw new NotImplementedException();
}
///
/// 生产入库
///
///
public async Task AddProduceIn(ErpProduceInParam erpMateriaInDto)
{
throw new NotImplementedException();
}
///
/// 生产退库
///
///
///
public async Task AddProduceOut(ErpProduceOutParam erpProduceOutParam)
{
throw new NotImplementedException();
}
///
/// 销售出库
///
///
///
public async Task AddSaleOut(ErpSaleOutParam erpSaleOutParam)
{
throw new NotImplementedException();
}
}
}