1
Administrator
2025-01-24 45d3d62c44fc1169f997dfd0411832d8e9459f0c
WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs
@@ -63,11 +63,12 @@
                            TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum))
                        };
                        tasks.Add(task);
                        BaseDal.AddData(tasks);
                        //var responses = HttpHelper.Post<WebResponseContent>(ReceiveTask, tasks, "立库出库数量回传WMS");
                    }
                }
            }
            BaseDal.AddData(tasks);
            return tasks;
        }
@@ -134,6 +135,11 @@
            return (tasks, stockInfos, orderDetail == null ? null : new List<Dt_OutboundOrderDetail> { orderDetail }, outStockLockInfos, locationInfos);
        }
        /// <summary>
        /// 出库单据,出库任务下发
        /// </summary>
        /// <param name="orderAddDTO"></param>
        /// <returns></returns>
        public WebResponseContent AddOutboundOrders(Houseounbound orderAddDTO)
        {
            WebResponseContent content = new();
@@ -148,7 +154,7 @@
                orderAddDTO1.OrderType = orderAddDTO.InoutType.ObjToInt();
                IEnumerable<int> inOrderTypes = Enum.GetValues<OrderTypeEmun>().Cast<int>();
                orderAddDTO1.OrderType = orderAddDTO.OrderType.ObjToInt();
                //orderAddDTO1.OrderType = orderAddDTO.OrderType.ObjToInt();
                orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
                #region 验证数据
                (bool, string, object?) result = CheckOutboundOrderAddData(orderAddDTO1);
@@ -171,6 +177,7 @@
                    UseableQuantity = outboundOrderDetail.OrderQuantity,
                    BatchNo = outboundOrderDetail.BatchNo,
                    LinId=outboundOrderDetail.LinId,
                    PalletCode=outboundOrderDetail.LPNNo,
                };
                stockSelectViews.Add(stockSelectViewDTO);
@@ -213,6 +220,24 @@
                inboundOrder.Creater = "WMS";
                inboundOrder.CreateDate = DateTime.Now;
                bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
                Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
                Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.OrderId == oldOutboundOrder.Id);
                List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>();
                StockSelectViewDTO stockSelectViewDTO = new()
                {
                    OrderNo = orderAddDTO1.OrderNo,
                    MaterielCode = outboundOrderDetail.MaterielCode,
                    MaterielName = outboundOrderDetail.MaterielName,
                    UseableQuantity = outboundOrderDetail.OrderQuantity,
                    BatchNo = outboundOrderDetail.BatchNo,
                    LinId = outboundOrderDetail.LinId,
                };
                stockSelectViews.Add(stockSelectViewDTO);
                //stockSelectViewDTO.PalletCode = orderAddDTO1;
                //stockSelectViewDTO.LocationCode = orderAddDTO1;
                GenerateOutboundTasks(oldOutboundOrder.Id, stockSelectViews);
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -227,11 +252,11 @@
        }
        private (bool, string, object?) CheckOutboundOrderAddData(OutboundOrderAddDTO outboundOrderAddDTO)
        {
            (bool, string, object?) result1 = ModelValidate.ValidateModelData(outboundOrderAddDTO);
            if (!result1.Item1) return result1;
            //(bool, string, object?) result1 = ModelValidate.ValidateModelData(outboundOrderAddDTO);
            //if (!result1.Item1) return result1;
            (bool, string, object?) result2 = ModelValidate.ValidateModelData(outboundOrderAddDTO.Details);
            if (!result2.Item1) return result2;
            //(bool, string, object?) result2 = ModelValidate.ValidateModelData(outboundOrderAddDTO.Details);
            //if (!result2.Item1) return result2;
            IEnumerable<int> inOrderTypes = Enum.GetValues<OutOrderTypeEnum>().Cast<int>();
            if (!inOrderTypes.Contains(outboundOrderAddDTO.OrderType))
@@ -239,11 +264,11 @@
                return (false, "未找到该单据类型", outboundOrderAddDTO);
            }
            List<string> materielCodes = outboundOrderAddDTO.Details.Select(x => x.MaterielCode).ToList();
            if (!_materielInfoService.ExsitMateriels(materielCodes))
            {
                return (false, "有物料信息未录入,请录入物料信息", outboundOrderAddDTO);
            }
            //List<string> materielCodes = outboundOrderAddDTO.Details.Select(x => x.MaterielCode).ToList();
            //if (!_materielInfoService.ExsitMateriels(materielCodes))
            //{
            //    return (false, "有物料信息未录入,请录入物料信息", outboundOrderAddDTO);
            //}
            Dt_OutboundOrder dt_OutboundOrder = _outboundService.OutboundOrderService.Repository.QueryFirst(x => x.UpperOrderNo == outboundOrderAddDTO.UpperOrderNo && !string.IsNullOrEmpty(x.UpperOrderNo));
            if (dt_OutboundOrder != null)
            {
@@ -251,12 +276,7 @@
            }
            return (true, "成功", outboundOrderAddDTO);
        }
        /// <summary>
        /// 生成出库任务
        /// </summary>
        /// <param name="orderDetailId"></param>
        /// <param name="stockSelectViews"></param>
        /// <returns></returns>
        public WebResponseContent GenerateOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews)
        {
            try
@@ -272,6 +292,12 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// 生成出库任务
        /// </summary>
        /// <param name="orderDetailId"></param>
        /// <param name="stockSelectViews"></param>
        /// <returns></returns>
        public WebResponseContent GenerateOutboundTasks(int orderDetailId, List<StockSelectViewDTO> stockSelectViews)
        {
            try