Пример #1
0
        /// <summary>
        /// 增加轮胎更换记录
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="OldTyreAction"></param>
        /// <returns></returns>
        public ActionResult AddTyreChange(TyreChange entity, string OldTyreAction)
        {
            TyreInfo _oldTyre = this.service.GetGenericService <TyreInfo>().Get(entity.OldTyreID);
            TyreInfo _newTyre = this.service.GetGenericService <TyreInfo>().Get(entity.NewTyreID);

            #region 合法性逻辑校验
            if (_oldTyre.CarID != entity.CarID)
            {
                return(OperateResult(false, "轮胎【" + _oldTyre.ID + "】没有安装在车辆" + entity.CarID + "号上", null));
            }
            if (_newTyre.CurrentStatus != TyreStatus.UsAble)
            {
                return(OperateResult(false, "轮胎【" + _newTyre.ID + "】不在待用状态", null));
            }
            #endregion
            try
            {
                this.service.TyreChange.AddChange(entity, OldTyreAction);
                return(OperateResult(true, Lang.Msg_Operate_Success, null));
            }
            catch (Exception ex)
            {
                return(OperateResult(false, ex.Message, null));
            }
        }
Пример #2
0
        /// <summary>
        /// 增加轮胎更换
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public override TyreRepair Add(TyreRepair entity)
        {
            using (var tx = this.m_UnitOfWork.BeginTransaction())
            {
                try
                {
                    string   tyreId = entity.TyreID;
                    TyreInfo ti     = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(tyreId);

                    if (ti.CurrentStatus == TyreStatus.Repair)
                    {
                        throw new Exception("该轮胎已经在维修中!请不要重复提交");
                    }
                    else if (ti.CurrentStatus == TyreStatus.Scrap)
                    {
                        throw new Exception("该轮胎已经在报废!");
                    }

                    ti.CurrentStatus = TyreStatus.Repair;
                    this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(ti, null);
                    TyreRepair tc = base.Add(entity);
                    tx.Commit();
                    return(tc);
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    logger.Error(ex.Message, ex);
                    throw ex;
                }
            }
        }
 public IActionResult AddTyreInfo(TyreInfoAddViewModel model)
 {
     if (ModelState.IsValid)
     {
         TyreInfo info = new TyreInfo
         {
             CarId      = model.CarId,
             TyreName   = model.TyreName,
             Diameter   = model.Diameter,
             Profile    = model.Profile,
             Width      = model.Width,
             SpeedIndex = model.SpeedIndex,
             Dot        = model.Dot,
             TyreType   = model.TyreType,
             TyreStatus = model.TyreStatus,
             Id         = new Guid()
         };
         if (info.TyreStatus == TyreStatus.Samochód || info.TyreStatus == TyreStatus.Brak)
         {
             info.TyreShopId = Guid.Empty;
         }
         else
         {
             info.TyreShopId = model.TyreShopId;
         }
         _tyreInfosRepository.Create(info);
         return(RedirectToAction("details", "cars", new { id = model.CarId }));
     }
     return(RedirectToAction("addtyreinfo", new { carId = model.CarId }));
 }
 public IActionResult Relocate(TyreInfoRelocateViewModel model)
 {
     if (ModelState.IsValid)
     {
         TyreInfo tyreInfo = _tyreInfosRepository.GetTyreInfo(model.Id);
         tyreInfo.TyreShopId = model.NewTyreShopId;
         _tyreInfosRepository.Update(tyreInfo);
         return(RedirectToAction("details", "cars", new { id = model.CarId }));
     }
     return(RedirectToAction("relocate", new { tyreInfoId = model.Id }));
 }
Пример #5
0
        /// <summary>
        /// 增加轮胎更换
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public TyreChange AddChange(TyreChange entity, string OldTyreAction)
        {
            using (var tx = this.m_UnitOfWork.BeginTransaction())
            {
                try
                {
                    TyreInfo _oldTyre = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(entity.OldTyreID);
                    TyreInfo _newTyre = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(entity.NewTyreID);

                    //新增轮胎更换记录
                    entity.TyreType     = _newTyre.TyreType;
                    entity.InstallPlace = _oldTyre.InstallPlace;
                    TyreChange tc = this.m_UnitOfWork.GetRepositoryBase <TyreChange>().Add(entity);

                    //处理旧轮胎
                    _oldTyre.CarID        = null;
                    _oldTyre.InstallPlace = null;
                    if (OldTyreAction != TyreStatus.Repair)
                    {
                        _oldTyre.CurrentStatus = OldTyreAction;
                    }

                    this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(_oldTyre, null);

                    if (OldTyreAction == TyreStatus.Repair)         //若旧胎处理为维修,则在新增一条维修记录
                    {
                        TyreRepair tr = new TyreRepair();
                        tr.ReceiveDate = DateTime.Now;
                        tr.RepairDate  = DateTime.Now;
                        tr.Remark      = entity.ChangeReason;
                        tr.RepairType  = entity.ChangeReason;
                        tr.TyreID      = _oldTyre.ID;

                        new TyreRepairService(this.m_UnitOfWork).Add_noTransaction(tr);
                    }

                    //处理新轮胎
                    _newTyre.CarID         = entity.CarID;
                    _newTyre.InstallPlace  = entity.InstallPlace;
                    _newTyre.CurrentStatus = TyreStatus.Using;
                    this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(_newTyre, null);

                    tx.Commit();
                    return(tc);
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    logger.Error(ex.Message, ex);
                    throw ex;
                }
            }
        }
 public IActionResult Edit(TyreInfoAddViewModel model)
 {
     if (ModelState.IsValid)
     {
         TyreInfo tyreInfo = _tyreInfosRepository.GetTyreInfo(model.Id);
         tyreInfo.Profile    = model.Profile;
         tyreInfo.SpeedIndex = model.SpeedIndex;
         tyreInfo.TyreName   = model.TyreName;
         tyreInfo.TyreStatus = model.TyreStatus;
         tyreInfo.Width      = model.Width;
         tyreInfo.Diameter   = model.Diameter;
         tyreInfo.Dot        = model.Dot;
         _tyreInfosRepository.Update(tyreInfo);
         return(RedirectToAction("details", "cars", new { id = model.CarId }));
     }
     return(RedirectToAction("edit", new { tyreInfoId = model.Id }));
 }
Пример #7
0
 public override void Delete(TyreChange entity)
 {
     try
     {
         string   tyreId = entity.NewTyreID;
         TyreInfo ti     = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(tyreId);
         ti.CurrentStatus = TyreStatus.UsAble;
         ti.CarID         = null;
         ti.InstallPlace  = null;
         this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(ti, null);
         base.Delete(entity);
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message, ex);
         throw ex;
     }
 }
Пример #8
0
        public void RepairResult(TyreRepair entity, bool Return)
        {
            using (var tx = this.m_UnitOfWork.BeginTransaction())
            {
                try
                {
                    string   tyreId = entity.TyreID;
                    TyreInfo ti     = this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Get(tyreId);

                    if (Return)  //是否将轮胎归还原车
                    {
                        ti.CurrentStatus = TyreStatus.Using;
                    }
                    else
                    {
                        if (Convert.ToBoolean(entity.RepairResult))
                        {
                            ti.CurrentStatus = TyreStatus.UsAble;
                        }
                        else
                        {
                            ti.CurrentStatus = TyreStatus.Scrap;
                        }
                        ti.CarID        = null;
                        ti.InstallPlace = null;
                    }
                    this.m_UnitOfWork.GetRepositoryBase <TyreInfo>().Update(ti, null);
                    this.m_UnitOfWork.GetRepositoryBase <TyreRepair>().Update(entity, null);

                    this.m_UnitOfWork.Flush();
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    tx.Rollback();
                    logger.Error(ex.Message, ex);
                    throw ex;
                }
            }
        }
Пример #9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="data"></param>
 /// <param name="collection"></param>
 /// <returns></returns>
 public static dynamic InsertNewTyreInfo(TyreInfo data, IMongoCollection <TyreInfo> collection)
 {
     try
     {
         #region Create index
         //collection.Indexes.CreateOne("{ TyreId: " + data.TyreId + " }");
         #endregion
         collection.InsertOne(data);
         return(true);
     }
     catch (Exception ex)
     {
         if (ex.Message.Contains("duplicate key error"))
         {
             return(ex.Message);
         }
         else
         {
             SL.CreateLog("MongoHelper", "InsertNewTyreInfo", ex.Message);
             return(false);
         }
     }
 }
Пример #10
0
 public ActionResult InsertTyreInfo([FromBody] TyreInfo data, string username)
 {
     try
     {
         if (data != null && username != null)
         {
             var checkTyre = MH.GetListOfObjects(tyreinfo_collection, null, null, null, null).Result;
             foreach (var details in checkTyre)
             {
                 var deserializedDetails = BsonSerializer.Deserialize <TyreInfo>(details).PurchaseDetails;
                 if (deserializedDetails.TyreNo == data.PurchaseDetails.TyreNo && deserializedDetails.BrandName == data.PurchaseDetails.BrandName)
                 {
                     alreadyAdded = true;
                 }
             }
             if (alreadyAdded == true)
             {
                 return(BadRequest(new ResponseData
                 {
                     Code = "401",
                     Message = "Tyre with same brand and tyre number is already added"
                 }));
             }
             else
             {
                 #region Calculate tyre id
                 var getTyres = MH.GetListOfObjects(tyreinfo_collection, null, null, null, null).Result;
                 if (getTyres.Count == 0)
                 {
                     data.TyreId = "TRE-1";
                 }
                 else
                 {
                     List <long> idList = new List <long>();
                     foreach (var tyre in getTyres)
                     {
                         TyreInfo tyreInfo    = BsonSerializer.Deserialize <TyreInfo>(tyre);
                         long     seperatedId = Convert.ToInt64(tyreInfo.TyreId.Substring(tyreInfo.TyreId.LastIndexOf('-') + 1));
                         idList.Add(seperatedId);
                     }
                     var maxId = idList.Max();
                     data.TyreId = "TRE-" + (maxId + 1);
                 }
                 #endregion
                 data.IsActive = true;
                 var insert = MH.InsertNewTyreInfo(data, tyreinfoCollection);
                 if (insert == true)
                 {
                     AL.CreateLog(username, "InsertTyreInfo", null, data, activitylog_collection);
                     return(Ok(new ResponseData
                     {
                         Code = "200",
                         Message = "Inserted",
                         Data = data
                     }));
                 }
                 else
                 {
                     return(BadRequest(new ResponseData
                     {
                         Code = "402",
                         Message = "Tyre info with same id is already added"
                     }));
                 }
             }
         }
         else
         {
             return(BadRequest(new ResponseData
             {
                 Code = "403",
                 Message = "Bad Request"
             }));
         }
     }
     catch (Exception ex)
     {
         SL.CreateLog("TyreController", "InsertTyreInfo", ex.Message);
         return(BadRequest(new ResponseData
         {
             Code = "400",
             Message = "Failed",
             Data = ex.Message
         }));
     }
 }