Ejemplo n.º 1
0
        /// <summary>
        /// 新增保养信息
        /// </summary>
        /// <param name="maintenanceInfo">保养信息</param>
        public void Add(MaintenanceInfo maintenanceInfo)
        {
            try
            {
                maintenanceInfo.ItemSummary = GetItemSummary(maintenanceInfo.Items);

                if (maintenanceInfo.NextDate.HasValue)
                {
                    MaintenanceInfo nextInfo = CreateNextMaintenance(maintenanceInfo);

                    using (ClassLibrary.Transaction.TransactionScope scope = new ClassLibrary.Transaction.TransactionScope())
                    {
                        maintenance.Add(maintenanceInfo);
                        maintenance.Add(nextInfo);
                        scope.Complete();
                    }
                }
                else
                {
                    maintenance.Add(maintenanceInfo);
                }
            }
            catch (Exception ex)
            {
                BusinessExceptionHandler.HandlerException("新增保养信息失败!", ex);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 新增保养信息
        /// </summary>
        /// <param name="maintenanceInfo">保养信息对象</param>
        public void Add(MaintenanceInfo maintenanceInfo)
        {
            IDbTransaction transaction = null;

            string commandText = "INSERT INTO Maintenance(Id,CarId,Date,ItemSummary,Mileage,Amount,LoseSales,"
                + "PrevDate,PrevMileage,NextDate,NextMileage,EstimateDate,EstimateMileage,Worker,"
                + "Type,Status,Creator,Operator,CreateDate,UpdateDate,ValidVALUES(@Id,@CarId,@Date,@ItemSummary,"
                + "@Mileage,@Amount,@LoseSales,@PrevDate,@PrevMileage,@NextDate,@NextMileage,"
                + "@EstimateDate,@EstimateMileage,@Worker,@Type,@Status,@Creator,@Operator,"
                + "@CreateDate,@UpdateDate,@Valid)";

            try
            {
                transaction = base.BeginTransaction(CarManageConfig.Instance.ConnectionString);
                base.Execute(commandText, transaction: transaction, param: maintenanceInfo);

                commandText = "INSERT INTO MaintenanceItem(Id,MaintenanceId,CarId,ItemName,ItemCode,Canceled)"
                    + " VALUES(@Id,@MaintenanceId,@CarId,@ItemName,@ItemCode,@Canceled)";
                base.Execute(commandText, transaction: transaction, param: maintenanceInfo.Items);
                base.Commit(transaction);
            }
            catch (Exception ex)
            {
                Rollback(transaction);
                DataAccessExceptionHandler.HandlerException("新增保养信息失败!", ex);
            }
            finally
            {
                CloseConnection(transaction.Connection);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新保养信息
        /// </summary>
        /// <param name="maintenanceInfo">保养信息对象</param>
        public void Update(MaintenanceInfo maintenanceInfo)
        {
            IDbTransaction transaction = null;

            string commandText = "UPDATE Maintenance SET "
                + "CarId=@CarId,Date=@Date,ItemSummary=@ItemSummary,Mileage=@Mileage,Amount=@Amount,LoseSales=@LoseSales,"
                + "PrevDate=@PrevDate,PrevMileage=@PrevMileage,NextDate=@NextDate,NextMileage=@NextMileage,"
                + "EstimateDate=@EstimateDate,EstimateMileage=@EstimateMileage,Worker=@Worker,Type=@Type,"
                + "Status=@Status,Creator=@Creator,Operator=@Operator,CreateDate=@CreateDate,"
                + "UpdateDate=@UpdateDate,Valid=@Valid WHERE Id=@Id";

            try
            {
                transaction = base.BeginTransaction(CarManageConfig.Instance.ConnectionString);
                base.Execute(commandText, transaction: transaction, param: maintenanceInfo);

                commandText = "DELETE FROM MaintenanceItem WHERE MaintenanceId=@MaintenanceId";
                base.Execute(commandText, transaction: transaction, param: new { MaintenanceId = maintenanceInfo.Id });

                commandText = "INSERT INTO MaintenanceItem(Id,MaintenanceId,CarId,ItemName,ItemCode,Canceled)"
                    + " VALUES(@Id,@MaintenanceId,@CarId,@ItemName,@ItemCode,@Canceled,@Valid)";
                base.Execute(commandText, transaction: transaction, param: maintenanceInfo.Items);
                base.Commit(transaction);
            }
            catch (Exception ex)
            {
                Rollback(transaction);
                DataAccessExceptionHandler.HandlerException("更新保养信息失败!", ex);
            }
            finally
            {
                CloseConnection(transaction.Connection);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获得所有保养信息集合
        /// </summary>
        /// <returns>保养信息集合</returns>
        public List<MaintenanceInfo> Search(MaintenanceInfo queryInfo)
        {
            IDbConnection connection = null;

            List<MaintenanceInfo> maintenanceList = new List<MaintenanceInfo>();

            try
            {
                string field = "*";

                string table = "Maintenance";
                string order = "ORDER BY Id";

                StringBuilder filter = new StringBuilder();

                #region 查询条件

                #endregion

                string filterText = string.Empty;

                if (filter.Length > 0)
                {
                    filterText = filter.ToString().TrimStart(' ').Remove(0, 3).Insert(0, " WHERE ");
                }

                string commandText = string.Format("SELECT COUNT(*) FROM Maintenance {0}", filterText);

                connection = base.CreateConnection(CarManageConfig.Instance.ConnectionString);

                queryInfo.TotalCount = base.ExecuteObject<int>(commandText: commandText,
                    connection: connection, param: queryInfo);

                if (queryInfo.TotalCount.Equals(0))
                    return maintenanceList;

                int pageCount = queryInfo.TotalCount / queryInfo.PageSize + 1;

                if (queryInfo.TotalCount % queryInfo.PageSize != 0)
                    pageCount++;

                int startIndex = queryInfo.PageIndex * queryInfo.PageSize;

                commandText = string.Format("SELECT {0} FROM {1} WHERE {2} ORDER BY {3} LIMIT {4},{5}",
                    field, table, filterText, order, startIndex, queryInfo.PageSize);

                maintenanceList = base.Query<MaintenanceInfo>(commandText, connection,
                    param: queryInfo).ToList();
            }
            catch (Exception ex)
            {
                DataAccessExceptionHandler.HandlerException(
                    "查询保养信息失败!", ex);
            }
            finally
            {
                CloseConnection(connection);
            }

            return maintenanceList;
        }
Ejemplo n.º 5
0
        public void Save()
        {
            try
            {
                MaintenanceInfo maintenanceInfo = new MaintenanceInfo();

                if (string.IsNullOrEmpty(MaintenanceId))
                {
                    maintenanceInfo.Id = Guid.NewGuid().ToString();
                    maintenanceInfo.CreateDate = DateTime.Now;
                    maintenanceInfo.Creator = CarManageConfig.Instance.UserData.UserName;
                }
                else
                {
                    maintenanceInfo = maintenance.Load(MaintenanceId);
                }

                maintenanceInfo.CarId = CarId;
                maintenanceInfo.Date = ConvertUtil.ToNullableDateTime(dtpDate.Text);

                maintenanceInfo.Mileage = ConvertUtil.ToNullableInt32(txtMileage.Text);
                maintenanceInfo.Amount = ConvertUtil.ToNullableDecimal(txtAmount.Text);
                maintenanceInfo.LoseSales = ConvertUtil.ToNullableDecimal(CommonUtil.FilterInput(txtLoseSales.Text));
                maintenanceInfo.PrevDate = ConvertUtil.ToNullableDateTime(dtpPrevDate.Text);
                maintenanceInfo.PrevMileage = ConvertUtil.ToNullableInt32(CommonUtil.FilterInput(txtPrevMileage.Text));

                maintenanceInfo.Status = ConvertUtil.ToEnum<MaintenanceStatus>(cbxStatus.SelectedValue);

                if (maintenanceInfo.Status.Equals(MaintenanceStatus.已保养))
                {
                    maintenanceInfo.NextDate = maintenanceInfo.EstimateDate = ConvertUtil.ToNullableDateTime(dtpNextDate.Text);

                    maintenanceInfo.NextMileage = maintenanceInfo.EstimateMileage =
                        ConvertUtil.ToNullableInt32(CommonUtil.FilterInput(txtNextMileage.Text));

                    foreach (ListControlItem item in chklstNextMaintenance.SelectedItem)
                    {
                        maintenanceInfo.NextMaintenanceItems.Add(new MaintenanceItemInfo()
                        {
                            Id = Guid.NewGuid().ToString(),
                            MaintenanceId = maintenanceInfo.Id,
                            CarId = this.CarId,
                            ItemName = item.Text,
                            ItemCode = item.Value,
                            Canceled = false
                        });
                    }
                }

                maintenanceInfo.Operator = CarManageConfig.Instance.UserData.UserName;
                maintenanceInfo.UpdateDate = DateTime.Now;
                maintenanceInfo.Valid = true;

                if (string.IsNullOrEmpty(MaintenanceId))
                {
                    maintenance.Add(maintenanceInfo);
                }
                else
                {
                    maintenance.Update(maintenanceInfo);
                }
            }
            catch (Exception ex)
            {
                UserInterfaceExceptionHandler.HandlerException("保存保养信息失败!", ref ex);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 生成下次保养记录
        /// </summary>
        /// <param name="maintenanceInfo"></param>
        /// <returns></returns>
        private MaintenanceInfo CreateNextMaintenance(MaintenanceInfo maintenanceInfo)
        {
            MaintenanceInfo nextInfo = new MaintenanceInfo();

            nextInfo.Id = Guid.NewGuid().ToString();
            nextInfo.PrevId = maintenanceInfo.Id;
            nextInfo.CarId = maintenanceInfo.CarId;
            nextInfo.PrevDate = maintenanceInfo.Date;
            nextInfo.PrevMileage = maintenanceInfo.Mileage;
            nextInfo.ItemSummary = GetItemSummary(nextInfo.Items);
            nextInfo.Status = MaintenanceStatus.待保养;
            nextInfo.EstimateDate = maintenanceInfo.NextDate;
            nextInfo.EstimateMileage = maintenanceInfo.NextMileage;
            nextInfo.CreateDate = DateTime.Now;
            nextInfo.Creator = maintenanceInfo.Creator;
            nextInfo.Operator = maintenanceInfo.Operator;
            nextInfo.UpdateDate = DateTime.Now;
            nextInfo.Valid = true;

            foreach (MaintenanceItemInfo itemInfo in maintenanceInfo.NextMaintenanceItems)
            {
                MaintenanceItemInfo nextItemInfo = CommonUtil.DeepClone<MaintenanceItemInfo>(itemInfo);
                nextItemInfo.MaintenanceId = nextInfo.Id;

                nextInfo.Items.Add(nextItemInfo);
            }

            return nextInfo;
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 查询保养信息
        /// </summary>
        /// <returns>保养信息集合</returns>
        public List<MaintenanceInfo> Search(MaintenanceInfo queryInfo)
        {
            List<MaintenanceInfo> maintenanceList = new List<MaintenanceInfo>();

            try
            {
                maintenanceList = maintenance.Search(queryInfo);
            }
            catch (Exception ex)
            {
                BusinessExceptionHandler.HandlerException("查询保养信息失败!", ex);
            }

            return maintenanceList;
        }