From 95c92db3c831c73b05068b09221c13ad4a250322 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期一, 02 二月 2026 20:07:00 +0800
Subject: [PATCH] 条码扫描成功音频播放功能,代码优化

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs |   64 ++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 7 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
index 3dd6e37..0715523 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
@@ -7,6 +7,7 @@
 using WIDESEA_Common.LocationEnum;
 using WIDESEA_Common.OrderEnum;
 using WIDESEA_Common.StockEnum;
+using WIDESEA_Common.TaskEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
@@ -48,9 +49,10 @@
         private readonly IRepository<Dt_LocationInfo> _locationInfoRepository;
         private readonly IBasicService _basicService;
         private readonly IRepository<Dt_AllocateOrder> _allocateOrderRepository;
+        private readonly IRepository<Dt_OutboundOrder> _outboundOrderRepository;
         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) : 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) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -68,6 +70,7 @@
             _basicService = basicService;
             _locationInfoRepository = locationInfoRepository;
             _allocateOrderRepository = allocateOrderRepository;
+            _outboundOrderRepository = outboundOrderRepository;
         }
 
         public async Task<WebResponseContent> ReceiveInboundOrder(List<Dt_InboundOrder> models, int operateType)
@@ -715,6 +718,11 @@
                 {
                     // 璇嗗埆涓烘墭鐩樺彿
                     palletCode = code;
+                    var task =_taskRepository.Db.Queryable<Dt_Task>().Where(t => t.PalletCode == palletCode).ToList();
+                    if(task!=null && task.Any())
+                    {
+                        return WebResponseContent.Instance.Error($"鎵樼洏鍙� {palletCode} 瀛樺湪鏈畬鎴愮殑浠诲姟锛屾棤娉曟挙閿�");
+                    }
                 }
                 else
                 {
@@ -908,6 +916,15 @@
                         {
                             sugarQueryable1 = sugarQueryable1.Where(x => x.OrderType.Equals(searchParameters.Value.ToString()));
                         }
+
+                        var detailMaterielCode = searchParametersList.FirstOrDefault(x => x.Name == "materielCode");
+                        if(detailMaterielCode!=null && !string.IsNullOrEmpty(detailMaterielCode.Value?.ToString()))
+                        {
+                            string materielCode = detailMaterielCode.Value.ToString().Trim();
+                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(d => d.MaterielCode.Contains(materielCode)));
+
+                        }
+
                         //var dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                         //return new PageGridData<Dt_InboundOrder>(totalCount, dataList);
                     }
@@ -977,16 +994,49 @@
                 foreach (var orderNo in orderNos)
                 {
                     var inbound = _inboundOrderRepository.QueryFirst(x => x.InboundOrderNo == orderNo);
-                    if(inbound == null)
+                    var outbound = _outboundOrderRepository.QueryFirst(x=>x.OrderNo == orderNo);
+                    
+                    if (inbound != null)
                     {
-                        return WebResponseContent.Instance.Error($"璇ュ崟鎹笉瀛樺湪锛屾棤娉曡繘琛屽叧闂�");
+                        if (inbound.OrderStatus != (int)InOrderStatusEnum.鏈紑濮� && inbound.OrderStatus != (int)InOrderStatusEnum.鍏ュ簱涓�)
+                        {
+                            return WebResponseContent.Instance.Error($"璇ュ崟鎹姸鎬佷笉鍙互鍏抽棴");
+                        }
+                        inbound.OrderStatus = (int)InOrderStatusEnum.鎵嬪姩鍏抽棴;
+                        inbound.Operator = App.User.UserName;
+                        _inboundOrderRepository.UpdateData(inbound);
+
+                        var inboundItems = _inboundOrderDetailRepository.QueryData(x => x.OrderId == inbound.Id);
+                        if(inboundItems.FirstOrDefault().OrderDetailStatus == (int)OrderDetailStatusEnum.New)
+                        {
+                            foreach (var item in inboundItems)
+                            {
+                                item.OrderDetailStatus = (int)InOrderStatusEnum.鎵嬪姩鍏抽棴;
+                                item.Modifier = App.User.UserName;
+                                BaseDal.Db.Updateable<Dt_InboundOrderDetail>(item).ExecuteCommand();
+                            }
+                        }
                     }
-                    if (inbound.OrderStatus != (int)InOrderStatusEnum.鏈紑濮� && inbound.OrderStatus != (int)InOrderStatusEnum.鍏ュ簱涓�)
+                    else if (outbound != null)
                     {
-                        return WebResponseContent.Instance.Error($"璇ュ崟鎹姸鎬佷笉鍙互鍏抽棴");
+                        if(outbound.OrderStatus !=(int)OutOrderStatusEnum.鏈紑濮� && outbound.OrderStatus != (int)OutOrderStatusEnum.鍑哄簱涓�)
+                        {
+                            return WebResponseContent.Instance.Error($"璇ュ崟鎹姸鎬佷笉鍙互鍏抽棴");
+                        }
+                        outbound.OrderStatus = (int)OutOrderStatusEnum.鍏抽棴;
+                        outbound.Operator = App.User.UserName;
+                        _outboundOrderRepository.UpdateData(outbound);
+
+                        var outboundItems = BaseDal.Db.Queryable<Dt_OutboundOrderDetail>().Where(x => x.OrderId == outbound.Id).ToList();
+                        if(outboundItems.FirstOrDefault().OrderDetailStatus == (int)OrderDetailStatusEnum.New)
+                        foreach(var item in outboundItems)
+                        {
+                            item.OrderDetailStatus = (int)OutOrderStatusEnum.鍏抽棴;
+                            item.Modifier = App.User.UserName;
+                            BaseDal.Db.Updateable<Dt_OutboundOrderDetail>(item).ExecuteCommand();
+                        }
                     }
-                    inbound.OrderStatus = (int)InOrderStatusEnum.鎵嬪姩鍏抽棴;
-                    _inboundOrderRepository.UpdateData(inbound);
+                    
                 }
                 return WebResponseContent.Instance.OK($"鍗曟嵁鍏抽棴鎴愬姛");
             }

--
Gitblit v1.9.3