1
heshaofeng
2026-03-12 070b9f3ea747fc763f999e4cc6b86b202f48a237
1
已修改7个文件
68 ■■■■ 文件已修改
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/printView.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/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>
ÏîÄ¿´úÂë/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,6 +1805,8 @@
                    // æ£€æŸ¥å‡ºåº“单是否完成
                    if (CheckOutboundOrderCompleted(request.OrderNo))
                    {
                        if(outboundOrder.OrderType != OutOrderTypeEnum.InternalAllocat.ObjToInt())
                        {
                        UpdateOutboundOrderStatus(request.OrderNo, OutOrderStatusEnum.出库完成.ObjToInt());
                        if (outboundOrder.CreateType!=OrderCreateTypeEnum.CreateInSystem.ObjToInt())
@@ -1810,6 +1815,7 @@
                        }
                    }
                }
                }
                catch (Exception ex)
                {
                    _unitOfWorkManage.RollbackTran();
ÏîÄ¿´úÂë/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>();
@@ -1017,6 +1023,7 @@
                }
                Dt_OutboundOrder outboundOrder = _outboundOrderService.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == stockInfo.Details.FirstOrDefault().OrderNo).Includes(x=>x.Details).First();
                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