public ActionResult ManufacturerEdit(long id = 0)
 {
     using (var db = new MbContext())
     {
         return(View(db.Manufacturer.FirstOrDefault(x => x.ManufacturerId == id)));
     }
 }
예제 #2
0
 public virtual WaveAnnal GetFirst()
 {
     using (var db = new MbContext())
     {
         return(db.WaveAnnal.OrderByDescending(x => x.CreateTime).First());
     }
 }
예제 #3
0
        /// <summary>
        /// 用户解除绑定
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult UnBindUser(string id)
        {
            //TODO 获取当前登录用户的报修单位ID
            var dlgInf = new DlgConfirmInfo();

            using (var db = new MbContext())
            {
                var model = db.UseCompanyUser.FirstOrDefault(x => x.UserId == id && x.UseCompanyId == CurrentUser.User.UseCompanyId);
                if (model != null)
                {
                    //获取用户信息,更新单位信息
                    var user = db.User.FirstOrDefault(x => x.UserId == id);
                    user.UseCompanyId     = null;
                    user.UseCompanyUserId = null;

                    db.UseCompanyUser.Remove(model);
                }
                if (db.SaveChanges() > 0)
                {
                    dlgInf.Title   = "成功";
                    dlgInf.Content = "解除绑定成功";
                    dlgInf.Type    = InfoType.Success;

                    return(View("dlg_confirm_info", dlgInf));
                }
                dlgInf.Title   = "失败";
                dlgInf.Content = "解除绑定失败";
                dlgInf.Type    = InfoType.Error;
                return(View("dlg_confirm_info", dlgInf));
            }
        }
        /// <summary>
        /// 设备绑定列表
        /// </summary>
        /// <returns></returns>
        public ActionResult Equipment()
        {
            ViewBag.JoinCompany = QueryJoinCompany();
            ViewBag.Data        = bs.GetBindingServiceList(CurrentUser.User.UseCompanyId).Where(t => t.BindingType == BindingServiceType.Equipment).ToList();
            using (var db = new MbContext())
            {
                //DOTO 获取当前单位下拥有的设备

                var equipmentModel = db.Device
                                     .Where(x => x.UseCompanyId == CurrentUser.UseCompany.UseCompanyId)
                                     .ToList();
                ViewBag.equipmentDic = equipmentModel.ToLookup(t => t.DeviceId).ToDictionary(t => t.Key, t => t.First());
                //品牌字典
                var brandsIds = equipmentModel.Where(x => x.BrandId >= 0).Select(x => x.BrandId).ToList();

                ViewBag.brandDic = db.Brand
                                   .Where(x => brandsIds.Contains(x.BrandId))
                                   .ToLookup(x => x.BrandId)
                                   .ToDictionary(x => x.Key, x => x.First());

                //制造商字典
                var manufactorerIds = db.Brand.Where(x => brandsIds.Contains(x.BrandId)).Select(t => t.ManufacturerId).ToList();

                ViewBag.manufactorerDic = db.Manufacturer
                                          .Where(x => manufactorerIds.Contains(x.ManufacturerId))
                                          .ToLookup(x => x.ManufacturerId)
                                          .ToDictionary(x => x.Key, x => x.First());



                return(View(equipmentModel));
            }
        }
예제 #5
0
        public ActionResult Index(string key = null)
        {
            var pageIndex = Request["pageIndex"].AsInt(1);
            var pageSize  = Request["pageSize"].AsInt(10);
            var user      = CurrentUser;

            ViewData["serviceUser"] = TechnicalUserSvr.Instance.GetList(user.UserId);

            using (var db = new MbContext())
            {
                var repairOrders = db.MainOrder.Include(m => m.Device)
                                   .Include(m => m.ServiceCompany)
                                   .Include(m => m.User)
                                   .Include(m => m.UseCompany).ToList();
                ;

                var pager = new Page <MainOrder>
                {
                    Index = pageIndex,
                    Size  = pageSize,
                    Count = repairOrders.Count,
                    Data  = repairOrders.OrderByDescending(m => m.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList()
                };

                return(View(pager));
            }
        }
예제 #6
0
 public ActionResult AreaPark()
 {
     using (var db = new MbContext())
     {
         return(View(db.Area.ToList()));
     }
 }
예제 #7
0
 public virtual List <Equipment> GetList()
 {
     using (var db = new MbContext())
     {
         return(db.Equipment.ToList());
     }
 }
예제 #8
0
 public virtual List <CardAnnal> GetListForIndex(int isBreak)
 {
     using (var db = new MbContext())
     {
         return(db.CardAnnal.ToList().FindAll(x => x.IsBreak == isBreak).OrderByDescending(x => x.CreateTime).Take(10).ToList());
     }
 }
예제 #9
0
        /// <summary>
        /// 审核使用企业列表
        /// </summary>
        /// <returns></returns>
        public ActionResult AuditCompanyList(AuditCompanyQueryModel query)
        {
            Session["AuditCompanyQueryModel"] = query;

            using (var db = new MbContext())
            {
                var model = db.UseCompany.Where(query);

                query.UserCompanyList = model.OrderByDescending(t => t.CreateTime)
                                        .Skip(query.PageInfo.RecIndex)
                                        .Take(query.PageInfo.PageSize)
                                        .ToList();

                var uids = query.UserCompanyList.Select(t => t.UseCompanyId).ToList();
                //对应的用户
                query.UserDic = db.User
                                .Where(x => uids.Contains((long)x.UseCompanyId))
                                .ToLookup(t => t.UseCompanyId.GetValueOrDefault(0))
                                .ToDictionary(x => x.Key, x => x.First());

                query.PageInfo.TotalCount = model.Count();

                return(View(query));
            }
        }
예제 #10
0
 public virtual List <CardAnnal> GetistAll()
 {
     using (var db = new MbContext())
     {
         return(db.CardAnnal.OrderByDescending(x => x.CreateTime).Take(6).ToList());
     }
 }
예제 #11
0
 public virtual Pager <CardAnnal> GetList(int pagerIndex = 1, int pagerSize = 20, int isBreak = 0, string key = "", DateTime?beginTime = null, DateTime?endTime = null)
 {
     using (var db = new MbContext())
     {
         var breakRuleAnnal = db.CardAnnal.ToList().FindAll(x => x.IsBreak == isBreak);
         if (key != "")
         {
             breakRuleAnnal = breakRuleAnnal.FindAll(x => x.License.Contains(key)).OrderByDescending(m => m.CreateTime).ToList();
         }
         if (beginTime != null)
         {
             breakRuleAnnal = breakRuleAnnal.FindAll(x => x.CreateTime >= beginTime).ToList();
         }
         if (endTime != null)
         {
             breakRuleAnnal = breakRuleAnnal.FindAll(x => x.CreateTime <= endTime).ToList();
         }
         var pager = new Pager <CardAnnal>()
         {
             Index = pagerIndex,
             Size  = pagerSize,
             Count = breakRuleAnnal.Count,
             Data  = breakRuleAnnal.Skip((pagerIndex - 1) * pagerSize).Take(pagerSize)
         };
         return(pager);
     }
 }
예제 #12
0
 public ActionResult PropertyEdit(long id = 0)
 {
     using (var db = new MbContext())
     {
         return(View(db.Property.FirstOrDefault(x => x.AssetsId == id)));
     }
 }
예제 #13
0
        public ActionResult DiagnosisSys()
        {
            var pageIndex = Request["pageIndex"].AsInt(1);
            var pageSize  = Request["pageSize"].AsInt(20);

            using (var db = new MbContext())
            {
                var models = (from d in db.Diagnosis
                              join m in db.Manufacturer on d.ManufacturerId equals m.ManufacturerId into t1
                              from mm in t1.DefaultIfEmpty()
                              join b in db.Brand on d.BrandId equals b.BrandId into t2
                              from bb in t2.DefaultIfEmpty()
                              join p in db.Product on d.ProductId equals p.ProductId into t3
                              from pp in t3.DefaultIfEmpty()
                              select new PageDiagnosis()
                {
                    DiagnosisId = d.DiagnosisId,
                    //ManufacturersName = mm.CNName,
                    //BrandName = bb.CNName,
                    ProductName = pp.CNName,
                    Describe = d.Describe
                }).ToList();

                var pager = new Page <PageDiagnosis>()
                {
                    Index = pageIndex,
                    Size  = pageSize,
                    Count = models.Count,
                    Data  = models.Skip(pageIndex - 1).Take(pageSize).ToList()
                };
                return(View(pager));
            }
        }
예제 #14
0
 public ActionResult ManufacturerEdit(Manufacturer model)
 {
     using (var db = new MbContext())
     {
         if (!(model.ManufacturerId > 0))
         {
             model.ManufacturerId = SequNo.NewId;
             model.CreateTime     = DateTime.Now;
         }
         else
         {
             var manufacturer = db.Manufacturer.FirstOrDefault(x => x.ManufacturerId == model.ManufacturerId);
             if (manufacturer != null)
             {
                 model.CreateTime = manufacturer.CreateTime;
                 model.Longitude  = manufacturer.Longitude;
                 model.Dimension  = manufacturer.Dimension;
                 model.Note       = manufacturer.Note;
             }
         }
         db.Manufacturer.AddOrUpdate(model);
         if (db.SaveChanges() > 0)
         {
             return(Content("<script>alert('操作成功');window.location.href='/SysAdmin/CommData/ManufacturerSys'</script>"));
         }
         return(Content("<script>alert('操作失败');window.location.href='/SysAdmin/CommData/ManufacturerSys'</script>"));
     }
 }
예제 #15
0
        public ActionResult Add(ServiceEquipment model)
        {
            var user = CurrentUser;

            using (var db = new MbContext())
            {
                var serviceEquipment =
                    db.ServiceEquipment.FirstOrDefault(
                        x => x.EquipmentId == model.EquipmentId && x.ServiceCompanyId == model.ServiceCompanyId);
                if (serviceEquipment == null)
                {
                    model = new ServiceEquipment()
                    {
                        EquipmentId      = model.EquipmentId,
                        ServiceCompanyId = model.ServiceCompanyId,
                        SortField        = 0,
                        CreateTime       = DateTime.Now,
                        CreateUserId     = user.UserId
                    };
                }
                if (ServiceEquipmentSvr.Instance.Save(model) > 0)
                {
                    return(Content("<script>alert('操作成功');window.location.href='/QRCode/ServiceCompanyBind'</script>"));
                }
                return(Content("<script>alert('操作失败');window.location.href='/QRCode/ServiceCompanyBind'</script>"));
            }
        }
예제 #16
0
        public ActionResult ServiceUnit(string key = null)
        {
            var pageIndex = Request["pageIndex"].AsInt(1);
            var pageSize  = Request["pageSize"].AsInt(20);
            var user      = CurrentUser;

            ViewData["UserId"] = user.UserId;

            using (var db = new MbContext())
            {
                var serviceUnits = db.ServiceCompany.Where(t => t.State == CompanyState.Normal).ToList();
                if (key != null)
                {
                    serviceUnits = serviceUnits.FindAll(x => x.Name.Contains(key));
                }
                if (user.UserId > 0)
                {
                    var serviceUser = db.ServiceCompanyUser.FirstOrDefault(x => x.UserId == user.UserId);
                    if (serviceUser != null)
                    {
                        serviceUnits = serviceUnits.FindAll(x => x.ServiceCompanyId == serviceUser.ServiceCompanyId);
                    }
                }
                var pager = new Page <ServiceCompany>
                {
                    Index = pageIndex,
                    Size  = pageSize,
                    Count = serviceUnits.Count,
                    Data  = serviceUnits.OrderByDescending(m => m.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize)
                };

                return(View(pager));
            }
        }
예제 #17
0
 public virtual List <Area> GetList()
 {
     using (var db = new MbContext())
     {
         return(db.Area.ToList());
     }
 }
예제 #18
0
 public ActionResult ServiceUnitEdit(long id = 0)
 {
     using (var db = new MbContext())
     {
         return(View(db.ServiceCompany.FirstOrDefault(x => x.ServiceCompanyId == id)));
     }
 }
예제 #19
0
 public Equipment GetItemBySerialno(string serislno)
 {
     using (var db = new MbContext())
     {
         return(db.Equipment.FirstOrDefault(x => x.Serialno == serislno));
     }
 }
예제 #20
0
 public virtual List <BreakRuleAnnal> GetListFroIndex()
 {
     using (var db = new MbContext())
     {
         return(db.BreakRuleAnnal.OrderByDescending(x => x.CreateTime).Take(10).ToList());
     }
 }
예제 #21
0
        /// <summary>
        /// 设备列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public ActionResult DerviceList(ReportDeviceQueryModel query, Int32?keywords)
        {
            Int32 year = DateTime.Now.Year;

            if (keywords != null)
            {
                year = (Int32)keywords;
            }
            using (var db = new MbContext())
            {
                query.deviceData = db.Device
                                   .Include(t => t.UseCompany)
                                   .Include(t => t.Brand)
                                   .Include(t => t.Brand.Manufacturer)
                                   .Include(t => t.Area)
                                   .Include(t => t.Category)
                                   .Where(t => t.UseCompanyId == CurrentUser.User.UseCompanyId).ToList();

                query.deviceCount = db.MainOrder
                                    .Where(t => t.UseCompanyId == CurrentUser.User.UseCompanyId && t.CreateTime.Year == year && t.DeviceId > 0)
                                    .GroupBy(t => t.DeviceId)
                                    .Select(t => new {
                    deviceId = t.Key,
                    num      = t.Count().ToString()
                }).ToDictionary(x => x.deviceId, x => x.num);

                //设备数量
                query.PageInfo.TotalCount = query.deviceData.Count();
            }

            return(View(query));
        }
예제 #22
0
        //根据厂家获取品牌
        public ActionResult GetBrandWithManufacturer(long?ManufacturerId)
        {
            try
            {
                using (var mb = new MbContext())
                {
                    List <Brand> list = new List <Brand>();
                    if (ManufacturerId == 0)
                    {
                        list = mb.Brand.ToList();
                    }
                    else
                    {
                        list = mb.Brand.Where(t => t.ManufacturerId == ManufacturerId).ToList();
                    }

                    return(Json(new { Brand = list.Select(x => new { x.BrandId, x.Name }) }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                Logger.Error("GetDeviceSelectInfo(获取列表失败)", ex);
                return(Json(new { error = "获取列表失败" }));
            }
        }
예제 #23
0
 public AreaAndEqu GetItemByEquId(long id)
 {
     using (var db = new MbContext())
     {
         return(db.AreaAndEqu.FirstOrDefault(x => x.EquipmentId == id));
     }
 }
        public void CompositeDataTest()
        {
            using (var mb = new MbContext())
            {
                var user = UserService.Instance.Get("636234887666745830");
                var list = new OrderService().GetRepairList(AppType.Service, user, Convert.ToDateTime("2016-02-13"), Convert.ToDateTime("2017-06-13"));
                //获取人员ID,状态以及数量
                var userCountDic = list.Where(t => !string.IsNullOrEmpty(t.ServiceUserId)).OrderBy(t => t.ServiceUserId).GroupBy(t => new { t.ServiceUserId, t.State })
                                   .Select(t => new { ServiceUserId = t.Key.ServiceUserId, State = t.Key.State, Num = t.Count() }).ToList();

                //获取人员ID集合
                var userIdArr   = userCountDic.Where(m => !String.IsNullOrEmpty(m.ServiceUserId)).Select(m => m.ServiceUserId).Distinct().ToArray();
                var userInfoArr = mb.User.Where(t => userIdArr.Contains(t.UserId)).OrderBy(t => t.CreateTime).ToList();
                userIdArr = userInfoArr.Select(t => t.UserId).ToArray();
                var userNmaeArr = userInfoArr.Select(t => t.NickName).ToArray();
                //获取每个人进行中的,已完成和未完成的个数集合
                //(8 + 16 + 32 + 64 )进行中 128 未解决 1024 已完成 //其他
                //进行中
                var orderIng = userCountDic
                               .Where(t => (OrderState.Sending | OrderState.Sended | OrderState.Working | OrderState.Worked).HasFlag(t.State))
                               .GroupBy(t => t.ServiceUserId).Select(m => new { ServiceUserId = m.Key, Num = m.Sum(t => t.Num) })
                               .ToDictionary(t => t.ServiceUserId, t => t.Num);
                //已完成
                var ordered = userCountDic.Where(t => (OrderState.Confirm.HasFlag(t.State) || OrderState.UseComment.HasFlag(t.State)))
                              .GroupBy(t => t.ServiceUserId).Select(m => new { ServiceUserId = m.Key, Num = m.Sum(t => t.Num) })
                              .ToDictionary(t => t.ServiceUserId, t => t.Num);
                //未解决
                var orderUnComplated = userCountDic.Where(t => OrderState.Unsolved.HasFlag(t.State))
                                       .GroupBy(t => t.ServiceUserId).Select(m => new { ServiceUserId = m.Key, Num = m.Sum(t => t.Num) })
                                       .ToDictionary(t => t.ServiceUserId, t => t.Num);


                //从orderlog当中获取 开始工作日期以及结束日期
                var beginArr = mb.OrderLog.Where(t => userIdArr.Contains(t.UserId) && t.State == OrderState.Working)
                               .OrderBy(t => t.CreateTime).GroupBy(t => t.MainOrderId).ToLookup(t => t.Key)
                               .ToDictionary(t => t.Key, t => t.FirstOrDefault().Select(m => new { m.CreateTime, m.UserId }));

                var endArr = mb.OrderLog.Where(t => userIdArr.Contains(t.UserId) && t.State == OrderState.Worked)
                             .OrderByDescending(t => t.CreateTime).GroupBy(t => t.MainOrderId).ToLookup(t => t.Key)
                             .ToDictionary(t => t.Key, t => t.FirstOrDefault().Select(m => new { m.CreateTime, m.UserId }));

                var workTimeArr = (from v in beginArr
                                   join e in endArr
                                   on v.Key equals e.Key
                                   select new
                {
                    v.Key,
                    UserId = v.Value.Select(m => m.UserId).First(),
                    workTime = (e.Value.Select(m => m.CreateTime).First() - v.Value.Select(m => m.CreateTime).First()).TotalMinutes
                }
                                   ).ToList();

                var timeArr = workTimeArr.GroupBy(t => t.UserId).
                              Select(m => new
                {
                    m.Key,
                    totalTime = m.Sum(t => t.workTime)
                }).ToDictionary(t => t.Key, t => t.totalTime);
            }
        }
예제 #25
0
 public virtual WaveAnnal GetForID(string id)
 {
     using (var db = new MbContext())
     {
         return(db.WaveAnnal.Where(x => x.WaveCardId == id).OrderByDescending(x => x.CreateTime).First());
     }
 }
        public void DerviceListTest()
        {
            ReportDeviceQueryModel query = new ReportDeviceQueryModel();
            string UseCompanyId          = "636065437685331832";

            using (var db = new MbContext())
            {
                var device = db.Device
                             .Include(t => t.UseCompany)
                             .Include(t => t.Brand)
                             .Include(t => t.Brand.Manufacturer)
                             .Include(t => t.Area)
                             .Include(t => t.Category)
                             .Where(t => t.UseCompanyId == UseCompanyId).ToList();

                var result = db.MainOrder
                             .Where(t => t.UseCompanyId == UseCompanyId)
                             .GroupBy(t => t.DeviceId)
                             .Select(t => new
                {
                    deviceId = t.Key,
                    num      = t.Count().ToString()
                }).ToList().ToDictionary(x => x.deviceId, x => x.num);;
            }
        }
예제 #27
0
        public ActionResult AddUser(string keywords)
        {
            var query  = new UserQueryModel();
            var userId = 0L;

            if (ValidatorHelper.IsMobilePhoneNumber(keywords))
            {
                query.Phone = keywords;
            }
            else if (long.TryParse(keywords, out userId))
            {
                query.UserId = userId;
            }
            else if (!string.IsNullOrEmpty(keywords))
            {
                query.RealNameLike = keywords;
            }
            else
            {
                //为输入正确条件 直接返回null
                return(View());
            }

            using (var db = new MbContext())
            {
                var models = db.User.Where(query).ToList();
                return(View(models));
            }
        }
 public JsonResult GetBrand(long id = 0)
 {
     using (var db = new MbContext())
     {
         return(Json(db.Brand.Where(x => x.ManufacturerId == id).ToList()));
     }
 }
예제 #29
0
        public ActionResult UserRoles(long userId = 0, long rolesId = 0)
        {
            var pageIndex  = Request["pageIndex"].AsInt(1);
            var pageSize   = Request["pageSize"].AsInt(20);
            var queryModel = new UserRoleQueryModel()
            {
                Index = pageIndex,
                Size  = pageSize
            };

            using (var db = new MbContext())
            {
                var models  = db.UserRoles.ToList();
                var userIds = models.Select(x => x.UserId).ToArray();
                queryModel.UserDic = db.User
                                     .Where(x => userIds.Contains(x.UserId))
                                     .ToLookup(x => x.UserId)
                                     .ToDictionary(x => x.Key, x => x.First());
                var rolesIds = models.Select(x => x.RolesId).ToArray();
                queryModel.RolesDic = db.Roles
                                      .Where(x => rolesIds.Contains(x.RolesId))
                                      .ToLookup(x => x.RolesId)
                                      .ToDictionary(x => x.Key, x => x.First());
                queryModel.Data  = models.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
                queryModel.Count = models.Count;
                return(View(queryModel));
            }
        }
예제 #30
0
        public ActionResult ManufacturerSys(string key = null)
        {
            var user      = CurrentUser;
            var pageIndex = Request["pageIndex"].AsInt(1);
            var pageSize  = Request["pageSize"].AsInt(20);

            ViewData["UserId"] = user.UserId;
            using (var db = new MbContext())
            {
                var manufacturers = db.Manufacturer.ToList();
                if (key != null)
                {
                    //manufacturers = manufacturers.FindAll(x => x.CNName.Contains(key));
                }
                var pager = new Page <Manufacturer>
                {
                    Index = pageIndex,
                    Size  = pageSize,
                    Count = manufacturers.Count,
                    Data  = manufacturers.OrderByDescending(m => m.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize)
                };

                return(View(pager));
            }
        }