1
huangxiaoqiang
2025-12-30 b94f0b8aa85df442748eb4c88e61cb4c962ed46f
1
已修改3个文件
209 ■■■■ 文件已修改
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundQueryService.cs 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundQueryService.cs
@@ -26,26 +26,111 @@
            }
        }
        //public WebResponseContent QueryPickingTasks(string palletCode, string orderNo)
        //{
        //    try
        //    {
        //        Dt_StockInfo stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
        //        var outboundOrder = _outboundRepository.QueryFirst(x => x.OrderNo == orderNo);
        //        bool isMatMixed = false;
        //        if (stockInfo != null)
        //        {
        //            isMatMixed = stockInfo.Details.GroupBy(x => new
        //            {
        //                x.MaterielCode,
        //                x.MaterielName,
        //                x.BatchNo,
        //                x.SupplyCode,
        //                x.WarehouseCode
        //            }).Count() > 1;
        //        }
        //        List<Dt_OutStockLockInfo> outStockLockInfos = _outboundLockInfoRepository.QueryData(x => x.PalletCode == palletCode && x.OrderNo == orderNo);
        //        return WebResponseContent.Instance.OK(data: new { outStockLockInfos, stockInfo, isMatMixed });
        //    }
        //    catch (Exception ex)
        //    {
        //        return WebResponseContent.Instance.Error(ex.Message);
        //    }
        //}
        public WebResponseContent QueryPickingTasks(string palletCode, string orderNo)
        {
            try
            {
                Dt_StockInfo stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
                Dt_StockInfo stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>()
                    .Where(x => x.PalletCode == palletCode)
                    .Includes(x => x.Details)
                    .First();
                List<Dt_OutStockLockInfo> outStockLockInfos = _outboundLockInfoRepository
                    .QueryData(x => x.PalletCode == palletCode && x.OrderNo == orderNo);
                bool isMatMixed = false;
                if (stockInfo != null)
                if (stockInfo != null && stockInfo.Details != null && stockInfo.Details.Any())
                {
                    isMatMixed = stockInfo.Details.GroupBy(x => new
                    if (outStockLockInfos.FirstOrDefault() != null)
                    {
                        x.MaterielCode,
                        x.MaterielName,
                        x.BatchNo,
                        x.SupplyCode,
                        x.WarehouseCode
                    }).Count() > 1;
                        bool includeBatchNo = !string.IsNullOrEmpty(outStockLockInfos.FirstOrDefault().BatchNo);
                        bool includeSupplyCode = !string.IsNullOrEmpty(outStockLockInfos.FirstOrDefault().SupplyCode);
                        if (includeBatchNo && includeSupplyCode)
                        {
                            isMatMixed = stockInfo.Details.GroupBy(x => new
                            {
                                x.MaterielCode,
                                x.MaterielName,
                                x.BatchNo,
                                x.SupplyCode,
                                x.WarehouseCode
                            }).Count() > 1;
                        }
                        else if (includeBatchNo && !includeSupplyCode)
                        {
                            isMatMixed = stockInfo.Details.GroupBy(x => new
                            {
                                x.MaterielCode,
                                x.MaterielName,
                                x.BatchNo,
                                x.WarehouseCode
                            }).Count() > 1;
                        }
                        else if (!includeBatchNo && includeSupplyCode)
                        {
                            isMatMixed = stockInfo.Details.GroupBy(x => new
                            {
                                x.MaterielCode,
                                x.MaterielName,
                                x.SupplyCode,
                                x.WarehouseCode
                            }).Count() > 1;
                        }
                        else
                        {
                            isMatMixed = stockInfo.Details.GroupBy(x => new
                            {
                                x.MaterielCode,
                                x.MaterielName,
                                x.WarehouseCode
                            }).Count() > 1;
                        }
                    }
                    else
                    {
                        isMatMixed = stockInfo.Details.GroupBy(x => new
                        {
                            x.MaterielCode,
                            x.MaterielName,
                            x.WarehouseCode
                        }).Count() > 1;
                    }
                }
                List<Dt_OutStockLockInfo> outStockLockInfos = _outboundLockInfoRepository.QueryData(x => x.PalletCode == palletCode && x.OrderNo == orderNo);
                return WebResponseContent.Instance.OK(data: new { outStockLockInfos, stockInfo, isMatMixed });
            }
            catch (Exception ex)
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -878,22 +878,6 @@
                    return WebResponseContent.Instance.Error(response.Message);
                }
                bool isMatMixed = stockInfo.Details.GroupBy(x => new
                {
                    x.MaterielCode,
                    x.MaterielName,
                    x.BatchNo,
                    x.SupplyCode,
                    x.WarehouseCode
                }).Count() > 1;
                if (isMatMixed)
                {
                    response.Success = false;
                    response.Message = $"混料托盘 {request.PalletCode} ä¸èƒ½æ•´ç®±å‡ºåº“";
                    return WebResponseContent.Instance.Error(response.Message);
                }
                // 2. æŸ¥æ‰¾å‡ºåº“单信息
                Dt_OutboundOrder outboundOrder = _outboundRepository.QueryFirst(o => o.OrderNo == request.OrderNo);
                if (outboundOrder == null)
@@ -919,6 +903,67 @@
                    return WebResponseContent.Instance.Error(response.Message);
                }
                //bool isMatMixed = stockInfo.Details.GroupBy(x => new
                //{
                //    x.MaterielCode,
                //    x.MaterielName,
                //    x.BatchNo,
                //    x.SupplyCode,
                //    x.WarehouseCode
                //}).Count() > 1;
                bool isMatMixed = false;
                bool includeBatchNo = !string.IsNullOrEmpty(lockInfo.BatchNo);
                bool includeSupplyCode = !string.IsNullOrEmpty(lockInfo.SupplyCode);
                if (includeBatchNo && includeSupplyCode)
                {
                    isMatMixed = stockInfo.Details.GroupBy(x => new
                    {
                        x.MaterielCode,
                        x.MaterielName,
                        x.BatchNo,
                        x.SupplyCode,
                        x.WarehouseCode
                    }).Count() > 1;
                }
                else if (includeBatchNo && !includeSupplyCode)
                {
                    isMatMixed = stockInfo.Details.GroupBy(x => new
                    {
                        x.MaterielCode,
                        x.MaterielName,
                        x.BatchNo,
                        x.WarehouseCode
                    }).Count() > 1;
                }
                else if (!includeBatchNo && includeSupplyCode)
                {
                    isMatMixed = stockInfo.Details.GroupBy(x => new
                    {
                        x.MaterielCode,
                        x.MaterielName,
                        x.SupplyCode,
                        x.WarehouseCode
                    }).Count() > 1;
                }
                else
                {
                    isMatMixed = stockInfo.Details.GroupBy(x => new
                    {
                        x.MaterielCode,
                        x.MaterielName,
                        x.WarehouseCode
                    }).Count() > 1;
                }
                if (isMatMixed)
                {
                    response.Success = false;
                    response.Message = $"混料托盘 {request.PalletCode} ä¸èƒ½æ•´ç®±å‡ºåº“";
                    return WebResponseContent.Instance.Error(response.Message);
                }
                // æ‰¾å‡ºå·²åˆ†é…çš„订单明细Id
                List<int> detailIds = new List<int>();
                string[] ids = lockInfo.OrderDetailIds.Split(",");
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs
@@ -88,33 +88,6 @@
                    _unitOfWorkManage.CommitTran();
                    //TaskModel esstask = new TaskModel()
                    //{
                    //    taskType = "carry",
                    //    taskGroupCode = "",
                    //    groupPriority = 0,
                    //    tasks = new List<TasksType>
                    //    {
                    //            new()
                    //            {
                    //                taskCode=task.TaskNum.ToString(),
                    //                taskPriority=0,
                    //                taskDescribe=new TaskDescribeType
                    //                {
                    //                    containerCode=stockInfo.PalletCode,
                    //                    containerType= "CT_KUBOT_STANDARD",
                    //                    fromLocationCode=stockInfo.LocationCode??"",
                    //                    toStationCode="",
                    //                    toLocationCode="1-2",
                    //                    deadline=0,
                    //                    storageTag=""
                    //                }
                    //            }
                    //    }
                    //};
                    //var result = await _eSSApiService.CreateTaskAsync(esstask);
                    //_logger.LogInformation("创建任务PalletOutboundTask è¿”回:  " + result);
                }
                return content.OK("空托出库成功!");
            }