| | |
| | | private readonly IInboundRepository _inboundRepository; |
| | | private readonly ITakeStockOrderCPRepository _takeStockOrderCPRepository; |
| | | private readonly ITakeStockOrderDetailCPRepository _takeStockOrderDetailCPRepository; |
| | | private readonly IHubContext<WMSNoticeHub> _hubContext; |
| | | public ITaskRepository Repository => BaseDal; |
| | | |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IMaterielInfoService materielInfoService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IInboundOrder_HtyService inboundOrder_HtyService, IStockRepository stockRepository, IInboundOrderDetailService inboundOrderDetailService, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IBasicRepository basicRepository, IStockInfoDetailRepository stockInfoDetailRepository, IPalletTypeInfoRepository palletTypeInfoRepository, IReturnOrderRepository returnOrderRepository, IProductionRepository productionRepository, IInboundRepository inboundRepository, INewOutboundOrderDetailRepository newOutboundOrderDetailRepository, ITakeStockOrderCPRepository takeStockOrderCPRepository, ITakeStockOrderDetailCPRepository takeStockOrderDetailCPRepository, IStockInfoDetailCPRepository stockInfoDetailCPRepository) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IMaterielInfoService materielInfoService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IInboundOrder_HtyService inboundOrder_HtyService, IStockRepository stockRepository, IInboundOrderDetailService inboundOrderDetailService, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IBasicRepository basicRepository, IStockInfoDetailRepository stockInfoDetailRepository, IPalletTypeInfoRepository palletTypeInfoRepository, IReturnOrderRepository returnOrderRepository, IProductionRepository productionRepository, IInboundRepository inboundRepository, INewOutboundOrderDetailRepository newOutboundOrderDetailRepository, ITakeStockOrderCPRepository takeStockOrderCPRepository, ITakeStockOrderDetailCPRepository takeStockOrderDetailCPRepository, IStockInfoDetailCPRepository stockInfoDetailCPRepository, |
| | | IHubContext<WMSNoticeHub> hubContext) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _stockRepository = stockRepository; |
| | |
| | | _takeStockOrderCPRepository = takeStockOrderCPRepository; |
| | | _takeStockOrderDetailCPRepository = takeStockOrderDetailCPRepository; |
| | | _stockInfoDetailCPRepository = stockInfoDetailCPRepository; |
| | | _hubContext = hubContext; |
| | | } |
| | | |
| | | public string ReceiveWMSTaskin = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskin"]; |
| | |
| | | // 判断Success的值 |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(失败)", "请求失败", new { 请求报文 = houseInboundPassBack, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(成功)", "请求成功", new { 请求报文 = houseInboundPassBack, 接收报文 = response }); |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "调拨入库数量回传WMS"); |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(失败)", "请求失败", new { 请求报文 = inventoryAllocate, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败:{response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(成功)", "请求成功", new { 请求报文 = inventoryAllocate, 接收报文 = response }); |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | if (authResult.IsSuccess) |
| | | { |
| | | houseSyncretism.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | |
| | | }; |
| | | }; |
| | | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskin, houseSyncretism, "立库入库数量回传WMS"); |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(失败)", "请求失败", new { 请求报文 = houseSyncretism, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(成功)", "请求成功", new { 请求报文 = houseSyncretism, 接收报文 = response }); |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | if (authResult.IsSuccess) |
| | | { |
| | | houseInboundPassBack.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskin, houseInboundPassBack, "立库入库数量回传WMS"); |
| | | // 判断Success的值 |
| | | if (response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(成功)", "请求成功", new { 请求报文 = houseInboundPassBack, 接收报文 = response }); |
| | | |
| | | // 如果Success为true,返回需要的值(这里以返回整个响应对象为例) |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(失败)", "请求失败", new { 请求报文 = houseInboundPassBack, 接收报文 = response }); |
| | | |
| | | // 如果Success为false,抛出异常并包含错误信息 |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | |
| | | if (authResult.IsSuccess) |
| | | { |
| | | houseReturnOrders.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskreturn, houseReturnOrders, "取消发货后立库反拣入库回传WMS"); |
| | | // 判断Success的值 |
| | | if (response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(成功)", "请求成功", new { 请求报文 = houseReturnOrders, 接收报文 = response }); |
| | | |
| | | // 如果Success为true,返回需要的值(这里以返回整个响应对象为例) |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(失败)", "请求失败", new { 请求报文 = houseReturnOrders, 接收报文 = response }); |
| | | |
| | | // 如果Success为false,抛出异常并包含错误信息 |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | |
| | | ApiType = "InventoryAllocateController", |
| | | Method = "AsrsFinishedStockCount", |
| | | Parameters = new List<InventoryAllocate.Allocate> |
| | | { |
| | | new InventoryAllocate.Allocate |
| | | { |
| | | Value = new List<Allocate.data1> |
| | | { |
| | | new Allocate.data1 |
| | | { |
| | | No = inboundOrder.OrderNo, |
| | | //InWarehouse = task.Roadway, |
| | | TransactionCode = inboundOrder.TransactionCode, |
| | | InoutType = inboundOrder.OrderType, |
| | | OrderType = inboundOrder.InoutType, |
| | | // 遍历所有库存明细,添加到 DetailList |
| | | DetailList = StockInfos.Select(d => new Allocate.data1.Inventory |
| | | { |
| | | LinId = d.Details.FirstOrDefault()?.LinId?? "", |
| | | MaterielCode = d.Details.FirstOrDefault()?.MaterielCode?? "", |
| | | OrderQuantity = d.Details.FirstOrDefault().StockQuantity, |
| | | BatchNo = d.BatchNo, |
| | | LPNNo = d.PalletCode, |
| | | FinishQty = d.Details.FirstOrDefault().StockQuantity, |
| | | LocationName = d.LocationCode |
| | | }).ToList() |
| | | new InventoryAllocate.Allocate |
| | | { |
| | | Value = new List<Allocate.data1> |
| | | { |
| | | new Allocate.data1 |
| | | { |
| | | No = inboundOrder.OrderNo, |
| | | //InWarehouse = task.Roadway, |
| | | TransactionCode = inboundOrder.TransactionCode, |
| | | InoutType = inboundOrder.OrderType, |
| | | OrderType = inboundOrder.InoutType, |
| | | // 遍历所有库存明细,添加到 DetailList |
| | | DetailList = StockInfos.Select(d => new Allocate.data1.Inventory |
| | | { |
| | | LinId = d.Details.FirstOrDefault()?.LinId?? "", |
| | | MaterielCode = d.Details.FirstOrDefault()?.MaterielCode?? "", |
| | | OrderQuantity = d.Details.FirstOrDefault().StockQuantity, |
| | | BatchNo = d.BatchNo, |
| | | LPNNo = d.PalletCode, |
| | | FinishQty = d.Details.FirstOrDefault().StockQuantity, |
| | | LocationName = d.LocationCode |
| | | }).ToList() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | var authResult = AuthenticateWithWMS(); |
| | | if (authResult.IsSuccess) |
| | | { |
| | | inventoryAllocate.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "调拨入库数量回传WMS"); |
| | | var response = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "调拨入库数量回传WMS"); |
| | | if (!response.Status) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(失败)", "请求失败", new { 请求报文 = inventoryAllocate, 接收报文 = response }); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调SMOM(成功)", "请求成功", new { 请求报文 = inventoryAllocate, 接收报文 = response }); |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskout, passBack, "立库出库数量回传WMS"); |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(失败)", "请求失败", new { 请求报文 = passBack, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(成功)", "请求成功", new { 请求报文 = passBack, 接收报文 = response }); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskin, allocate, "立库入库数量回传WMS"); |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(失败)", "请求失败", new { 请求报文 = allocate, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(成功)", "请求成功", new { 请求报文 = allocate, 接收报文 = response }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskout, passBack, "立库出库数量回传WMS"); |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(失败)", "请求失败", new { 请求报文 = passBack, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(成功)", "请求成功", new { 请求报文 = passBack, 接收报文 = response }); |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | var response = HttpHelper.Post<MomRequestContent>(ReceiveWMSTaskin, allocate, "立库入库数量回传WMS"); |
| | | if (!response.Success) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(失败)", "请求失败", new { 请求报文 = allocate, 接收报文 = response }); |
| | | |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(成功)", "请求成功", new { 请求报文 = allocate, 接收报文 = response }); |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, allocate, "立库入库数量回传WMS"); |
| | | var response = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, allocate, "立库入库数量回传WMS"); |
| | | if (!response.Status) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(失败)", "请求失败", new { 请求报文 = allocate, 接收报文 = response }); |
| | | |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调SMOM(成功)", "请求成功", new { 请求报文 = allocate, 接收报文 = response }); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | result = response.Content.ReadAsStringAsync() |
| | | .ConfigureAwait(false).GetAwaiter().GetResult(); |
| | | } |
| | | WriteLog.Write_Log("API", "出库—回调ERP(成功)", "请求成功", new { 请求报文 = postContent, 接收报文 = result }); |
| | | |
| | | // 假设ERP返回成功时返回成功响应 |
| | | return WebResponseContent.Instance.OK(result); |
| | | } |
| | | catch (HttpRequestException ex) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调ERP(失败)", "请求失败", new { 请求报文 = postContent, 接收报文 = ex.Message }); |
| | | |
| | | // 处理HTTP请求相关异常 |
| | | return WebResponseContent.Instance.Error($"HTTP请求错误: {ex.Message}"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteLog.Write_Log("API", "出库—回调ERP(失败)", "请求失败", new { 请求报文 = postContent, 接收报文 = ex.Message }); |
| | | |
| | | // 处理其他异常 |
| | | return WebResponseContent.Instance.Error($"处理失败: {ex.Message}"); |
| | | } |
| | |
| | | // 判断Success的值 |
| | | if (response.Code == 0) |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调ERP(成功)", "请求成功", new { 请求报文 = feedbackInboundOrderERPs, 接收报文 = response }); |
| | | |
| | | // 如果Success为true,返回需要的值(这里以返回整个响应对象为例) |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.Write_Log("API", "入库—回调ERP(失败)", "请求失败", new { 请求报文 = feedbackInboundOrderERPs, 接收报文 = response }); |
| | | |
| | | // 如果Success为false,抛出异常并包含错误信息 |
| | | throw new Exception($"操作失败: {response.Message ?? "未提供错误信息"}"); |
| | | } |