Exemplo n.º 1
0
        public ActionResult UpdateReport(DefineReport report, ReportConfig rc)
        {
            if (report.PlantId == 0)
            {
                report.UserId = (UserUtil.getCurUser()).id;
            }
            rc.reportId = report.Id;

            if (string.IsNullOrEmpty(rc.email) == false)
            {
                rc.email = rc.email.Replace(";", ",");
            }


            reportConfigService.UpdateReportConfig(rc);
            reportService.EditReportById(report);

            if (report.PlantId == 0)
            {
                return(Redirect("/user/AllPlantsReport"));
            }
            else
            {
                return(RedirectToAction("PlantReport", "plant", new { @id = report.PlantId }));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 显示编辑页面
        /// </summary>
        /// <param name="id">报表Id</param>
        /// <param name="plantId">电站Id</param>
        /// <returns></returns>
        public ActionResult EditReport(string id, string plantId)
        {
            ViewData["id"] = id;
            DefineReport report = reportService.GetRunReportById(id);

            ViewData["pId"]          = plantId;
            ViewData["userId"]       = report.UserId;
            ViewData["dataItems"]    = report.dataitem;
            ViewData["reportTypeId"] = report.ReportType;
            //IList<DataItem> list=
            ReportConfig config = reportConfigService.GetReportConfigByReportId(int.Parse(id));

            if (string.IsNullOrEmpty(config.email) == false)
            {
                config.email = config.email.Replace(",", ";");
            }
            config.defineReport = report;
            if (string.IsNullOrEmpty(plantId) || "null".Equals(plantId))
            {
                base.FillAllPlantYears(report.user);
                ViewData["userId"] = report.user.id;
            }
            else
            {
                FillPlantYears(int.Parse(plantId));
            }
            return(View(config));
        }
Exemplo n.º 3
0
        private Hashtable construtPlantReportObj(int plantid, int type, string dataitem)
        {
            Hashtable    table     = new Hashtable();
            string       plantName = PlantService.GetInstance().GetPlantInfoById(plantid).name + " ";
            DefineReport report1   = new DefineReport()
            {
                ReportType = type,
                ReportName = plantName + "-" + DataReportType.getNameByCode(type),
                SaveTime   = DateTime.Now,
                dataitem   = dataitem,
                PlantId    = plantid
            };
            ReportConfig config1 = new ReportConfig()
            {
                sendFormat = "html",
                email      = "",
                sendMode   = "2",
                reportId   = 0,
                plantId    = plantid
            };

            table.Add(0, report1);
            table.Add(1, config1);
            return(table);
        }
Exemplo n.º 4
0
        private Hashtable construtAllPlantsReportObj(int userid, int type, string dataitem)
        {
            Hashtable    table   = new Hashtable();
            DefineReport report1 = new DefineReport()
            {
                ReportType = type,
                ReportName = "All plants-" + DataReportType.getNameByCode(type),
                SaveTime   = DateTime.Now,
                dataitem   = dataitem,
                UserId     = userid
            };
            ReportConfig config1 = new ReportConfig()
            {
                tinterval  = "4",
                sendFormat = "html",
                sendMode   = "2",
                email      = "",
                reportId   = 0,
                plantId    = 0
            };

            table.Add(0, report1);
            table.Add(1, config1);
            return(table);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 查看报表
        /// </summary>
        /// <param name="id"></param>
        /// <param name="cTime"></param>
        /// <param name="tId"></param>
        /// <returns></returns>

        public ActionResult ViewReport(string rId, string cTime, string tId, string pId, string type)
        {
            string lang = Request.QueryString["lang"];

            if (string.IsNullOrEmpty(lang) == false)
            {
                Session["Culture"] = new CultureInfo(lang);
            }
            ViewData["preview"] = "";
            ViewData["rId"]     = rId;
            DefineReport report = ReportService.GetInstance().GetRunReportById(rId);

            return(HandleViewReport(report, int.Parse(tId), cTime, pId, type));
        }
Exemplo n.º 6
0
        /// <summary>
        /// 根据具体代码取得对应数据
        /// </summary>
        /// <param name="dataItemCode">数据项代码</param>
        /// <param name="datetime">数据时间,格式:yyyyMMdd</param>
        /// <returns></returns>
        private Hashtable getPlantDatabyReportType(DefineReport defineReport, string startTime, string endTime)
        {
            Plant plant         = defineReport.plant; //所在电站
            User  user          = defineReport.user;  //所属用户
            bool  isPlantReport = plant == null?false:true;

            if (isPlantReport)
            {
                User plantUser = UserService.GetInstance().Get(int.Parse(plant.userID.ToString()));
                plant.currencies = plantUser.currencies;
                return(getPlantItemData(plant, defineReport.ReportType, startTime, endTime));
            }
            else
            {
                return(getUserItemData(user, defineReport.ReportType, startTime, endTime));
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 根据数据项代码数组取得对应数据项的数据
        /// </summary>
        /// <param name="itemCodes">数据项代码</param>
        /// <param name="datetime">报表数据的时间,格式yyyyMMdd</param>
        /// <returns>返回map结构,key为数据项名称,value为值</returns>
        public IList <Object> getDatabyItemCodes(DefineReport defineReport, string datetime)
        {
            string[]       datearr           = convertToDateArr(defineReport.ReportType, datetime);
            IList <Object> resList           = new List <Object>();
            Hashtable      deviceDataHash    = new Hashtable();
            IList <int>    plantDatacodeList = new List <int>();
            Hashtable      plantDataHash     = getPlantDatabyReportType(defineReport, datearr[0], datearr[1]);
            //取得设备数据项数组
            IList <int> deviceItemCodes = new List <int>();

            foreach (int itemcode in DataItem.deviceDataItemMap)
            {
                if (defineReport.dataItems.Contains(itemcode.ToString()))
                {
                    deviceItemCodes.Add(itemcode);
                }
            }

            foreach (string itemcode in defineReport.dataItems)
            {
                if (string.IsNullOrEmpty(itemcode))
                {
                    continue;
                }
                if (!DataItem.deviceDataItemMap.Contains(int.Parse(itemcode)))
                {
                    plantDatacodeList.Add(int.Parse(itemcode));
                }
            }

            //取得设备数据
            if (deviceItemCodes.Count > 0 && defineReport.plant != null)
            {
                deviceDataHash = this.getPlantDeviceData(defineReport.plant, defineReport.ReportType, deviceItemCodes, datearr[0], datearr[1]);
            }
            resList.Add(plantDatacodeList);
            resList.Add(plantDataHash);
            resList.Add(deviceDataHash);
            resList.Add(deviceItemCodes);

            return(resList);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 报表预览 包括所有电站和单个电站
        /// 其实报表预览就是查看唯一区别是要重新组织成一个报表对象作为输入而已
        /// </summary>
        /// <param name="id">数据项名称</param>
        /// <param name="tId">报表类型</param>
        /// <param name="rName">报表名称</param>
        /// <returns></returns>
        public ActionResult PreviewReport(string userId, string dataItem, int tId, string rName, string cTime, string plantId, string type)
        {
            ViewData["preview"] = "preview";
            DefineReport report = new DefineReport();

            if (string.IsNullOrEmpty(plantId) || plantId.Equals("null"))
            {
                plantId       = null;
                report.user   = UserService.GetInstance().Get(int.Parse(userId));
                report.UserId = report.user.id;
            }
            else
            {
                report.PlantId = int.Parse(plantId);
                report.plant   = PlantService.GetInstance().GetPlantInfoById(report.PlantId);
            }
            report.ReportName = rName;
            report.ReportType = tId;
            report.dataitem   = dataItem;
            return(HandleViewReport(report, tId, cTime, plantId, type));
        }
Exemplo n.º 9
0
        public ActionResult DownLoadReport(string id, string reportId, string cTime)
        {
            DefineReport report = reportService.GetRunReportById(reportId);
            int          tId    = report.ReportType;

            if (tId == DataReportType.TODAY_REPORT_CODE || tId == DataReportType.WEEK_REPORT_CODE)
            {
                if ((string.IsNullOrEmpty(cTime) || cTime == "undefined"))
                {
                    cTime = DateTime.Now.ToString("yyyy-MM-dd");
                }
            }
            if (tId == DataReportType.MONTH_REPORT_CODE && (string.IsNullOrEmpty(cTime) || cTime == "undefined"))
            {
                cTime = DateTime.Now.ToString("yyyy-MM");
            }
            if (tId == DataReportType.YEAR_REPORT_CODE && (string.IsNullOrEmpty(cTime) || cTime == "undefined"))
            {
                cTime = DateTime.Now.ToString("yyyy");
            }
            ViewData["time"] = cTime;
            if (!(string.IsNullOrEmpty(id)))
            {
                if (tId == DataReportType.TODAY_REPORT_CODE)
                {
                    return(DownLoadDayReport(id, reportId, cTime));
                }
                else
                {
                    return(DownLoadNotDayReport(id, reportId, cTime));
                }
            }
            else
            {
                return(DownLoadAllPlantsReport(id, reportId, cTime));
            }
        }
Exemplo n.º 10
0
        public ActionResult SaveReport(DefineReport report, ReportConfig rc)
        {
            int lastId = 0;

            if (report.PlantId == 0)
            {
                report.UserId = (UserUtil.getCurUser()).id;//如果是所有电站就取当前用户ID
            }
            lastId      = reportService.AddRunReport(report);
            rc.reportId = lastId;
            if (string.IsNullOrEmpty(rc.email) == false)
            {
                rc.email = rc.email.Replace(";", ",");
            }
            reportConfigService.SendEventReport(rc);
            if (report.PlantId == 0)
            {
                return(Redirect("/user/AllPlantsReport"));
            }
            else
            {
                return(RedirectToAction("PlantReport", "plant", new { @id = report.PlantId }));
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// 真正处理报表数据和返回视图的地方,预览和查看公用
        /// </summary>
        /// <param name="report"></param>
        /// <param name="cTime"></param>
        /// <param name="pId"></param>
        /// <returns></returns>
        private ActionResult HandleViewReport(DefineReport report, int tId, string cTime, string pId, string type)
        {
            ViewData["Culture"] = Session["Culture"];
            ViewData["rId"]     = report.Id;
            ViewData["tId"]     = tId.ToString();
            ViewData["cTime"]   = cTime;
            ViewData["pId"]     = pId;
            if (!(string.IsNullOrEmpty(pId)))
            {
                if (string.IsNullOrEmpty(cTime))
                {
                    cTime = CalenderUtil.curDateWithTimeZone(report.plant.timezone, "yyyyMMdd");
                }
            }
            else
            {
                if (string.IsNullOrEmpty(cTime))
                {
                    cTime = CalenderUtil.curDateWithTimeZone(report.user.timezone, "yyyyMMdd");
                }
            }

            ViewData["time"] = cTime;
            if (tId == DataReportType.TOTAL_REPORT_CODE)
            {
                IList <int> workYears = null;
                if (!(string.IsNullOrEmpty(pId)))
                {
                    workYears = collectorYearDataService.GetWorkYears(report.plant);
                    cTime     = CalenderUtil.curDateWithTimeZone(report.plant.timezone, "yyyy");
                }
                else
                {
                    workYears = collectorYearDataService.GetWorkYears(report.user.displayPlants);
                    cTime     = CalenderUtil.curDateWithTimeZone(report.user.timezone, "yyyy");
                }
                if (workYears.Count > 0)
                {
                    cTime            = workYears[0] + "-" + workYears[workYears.Count - 1];
                    ViewData["time"] = cTime;
                }
                else
                {
                    cTime           += "-" + cTime;
                    ViewData["time"] = Resources.SunResource.NO_WORK_YEARS;
                }
            }
            else if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                string[] wTime    = reportService.convertToDateArr(tId, cTime);
                int      year1    = int.Parse(wTime[0].Substring(0, 4));
                int      mm1      = int.Parse(wTime[0].Substring(4, 2));
                int      dd1      = int.Parse(wTime[0].Substring(6, 2));
                int      year2    = int.Parse(wTime[1].Substring(0, 4));
                int      mm2      = int.Parse(wTime[1].Substring(4, 2));
                int      dd2      = int.Parse(wTime[1].Substring(6, 2));
                string   weekTime = year1 + "/" + mm1 + "/" + dd1 + "-" + year2 + "/" + mm2 + "/" + dd2;
                ViewData["time"] = weekTime;
            }
            else if (tId == DataReportType.MONTH_REPORT_CODE)
            {
                cTime            = cTime.Split('-').Length > 2 ? cTime.Substring(0, cTime.LastIndexOf("-")) : cTime;
                ViewData["time"] = cTime;
            }
            else if (tId == DataReportType.YEAR_REPORT_CODE)
            {
                cTime            = cTime.Split('-').Length > 2 ? cTime.Substring(0, cTime.IndexOf("-")) : cTime;
                ViewData["time"] = cTime;
            }

            if (report != null)
            {
                IList <Object> datalist = reportService.getDatabyItemCodes(report, cTime);
                if (datalist.Count != 0)
                {
                    ViewData["deviceHash"]      = (Hashtable)datalist[2];
                    ViewData["plantItemCodes"]  = addIntNumtoList((IList <int>)datalist[0]);
                    ViewData["plantHash"]       = (Hashtable)datalist[1];
                    ViewData["deviceItemCodes"] = (IList <int>)datalist[3];
                }
                else
                {
                    ViewData["NoData"] = LanguageUtil.getDesc("NODATA");
                }
            }
            else
            {
                ViewData["NoData"] = LanguageUtil.getDesc("NODATA");
            }

            if (!(string.IsNullOrEmpty(pId)))
            {
                base.FillPlantYears(int.Parse(pId));

                string yyyy = ViewData["cTime"] != null ? ViewData["cTime"] as string : DateTime.Now.Year.ToString();

                yyyy = yyyy.Length >= 4 ? yyyy.Substring(0, 4) : yyyy;


                if (ViewData[ComConst.WorkYears] != null && (ViewData[ComConst.WorkYears] as IList <SelectListItem>).Count > 0)
                {
                    foreach (SelectListItem item in ViewData[ComConst.WorkYears] as IList <SelectListItem> )
                    {
                        item.Selected = false;
                        item.Selected = item.Text.Equals(yyyy);
                    }
                }



                if (tId == DataReportType.TODAY_REPORT_CODE)
                {
                    if (string.IsNullOrEmpty(type))
                    {
                        return(View("ViewDayReport", report));
                    }
                    else
                    {
                        return(View("EmailViewDayReport", report));
                    }
                }
                else
                {
                    if (string.IsNullOrEmpty(type))
                    {
                        return(View("ViewNotDayReport", report));
                    }
                    else
                    {
                        return(View("EmailViewNotDayReport", report));
                    }
                }
            }
            else
            {
                base.FillAllPlantYears(report.user);


                string yyyy = ViewData["cTime"] != null ? ViewData["cTime"] as string : DateTime.Now.Year.ToString();

                yyyy = yyyy.Length >= 4 ? yyyy.Substring(0, 4) : yyyy;


                if (ViewData[ComConst.WorkYears] != null && (ViewData[ComConst.WorkYears] as IList <SelectListItem>).Count > 0)
                {
                    foreach (SelectListItem item in ViewData[ComConst.WorkYears] as IList <SelectListItem> )
                    {
                        item.Selected = false;
                        item.Selected = item.Text.Equals(yyyy);
                    }
                }
                if (string.IsNullOrEmpty(type))
                {
                    return(View("ViewUserReport", report));
                }
                else
                {
                    return(View("EmailViewUserReport", report));
                }
            }
        }
Exemplo n.º 12
0
        public ActionResult DownLoadDayReport(string id, string reportId, string cTime)
        {
            DefineReport    report         = reportService.GetRunReportById(reportId);
            int             tId            = report.ReportType;
            IList <string>  dataList       = new List <string>();
            IList <object>  obj            = reportService.getDatabyItemCodes(report, cTime);
            IList <int>     itemCode       = addIntNumtoList(obj[0] as List <int>);
            Hashtable       plantDataHash  = obj[1] as Hashtable;
            Hashtable       deviceDataHash = obj[2] as Hashtable;
            CsvStreamWriter csv            = new CsvStreamWriter();

            dataList.Add("                        " + report.ReportName + "                       ");
            ArrayList list2 = new ArrayList();

            list2.Add("                                         " + Resources.SunResource.REPORT_VIEW_TIME);
            list2.Add(cTime);
            dataList.Add(csv.ConvertToSaveLine(list2));
            dataList.Add(Resources.SunResource.REPORT_PLANT_COUNT_DATA);
            ArrayList list3 = new ArrayList();
            ArrayList list4 = new ArrayList();
            int       i     = 1;

            foreach (int code in itemCode)
            {
                int    tmpcode = code;
                string keystr = " ", keyvalue = " ";

                if (i == 5)
                {
                    i = 1;
                }
                else
                {
                    i++;
                }
                if (tmpcode != 0)
                {
                    keystr   = DataItem.getNameByCode(tmpcode);
                    keyvalue = plantDataHash[tmpcode].ToString();
                    list3.Add(keystr);
                    list3.Add(keyvalue);
                }
            }
            dataList.Add(csv.ConvertToSaveLine(list3));
            dataList.Add(Resources.SunResource.REPORT_DEVICE_COUNT_DATA);


            list4.Add(Resources.SunResource.REPORT_COUNT_ITEM);
            list4.Add(Resources.SunResource.REPORT_COUNT_DEVICE);
            list4.Add("7:00");
            list4.Add("8:00");
            list4.Add("9:00");
            list4.Add("10:00");
            list4.Add("11:00");
            list4.Add("12:00");
            list4.Add("13:00");
            list4.Add("14:00");
            list4.Add("15:00");
            list4.Add("16:00");
            list4.Add("17:00");
            list4.Add("18:00");
            list4.Add("19:00");
            list4.Add(Resources.SunResource.REPORT_COUNT_TODAYSUN);
            dataList.Add(csv.ConvertToSaveLine(list4));

            foreach (DictionaryEntry de in deviceDataHash)
            {
                i = 1;
                string tmpcode = de.Key.ToString();
                string keystr = "", unit = "";
                if (!tmpcode.StartsWith(" "))
                {
                    keystr = DataItem.getNameByCode(int.Parse(tmpcode));
                    unit   = MonitorType.getMonitorTypeByCode(int.Parse(tmpcode)).unit;
                }
                IList <string[]> dataArrList = (IList <string[]>)de.Value;
                for (int k = 1; k < dataArrList.Count; k++)
                {
                    ArrayList list5   = new ArrayList();
                    string[]  dataArr = dataArrList[k];
                    if (i == 1)
                    {
                        i++;
                        list5.Add(keystr + " " + unit);

                        list5.Add(dataArr[1]);
                        list5.Add(dataArr[2]);
                        list5.Add(dataArr[3]);
                        list5.Add(dataArr[4]);
                        list5.Add(dataArr[5]);
                        list5.Add(dataArr[6]);
                        list5.Add(dataArr[7]);
                        list5.Add(dataArr[8]);
                        list5.Add(dataArr[9]);
                        list5.Add(dataArr[10]);
                        list5.Add(dataArr[11]);
                        list5.Add(dataArr[12]);
                        list5.Add(dataArr[13]);
                        list5.Add(dataArr[14]);
                        list5.Add(dataArr[15]);
                    }
                    else
                    {
                        list5.Add(" ");
                        list5.Add(dataArr[1]);
                        list5.Add(dataArr[2]);
                        list5.Add(dataArr[3]);
                        list5.Add(dataArr[4]);
                        list5.Add(dataArr[5]);
                        list5.Add(dataArr[6]);
                        list5.Add(dataArr[7]);
                        list5.Add(dataArr[8]);
                        list5.Add(dataArr[9]);
                        list5.Add(dataArr[10]);
                        list5.Add(dataArr[11]);
                        list5.Add(dataArr[12]);
                        list5.Add(dataArr[13]);
                        list5.Add(dataArr[14]);
                        list5.Add(dataArr[15]);
                    }
                    dataList.Add(csv.ConvertToSaveLine(list5));
                }
            }
            CsvStreamWriter scvWriter = new CsvStreamWriter();

            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv");
            //转化为csv格式的字符串
            //string res="dsfdsf";
            //byte[] bytes = Encoding.Default.GetBytes(res);
            return(File(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv", "text/csv; charset=UTF-8", urlcode(report.ReportName.Replace(" ", "") + "-" + cTime) + ".csv"));
        }
Exemplo n.º 13
0
        public ActionResult DownLoadNotDayReport(string id, string reportId, string cTime)
        {
            DefineReport report   = reportService.GetRunReportById(reportId);
            int          tId      = report.ReportType;
            string       weekTime = string.Empty;

            if (tId == DataReportType.TOTAL_REPORT_CODE)
            {
                IList <int> workYears = null;
                if (!(string.IsNullOrEmpty(id)))
                {
                    workYears = collectorYearDataService.GetWorkYears(report.plant);
                }
                else
                {
                    workYears = collectorYearDataService.GetWorkYears(report.user.plants);
                }
                if (workYears.Count > 0)
                {
                    cTime = workYears[0] + "-" + workYears[workYears.Count - 1];
                }
            }
            else if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                string[] wTime = reportService.convertToDateArr(tId, cTime);
                int      year1 = int.Parse(wTime[0].Substring(0, 4));
                int      mm1   = int.Parse(wTime[0].Substring(4, 2));
                int      dd1   = int.Parse(wTime[0].Substring(6, 2));
                int      year2 = int.Parse(wTime[1].Substring(0, 4));
                int      mm2   = int.Parse(wTime[1].Substring(4, 2));
                int      dd2   = int.Parse(wTime[1].Substring(6, 2));
                weekTime = year1 + "/" + mm1 + "/" + dd1 + "-" + year2 + "/" + mm2 + "/" + dd2;
            }
            IList <string>  dataList       = new List <string>();
            IList <object>  obj            = reportService.getDatabyItemCodes(report, cTime);
            IList <int>     itemCode       = addIntNumtoList(obj[0] as List <int>);
            Hashtable       plantDataHash  = obj[1] as Hashtable;
            Hashtable       deviceDataHash = obj[2] as Hashtable;
            CsvStreamWriter csv            = new CsvStreamWriter();

            dataList.Add("                        " + report.ReportName + "                       ");
            ArrayList list2 = new ArrayList();

            list2.Add("                                         " + Resources.SunResource.REPORT_VIEW_TIME);
            if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                list2.Add(weekTime);
            }
            else
            {
                list2.Add(cTime);
            }
            dataList.Add(csv.ConvertToSaveLine(list2));
            dataList.Add(Resources.SunResource.REPORT_PLANT_COUNT_DATA);
            ArrayList list3 = new ArrayList();
            ArrayList list4 = new ArrayList();
            int       i     = 1;

            foreach (int code in itemCode)
            {
                int    tmpcode = code;
                string keystr = " ", keyvalue = " ";

                if (i == 5)
                {
                    i = 1;
                }
                else
                {
                    i++;
                }
                if (tmpcode != 0)
                {
                    keystr   = DataItem.getNameByCode(tmpcode);
                    keyvalue = plantDataHash[tmpcode].ToString();
                    list3.Add(keystr);
                    list3.Add(keyvalue);
                }
            }
            dataList.Add(csv.ConvertToSaveLine(list3));
            dataList.Add(Resources.SunResource.REPORT_DEVICE_COUNT_DATA);

            foreach (DictionaryEntry de in  deviceDataHash)
            {
                i = 1;
                string tmpcode = de.Key.ToString();
                string keystr = "", unit = "";
                if (!tmpcode.StartsWith(" "))
                {
                    keystr = MonitorType.getMonitorTypeByCode(MonitorType.PLANT_MONITORITEM_ENERGY_CODE).name;
                    unit   = MonitorType.getMonitorTypeByCode(MonitorType.PLANT_MONITORITEM_ENERGY_CODE).unit;
                }
                IList <string[]> dataArrList = (IList <string[]>)de.Value;
                for (int k = 0; k < dataArrList.Count; k++)
                {
                    ArrayList list5   = new ArrayList();
                    string[]  dataArr = dataArrList[k];
                    if (i == 1)
                    {
                        i++;
                        foreach (string v in dataArr)
                        {
                            list5.Add(v);
                        }
                    }
                    else if (i == 2)
                    {
                        i++;
                        list5.Add(keystr + " " + unit);
                        for (int n = 1; n < dataArr.Length; n++)
                        {
                            list5.Add(dataArr[n]);
                        }
                    }
                    else
                    {
                        for (int m = 0; m < dataArr.Length; m++)
                        {
                            list5.Add(dataArr[m] == null?" ":dataArr[m]);
                        }
                    }
                    dataList.Add(csv.ConvertToSaveLine(list5));
                }
            }
            CsvStreamWriter scvWriter = new CsvStreamWriter();

            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv");
            //转化为csv格式的字符串
            //string res="dsfdsf";
            //byte[] bytes = Encoding.Default.GetBytes(res);
            return(File(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv", "text/csv; charset=UTF-8", urlcode(report.ReportName.Replace(" ", "") + "-" + cTime) + ".csv"));
        }
Exemplo n.º 14
0
        public ActionResult DownLoadAllPlantsReport(string id, string reportId, string cTime)
        {
            DefineReport report   = reportService.GetRunReportById(reportId);
            int          tId      = report.ReportType;
            string       weekTime = string.Empty;

            if (tId == DataReportType.TOTAL_REPORT_CODE)
            {
                IList <int> workYears = null;
                if (!(string.IsNullOrEmpty(id)))
                {
                    workYears = collectorYearDataService.GetWorkYears(report.plant);
                }
                else
                {
                    workYears = collectorYearDataService.GetWorkYears(report.user.plants);
                }
                if (workYears.Count > 0)
                {
                    cTime = workYears[0] + "-" + workYears[workYears.Count - 1];
                }
            }
            else if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                string[] wTime = reportService.convertToDateArr(tId, cTime);
                int      year1 = int.Parse(wTime[0].Substring(0, 4));
                int      mm1   = int.Parse(wTime[0].Substring(4, 2));
                int      dd1   = int.Parse(wTime[0].Substring(6, 2));
                int      year2 = int.Parse(wTime[1].Substring(0, 4));
                int      mm2   = int.Parse(wTime[1].Substring(4, 2));
                int      dd2   = int.Parse(wTime[1].Substring(6, 2));
                weekTime = year1 + "/" + mm1 + "/" + dd1 + "-" + year2 + "/" + mm2 + "/" + dd2;
            }
            IList <string>  dataList       = new List <string>();
            IList <object>  obj            = reportService.getDatabyItemCodes(report, cTime);
            IList <int>     itemCode       = addIntNumtoList(obj[0] as List <int>);
            Hashtable       plantDataHash  = obj[1] as Hashtable;
            Hashtable       deviceDataHash = obj[2] as Hashtable;
            CsvStreamWriter csv            = new CsvStreamWriter();

            dataList.Add("                        " + report.ReportName + "                       ");

            ArrayList list2 = new ArrayList();

            list2.Add("                                         " + Resources.SunResource.REPORT_VIEW_TIME);
            if (tId == 2)
            {
                list2.Add(weekTime);
            }
            else
            {
                list2.Add(cTime);
            }
            dataList.Add(csv.ConvertToSaveLine(list2));
            dataList.Add(Resources.SunResource.REPORT_PLANT_COUNT_DATA);
            ArrayList list3 = new ArrayList();

            int i = 1;

            foreach (int code in itemCode)
            {
                int    tmpcode = code;
                string keystr = " ", keyvalue = " ";

                if (i == 5)
                {
                    i = 1;
                }
                else
                {
                    i++;
                }

                if (tmpcode != 0)
                {
                    keystr   = DataItem.getNameByCode(tmpcode);
                    keyvalue = plantDataHash[tmpcode].ToString();
                    list3.Add(keystr);
                    list3.Add(keyvalue);
                }
            }
            dataList.Add(csv.ConvertToSaveLine(list3));
            CsvStreamWriter scvWriter = new CsvStreamWriter();

            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv");
            //转化为csv格式的字符串
            //string res="dsfdsf";
            //byte[] bytes = Encoding.Default.GetBytes(res);

            return(File(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv", "text/csv; charset=UTF-8", urlcode(report.ReportName.Replace(" ", "") + "-" + cTime) + ".csv"));
        }
Exemplo n.º 15
0
 public int AddRunReport(DefineReport report)
 {
     return(_runReportDao.AddRunReport(report));
 }
Exemplo n.º 16
0
 public int EditReportById(DefineReport report)
 {
     return(_runReportDao.EditReportById(report));
 }