Files
ww-jst/wmsjst/JSMachine.WMS.RPC/ErpRPC/Service/ChenLong/ChenLongPaperStorageService.cs
T
2026-09-02 16:31:50 +08:00

469 lines
18 KiB
C#

using JSMachine.WMS.Common;
using JSMachine.WMS.Infrastructure.Attributes;
using JSMachine.WMS.Infrastructure.Enums;
using JSMachine.WMS.Infrastructure.Helper;
using JSMachine.WMS.RPC.ErpRPC.Dto.In.BusinessDto;
using JSMachine.WMS.RPC.ErpRPC.Dto.In;
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 JSMachine.WMS.RPC.ErpRPC.Dto.In.XRBusinessResult;
namespace JSMachine.WMS.RPC.ErpRPC.Service.IBS
{
[ErpTypeAttribute(ErpType.ChenLong)]
public class ChenLongPaperStorageService : IPaperStorageService
{
private static string url = $"{Global.AppSettings.ErpConfig.ErpUrl}/";
/// <summary>
/// 纸卷领用记录新增
/// </summary>
/// <param name="paperReceiptRecordParam"></param>
/// <returns></returns>
public async Task<PaperReceiptRecordAddResult> AddPaperReceiptRecord(PaperReceiptRecordAddParam paperReceiptRecordParam)
{
var result = await AddPaperReceiptRecordSource(paperReceiptRecordParam);
return result
?.Data
?.Data
?.FirstOrDefault()
?.ALL;
}
/// <summary>
/// 纸卷领用记录新增
/// 返回原生的接口调用信息
/// </summary>
/// <param name="paperReceiptRecordParam"></param>
/// <returns></returns>
public async Task<ApiResult<PaperReceiptRecordAddResult>> AddPaperReceiptRecordSource(PaperReceiptRecordAddParam paperReceiptRecordParam)
{
var apiResultDto = new ApiResult<PaperReceiptRecordAddResult>();
try
{
string resStr = await HttpRequestHelper.RequestByJson(
url + "ODIRollPickInsert",
Method.POST,
RequestParam<PaperReceiptRecordAddParam>.CreateJsonParam(ActionID.ODIRollPickInsert, paperReceiptRecordParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordParam.Barcode}领用记录新增(ODIRollPickInsert)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject<ApiResult<PaperReceiptRecordAddResult>>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordParam.Barcode}领用记录新增(ODIRollPickInsert)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto;
}
/// <summary>
/// 纸卷退库记录新增
/// </summary>
/// <param name="paperReturnAddParam"></param>
/// <returns></returns>
public async Task<PaperReturnAddResult> AddPaperReturn(PaperReturnAddParam paperReturnAddParam)
{
var result = await AddPaperReturnSource(paperReturnAddParam);
return result
?.Data
?.Data
?.FirstOrDefault()
?.ALL;
}
/// <summary>
/// 纸卷退库记录新增
/// 返回原生的接口调用信息
/// </summary>
/// <param name="paperReturnAddParam"></param>
/// <returns></returns>
public async Task<ApiResult<PaperReturnAddResult>> AddPaperReturnSource(PaperReturnAddParam paperReturnAddParam)
{
ApiResult<PaperReturnAddResult> apiResultDto = new ApiResult<PaperReturnAddResult>();
try
{
string resStr = await HttpRequestHelper.RequestByJson(
url + "ODIRollReturnInsert",
Method.POST,
RequestParam<PaperReturnAddParam>.CreateJsonParam(ActionID.ODIRollReturnInsert, paperReturnAddParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{paperReturnAddParam.Barcode}退库记录新增(ODIRollReturnInsert)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject<ApiResult<PaperReturnAddResult>>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{paperReturnAddParam.Barcode}退库记录新增(ODIRollReturnInsert)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto;
}
/// <summary>
/// 纸卷领用记录删除
/// </summary>
/// <param name="paperReceiptRecordDelParam"></param>
/// <returns></returns>
public async Task<bool> DelPaperReceiptRecord(PaperReceiptRecordDelParam paperReceiptRecordDelParam)
{
var result = false;
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam<PaperReceiptRecordDelParam>.CreateParam(ActionID.ODIRollPickDelete, paperReceiptRecordDelParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordDelParam.Barcode}领用记录删除(ODIRollPickDelete)出错");
return result;
}
ApiResult<PaperReceiptRecordDelResult> apiResultDto = JsonConvert.DeserializeObject<ApiResult<PaperReceiptRecordDelResult>>(resStr);
result = apiResultDto.ResultCode == "200";
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{paperReceiptRecordDelParam.Barcode}领用记录删除(ODIRollPickDelete)出错: {ex.Message} \n {ex.StackTrace}");
}
return result;
}
/// <summary>
/// 纸卷库存按条码查询(获取某卷纸的库存信息)
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public async Task<PaperStorageResult> QueryByBarcode(string barcode)
{
ApiReturnResult<PaperStorageResult> apiResultDto = new();
try
{
var resStr = await HttpRequestHelper.RequestByJson(
url + "ODIRollStockQueryByBarcode",
Method.POST,
RequestParam<PaperStorageParam>.CreateJsonParam(
ActionID.ODIRollStockQueryByBarcode,
new PaperStorageParam
{
Barcode = barcode
})
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷{barcode}库存按条码查询(ODIRollStockQueryByBarcode)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject<ApiReturnResult<PaperStorageResult>>(resStr);
if (apiResultDto != null)
{
var item = apiResultDto.Data;
//ActualQty
if (item.ActualQty == "0" || string.IsNullOrEmpty(item.ActualQty))
{
item.ActualQty = "0";
}
else
{
if (item.ActualQty.Contains("."))
{
item.ActualQty = item.ActualQty.Substring(0, item.ActualQty.LastIndexOf("."));
}
else
{
item.ActualQty = item.ActualQty;
}
}
//StockMeter
if (item.StockMeter == "0" || string.IsNullOrEmpty(item.StockMeter))
{
item.StockMeter = "0";
}
else
{
if (item.StockMeter.Contains("."))
{
item.StockMeter = item.StockMeter.Substring(0, item.StockMeter.LastIndexOf("."));
}
else
{
item.StockMeter = item.StockMeter;
}
}
//GPerM2
if (item.GPerM2 == "0" || string.IsNullOrEmpty(item.GPerM2))
{
item.GPerM2 = "0";
}
else
{
if (item.GPerM2.Contains("."))
{
item.GPerM2 = item.GPerM2.Substring(0, item.GPerM2.LastIndexOf("."));
}
else
{
item.GPerM2 = item.GPerM2;
}
}
//PaperWidth
if (item.PaperWidth == "0" || string.IsNullOrEmpty(item.PaperWidth))
{
item.PaperWidth = "0";
}
else
{
if (item.PaperWidth.Contains("."))
{
item.PaperWidth = item.PaperWidth.Substring(0, item.PaperWidth.LastIndexOf("."));
}
else
{
item.PaperWidth = item.PaperWidth;
}
}
}
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷{barcode}库存按条码查询(ODIRollStockQueryByBarcode)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto?.Data;
}
/// <summary>
/// 原纸退纸记录删除
/// </summary>
/// <returns></returns>
public async Task<bool> DelPaperReturn(PaperReturnDelParam paperReturnDelParam)
{
var result = false;
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam<PaperReturnDelParam>.CreateParam(ActionID.ODIRollReturnDelete, paperReturnDelParam)
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp原纸{paperReturnDelParam.Barcode}退纸记录删除(ODIRollReturnDelete)出错");
return result;
}
ApiResult<PaperReturnDelResult> apiResultDto = JsonConvert.DeserializeObject<ApiResult<PaperReturnDelResult>>(resStr);
result = apiResultDto.ResultCode == "200";
}
catch (Exception ex)
{
LogHelper.Error($"Erp原纸{paperReturnDelParam.Barcode}退纸记录删除(ODIRollReturnDelete)出错: {ex.Message} \n {ex.StackTrace}");
}
return result;
}
/// <summary>
/// 原纸库存,按门幅、纸质编码查询
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<List<PaperStockQueryResult>> QueryByPaperWidthAndCode(PaperPreparationQueryParam param)
{
ApiReturnResult<List<PaperStockQueryResult>> apiResultDto = new();
try
{
if (param.Paper.Contains("-"))
{
param.Paper = param.Paper.Replace("-", "");
}
string resStr = await HttpRequestHelper.RequestByJson(
url+ "ODIRollStockQuery",
Method.POST,
RequestParam<PaperPreparationQueryParam>.CreateJsonParam(
ActionID.ODIRollStockQuery,
new PaperPreparationQueryParam
{
Paper = param.Paper,
PaperWidth = param.PaperWidth
})
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"Erp纸卷库存,按门幅、纸质编码查询(ODIRollStockQuery)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject<ApiReturnResult<List<PaperStockQueryResult>>>(resStr);
if (apiResultDto != null)
{
foreach (var item in apiResultDto?.Data)
{
//ActualQty
if (item.ActualQty == "0" || string.IsNullOrEmpty(item.ActualQty))
{
item.ActualQty = "0";
}
else
{
if (item.ActualQty.Contains("."))
{
item.ActualQty = item.ActualQty.Substring(0, item.ActualQty.LastIndexOf("."));
}
else
{
item.ActualQty = item.ActualQty;
}
}
//StockMeter
if (item.StockMeter == "0" || string.IsNullOrEmpty(item.StockMeter))
{
item.StockMeter = "0";
}
else
{
if (item.StockMeter.Contains("."))
{
item.StockMeter = item.StockMeter.Substring(0, item.StockMeter.LastIndexOf("."));
}
else
{
item.StockMeter = item.StockMeter;
}
}
//GPerM2
if (item.GPerM2 == "0" || string.IsNullOrEmpty(item.GPerM2))
{
item.GPerM2 = "0";
}
else
{
if (item.GPerM2.Contains("."))
{
item.GPerM2 = item.GPerM2.Substring(0, item.GPerM2.LastIndexOf("."));
}
else
{
item.GPerM2 = item.GPerM2;
}
}
//PaperWidth
if (item.PaperWidth == "0" || string.IsNullOrEmpty(item.PaperWidth))
{
item.PaperWidth = "0";
}
else
{
if (item.PaperWidth.Contains("."))
{
item.PaperWidth = item.PaperWidth.Substring(0, item.PaperWidth.LastIndexOf("."));
}
else
{
item.PaperWidth = item.PaperWidth;
}
}
}
}
}
catch (Exception ex)
{
LogHelper.Error($"Erp纸卷库存,按门幅、纸质编码查询(ODIRollStockQuery)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto?.Data;
}
/// <summary>
/// 新卷入库信息查询(按起始时间)
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public async Task<List<PaperStorageResult>> RollNewQueryByTime(PaperStorageQueryParam param)
{
List<PaperStorageResult> apiResultDto = new List<PaperStorageResult>();
try
{
string resStr = await HttpRequestHelper.RequestByDic(
url,
Method.POST,
RequestParam<PaperStorageQueryParam>.CreateParam(
ActionID.ODIRollNewQueryByTime,
new PaperStorageQueryParam
{
StartTime = param.StartTime,
EndTime = param.EndTime
})
);
if (string.IsNullOrEmpty(resStr))
{
LogHelper.Error($"新卷入库信息查询(按起始时间)(ODIRollNewQueryByTime)出错");
return null;
}
apiResultDto = JsonConvert.DeserializeObject<List<PaperStorageResult>>(resStr);
}
catch (Exception ex)
{
LogHelper.Error($"新卷入库信息查询(按起始时间)(ODIRollNewQueryByTime)出错: {ex.Message} \n {ex.StackTrace}");
}
return apiResultDto;
}
/// <summary>
/// PDA扫合格证码获取物料信息
/// </summary>
/// <returns></returns>
public async Task<XRResultDto> GetMateriaInfo(string barCode)
{
throw new NotImplementedException();
}
/// <summary>
/// 生产入库
/// </summary>
/// <returns></returns>
public async Task<bool> AddProduceIn(ErpProduceInParam erpMateriaInDto)
{
throw new NotImplementedException();
}
/// <summary>
/// 生产退库
/// </summary>
/// <param name="erpProduceOutParam"></param>
/// <returns></returns>
public async Task<bool> AddProduceOut(ErpProduceOutParam erpProduceOutParam)
{
throw new NotImplementedException();
}
/// <summary>
/// 销售出库
/// </summary>
/// <param name="erpSaleOutParam"></param>
/// <returns></returns>
public async Task<bool> AddSaleOut(ErpSaleOutParam erpSaleOutParam)
{
throw new NotImplementedException();
}
}
}