Exemplo n.º 1
1
 /// <summary>
 /// 批量更新
 /// </summary>
 /// <param name="p"></param>
 /// <param name="db"></param>
 private void Update(Student2 p, SqlSugarClient db)
 {
     db.UpdateRange(StudentListUpd);
     var list = db.Queryable<Student>().ToList();
     db.SqlBulkReplace(StudentListUpd2);
     list = db.Queryable<Student>().ToList();
 }
Exemplo n.º 2
0
        /// <summary>
        /// 批量更新
        /// </summary>
        /// <param name="p"></param>
        /// <param name="db"></param>
        private void Update(Student2 p, SqlSugarClient db)
        {
            db.UpdateRange(StudentListUpd);
            var list = db.Queryable <Student>().ToList();

            db.SqlBulkReplace(StudentListUpd2);
            list = db.Queryable <Student>().ToList();
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="tableIds"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public bool UpdateTablesStatus(List <int> tableIds, CythStatus status)
        {
            using (var db = new SqlSugarClient(Connection))
            {
                try
                {
                    db.BeginTran();
                    var tableList = db.Queryable <R_Table>().Where(x => tableIds.Contains(x.Id)).ToList();

                    if (tableList == null || tableList.Count == 0)
                    {
                        throw new Exception("指定餐台不存在,不能执行空置清理操作!");
                    }

                    StringBuilder errMsg = new StringBuilder();
                    foreach (var item in tableList)
                    {
                        if (item.CythStatus != CythStatus.清理)
                        {
                            errMsg.AppendLine(string.Format(
                                                  "当前餐台({0})状态为:(1),不能执行空置清理操作!",
                                                  item.Name, Enum.GetName(typeof(CythStatus), item.CythStatus)));
                        }
                        item.CythStatus = status;
                    }

                    if (errMsg != null && errMsg.Length > 0)
                    {
                        throw new Exception(errMsg.ToString());
                    }

                    var result = db.UpdateRange(tableList);
                    db.CommitTran();
                    return(result.Any(x => !x) ? false : true);
                }
                catch (Exception e)
                {
                    db.RollbackTran();
                    throw e;
                }
            }
        }
Exemplo n.º 4
0
 public List <bool> UpdateRange <T>(List <T> rowObjList) where T : class
 {
     return(_db.UpdateRange(rowObjList));
 }
Exemplo n.º 5
0
        /// <summary>
        /// 加台操作
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public List <int> AddTableHandle(AddTableSubmitDTO req)
        {
            List <int> res = new List <int>();

            using (var db = new SqlSugarClient(Connection))
            {
                try
                {
                    db.BeginTran();
                    List <R_OrderTable> inserOTList = new List <R_OrderTable>();
                    var dateItem = _extendItemRepository.GetModelList(req.CompanyId, 10003).FirstOrDefault();
                    if (dateItem == null)
                    {
                        throw new Exception("餐饮账务日期尚未初始化,请联系管理员");
                    }
                    if (db.Queryable <R_OrderTable>().Any(p => (p.IsOpen == true && p.IsCheckOut == false) &&
                                                          req.NewTableIds.Contains(p.R_Table_Id)))
                    {
                        throw new Exception("选择的台号已经被别的订单使用,请重新选择");
                    }
                    var orderModel = db.Queryable <R_Order>().JoinTable <R_OrderTable>((s1, s2) =>
                                                                                       s1.Id == s2.R_Order_Id).Where <R_OrderTable>((s1, s2) => s2.Id == req.OrderTableId)
                                     .Select <R_Order>("s1.*").First();
                    var tables = db.Queryable <R_Table>().Where(p => req.NewTableIds.Contains(p.Id))
                                 .Select(p => p.Name).ToList();

                    db.Update <R_Table>(new { CythStatus = CythStatus.在用 }, p => req.NewTableIds.Contains(p.Id));

                    foreach (var item in req.NewTableIds)
                    {
                        inserOTList.Add(new R_OrderTable
                        {
                            R_Order_Id  = orderModel.Id,
                            R_Table_Id  = item,
                            CreateDate  = DateTime.Now,
                            PersonNum   = 0,
                            IsCheckOut  = false,
                            IsOpen      = true,
                            IsLock      = false,
                            BillDate    = Convert.ToDateTime(dateItem.ItemValue),
                            R_Market_Id = req.CurrentMarketId
                        });
                    }

                    var orderTableIds = db.InsertRange <R_OrderTable>(inserOTList).ToList();

                    var orderTables = db.Queryable <R_OrderTable>()
                                      .Where(p => p.R_Order_Id == orderModel.Id).ToList();

                    int personNumAvg = orderTables.Count() > 1 ?
                                       orderModel.PersonNum / orderTables.Count() : orderModel.PersonNum; //台号人均
                    int personNumRemainder = orderTables.Count() > 1 ?
                                             orderModel.PersonNum % orderTables.Count() : 0;              //台号余人
                    int eachRemainder = 0;

                    if (orderTables != null && orderTables.Count() > 0)
                    {
                        foreach (var item in orderTableIds)
                        {
                            res.Add(Convert.ToInt32(item));
                        }
                        foreach (var orderTable in orderTables)
                        {
                            eachRemainder++;
                            orderTable.PersonNum = personNumAvg + (personNumRemainder - eachRemainder >= 0 ? 1 : 0);
                        }
                        db.UpdateRange <R_OrderTable>(orderTables);//更新订单台号人数
                    }

                    R_OrderRecord record = new R_OrderRecord
                    {
                        CreateDate       = DateTime.Now,
                        R_Order_Id       = orderModel.Id,
                        CreateUser       = req.CreateUser,
                        CyddCzjlStatus   = CyddStatus.开台,
                        CyddCzjlUserType = CyddCzjlUserType.员工,
                        Remark           = string.Format(
                            "开台操作-订单({0})开台({1})", orderModel.OrderNo, tables.Join(",")),
                        R_OrderTable_Id = orderTableIds.Count == 1 ? Convert.ToInt32(orderTableIds[0]) : 0
                    };

                    db.Insert <R_OrderRecord>(record);
                    db.CommitTran();
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    throw ex;
                }
            }
            return(res);
        }