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(); } } }