Beispiel #1
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                LoginUser   loginUser = new LoginUser(context, "TerminalOnline");
                TerminalBLL bll       = new TerminalBLL(context, loginUser);
                if (!loginUser.Pass)//权限验证
                {
                    return;
                }

                //加载DataGrid
                if (context.Request["action"] == "gridLoad")
                {
                    int    offlineMinutes = int.Parse(System.Configuration.ConfigurationManager.AppSettings["OfflineMinutes"]);
                    int    page           = int.Parse(context.Request["page"]);
                    int    rows           = int.Parse(context.Request["rows"]);
                    string agentId        = context.Request["agentId"];
                    string siteId         = context.Request["siteId"];
                    string terminalId     = context.Request["terminalId"];
                    string onlineStatus   = context.Request["onlineStatus"];
                    string startDate      = context.Request["startDate"];
                    string endDate        = context.Request["endDate"];
                    bll.LoadGridOnLine(page, rows, agentId, siteId, terminalId, onlineStatus, offlineMinutes, startDate, endDate);
                    return;
                }
            }
            catch (Exception e)
            {
                Message.error(context, e.Message);
            }
        }
Beispiel #2
0
        private void handleBB0F(string sender, byte terminalType)
        {
            // 170020140FBB10FFFF0890014950000101089001495000
            string cmd = "170020" + Utility.GetHex(terminalType) + "0FBB10FFFF0" + sender + "00001010" + sender + "000";

            var TerminalInstance = new TerminalBLL();
            var terminal         = TerminalInstance.Find(f => f.Sim.Equals(sender));

            var CommandInstance = new CommandBLL();
            var obj             = CommandInstance.GetObject();

            //var simno = (simno[0] == '8' && simno[1] == '9' && simno.Length < 11) ? (simno + "000") : simno;
            obj.DestinationNo = sender + "000";
            obj.Status        = (byte)CommandStatus.Waiting;
            obj.Content       = cmd;
            //obj.ActualSendTime = DateTime.Now;
            obj.Terminal = null == terminal ? (int?)null : terminal.id;
            obj.SendUser = (int?)null;
            obj          = CommandInstance.Add(obj);

            //CommandUtility.SendSMSCommand(obj);

            // 保存SMS发送流量
            //saveTerminalFlow(null == terminal ? -1 : terminal.id, sender);
        }
Beispiel #3
0
 public void ProcessRequest(HttpContext context)
 {
     try
     {
         LoginUser   loginUser = new LoginUser(context, "TerminalStore");
         TerminalBLL bll       = new TerminalBLL(context, loginUser);
         if (!loginUser.Pass)//权限验证
         {
             return;
         }
         //增加
         if (context.Request["action"] == "add")
         {
             TBTerminal tbTerminal = new TBTerminal();
             tbTerminal.terminalId    = context.Request["terminalId"];            //终端编号
             tbTerminal.status        = ((int)TerminalStatus.InStore).ToString(); //当前状态
             tbTerminal.terminalType  = context.Request["terminalType"];          //终端类型
             tbTerminal.supplierDate  = context.Request["supplierDate"];          //出厂时间
             tbTerminal.supplierCode  = context.Request["supplierCode"];          //厂家代码
             tbTerminal.supplierBatch = context.Request["supplierBatch"];         //厂家批次号
             bll.Add(tbTerminal);
             return;
         }
     }
     catch (Exception e)
     {
         Message.error(context, e.Message);
     }
 }
Beispiel #4
0
 public ActionResult AddTerminal(TerminalAddModel model)
 {
     if (ModelState.IsValid)
     {
         model.CreateUserID = base.UserIDForLog;
         var result = TerminalBLL.AddTerminal(model);
         base.DoLog(OperationTypeEnum.Add, result, "TerminalCode:" + model.TerminalCode);
         return(Json(result));
     }
     else
     {
         var list = TerminalManufacturerBLL.GetTerminalManufacturers();
         model.TerminalManufacturerSelectList = new SelectList(list, "ID", "ManufacturerName");
         var tmid = 0;
         if (list != null && list.Count != 0)
         {
             tmid = list.First().ID;
         }
         model.TerminalTypeSelectList = new SelectList(TerminalTypeBLL.GetTerminalTypesByTMID(tmid), "ID", "TerminalName");
         var serverInfoList = ServerManagerBLL.GetServerInfoList();
         if (serverInfoList != null && serverInfoList.Count != 0)
         {
             model.ServerInfoID = serverInfoList.First().ID;
         }
         model.ServerInfoSelectList = new SelectList(serverInfoList, "ID", "ServerName");
         #region 默认值
         model.ContinuousDrivingThreshold = 144000;
         model.DrivingTimeThreshold       = 57600;
         model.MaximumParkingTime         = 3600;
         model.MinimumBreakTime           = 1200;
         model.MinimumDuration            = 5;
         #endregion
         return(PartialView("_AddTerminal", model));
     }
 }
Beispiel #5
0
        private void Mostrar()
        {
            var resp = new TerminalBLL();

            gridControl1.DataSource = resp.Mostar;
            Cancel();
        }
Beispiel #6
0
        /// <summary>
        /// 处理终端命令的请求
        /// </summary>
        /// <returns></returns>
        private string HandleTerminalCommandRequest()
        {
            string ret = "{}";

            try
            {
                using (var bll = new TerminalBLL())
                {
                    var t = bll.Find(f => f.Number.Equals(data));
                    if (null == t)
                    {
                        ret = ResponseMessage(-1, "No terminal like \\\"" + data + "\\\" exists");
                    }
                    else
                    {
                        ret = HandleTerminalCommandRequest(t);
                    }
                }
            }
            catch (Exception e)
            {
                ret = ResponseMessage(-1, "Handle Terminal command error:" + e.Message);
            }
            return(ret);
        }
Beispiel #7
0
        public ActionResult GetTerminalInfo(TerminalSearchModel model, int searchPage)
        {
            SearchDataWithPagedDatas <TerminalSearchModel, TerminalListModel> result =
                new SearchDataWithPagedDatas <TerminalSearchModel, TerminalListModel>();

            result.SearchModel = model;
            result.PagedDatas  = TerminalBLL.GetPagedTerminals(model, searchPage, this.PageSize);
            return(PartialView("_TerminalPagedGrid", result));
        }
Beispiel #8
0
        public ActionResult ScrapTerminal(FormCollection fc)
        {
            string[] ids = fc["tid"].Split(',');

            var result = TerminalBLL.ScrapTerminal(ids);

            base.DoLog(OperationTypeEnum.Edit, result, fc["tid"]);
            return(Json(result));
        }
Beispiel #9
0
 /// <summary>
 /// 更新在线时间和在线状态
 /// </summary>
 private void HandleOnline(string sim, ushort CommandID, AsyncUserDataBuffer data)
 {
     using (var bll = new EquipmentBLL())
     {
         bll.Update(f => f.TB_Terminal.Sim.Equals(sim), act =>
         {
             act.IP         = data.IP;
             act.Port       = data.Port;
             act.Socket     = data.SocketHandle;
             act.OnlineTime = data.ReceiveTime;
             // 处理当发送报警信息时设备已经是OFF状态的情况:不处理
             if (act.OnlineStyle == (byte)LinkType.OFF && CommandID == 0x2000)
             {
                 // 收到报警时不处理已经是OFF状态
             }
             else
             {
                 act.OnlineStyle = GetOnlineStyleByPackage(data.PackageType);
             }
             act.LastAction     = "0x" + CustomConvert.IntToDigit(CommandID, CustomConvert.HEX, 4);
             act.LastActionBy   = GetOnlineStyle(data.PackageType);
             act.LastActionTime = data.ReceiveTime;
         });
     }
     using (var bll = new TerminalBLL())
     {
         bll.Update(f => f.Sim.Equals(sim), act =>
         {
             act.Socket = data.SocketHandle;
             if (act.OnlineStyle == (byte)LinkType.OFF && CommandID == 0x2000)
             {
                 // 收到报警但此时已经是OFF状态时,不更新在线状态
             }
             else
             {
                 act.OnlineStyle = GetOnlineStyleByPackage(data.PackageType);
             }
             act.OnlineTime = data.ReceiveTime;
         });
     }
     // 查看是否为TX10G的命令
     if (CommandID >= 0x7000 && CommandID <= 0x7040)
     {
         using (var bll = new TrackerBLL())
         {
             bll.Update(f => f.SimCard.Equals(sim), act =>
             {
                 // 标记为在线状态
                 act.State        = 1;
                 act.LastActionAt = DateTime.Now;
                 act.Socket       = data.SocketHandle;
             });
         }
     }
 }
Beispiel #10
0
        public ActionResult DeleteTerminal(int[] idList)
        {
            var    result    = TerminalBLL.DeleteTerminals(idList);
            string idListStr = string.Empty;

            foreach (var item in idList)
            {
                idListStr += item + ",";
            }
            base.DoLog(OperationTypeEnum.Delete, result, "idList:" + idListStr);
            return(Json(result));
        }
 /// <summary>
 /// 处理铱星模块发送回来的MO信息
 /// </summary>
 /// <param name="data"></param>
 private void HandleIridiumModelMOPayload(IridiumData data)
 {
     // 如果是正式的协议则以正常的方式处理
     if (data.Length >= TX300Items.header_length)
     {
         // TX300通讯协议首字节必定大于等于17
         // 卫星通讯协议首字节必定等于01
         if (data.Payload[0] >= 17 &&
             ProtocolTypes.IsTX300(data.Payload[2]) &&
             TerminalTypes.IsTX300(data.Payload[3]))
         {
             // 根据卫星号码查询终端的Sim卡号码并将其填入包头结构里
             using (var bll = new TerminalBLL())
             {
                 var terminal = bll.Find(f => f.TB_Satellite.CardNo.Equals(data.IMEI) && f.Delete == false);
                 if (null != terminal)
                 {
                     var sim = terminal.Sim;
                     sim += sim.Length < 11 ? "000" : "";
                     sim  = "0" + sim;
                     var s = CustomConvert.GetBytes(sim);
                     Buffer.BlockCopy(s, 0, data.Payload, 9, s.Length);
                     s = null;
                     // 更新命令的MTMSN状态为返回状态
                     HandleData(new Sockets.AsyncUserDataBuffer()
                     {
                         Buffer       = data.Payload,
                         DataType     = Sockets.AsyncUserDataType.ReceivedData,
                         IP           = "",
                         PackageType  = Sockets.AsyncDataPackageType.SAT,
                         Port         = 0,
                         ReceiveTime  = DateTime.Now,
                         SocketHandle = 0
                     });
                 }
                 else
                 {
                     ShowUnhandledMessage("Unbind satellite report data: " + CustomConvert.GetHex(data.Payload));
                 }
             }
         }
         else
         {
             HandleIridiumNewProtocolPackage(data);
         }
         // 统计铱星的接收数据次数和数据长度
         HandleIridiumMOFlow(data);
     }
     data.Dispose();
 }
Beispiel #12
0
        public ActionResult UnBind(int TerminalID, int VehicleID, string VIN, string TerminalCode, string SimCode)
        {
            TerminalUsageLogs oldterminal = new TerminalUsageLogs()
            {
                TerminalID   = TerminalID,
                VehicleID    = VehicleID,
                VIN          = VIN,
                TerminalCode = TerminalCode,
                SimCode      = SimCode
            };
            var result = TerminalBLL.UnBind(oldterminal, base.UserIDForLog);

            base.DoLog(OperationTypeEnum.Edit, result, "设备ID:" + oldterminal.TerminalID + "||车辆ID:" + oldterminal.VehicleID + "||车辆VIN" + oldterminal.VIN);
            return(Json(result));
        }
Beispiel #13
0
        private void btnEliminar_Click(object sender, EventArgs e)
        {
            item = gridView1.GetRow(gridView1.FocusedRowHandle) as Terminal;
            var resp = new TerminalBLL();

            if (resp.Delete(item))
            {
                XtraMessageBox.Show("Engraving done successfully", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Mostrar();
            }
            else
            {
                XtraMessageBox.Show(resp.error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #14
0
        //public ActionResult EditTerminal(long id)
        //{
        //    var result = TerminalBLL.GetTerminalByID(id);
        //    if (result.DataResult == null)
        //    {
        //        return Content(result.Message);
        //    }
        //    var model = result.DataResult;
        //    model.TerminalManufacturerSelectList = new SelectList(TerminalManufacturerBLL.GetTerminalManufacturers(), "ID", "ManufacturerName");
        //    model.TerminalTypeSelectList = new SelectList(TerminalTypeBLL.GetTerminalTypes(), "ID", "TerminalName");
        //    return PartialView("_EditTerminal", model);
        //}

        //[HttpPost, ValidateAntiForgeryToken]
        //public ActionResult EditTerminal(TerminalEditModel model)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        var result = TerminalBLL.EditTerminal(model);
        //        base.DoLog(OperationTypeEnum.Edit, result, "ID:" + model.ID);
        //        return Json(result);
        //    }
        //    else
        //    {
        //        model.TerminalManufacturerSelectList = new SelectList(TerminalManufacturerBLL.GetTerminalManufacturers(), "ID", "ManufacturerName");
        //        model.TerminalTypeSelectList = new SelectList(TerminalTypeBLL.GetTerminalTypes(), "ID", "TerminalName");
        //        return PartialView("_EditTerminal", model);
        //    }
        //}
        #endregion


        public ActionResult EditTerminal(long id)
        {
            var result = TerminalBLL.GetTerminalByID(id);

            if (result.DataResult == null)
            {
                return(Content(result.Message));
            }
            var model = result.DataResult;

            model.SIMCodeIDOld = model.SIMCodeID == null ? null :(int?)model.SIMCodeID.Value;
            model.TerminalManufacturerSelectList = new SelectList(TerminalManufacturerBLL.GetTerminalManufacturers(), "ID", "ManufacturerName");
            model.TerminalTypeSelectList         = new SelectList(TerminalTypeBLL.GetTerminalTypesByTMID(model.TerminalManufacturerID), "ID", "TerminalName");
            model.ServerInfoSelectList           = new SelectList(ServerManagerBLL.GetServerInfoList(), "ID", "ServerName");
            return(PartialView("_EditTerminal", model));
        }
Beispiel #15
0
        public ActionResult ImportExcel(HttpPostedFileBase excelFile)
        {
            object importExcelLocker = new object();

            #region 文件合法性检查
            if (excelFile == null)
            {
                return(Json(new { Success = false, Message = DataAnnotations.FileDoesNotExist }));
            }
            Regex  reg      = new Regex(@"\.(xls|xlsx|XLS|XLSX)$");
            string fileName = excelFile.FileName;
            string extName  = Path.GetExtension(fileName);
            fileName = fileName.Remove(fileName.LastIndexOf('.'));
            if (!reg.IsMatch(extName))
            {
                return(Json(new { Success = false, Message = DataAnnotations.WrongFileType }));
            }
            #endregion

            #region 保存上传的文件
            string filePath = string.Empty;
            try
            {
                //保存上传的文件到UploadFiles/VehicleExcels/日期/
                string dirPath = Path.Combine("~/UploadFiles/TerminalExcels/", DateTime.Now.ToShortDateString());
                dirPath = Server.MapPath(dirPath);
                if (!Directory.Exists(dirPath))
                {
                    lock (importExcelLocker)
                    {
                        if (!Directory.Exists(dirPath))
                        {
                            Directory.CreateDirectory(dirPath);
                        }
                    }
                }
                filePath = Path.Combine(dirPath, string.Format("{0}[{1}]{2}", fileName, DateTime.Now.ToString("HHmmss"), extName));
                excelFile.SaveAs(filePath);
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, Message = "导入失败:保存文件异常!" }));
            }
            #endregion

            return(Json(TerminalBLL.ImportTerminals(filePath, "Terminal", base.CurrentUserID)));
        }
Beispiel #16
0
 public ActionResult EditTerminal(TerminalEditModel model)
 {
     if (ModelState.IsValid)
     {
         model.EditUserID = base.UserIDForLog;
         var result = TerminalBLL.EditTerminal(model);
         base.DoLog(OperationTypeEnum.Edit, result, "ID:" + model.ID);
         return(Json(result));
     }
     else
     {
         model.TerminalManufacturerSelectList = new SelectList(TerminalManufacturerBLL.GetTerminalManufacturers(), "ID", "ManufacturerName");
         model.TerminalTypeSelectList         = new SelectList(TerminalTypeBLL.GetTerminalTypesByTMID(model.TerminalManufacturerID), "ID", "TerminalName");
         model.ServerInfoSelectList           = new SelectList(ServerManagerBLL.GetServerInfoList(), "ID", "ServerName");
         return(PartialView("_EditTerminal", model));
     }
 }
Beispiel #17
0
        private void btnGrabar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtMac.Text) || string.IsNullOrEmpty(txtMaquina.Text))
            {
                XtraMessageBox.Show("Hay campos vacios");
            }
            else
            {
                var  metodo = new TerminalBLL();
                bool Resul  = true;
                if (item == null)
                {
                    if (!metodo.Save(new Terminal
                    {
                        Mac = txtMac.Text,
                        Maquina = txtMaquina.Text,
                        Oficina = string.IsNullOrEmpty(txtOficina.Text) ? "XXXX" : txtOficina.Text,
                        Estado = chEstado.Checked ? "A" : "E"
                    }))
                    {
                        Resul = false;
                    }
                }
                else
                {
                    item.Mac     = txtMac.Text;
                    item.Maquina = txtMaquina.Text;
                    item.Oficina = string.IsNullOrEmpty(txtOficina.Text) ? "XXXX" : txtOficina.Text;
                    item.Estado  = chEstado.Checked ? "A" : "E";
                    if (!metodo.Update(item))
                    {
                        Resul = false;
                    }
                }

                if (!Resul)
                {
                    XtraMessageBox.Show(metodo.error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    Mostrar();
                }
            }
        }
Beispiel #18
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                LoginUser   loginUser = new LoginUser(context, "TerminalGrant");
                TerminalBLL bll       = new TerminalBLL(context, loginUser);
                SiteBLL     siteBll   = new SiteBLL(context, loginUser);
                if (!loginUser.Pass)//权限验证
                {
                    return;
                }

                //加载DataGrid
                if (context.Request["action"] == "gridLoad")
                {
                    int    page     = int.Parse(context.Request["page"]);
                    int    rows     = int.Parse(context.Request["rows"]);
                    string siteId   = context.Request["siteId"];
                    string siteName = context.Request["siteName"];
                    siteBll.LoadGrid(page, rows, siteId, siteName, ((int)AuditStauts.AuditSucces).ToString());
                    return;
                }
                if (context.Request["action"] == "load")
                {
                    //加载信息
                    siteBll.Load(context.Request["siteId"]);
                }
                //发放
                if (context.Request["action"] == "add")
                {
                    string siteId          = context.Request["siteId"];                 //执法文书名称编号
                    string startTerminalId = context.Request["startTerminalId"];        //起始终端号
                    string endTerminalId   = context.Request["endTerminalId"];          //结束终端号
                    int    terminalNum     = int.Parse(context.Request["terminalNum"]); //终端数量
                    bll.Grant(siteId, startTerminalId, endTerminalId, terminalNum);
                    return;
                }
            }
            catch (Exception e)
            {
                Message.error(context, e.Message);
            }
        }
Beispiel #19
0
        /// <summary>
        /// 处理终端版本的信息
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="terminal"></param>
        private void HandleTerminalVersion(TX300 obj, TB_Terminal terminal)
        {
            // 处理终端版本信息
            byte[] version = new byte[7];
            byte   rev     = 0;

            if (obj.CommandID == 0xDD00)
            {
                Buffer.BlockCopy(obj.MsgContent, 1, version, 0, 7);
            }
            else if (obj.CommandID == 0x1001)
            {
                Buffer.BlockCopy(obj.MsgContent, 25, version, 0, 7);
                // revision
                rev = obj.MsgContent[32];
            }
            else
            {
                Buffer.BlockCopy(obj.MsgContent, 0, version, 0, 7);
            }
            string ver = Encoding.ASCII.GetString(version);

            version = null;
            if (obj.CommandID == 0xBB00)
            {
                // revision
                string s = Encoding.ASCII.GetString(obj.MsgContent, 7, 2);
                rev = byte.Parse(s);
            }
            using (var bll = new TerminalBLL())
            {
                bll.Update(f => f.id == terminal.id, act =>
                {
                    act.Firmware = ver;
                    if (rev > 0)
                    {
                        act.Revision = rev;
                    }
                });
            }
        }
Beispiel #20
0
 public void ProcessRequest(HttpContext context)
 {
     try
     {
         LoginUser   loginUser = new LoginUser(context, "TerminalStore");
         TerminalBLL bll       = new TerminalBLL(context, loginUser);
         if (!loginUser.Pass)//权限验证
         {
             return;
         }
         //加载DataGrid
         if (context.Request["action"] == "gridLoad")
         {
             int    page          = int.Parse(context.Request["page"]);
             int    rows          = int.Parse(context.Request["rows"]);
             string terminalId    = context.Request["terminalId"];
             string status        = context.Request["status"];
             string supplierCode  = context.Request["supplierCode"];
             string supplierBatch = context.Request["supplierBatch"];
             bll.LoadGrid(page, rows, terminalId, "0", supplierCode, supplierBatch, "", "");
             return;
         }
         //增加
         if (context.Request["action"] == "add")
         {
             TBTerminal tbTerminal = new TBTerminal();
             tbTerminal.terminalId    = context.Request["terminalId"];            //终端编号
             tbTerminal.status        = ((int)TerminalStatus.InStore).ToString(); //当前状态
             tbTerminal.terminalType  = context.Request["terminalType"];          //终端类型
             tbTerminal.supplierDate  = context.Request["supplierDate"];          //出厂时间
             tbTerminal.supplierCode  = context.Request["supplierCode"];          //厂家代码
             tbTerminal.supplierBatch = context.Request["supplierBatch"];         //厂家批次号
             bll.Add(tbTerminal);
             return;
         }
     }
     catch (Exception e)
     {
         Message.error(context, e.Message);
     }
 }
Beispiel #21
0
        /// <summary>
        /// 处理DD02卫星功能命令
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="equipment"></param>
        /// <param name="terminal"></param>
        private void Handle0xDD02(TX300 obj, TB_Equipment equipment, TB_Terminal terminal)
        {
            _0xDD02 xdd02 = new _0xDD02();

            xdd02.Content = obj.MsgContent;
            xdd02.Unpackage();
            if (null != equipment)
            {
                using (var bll = new EquipmentBLL())
                {
                    bll.Update(f => f.id == equipment.id, act => { act.SatelliteStatus = xdd02.Status; });
                }
            }
            if (null != terminal)
            {
                using (var bll = new TerminalBLL())
                {
                    bll.Update(f => f.id == terminal.id, act => { act.SatelliteStatus = xdd02.Status; });
                }
            }
        }
Beispiel #22
0
        public ActionResult TerminalSetting()
        {
            SearchDataWithPagedDatas <TerminalSearchModel, TerminalListModel> model =
                new SearchDataWithPagedDatas <TerminalSearchModel, TerminalListModel>();

            model.SearchModel = new TerminalSearchModel();
            model.SearchModel.TerminalManufacturerID         = -1;
            model.SearchModel.TerminalManufacturerSelectList =
                TerminalManufacturerBLL.GetTerminalManufacturers().
                ToSelectListWithAll(m => GetSelectListItem(m.ID, m.ManufacturerName));



            model.SearchModel.TerminalTypeID         = -1;
            model.SearchModel.TerminalTypeSelectList =
                TerminalTypeBLL.GetTerminalTypes().
                ToSelectListWithAll(m => GetSelectListItem(m.ID, m.TerminalName));

            model.PagedDatas = TerminalBLL.GetPagedTerminals(model.SearchModel, 1, this.PageSize);
            return(PartialView("_TerminalSetting", model));
        }
Beispiel #23
0
        private void HandleEquipmentState(string sender, ushort Command)
        {
            var EquipmentInstance = new EquipmentBLL();

            EquipmentInstance.Update(f => f.TB_Terminal.Sim.Equals(sender) && f.Deleted == false, act =>
            {
                act.Socket         = 0;
                act.OnlineTime     = DateTime.Now;
                act.IP             = "";
                act.Port           = 0;
                act.LastAction     = "0x" + CustomConvert.IntToDigit(Command, CustomConvert.HEX, 4);
                act.LastActionBy   = "SMS";
                act.LastActionTime = DateTime.Now;
                if (act.OnlineStyle == (byte)LinkType.OFF && Command == 0x2000)
                {
                }
                else
                {
                    act.OnlineStyle = (byte)LinkType.SMS;
                }
            });
            var TerminalInstance = new TerminalBLL();

            TerminalInstance.Update(f => f.Sim.Equals(sender), act =>
            {
                act.Socket     = 0;
                act.OnlineTime = DateTime.Now;
                if (act.OnlineStyle == (byte)LinkType.OFF && Command == 0x2000)
                {
                    // 收到报警但此时已经是OFF状态时,不更新在线状态
                }
                else
                {
                    act.OnlineStyle = (byte)LinkType.SMS;
                }
            });
        }
Beispiel #24
0
        /// <summary>
        /// 根据TX300数据包更新终端和设备的在线状态
        /// </summary>
        /// <param name="tx300"></param>
        private void HandleTX300Status(TX300 tx300, AsyncUserDataBuffer data)
        {
            var sim = GetSimFromData(tx300);

            using (var ebll = new EquipmentBLL())
            {
                var equipment = ebll.Find(f => f.TB_Terminal.Sim.Equals(sim));
                var terminal  = new TerminalBLL().Find(f => f.Sim.Equals(sim));
                SaveTerminalData(null == terminal ? -1 : terminal.id, sim, data.PackageType, tx300.TotalLength, true, data.ReceiveTime);
                // 终端不存在的话,不用再继续处理数据了
                if (!IsTracker(tx300.CommandID))
                {
                    if (null == terminal)
                    {
                        return;
                    }
                }

                HandleOnline(sim, tx300.CommandID, data);

                if (tx300.CommandID != 0xAA00)
                {
                    // TX10G的数据
                    if (tx300.CommandID >= 0x7000 && tx300.CommandID <= 0x7040)
                    {
                        HandleTX10G(tx300, data);
                    }
                    else
                    {
                        SaveTX300History(tx300, data.ReceiveTime, (null == equipment ? "" : ebll.GetFullNumber(equipment)));

                        // 根据命令的不同处理各个命令详情
                        HandleCommand(tx300, equipment, terminal);
                    }
                }
            }
        }
        /// <summary>
        /// 导出终端列表到excel
        /// </summary>
        /// <param name="bll"></param>
        /// <param name="excel"></param>
        private void ExportTerminalsToExcel(ExcelHandlerBLL bll, TB_ExcelHandler excel)
        {
            string      source = "", data = "";
            Application app   = null;
            Workbook    book  = null;
            Worksheet   sheet = null;

            try
            {
                app         = new Application();
                book        = app.Workbooks.Open(EXCEL_PATH + EXCEL_TERMINALS);
                sheet       = (Worksheet)book.ActiveSheet;
                app.Visible = false;
                app.AlertBeforeOverwriting = false;
                app.DisplayAlerts          = false;

                using (var tbll = new TerminalBLL())
                {
                    using (var ebll = new EquipmentBLL())
                    {
                        int line = 2;
                        int cnt  = 0;
                        var n    = (int?)null;
                        var list = tbll.FindList(f => f.Delete == false);
                        foreach (var obj in list)
                        {
                            var x = line + cnt;
                            sheet.Cells[x, 1] = (cnt + 1);
                            sheet.Cells[x, 2] = obj.Number;
                            sheet.Cells[x, 3] = n == obj.Satellite ? "-" : obj.TB_Satellite.CardNo;
                            sheet.Cells[x, 4] = string.IsNullOrEmpty(obj.Firmware) ? "-" : obj.Firmware;
                            sheet.Cells[x, 5] = obj.Revision;
                            sheet.Cells[x, 6] = TerminalTypes.GetTerminalType(obj.Type.Value);
                            sheet.Cells[x, 7] = obj.ProductionDate.Value.ToString("yyyy/MM/dd");
                            var e = ebll.Find(d => d.Terminal == obj.id && d.Deleted == false);
                            sheet.Cells[x, 8] = null == e ? "-" : ebll.GetFullNumber(e);

                            var link = EverdigmUtils.GetOnlineStyle(obj.OnlineStyle, obj.OnlineTime, false);
                            link = link.Substring(link.IndexOf('>') + 1);
                            link = link.Substring(0, link.IndexOf('<'));
                            sheet.Cells[x, 9]  = string.IsNullOrEmpty(link) ? "-" : link;
                            sheet.Cells[x, 10] = null == obj.OnlineTime ? "-" : obj.OnlineTime.Value.ToString("yyyy/MM/dd HH:mm");
                            cnt++;
                        }
                    }
                }

                // 另存为别的
                var date = excel.CreateDate.Value.ToString("yyyyMMdd");
                var path = Path.Combine(WEB_PATH, "files\\xls\\", date);
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                source = path + "\\Terminals2Excel_" + excel.CreateDate.Value.ToString("yyyyMMdd") + ".xlsx";
                if (File.Exists(source))
                {
                    File.Delete(source);
                }
                book.SaveAs(source);
            }
            catch (Exception e)
            {
                data = e.StackTrace;
                ShowUnhandledMessage(format("{0}Terminal to Excel handler error: {1}{2}{3}", Now, e.Message, Environment.NewLine, e.StackTrace));
            }
            finally
            {
                // 关闭book
                if (null != book)
                {
                    book.Close();
                    book = null;
                }
                // 关闭application
                if (null != app)
                {
                    app.Quit();
                    app = null;
                }
                // 释放内存
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            var target = "../" + source.Replace(WEB_PATH, "").Replace("\\", "/");

            bll.Update(f => f.id == excel.id, act =>
            {
                act.Handled = true;
                act.Status  = (byte)(string.IsNullOrEmpty(data) ? 0 : 1);
                act.Target  = target;
                act.Data    = data;
            });
        }
Beispiel #26
0
 public ActionResult CheckEditSIMCodeExists(string SIMCode, long id)
 {
     return(Json(!TerminalBLL.CheckSIMCodeExists(SIMCode, id)));
 }
Beispiel #27
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                LoginUser   loginUser = new LoginUser(context, "TerminalSearch");
                TerminalBLL bll       = new TerminalBLL(context, loginUser);
                if (!loginUser.Pass)//权限验证
                {
                    return;
                }

                //加载DataGrid
                if (context.Request["action"] == "gridLoad")
                {
                    int    page          = int.Parse(context.Request["page"]);
                    int    rows          = int.Parse(context.Request["rows"]);
                    string terminalId    = context.Request["terminalId"];
                    string status        = context.Request["status"];
                    string supplierCode  = context.Request["supplierCode"];
                    string supplierBatch = context.Request["supplierBatch"];
                    bll.LoadGrid(page, rows, terminalId, status, supplierCode, supplierBatch);
                    return;
                }
                if (context.Request["action"] == "ddlSiteListLoad")
                {
                    bll.SiteCombobox();
                    return;
                }
                if (context.Request["action"] == "ddlStatusListLoad")
                {
                    bll.TerminalStatusCombobox();
                    return;
                }
                //加载信息
                if (context.Request["action"] == "load")
                {
                    string terminalId = context.Request["terminalId"];//终端编号
                    bll.Load(terminalId);
                    return;
                }

                //增加
                if (context.Request["action"] == "add")
                {
                    TBTerminal tbTerminal = new TBTerminal();
                    tbTerminal.terminalId    = context.Request["terminalId"];            //终端编号
                    tbTerminal.status        = ((int)TerminalStatus.InStore).ToString(); //当前状态
                    tbTerminal.terminalType  = context.Request["terminalType"];          //终端类型
                    tbTerminal.supplierDate  = context.Request["supplierDate"];          //出厂时间
                    tbTerminal.supplierCode  = context.Request["supplierCode"];          //厂家代码
                    tbTerminal.supplierBatch = context.Request["supplierBatch"];         //厂家批次号
                    bll.Add(tbTerminal);
                    return;
                }
                //发放
                if (context.Request["action"] == "grent")
                {
                    string siteId          = context.Request["siteId"];                 //快开厅编号
                    string startTerminalId = context.Request["startTerminalId"];        //起始终端号
                    string endTerminalId   = context.Request["endTerminalId"];          //结束终端号
                    int    terminalNum     = int.Parse(context.Request["terminalNum"]); //终端数量
                    bll.Grant(siteId, startTerminalId, endTerminalId, terminalNum);
                    return;
                }
                //修改
                if (context.Request["action"] == "edit")
                {
                    TBTerminal tbTerminal = new TBTerminal();
                    tbTerminal.terminalId    = context.Request["terminalId"];    //终端编号
                    tbTerminal.status        = context.Request["status"];        //当前状态
                    tbTerminal.terminalType  = context.Request["terminalType"];  //终端类型
                    tbTerminal.supplierDate  = context.Request["supplierDate"];  //出厂时间
                    tbTerminal.supplierCode  = context.Request["supplierCode"];  //厂家代码
                    tbTerminal.supplierBatch = context.Request["supplierBatch"]; //厂家批次号
                    tbTerminal.siteId        = context.Request["siteId"];        //门店编号
                    tbTerminal.agentId       = context.Request["agentId"];       //代理商编号
                    bll.Edit(tbTerminal);
                    return;
                }

                //删除
                if (context.Request["action"] == "delete")
                {
                    string terminalId = context.Request["terminalId"];//终端编号
                    bll.Delete(terminalId);
                    return;
                }
            }
            catch (Exception e)
            {
                Message.error(context, e.Message);
            }
        }
Beispiel #28
0
 public ActionResult CheckEditTerminalCodeExists(string terminalCode, long id)
 {
     return(Json(!TerminalBLL.CheckTerminalCodeExists(terminalCode, id)));
 }
Beispiel #29
0
 public void Dispose()
 {
     bll = null;
 }
Beispiel #30
0
 public ActionResult CheckEditVehicleIDExists(string vehicleID, long id)
 {
     return(Json(!TerminalBLL.CheckVehicleIDExists(vehicleID, id)));
 }