protected void Button3_Click(object sender, EventArgs e)
        {
            ComSqlHelper csh         = new ComSqlHelper();
            DataTable    contentData = csh.Query("SELECT  *   FROM  [Qc_CarRunStatus]", "HRBKY").Tables[0];

            contentData.Columns.Remove("CID");
            contentData.Columns.Add("StartAddress");
            contentData.Columns.Add("EndAddress");

            List <CommLibrary.AddressConvert.DLngLat> corrds = new List <AddressConvert.DLngLat>();

            for (int i = 0; i < contentData.Rows.Count; i++)
            {
                string sc = contentData.Rows[i]["StartCoord"].ToString();
                sc = string.IsNullOrEmpty(sc) ? "0-0" : sc;
                string slng = sc.Split('-')[1];
                string slat = sc.Split('-')[0];
                string ec   = contentData.Rows[i]["EndCoord"].ToString();
                ec = string.IsNullOrEmpty(ec) ? "0-0" : ec;
                string elng = ec.Split('-')[1];
                string elat = ec.Split('-')[0];
                CommLibrary.AddressConvert.DLngLat sdl = new AddressConvert.DLngLat();
                sdl.Lat = double.Parse(slat);
                sdl.Lng = double.Parse(slng);
                CommLibrary.AddressConvert.DLngLat edl = new AddressConvert.DLngLat();
                edl.Lat = double.Parse(elat);
                edl.Lng = double.Parse(elng);
                corrds.Add(sdl);
                corrds.Add(edl);
            }
            string[] address = AddressConvert.AddConvertBatch(corrds);
            for (int i = 0; i < contentData.Rows.Count; i++)
            {
                contentData.Rows[i]["StartAddress"] = address[i * 2];
                contentData.Rows[i]["EndAddress"]   = address[i * 2 + 1];
            }


            NPOIHelper npoiHelper = new NPOIHelper();

            string[]   headerDataArray  = { "车牌号", "所属企业", "车辆用途", "运营线路", "开始时间", "开始速度", "结束时间", "结束速度", "开始经纬度", "结束经纬度", "开始地址", "结束地址" };
            string[][] contentDataArray = npoiHelper.convertDataTableToStringArray(contentData);
            npoiHelper.WorkbookName = "车辆运行统计" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
            // 设置导入内容
            npoiHelper.HeaderData  = headerDataArray;
            npoiHelper.ContentData = contentDataArray;
            string basepath = HttpRuntime.AppDomainAppPath.ToString();
            string filePath = @"UI\Excel\Query\";
            string sd       = basepath + filePath;

            npoiHelper.saveExcel(sd);
        }
Exemple #2
0
        /// <summary>
        /// 批量地址解析
        /// </summary>
        /// <param name="dt">轨迹数据DataTable</param>
        /// <returns>地址解析后的DataTable</returns>
        private DataTable AddAddress(DataTable dt)
        {
            try
            {
                DataTable addrDt = dt.Copy();
                List <AddressConvert.DLngLat> convertAddrList = new List <AddressConvert.DLngLat>(); //存放需要解析地址的轨迹点的坐标
                List <int> ConvertIndexList = new List <int>();                                      //ConvertIndexList存放需要解析坐标的轨迹点的索引
                int        rowcount         = dt.Rows.Count;
                double     LngDiff          = double.Parse(ConfigurationManager.AppSettings["DiffLng"]);
                double     LatDiff          = double.Parse(ConfigurationManager.AppSettings["DiffLat"]);

                //遍历DataTable,将需要解析地址的坐标,存放到convertAddrList列表中
                for (int i = 0; i < rowcount; i++)
                {
                    int l = convertAddrList.Count;
                    if ((i == 0) || (i > 0 && (Math.Abs(double.Parse(dt.Rows[i]["lng"].ToString()) - convertAddrList[l - 1].Lng) > LngDiff || Math.Abs(double.Parse(dt.Rows[i]["lat"].ToString()) - convertAddrList[l - 1].Lat) > LatDiff)))
                    {
                        AddressConvert.DLngLat dlnglat = new AddressConvert.DLngLat();
                        ConvertIndexList.Add(i);
                        dlnglat.Lng = double.Parse(dt.Rows[i]["lng"].ToString());
                        dlnglat.Lat = double.Parse(dt.Rows[i]["lat"].ToString());
                        convertAddrList.Add(dlnglat);
                    }
                }

                string[] conArr = CommLibrary.AddressConvert.AddConvertBatch(convertAddrList);

                if (conArr.Length == convertAddrList.Count)
                {
                    for (int i = 0; i < rowcount; i++)
                    {
                        int arrIndex = GetArrIndex(i, ConvertIndexList);
                        if (arrIndex > -1)
                        {
                            addrDt.Rows[i]["add"] = conArr[arrIndex];
                        }
                        else
                        {
                            addrDt.Rows[i]["add"] = addrDt.Rows[i - 1]["add"];
                        }
                    }
                }

                return(addrDt);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #3
0
        //
        private Workbook Object2Workbook(JObject jsonObject, HttpContext context)
        {
            #region Aspose.Cell引用
            Aspose.Cells.License licExcel = new License();  //Aspose.Cells申明
            if (File.Exists(context.Server.MapPath("~/bin/Service/_extend/cellLic.lic")))
            {
                licExcel.SetLicense(context.Server.MapPath("~/bin/Service/_extend/cellLic.lic"));
            }
            #endregion

            Workbook workbook = new Workbook();

            Worksheet sheet = workbook.Worksheets[0];


            Styles             styles      = workbook.Styles;
            int                styleIndex  = styles.Add();
            Aspose.Cells.Style borderStyle = styles[styleIndex];

            borderStyle.Borders.DiagonalStyle = CellBorderType.None;
            borderStyle.HorizontalAlignment   = TextAlignmentType.Center;//文字居中
            Cells cells = sheet.Cells;
            //sheet.FreezePanes(1, 1, 1, 0);//冻结第一行
            sheet.Name = jsonObject["sheetName"].ToString();//接受前台的Excel工作表名



            //为标题设置样式
            Style styleTitle = workbook.Styles[workbook.Styles.Add()]; //新增样式
            styleTitle.HorizontalAlignment = TextAlignmentType.Center; //文字居中
            styleTitle.Font.Name           = "宋体";                     //文字字体
            styleTitle.Font.Size           = 18;                       //文字大小
            styleTitle.Font.IsBold         = true;                     //粗体

            //题头样式
            Style styleHeader = workbook.Styles[workbook.Styles.Add()]; //新增样式
            styleHeader.HorizontalAlignment = TextAlignmentType.Center; //文字居中
            styleHeader.Font.Name           = "宋体";                     //文字字体
            styleHeader.Font.Size           = 14;                       //文字大小
            styleHeader.Font.IsBold         = true;                     //粗体
            styleHeader.IsTextWrapped       = true;                     //单元格内容自动换行
            styleHeader.Borders[BorderType.LeftBorder].LineStyle   = CellBorderType.Thin;
            styleHeader.Borders[BorderType.RightBorder].LineStyle  = CellBorderType.Thin;
            styleHeader.Borders[BorderType.TopBorder].LineStyle    = CellBorderType.Thin;
            styleHeader.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;

            //内容样式
            Style styleContent = workbook.Styles[workbook.Styles.Add()]; //新增样式
            styleContent.HorizontalAlignment = TextAlignmentType.Center; //文字居中
            styleContent.Font.Name           = "宋体";                     //文字字体
            styleContent.Font.Size           = 12;                       //文字大小
            styleContent.Borders[BorderType.LeftBorder].LineStyle   = CellBorderType.Thin;
            styleContent.Borders[BorderType.RightBorder].LineStyle  = CellBorderType.Thin;
            styleContent.Borders[BorderType.TopBorder].LineStyle    = CellBorderType.Thin;
            styleContent.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;


            var rowCount    = jsonObject["rows"].ToArray().Count();    //表格行数
            var columnCount = jsonObject["columns"].ToArray().Count(); //表格列数


            //生成行1 标题行
            cells.Merge(0, 0, 1, columnCount);             //合并单元格
            cells[0, 0].PutValue(jsonObject["sheetName"]); //填写内容
            cells[0, 0].Style = styleTitle;
            cells.SetRowHeight(0, 25);

            //生成题头列行
            for (int i = 0; i < columnCount; i++)
            {
                cells[1, i].PutValue(jsonObject["columns"].ToArray()[i]["title"]);
                cells[1, i].Style = styleHeader;
                cells.SetRowHeight(1, 23);
            }

            //生成地址列
            cells[1, columnCount].PutValue("地址");
            cells[1, columnCount].Style = styleHeader;
            cells.SetRowHeight(1, 23);

            //调用接口进行地址解析
            List <AddressConvert.DLngLat> convertAddrList = new List <AddressConvert.DLngLat>(); //存放需要解析地址的轨迹点的坐标

            for (int i = 0; i < rowCount; i++)
            {
                //
                AddressConvert.DLngLat dlnglat = new AddressConvert.DLngLat();
                dlnglat.Lng = double.Parse(jsonObject["rows"].ToArray()[i]["Long"].ToString());
                dlnglat.Lat = double.Parse(jsonObject["rows"].ToArray()[i]["Lati"].ToString());
                convertAddrList.Add(dlnglat);
            }

            //
            string[] conArr = CommLibrary.AddressConvert.AddConvertBatch(convertAddrList);


            //生成内容行,第三行起始
            //生成数据行
            for (int i = 0; i < rowCount; i++)
            {
                for (int k = 0; k < columnCount; k++)
                {
                    var currentColumnName = jsonObject["columns"].ToArray()[k]["field"];
                    var b = jsonObject["rows"].ToArray()[i][currentColumnName.ToString()];
                    cells[2 + i, k].PutValue(jsonObject["rows"].ToArray()[i][currentColumnName.ToString()]);
                    //cells[2 + i, k].PutValue(jsonObject.rows[i][currentColumnName.Value]);
                    cells[2 + i, k].Style = styleContent;
                }

                //地址行
                cells[2 + i, columnCount].PutValue(conArr[i]);
                //cells[2 + i, k].PutValue(jsonObject.rows[i][currentColumnName.Value]);
                cells[2 + i, columnCount].Style = styleContent;


                cells.SetRowHeight(2 + i, 22);
            }


            //添加制表日期
            cells[2 + rowCount, columnCount].PutValue("制表日期:" + DateTime.Now.ToShortDateString());
            sheet.AutoFitColumns(); //让各列自适应宽度
            sheet.AutoFitRows();    //让各行自适应宽度
            return(workbook);
        }
Exemple #4
0
        /// <summary>
        /// 获取车辆实时数据导出
        /// </summary>
        /// <param name="inparams"></param>
        /// <returns></returns>
        public ResponseResult getCarLastTrackOut(Dictionary <string, string> inparams)
        {
            ResponseResult Result = null;

            if (!inparams.Keys.Contains("CIDs"))
            {
                Result = new ResponseResult(ResState.ParamsImperfect, "缺少参数", null);
                return(Result);
            }
            string  sysflag  = inparams["sysflag"];
            ResList list_res = new ResList();

            try
            {
                //调用存储过程或WebGIS实时数据服务接口查询车辆轨迹数据
                DataTable dt = new DataTable();

                //初始化DataTable的列

                dt.Columns.Add(new DataColumn("CarNum", typeof(string)));
                dt.Columns.Add(new DataColumn("TDateTime", typeof(DateTime)));
                dt.Columns.Add(new DataColumn("Speed", typeof(float)));
                dt.Columns.Add(new DataColumn("StatusStr", typeof(string)));
                dt.Columns.Add(new DataColumn("AlarmStr", typeof(string)));
                dt.Columns.Add(new DataColumn("OnlineStatusStr", typeof(string)));
                dt.Columns.Add(new DataColumn("HeadingStr", typeof(string)));
                dt.Columns.Add(new DataColumn("SumMiles", typeof(int)));
                dt.Columns.Add(new DataColumn("Lati", typeof(float)));
                dt.Columns.Add(new DataColumn("Long", typeof(float)));
                dt.Columns.Add(new DataColumn("Address", typeof(string)));
                //dt.Columns.Add(new DataColumn("Alarm", typeof(long)));
                //dt.Columns.Add(new DataColumn("Alarm808", typeof(long)));
                //dt.Columns.Add(new DataColumn("AlarmExt808", typeof(long)));
                //dt.Columns.Add(new DataColumn("Carid", typeof(long)));
                //dt.Columns.Add(new DataColumn("Heading", typeof(int)));
                //dt.Columns.Add(new DataColumn("Status", typeof(long)));
                //dt.Columns.Add(new DataColumn("Status808", typeof(long)));
                //dt.Columns.Add(new DataColumn("StatusExt808", typeof(long)));
                // dt.Columns.Add(new DataColumn("AltitudeMeters", typeof(int)));
                //dt.Columns.Add(new DataColumn("TNO", typeof(long)));
                //dt.Columns.Add(new DataColumn("OnlineStatus", typeof(int)));

                //sPositionAdditionalInfo
                WebGIS.RealtimeDataServer.CarRealData[] res = new WebGIS.RealtimeDataServer.CarRealData[] { };

                res = CarRealDataByCids(sysflag, ToIntArray(inparams["CIDs"].Split(',')));

                List <AddressConvert.DLngLat> convertAddrList = new List <AddressConvert.DLngLat>(); //存放需要解析地址的轨迹点的坐标


                //利用查询结果填充DataTable
                foreach (WebGIS.RealtimeDataServer.CarRealData carRealData in res)
                {
                    DataRow dr = dt.NewRow();

                    dr["AlarmStr"]        = carRealData.AlarmStr;
                    dr["CarNum"]          = carRealData.CarNum;
                    dr["HeadingStr"]      = carRealData.HeadingStr;
                    dr["Lati"]            = carRealData.Lati;
                    dr["Long"]            = carRealData.Long;
                    dr["Speed"]           = carRealData.Speed;
                    dr["StatusStr"]       = carRealData.StatusStr;
                    dr["SumMiles"]        = carRealData.SumMiles;
                    dr["TDateTime"]       = carRealData.TDateTime;
                    dr["OnlineStatusStr"] = carRealData.OnlineStatusStr;
                    dt.Rows.Add(dr);
                    AddressConvert.DLngLat dlnglat = new AddressConvert.DLngLat();
                    dlnglat.Lng = carRealData.Long;
                    dlnglat.Lat = carRealData.Lati;
                    convertAddrList.Add(dlnglat);
                }
                string[] conArr = CommLibrary.AddressConvert.AddConvertBatch(convertAddrList);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["Address"] = conArr[i];
                }

                NPOIHelper npoiHelper       = new NPOIHelper();
                string[]   headerDataArray  = { "车牌号", "GPS时间", "车速", "车辆状态", "报警状态", "在线状态", "方向", "里程", "经度", "纬度", "地址" };
                string[][] contentDataArray = npoiHelper.convertDataTableToStringArray(dt);
                npoiHelper.WorkbookName = "车辆实时监控数据" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                // 设置导入内容
                npoiHelper.HeaderData  = headerDataArray;
                npoiHelper.ContentData = contentDataArray;
                string basepath = HttpRuntime.AppDomainAppPath.ToString();
                string filePath = @"UI\Excel\Query\";
                string sd       = basepath + filePath;
                npoiHelper.saveExcel(sd);

                Result = new ResponseResult(ResState.Success, "", filePath + npoiHelper.WorkbookName);
                return(Result);
            }
            catch (Exception ex)
            {
                Result = new ResponseResult(ResState.OtherError, "", ex.Message + ex.StackTrace);
                return(Result);
            }
        }
Exemple #5
0
        public ResponseResult DetailExport(Dictionary <string, string> inparams)
        {
            ResponseResult Result = null;
            string         stime;
            string         etime;
            string         sysflag;
            string         sysuid;
            string         cid;

            if (!inparams.Keys.Contains("stime") || !inparams.Keys.Contains("etime") || !inparams.Keys.Contains("cid") || !inparams.Keys.Contains("sysflag"))
            {
                Result = new ResponseResult(ResState.ParamsImperfect, "缺少参数", null);
                return(Result);
            }
            try
            {
                if (inparams["stime"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "开始时间不能为空", null);
                    return(Result);
                }
                if (inparams["etime"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "结束时间不能为空", null);
                    return(Result);
                }
                if (inparams["sysflag"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "系统标识错误", null);
                    return(Result);
                }
                stime   = inparams["stime"];
                etime   = inparams["etime"];
                cid     = inparams["cid"];
                sysflag = inparams["sysflag"];
                //调用存储过程查询能耗分析明细表
                //todo
                DataTable contentData = EnergyAnalysisDetail(sysflag, cid, stime, etime);
                contentData.Columns.Remove("CID");
                contentData.Columns.Add("StartAddress");
                contentData.Columns.Add("EndAddress");
                // 添加列
                contentData.Columns.Add("DurationStr");
                // 处理时间,转换为“时、分、秒”
                foreach (DataRow row in contentData.Rows)
                {
                    if ((int)row["Duration"] != 0)
                    {
                        row["DurationStr"] = AnalysisDuration((long)row["Duration"]);
                    }
                    else
                    {
                        row["DurationStr"] = "0";
                    }
                }

                contentData.Columns.Remove("Duration");

                List <CommLibrary.AddressConvert.DLngLat> corrds = new List <AddressConvert.DLngLat>();
                for (int i = 0; i < contentData.Rows.Count; i++)
                {
                    string sc = contentData.Rows[i]["FromLatLng"].ToString();
                    sc = string.IsNullOrEmpty(sc) ? "0,0" : sc;
                    string slng = sc.Split(',')[1];
                    string slat = sc.Split(',')[0];
                    string ec   = contentData.Rows[i]["ToLatLng"].ToString();
                    ec = string.IsNullOrEmpty(ec) ? "0,0" : ec;
                    string elng = ec.Split(',')[1];
                    string elat = ec.Split(',')[0];
                    CommLibrary.AddressConvert.DLngLat sdl = new AddressConvert.DLngLat();
                    sdl.Lat = double.Parse(slat);
                    sdl.Lng = double.Parse(slng);
                    CommLibrary.AddressConvert.DLngLat edl = new AddressConvert.DLngLat();
                    edl.Lat = double.Parse(elat);
                    edl.Lng = double.Parse(elng);
                    corrds.Add(sdl);
                    corrds.Add(edl);
                }
                string[] address = AddressConvert.AddConvertBatch(corrds);
                for (int i = 0; i < contentData.Rows.Count; i++)
                {
                    contentData.Rows[i]["StartAddress"] = address[i * 2];
                    contentData.Rows[i]["EndAddress"]   = address[i * 2 + 1];
                }


                NPOIHelper npoiHelper       = new NPOIHelper();
                string[]   headerDataArray  = { "车牌号", "开始时间", "结束时间", "开始位置坐标", "结束位置坐标", "行驶里程", "油耗", "尿素消耗", "平均速度", "开始地址", "结束地址", "行驶时长" };
                string[][] contentDataArray = npoiHelper.convertDataTableToStringArray(contentData);
                npoiHelper.WorkbookName = "能耗分析明细表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                // 设置导入内容
                npoiHelper.HeaderData  = headerDataArray;
                npoiHelper.ContentData = contentDataArray;
                string basepath = HttpRuntime.AppDomainAppPath.ToString();
                string filePath = @"UI\Excel\";
                string sd       = basepath + filePath;
                npoiHelper.saveExcel(sd);

                Result = new ResponseResult(ResState.Success, "", filePath + npoiHelper.WorkbookName);
                return(Result);
            }
            catch (Exception ex)
            {
                Result = new ResponseResult(ResState.OperationFailed, ex.Message, "");
            }
            return(Result);
        }
Exemple #6
0
        public ResponseResult getOfflineStatisticDetailOutput(Dictionary <string, string> inparams)
        {
            ResponseResult Result = null;

            string stime;
            string etime;
            string sysflag;
            string num;
            string cid;

            if (!inparams.Keys.Contains("stime") || !inparams.Keys.Contains("etime") || !inparams.Keys.Contains("cid") || !inparams.Keys.Contains("sysflag") || !inparams.Keys.Contains("num"))
            {
                Result = new ResponseResult(ResState.ParamsImperfect, "缺少参数", null);
                return(Result);
            }
            try
            {
                if (inparams["stime"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "开始时间不能为空", null);
                    return(Result);
                }
                if (inparams["etime"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "结束时间不能为空", null);
                    return(Result);
                }
                if (inparams["sysflag"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "系统标识错误", null);
                    return(Result);
                }
                stime   = inparams["stime"];
                etime   = inparams["etime"];
                sysflag = inparams["sysflag"];
                num     = inparams["num"];
                cid     = inparams["cid"];

                DataTable dtStatDetail = GetStatDetailTable(sysflag, cid, stime, etime);

                DataTable dtDetailOrg = OrgnizeTableDetailNew(dtStatDetail);

                List <OfflineStatDetail> offlineStatDetailList = OrgnizeOfflineStatDetail(dtDetailOrg, Int32.Parse(num));

                DataTable contentData = ListToDetailDataTable(offlineStatDetailList);

                contentData.Columns.Remove("CID");
                // 添加列
                contentData.Columns.Add("DurationStr");
                // 处理时间,转换为“时、分、秒”
                foreach (DataRow row in contentData.Rows)
                {
                    if ((int)row["OffDuration"] != 0)
                    {
                        row["DurationStr"] = AnalysisDuration((int)row["OffDuration"]);
                    }
                    else
                    {
                        row["DurationStr"] = "0";
                    }
                }

                contentData.Columns.Remove("OffDuration");


                contentData.Columns.Add("StartAddress");
                contentData.Columns.Add("EndAddress");

                List <CommLibrary.AddressConvert.DLngLat> corrds = new List <AddressConvert.DLngLat>();
                for (int i = 0; i < contentData.Rows.Count; i++)
                {
                    string sc = contentData.Rows[i]["FromAddress"].ToString();
                    sc = string.IsNullOrEmpty(sc) ? "0,0" : sc;
                    string slng = sc.Split(',')[0];
                    string slat = sc.Split(',')[1];
                    string ec   = contentData.Rows[i]["ToAddress"].ToString();
                    ec = string.IsNullOrEmpty(ec) ? "0,0" : ec;
                    string elng = ec.Split(',')[0];
                    string elat = ec.Split(',')[1];
                    CommLibrary.AddressConvert.DLngLat sdl = new AddressConvert.DLngLat();
                    sdl.Lat = double.Parse(slat);
                    sdl.Lng = double.Parse(slng);
                    corrds.Add(sdl);
                    CommLibrary.AddressConvert.DLngLat edl = new AddressConvert.DLngLat();
                    edl.Lat = double.Parse(elat);
                    edl.Lng = double.Parse(elng);
                    corrds.Add(edl);
                }
                string[] address = AddressConvert.AddConvertBatch(corrds);
                for (int i = 0; i < contentData.Rows.Count; i++)
                {
                    contentData.Rows[i]["StartAddress"] = address[i * 2];
                    contentData.Rows[i]["EndAddress"]   = address[i * 2 + 1];
                }

                contentData.Columns.Remove("FromAddress");
                contentData.Columns.Remove("ToAddress");

                NPOIHelper npoiHelper       = new NPOIHelper();
                string[]   headerDataArray  = { "车牌号", "所属企业", "车辆用途", "运营线路", "开始时间", "结束时间", "离线时长", "开始地址", "结束地址" };
                string[][] contentDataArray = npoiHelper.convertDataTableToStringArray(contentData);
                npoiHelper.WorkbookName = "车辆离线统计明细" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                // 设置导入内容
                npoiHelper.HeaderData  = headerDataArray;
                npoiHelper.ContentData = contentDataArray;
                string basepath = HttpRuntime.AppDomainAppPath.ToString();
                string filePath = @"UI\Excel\Query\";
                string sd       = basepath + filePath;
                npoiHelper.saveExcel(sd);

                Result = new ResponseResult(ResState.Success, "", filePath + npoiHelper.WorkbookName);
            }
            catch (Exception ex)
            {
                Result = new ResponseResult(ResState.OperationFailed, ex.Message, "");
            }


            return(Result);
        }
Exemple #7
0
        /// <summary>
        /// 车辆异常下线统计导出
        /// </summary>
        /// <param name="inparams"></param>
        /// <returns></returns>
        public ResponseResult getAbnormalOfflineStatisticsoutput(Dictionary <string, string> inparams)
        {
            ResponseResult Result = null;
            string         stime;
            string         etime;
            string         CarNum;
            string         CUID;
            string         CarOwnName;
            string         Line;
            string         sysuid;
            string         sysflag;
            string         onecaruser;
            string         num;

            if (!inparams.Keys.Contains("stime") || !inparams.Keys.Contains("etime") || !inparams.Keys.Contains("CarNum") || !inparams.Keys.Contains("sysflag") || !inparams.Keys.Contains("CUID") || !inparams.Keys.Contains("CarOwnName") || !inparams.Keys.Contains("Line"))
            {
                Result = new ResponseResult(ResState.ParamsImperfect, "缺少参数", null);
                return(Result);
            }
            try
            {
                if (inparams["stime"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "开始时间不能为空", null);
                    return(Result);
                }
                if (inparams["etime"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "结束时间不能为空", null);
                    return(Result);
                }
                if (inparams["sysflag"] == "")
                {
                    Result = new ResponseResult(ResState.ParamsImperfect, "系统标识错误", null);
                    return(Result);
                }
                stime      = inparams["stime"];
                etime      = inparams["etime"];
                CarNum     = inparams["CarNum"];
                CUID       = inparams["CUID"];
                CarOwnName = inparams["CarOwnName"];
                Line       = inparams["Line"];
                sysflag    = inparams["sysflag"];
                sysuid     = inparams["sysuid"];
                onecaruser = inparams["onecaruser"];
                num        = inparams["num"];
                //调用存储过程查询警情数据
                //todo

                DataTable contentData = GetAbnormalStatistics(sysflag, sysuid, stime, etime, CarNum, CUID, CarOwnName, Line, onecaruser, num);
                //contentData.Columns.Remove("CID");
                //contentData.Columns.Add("StartAddress");
                // contentData.Columns.Add("EndAddress");

                List <CommLibrary.AddressConvert.DLngLat> corrds = new List <AddressConvert.DLngLat>();
                for (int i = 0; i < contentData.Rows.Count; i++)
                {
                    //string sc = contentData.Rows[i]["StartCoord"].ToString();
                    //sc = string.IsNullOrEmpty(sc) ? "0-0" : sc;
                    //string slng = sc.Split('-')[1];
                    //string slat = sc.Split('-')[0];
                    string ec = contentData.Rows[i]["OffCoord"].ToString();
                    ec = string.IsNullOrEmpty(ec) ? "0-0" : ec;
                    string elng = ec.Split(',')[1];
                    string elat = ec.Split(',')[0];
                    //CommLibrary.AddressConvert.DLngLat sdl = new AddressConvert.DLngLat();
                    //sdl.Lat = double.Parse(slat);
                    //sdl.Lng = double.Parse(slng);
                    CommLibrary.AddressConvert.DLngLat edl = new AddressConvert.DLngLat();
                    edl.Lat = double.Parse(elat);
                    edl.Lng = double.Parse(elng);
                    //corrds.Add(sdl);
                    corrds.Add(edl);
                }
                string[] address = AddressConvert.AddConvertBatch(corrds);
                for (int i = 0; i < contentData.Rows.Count; i++)
                {
                    //contentData.Rows[i]["StartAddress"] = address[i * 2];
                    contentData.Rows[i]["address"] = address[i];
                }


                NPOIHelper npoiHelper       = new NPOIHelper();
                string[]   headerDataArray  = { "车牌号", "车辆用途", "所属企业", "下线时间", "下线经纬度", "下线地址", "运营线路" };
                string[][] contentDataArray = npoiHelper.convertDataTableToStringArray(contentData);
                npoiHelper.WorkbookName = "车辆异常下线统计" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                // 设置导入内容
                npoiHelper.HeaderData  = headerDataArray;
                npoiHelper.ContentData = contentDataArray;
                string basepath = HttpRuntime.AppDomainAppPath.ToString();
                string filePath = @"UI\Excel\Query\";
                string sd       = basepath + filePath;
                npoiHelper.saveExcel(sd);

                Result = new ResponseResult(ResState.Success, "", filePath + npoiHelper.WorkbookName);
                return(Result);
            }
            catch (Exception ex)
            {
                Result = new ResponseResult(ResState.OtherError, "", ex.Message + ex.StackTrace);
                return(Result);
            }
        }