public List <KitchenMakeDetail> CreateKitchenMakeDetails(KitchenMake make, ICollection <OrderDetails> orderDetails)
        {
            List <KitchenMakeDetail> makeDetails = null;

            makeDetails = new List <KitchenMakeDetail>();
            foreach (var detailItem in orderDetails)
            {
                var makeDetail = new KitchenMakeDetail(DataHelper.GetSystemID(), ExecUserId, make.Id, detailItem.SubProductId);
                makeDetails.Add(makeDetail);
            }
            return(makeDetails);
        }
        public List <KitchenMake> CreateKitchenMakes(OrderBatch orderBatch, List <Orders> orders)
        {
            List <KitchenMake> makes = new List <KitchenMake>();

            foreach (var item in orders)
            {
                var make = new KitchenMake(DataHelper.GetSystemID(), orderBatch.BatchNo, item.No, ExecUserId);
                makes.Add(make);
                if (item.OrderDetails != null)
                {
                    var details = CreateKitchenMakeDetails(make, item.OrderDetails);
                    context.KitchenMakeDetails.AddRange(details);
                }
            }
            context.KitchenMakes.AddRange(makes);
            return(makes);
        }
        /// <summary>
        /// 往批次里增加订单
        /// </summary>
        /// <param name="orderids">要增加的订单<list>多条</param>
        /// <param name="batchNo">批次号</param>
        /// <returns>返回是否成功,返回信息</returns>
        public OpResult AddOrderInBatch(List <string> orderids, string batchNo)
        {
            OpResult result = new OpResult();

            result.Successed = false;
            try
            {//判断批次状态
                var batchState = context.OrderBatchs.Where(p => p.BatchNo.Equals(batchNo) && p.IsDeleted != 1).FirstOrDefault();
                if (batchState != null)
                {
                    if (batchState.MakeStatus == OrderBatchMakeStatus.Complete)
                    {
                        result.Message = "该批次已是完成状态,增加订单失败";
                        return(result);
                    }
                }
                else
                {
                    return(null);
                }


                int count     = orderids.Count(); //取得总更改行数 算订单数用
                int cakeCount = 0;                //蛋糕数量 算蛋糕总数用
                foreach (var item in orderids)
                {
                    //插入厨房制作主表
                    var data = context.Orders.Where(p => p.No.Equals(item) && p.IsDeleted != 1).First();
                    data.Status = OrderStatus.Scheduled;
                    KitchenMake km = new KitchenMake();
                    km.Id        = FCake.Core.Common.DataHelper.GetSystemID();
                    km.BatchNo   = batchNo;
                    km.OrderNo   = item;
                    km.Status    = OrderBatchMakeStatus.NotStart;//到底是订单状态还是批次状态
                    km.IsDeleted = 0;
                    km.CreatedOn = DateTime.Now;
                    context.KitchenMakes.Add(km);
                    // context.SaveChanges();
                    //插入厨房制作从表
                    var odetail   = context.OrderDetails.Where(p => p.OrderNo.Equals(item) && p.IsDeleted != 1).ToList();
                    var otherType = CommonRules.OtherProductTypeDicValue;
                    foreach (var num in odetail)
                    {
                        var product = context.Products.SingleOrDefault(p => p.Id.Equals(num.ProductId) && p.IsDeleted != 1);
                        if (product != null)
                        {
                            if (product.Type != otherType)
                            {
                                cakeCount += Convert.ToInt32(num.Num);//
                            }
                        }
                    }
                    //cakeCount = odetail.Count();
                    foreach (var p in odetail)
                    {
                        KitchenMakeDetail detail = new KitchenMakeDetail();
                        detail.Id            = FCake.Core.Common.DataHelper.GetSystemID();
                        detail.KitchenMakeId = km.Id;
                        detail.Status        = OrderBatchMakeStatus.NotStart;
                        detail.SubProductId  = p.SubProductId;
                        detail.IsDeleted     = 0;
                        detail.CreatedOn     = DateTime.Now;
                        context.KitchenMakeDetails.Add(detail);
                        //context.SaveChanges();
                    }
                }
                //更改批次表的批次订单数量
                var temp = context.OrderBatchs.Single(p => p.BatchNo.Equals(batchNo) && p.IsDeleted != 1);
                temp.OrderNum += count;
                if (temp.OrderNum < 0)//订单数量不可以是负数
                {
                    temp.OrderNum = 0;
                }

                temp.CakeNum += cakeCount;
                if (temp.CakeNum < 0)//批次的蛋糕数量也不可以为负数
                {
                    temp.CakeNum = 0;
                }
                //保存数据
                if (context.SaveChanges() > 0)
                {
                    result.Successed = true;
                    result.Message   = "批次新增订单成功";
                }
                else
                {
                    result.Message = "批次新增订单失败";
                }
            }
            catch (Exception e)
            {
                result.Message = "批次新增订单失败:" + e.Message;
            }
            return(result);
        }