| WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| WMS/WIDESEA_WMSServer/WIDESEA_Model/WMSNoticeHub.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs
@@ -225,7 +225,6 @@ /// </summary> [Description("çäº§å ¥åºå")] works = 2, /// <summary> /// è°æ¨åºåºå /// </summary> WMS/WIDESEA_WMSServer/WIDESEA_Model/WMSNoticeHub.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ using Microsoft.AspNetCore.SignalR; namespace WIDESEA_Model { public class WMSNoticeHub : Hub { // å端çå¬è¿ä¸ªæ¹æ³å°±è½æ¶å°æ¶æ¯ public async Task SendMessage(string message) { await Clients.All.SendAsync("ReceiveMessage", message); } } } WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
@@ -1,4 +1,5 @@ using MailKit.Search; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; @@ -169,7 +170,6 @@ // newTask.TaskType = TaskTypeEnum.MesPalletSmallReturn.ObjToInt(); // } //} //else //{ stockInfo.StockStatus = StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt(); locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); @@ -178,6 +178,30 @@ _unitOfWorkManage.BeginTran(); int taskId = BaseDal.AddData(newTask); newTask.TaskId = taskId; List<Dt_StockInfoDetail> stockInfoDetails = stockInfo.Details; foreach (var stockInfoDetail in stockInfoDetails) { WriteLog.Write_Log("API", "å ¥åºâ请æ±LED", "è¯·æ±æå", new { è¯·æ±æ¥æ = 1 }); var postData = new { DeviceCode = "1005", // å±å¹ç¼å· MaterialCode = stockInfoDetail.MaterielCode,//ç©æç±»å SendNum = stockInfoDetail.OutboundQuantity,//åææ° BackNum = stockInfoDetail.StockQuantity - stockInfoDetail.OutboundQuantity//ååºæ° }; WriteLog.Write_Log("API", "å ¥åºâ请æ±LED", "è¯·æ±æå", new { è¯·æ±æ¥æ2 = postData }); string json = Newtonsoft.Json.JsonConvert.SerializeObject(postData); WriteLog.Write_Log("API", "å ¥åºâ请æ±LED", "è¯·æ±æå", new { è¯·æ±æ¥æ3 = json }); using (var client = new HttpClient()) { var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = client.PostAsync(LEDAPI, content).Result; string result = response.Content.ReadAsStringAsync().Result; WriteLog.Write_Log("API", "å ¥åºâ请æ±LED", "è¯·æ±æå", new { è¯·æ±æ¥æ = response, æ¥æ¶æ¥æ = result }); } WriteLog.Write_Log("API", "å ¥åºâ请æ±LED", "è¯·æ±æå", new { è¯·æ±æ¥æ = 4 }); } if (returnOrder != null) { returnOrder.OrderStatus = InOrderStatusEnum.å ¥åºä¸.ObjToInt(); @@ -212,12 +236,15 @@ Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode); if (task != null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"该æç{palletCode}å·²çæä»»å¡"); return WebResponseContent.Instance.Error($"该æç{palletCode}å·²çæä»»å¡"); } Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); if (stockInfo == null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"æªæ¾å°ç»çä¿¡æ¯"); return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); } @@ -227,6 +254,8 @@ Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode); if (locationInfo1 == null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"ååºåä¸è¯¥åºä½{stockInfo.LocationCode}æªæ¾å°"); return WebResponseContent.Instance.Error($"ååºåä¸è¯¥åºä½{stockInfo.LocationCode}æªæ¾å°"); } returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); @@ -239,6 +268,8 @@ Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode); if (locationInfo1 == null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"ååºåä¸è¯¥åºä½{returnOrder.LocationCode}æªæ¾å°"); return WebResponseContent.Instance.Error($"ååºåä¸è¯¥åºä½{returnOrder.LocationCode}æªæ¾å°"); } returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); @@ -246,23 +277,31 @@ if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"该ç«ç¹å·²ææªæ§è¡çä»»å¡"); return WebResponseContent.Instance.Error($"该ç«ç¹å·²ææªæ§è¡çä»»å¡"); } var details = stockInfo.Details.FirstOrDefault(); if (!string.IsNullOrEmpty(stockInfo.LocationCode)) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"该æçå·²ç»å®è´§ä½"); return WebResponseContent.Instance.Error($"该æçå·²ç»å®è´§ä½"); } Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); if (roadwayInfo == null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"æªæ¾å°è¯¥å ¥åºç«å°å°å"); return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥å ¥åºç«å°å°å"); } Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo); if (warehouse == null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"æªæ¾å°è¯¥ä»åº"); return WebResponseContent.Instance.Error("æªæ¾å°è¯¥ä»åº"); } @@ -272,6 +311,8 @@ locationInfo = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode); if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Disable.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt()) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"该ååºåè´§ä½{locationInfo.LocationCode}ééå®ç¶ææè´§ä½å¯ç¨ç¶æä¸æ£ç¡®ï¼è¯·æ£æ¥"); return WebResponseContent.Instance.Error($"该ååºåè´§ä½{locationInfo.LocationCode}ééå®ç¶ææè´§ä½å¯ç¨ç¶æä¸æ£ç¡®ï¼è¯·æ£æ¥"); } } @@ -280,6 +321,8 @@ locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, stockInfo.PalletType, warehouse.WarehouseId, "", heightType);//, stockInfo.WarehouseId if (locationInfo == null) { _hubContext.Clients.All.SendAsync("ReceiveMessage", $"è´§ä½åé 失败,æªæ¾å°å¯åé è´§ä½"); return WebResponseContent.Instance.Error($"è´§ä½åé 失败,æªæ¾å°å¯åé è´§ä½"); } } WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -24,25 +24,35 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using Org.BouncyCastle.Asn1.Tsp; using Spire.Pdf; using Spire.Pdf; using SqlSugar; using System; using System; using System; using System; using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Drawing.Printing; using System.Drawing.Printing; using System.IO; using System.IO; using System.Linq; using System.Net.Http; using System.Net.Http; using System.Reflection; using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; using System.Threading.Tasks; using System.Threading.Tasks; using WIDESEA_BasicRepository; using WIDESEA_Common; using WIDESEA_Common.Log; using WIDESEA_Common.Log; using WIDESEA_Common.OrderEnum; using WIDESEA_Common.TaskEnum; @@ -54,6 +64,7 @@ using WIDESEA_Core.TaskEnum; using WIDESEA_DTO.Basic; using WIDESEA_DTO.ERP; using WIDESEA_DTO.ERP; using WIDESEA_DTO.Inbound; using WIDESEA_DTO.Stock; using WIDESEA_DTO.Task; @@ -62,6 +73,7 @@ using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_InboundRepository; using WIDESEA_InboundRepository; using WIDESEA_IOutboundRepository; using WIDESEA_IOutboundService; using WIDESEA_IRecordService; @@ -69,8 +81,10 @@ using WIDESEA_IStockService; using WIDESEA_ITaskInfoRepository; using WIDESEA_ITaskInfoService; using WIDESEA_Model; using WIDESEA_Model.Models; using WIDESEA_Model.Models.Inbound; using WIDESEA_OutboundRepository; using WIDESEA_OutboundRepository; using WIDESEA_StockRepository; using WIDESEA_TaskInfoRepository; @@ -78,26 +92,13 @@ using static WIDESEA_Common.HouseBackboundPassBack; using static WIDESEA_Common.HouseInboundPassBack; using static WIDESEA_Common.HouseInboundPassBack.data.data1; using static WIDESEA_Common.HouseInboundPassBack.data.data1; using static WIDESEA_Common.HouseoutboundPassBack; using static WIDESEA_Common.InventoryAllocate; using static WIDESEA_Common.NewHouseInboundPassBack; using static WIDESEA_Common.NewHouseInboundPassBack.Parame.Syncretism; using static WIDESEA_ITaskInfoService.ITaskService; using Parameter = WIDESEA_Common.Parameter; using WIDESEA_DTO.ERP; using WIDESEA_OutboundRepository; using System.ComponentModel.DataAnnotations; using System; using System.IO; using System.Net.Http; using System.Threading.Tasks; using Spire.Pdf; using WIDESEA_InboundRepository; using System.Drawing.Printing; using System; using WIDESEA_Common.Log; using static WIDESEA_Common.HouseInboundPassBack.data.data1; using System.Diagnostics; namespace WIDESEA_TaskInfoService { @@ -131,9 +132,11 @@ 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; @@ -162,6 +165,7 @@ _takeStockOrderCPRepository = takeStockOrderCPRepository; _takeStockOrderDetailCPRepository = takeStockOrderDetailCPRepository; _stockInfoDetailCPRepository = stockInfoDetailCPRepository; _hubContext = hubContext; } public string ReceiveWMSTaskin = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskin"]; @@ -2866,12 +2870,15 @@ private void AddRetrueOrder(Dt_Task task,Dt_StockInfo stockInfo, Dt_OutboundOrder outboundOrder) { Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>() .Where(x => x.StockId == stockInfo.Id).First(); if (stockInfoDetail == null) List<Dt_StockInfoDetail> stockInfoDetails = _stockService.StockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>() .Where(x => x.StockId == stockInfo.Id).ToList(); if (stockInfoDetails == null || stockInfoDetails.Count == 0) { throw new Exception("建ç«ååºåæ¶ï¼æªæ¾å°è¯¥åºåä¿¡æ¯"); } Dt_ReturnOrder? lastReturnOrder = null; foreach (var stockInfoDetail in stockInfoDetails) { if (outboundOrder.OrderType == OrderTypeEnum.忣åºåºå.ObjToInt()) { Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => x.LPNNo == stockInfo.PalletCode && x.LocationCode == stockInfo.LocationCode && x.OrderStatus == InOrderStatusEnum.æªå¼å§.ObjToInt()); @@ -2908,9 +2915,15 @@ } WriteLog.Write_Log("API", "åºåºâ请æ±LED", "è¯·æ±æå", new { è¯·æ±æ¥æ = 4 }); decimal returnQuantity = stockInfoDetail.StockQuantity - stockInfoDetail.OutboundQuantity; if (returnQuantity > 0) bool allowCompeted = stockInfo.Details.All(x => x.StockQuantity == x.OutboundQuantity); if (allowCompeted) { DeleteAndMoveIntoHtStockStatus(stockInfo); } else { decimal returnQuantity = stockInfoDetail.StockQuantity - stockInfoDetail.OutboundQuantity; Dt_ReturnOrder returnOrder = new Dt_ReturnOrder { MaterielCode = stockInfoDetail.MaterielCode, @@ -2926,29 +2939,33 @@ OrderType = OrderTypeEnum.使ååºå.ObjToInt(), System = "WMS" }; if(lastReturnOrder != null) { lastReturnOrder.Remark = lastReturnOrder.Remark + $",{returnOrder.BatchNo}"; _returnOrderRepository.UpdateData(lastReturnOrder); } if (outboundOrder.System == "SMOM" && stockInfo.LocationCode != null) { returnOrder.LocationCode = stockInfo.LocationCode; } _unitOfWorkManage.BeginTran(); if(lastReturnOrder == null) { _returnOrderRepository.AddData(returnOrder); lastReturnOrder = returnOrder; } stockInfo.LocationCode = ""; stockInfo.StockStatus = StockStatusEmun.使éåº.ObjToInt(); stockInfo.Remark = "使éåº"; stockInfoDetail.OutboundQuantity = 0; stockInfoDetail.StockQuantity = returnQuantity; stockInfoDetail.OrderNo = returnOrder.OrderNo; stockInfoDetail.OrderNo = lastReturnOrder.OrderNo; _stockService.StockInfoService.Repository.UpdateData(stockInfo); _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetail); _unitOfWorkManage.CommitTran(); } else { DeleteAndMoveIntoHtStockStatus(stockInfo); } } } //使¸©ãè¯æ°´ååºå WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
@@ -1,24 +1,25 @@ using WIDESEA_Core.Helper; using WIDESEA_Core.Extensions; using WIDESEA_Core.Middlewares; using System.Reflection; using WIDESEA_Core.Filter; using Autofac; using Autofac.Core; using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using Microsoft.Extensions.DependencyInjection.Extensions; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; using Newtonsoft.Json; using System.Reflection; using System.Text; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using Autofac.Extensions.DependencyInjection; using Autofac; using WIDESEA_WMSServer.Filter; using WIDESEA_Core.Authorization; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Core; using Autofac.Core; using Microsoft.AspNetCore.Builder; using WIDESEA_Core.Extensions; using WIDESEA_Core.Filter; using WIDESEA_Core.Helper; using WIDESEA_Core.Middlewares; using WIDESEA_Model; using WIDESEA_WMSServer.Filter; var builder = WebApplication.CreateBuilder(args); @@ -90,9 +91,12 @@ builder.Services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>()); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); builder.Services.AddSignalR(); var app = builder.Build(); app.MapHub<WMSNoticeHub>("/wmsNoticeHub"); // è·¯ç± // 3ãé ç½®ä¸é´ä»¶ app.UseMiniProfiler();//æ§è½åæå¨ app.ConfigureApplication();//é ç½®æä»¶