ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/outbound/extend/printView.vue
@@ -6,7 +6,8 @@ <div class="print-page" v-for="(item, index) in printData" :key="index"> <div class="material-card"> <div class="dual-column header-section"> <div class="header">ååè½ç©ææ è¯å¡(å°å )</div> <!-- 卿ç»å®æå°åºåæ é¢ --> <div class="header">{{ getHeaderTitle(item.factoryArea) }}</div> <VueQrcode :value="generateQr(item)" :size="60" class="qrcode" /> </div> <div class="content"> @@ -70,13 +71,14 @@ </div> </div> <!-- é¢è§åºåä¿æä¸å --> <div id="previewContent" class="preview-container"> <div class="preview-header">ååè½ç©ææ è¯å¡(å°å ) - é¢è§ (å ±{{ printData.length }}个)</div> <!-- 卿ç»å®é¢è§åºåæ»æ é¢ --> <div class="preview-header">{{ printData.length > 0 ? getHeaderTitle(printData[0].factoryArea) : 'ç©ææ è¯å¡' }} - é¢è§ (å ±{{ printData.length }}个)</div> <div class="preview-scroll"> <div v-for="(item, idx) in printData" :key="idx" class="preview-card"> <div class="dual-column preview-card-header-qrcode"> <div class="preview-card-header">ååè½ç©ææ è¯å¡(å°å )</div> <!-- 卿ç»å®é¢è§å¡çæ é¢ --> <div class="preview-card-header">{{ getHeaderTitle(item.factoryArea) }}</div> <VueQrcode :value="generateQr(item)" :size="40" class="qrcode-preview" /> </div> <div class="preview-wrapper"> @@ -167,6 +169,13 @@ } }, methods: { getHeaderTitle(factoryArea) { if (!factoryArea) return 'ç©ææ è¯å¡(å°å )' return factoryArea === '04' ? 'æ ¼é¾ç©ææ è¯å¡(å°å )' : 'ååè½ç©ææ è¯å¡(å°å )' }, generateQr(item) { return `${item.barcode}` }, @@ -192,7 +201,6 @@ this.$message.error('æ æ³æå¼æå°çªå£ï¼è¯·æ£æ¥æµè§å¨å¼¹çªè®¾ç½®') return } printWindow.document.write(` <!DOCTYPE html> @@ -538,4 +546,4 @@ color: #409eff; font-weight: bold; } </style> </style> ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
@@ -12,6 +12,7 @@ using System.Linq.Expressions; using System.Reflection; using System.Reflection.Metadata; using WIDESEA_Common.OrderEnum; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.Const; using WIDESEA_Core.DB.Models; @@ -659,6 +660,10 @@ saveModel.MainData.Remove(keyPro.Name.FirstLetterToLower()); } } saveModel.MainData["CreateType"] = (int)OrderCreateTypeEnum.CreateInSystem; saveModel.MainData["ReturnToMESStatus"] = 5; TEntity entity = saveModel.MainData.DicToModel<TEntity>(); if (saveModel.DetailData == null || saveModel.DetailData.Count == 0) { ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj
@@ -38,4 +38,8 @@ <Folder Include="SystemConfig\" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\WIDESEA_Common\WIDESEA_Common.csproj" /> </ItemGroup> </Project> ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -50,9 +50,10 @@ private readonly IBasicService _basicService; private readonly IRepository<Dt_AllocateOrder> _allocateOrderRepository; private readonly IRepository<Dt_OutboundOrder> _outboundOrderRepository; private readonly IRepository<Dt_OutboundOrderDetail> _outboundOrderDetailRepository; public IRepository<Dt_InboundOrder> Repository => BaseDal; public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService, IBasicService basicService, IRepository<Dt_LocationInfo> locationInfoRepository, IRepository<Dt_AllocateOrder> allocateOrderRepository, IRepository<Dt_OutboundOrder> outboundOrderRepository) : base(BaseDal) public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService, IBasicService basicService, IRepository<Dt_LocationInfo> locationInfoRepository, IRepository<Dt_AllocateOrder> allocateOrderRepository, IRepository<Dt_OutboundOrder> outboundOrderRepository, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -71,6 +72,7 @@ _locationInfoRepository = locationInfoRepository; _allocateOrderRepository = allocateOrderRepository; _outboundOrderRepository = outboundOrderRepository; _outboundOrderDetailRepository = outboundOrderDetailRepository; } public async Task<WebResponseContent> ReceiveInboundOrder(List<Dt_InboundOrder> models, int operateType) @@ -1031,10 +1033,23 @@ } else if (outbound != null) { if(outbound.OrderStatus !=(int)OutOrderStatusEnum.æªå¼å§ && outbound.OrderStatus != (int)OutOrderStatusEnum.åºåºä¸) if(outbound.OrderStatus ==(int)OutOrderStatusEnum.åºåºå®æ) { return WebResponseContent.Instance.Error($"è¯¥åæ®ç¶æä¸å¯ä»¥å ³é"); } if(outbound.OrderStatus == (int)OutOrderStatusEnum.åºåºä¸) { var outboundDetails = _outboundOrderDetailRepository.QueryData(x => x.OrderId == outbound.Id); if (outboundDetails == null) { return WebResponseContent.Instance.Error("è¯¥åæ®ç¶æä¸è½å ³é"); } var detailStatus = outboundDetails.All(x => x.LockQuantity == x.OverOutQuantity); if (!detailStatus) { return WebResponseContent.Instance.Error("è¯¥åæ®ææ£å¨åºåºçç©æï¼ä¸è½å ³é"); } } outbound.OrderStatus = (int)OutOrderStatusEnum.å ³é; outbound.Operator = App.User.UserName; _outboundOrderRepository.UpdateData(outbound); ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -246,6 +246,7 @@ if (outboundOrder.Details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty)) { outboundOrder.OrderStatus = (int)OutOrderStatusEnum.åºåºå®æ; outboundOrder.ReturnToMESStatus = 1; } BaseDal.UpdateData(outboundOrder); ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -1371,6 +1371,9 @@ { _outboundLockInfoRepository.DeleteAndMoveIntoHty(stockLockInfos, WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å é¤); } outboundOrderDetails.FirstOrDefault().OrderDetailStatus = (int)OrderDetailStatusEnum.Over; _detailRepository.UpdateData(outboundOrderDetails); } // æ£æ¥åºåºåæ¯å¦å®æ @@ -1802,11 +1805,14 @@ // æ£æ¥åºåºåæ¯å¦å®æ if (CheckOutboundOrderCompleted(request.OrderNo)) { UpdateOutboundOrderStatus(request.OrderNo, OutOrderStatusEnum.åºåºå®æ.ObjToInt()); if (outboundOrder.CreateType!=OrderCreateTypeEnum.CreateInSystem.ObjToInt()) if(outboundOrder.OrderType != OutOrderTypeEnum.InternalAllocat.ObjToInt()) { _feedbackMesService.OutboundFeedback(outboundOrder.OrderNo); UpdateOutboundOrderStatus(request.OrderNo, OutOrderStatusEnum.åºåºå®æ.ObjToInt()); if (outboundOrder.CreateType != OrderCreateTypeEnum.CreateInSystem.ObjToInt()) { _feedbackMesService.OutboundFeedback(outboundOrder.OrderNo); } } } } ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -622,6 +622,12 @@ } } if (outboundOrder.Details.All(x => x.OrderDetailStatus == (int)OrderDetailStatusEnum.Over) && !allocatInfo.Any()) { outboundOrder.OrderStatus = (int)InOrderStatusEnum.å ¥åºå®æ; _outboundOrderService.UpdateData(outboundOrder); } // 7. åè°MES string Operator = outboundOrder.Modifier; HttpResponseResult<MesResponseDTO> httpResponseResult = new HttpResponseResult<MesResponseDTO>(); @@ -1016,8 +1022,9 @@ await Db.Deleteable(task).ExecuteCommandAsync(); } Dt_OutboundOrder outboundOrder = _outboundOrderService.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == stockInfo.Details.FirstOrDefault().OrderNo).Includes(x=>x.Details).First(); if(outboundOrder != null) if (outboundOrder != null) { foreach (var item in stockInfo.Details.Where(x => x.OrderNo == outboundOrder.OrderNo).ToList()) { @@ -1030,6 +1037,12 @@ await Db.Deleteable(task).ExecuteCommandAsync(); } } } var allocateMaterialInfos = _allocateMaterialInfo.QueryData(x => x.OrderNo == outboundOrder.OrderNo); if (outboundOrder.Details.All(x => x.OrderDetailStatus == (int)OrderDetailStatusEnum.Over) && !allocateMaterialInfos.Any()) { outboundOrder.OrderStatus = (int)InOrderStatusEnum.å ¥åºå®æ; _outboundOrderService.UpdateData(outboundOrder); } } string Operator = outboundOrder.Modifier; @@ -1052,7 +1065,7 @@ { return WebResponseContent.Instance.Error($"æå»ºåè°å¯¹è±¡å¤±è´¥"); } string apiUrl = AppSettings.GetValue("AllocationFeedbackUrl"); ; string apiUrl = AppSettings.GetValue("AllocationFeedbackUrl"); returnDTO.ReqCode = reqCode; returnDTO.ReqTime = reqTime; JsonSerializerSettings settings = new JsonSerializerSettings