package com.runzhixing.action; import java.io.PrintWriter; import java.sql.Date; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.runzhixing.bean.AuthorityRegionPlace; import com.runzhixing.bean.StatData1; import com.runzhixing.bean.User; import com.runzhixing.constant.Constant; import com.runzhixing.packageProcedure.CarsDataStatisticsProcedure; import com.runzhixing.tool.JsonUtil; import com.runzhixing.tool.Util; /** * 告警参数设置 * @author 小黄 * */ @SuppressWarnings("serial") public class CarDataStatisticsAction extends ActionSupport { //设置新的告警参数 @SuppressWarnings({ "unchecked" }) public void CarDataStatistics() throws Exception{ HttpServletResponse response = ServletActionContext.getResponse(); HttpServletRequest req = ServletActionContext.getRequest(); User user = (User)req.getSession().getAttribute(Constant.userMark); String privilegeCode =user.getPrivilegeCode(); if(privilegeCode.length()>6) { privilegeCode = privilegeCode.substring(0, 6); privilegeCode = privilegeCode.replaceAll("(00)*$", "");// 一直过滤到最高行政地域(删去尾部的 00 ) } //获取地址,默认全部 String province = req.getParameter("province"); String city = req.getParameter("city"); String country = req.getParameter("country"); String checkText = req.getParameter("checkText").replace(" ", ""); if(province==null){ province = ""; } if(city==null){ city = ""; } if(country==null){ country = ""; } String regionNo = province+city+country;//地区编号 regionNo = regionNo.replaceAll("(00)*$", ""); //根据地址获取地址编号 int searchType = Integer.parseInt(req.getParameter("searchType")); String est = req.getParameter("startTime"); String eet = req.getParameter("endTime"); //开始日期 Date startTime = null; //结束日期 Date endTime =null; if(est!=null&&!est.equals("")){ startTime = Util.dateChange(est); } if(eet!=null&&!eet.equals("")){ endTime = Util.dateChange(eet); } int isEffi = Util.calculateFlag(startTime, endTime); List list1 = new ArrayList(); if(regionNo.equals("51")||regionNo.equals("5101")){ StatData1 st = new StatData1(); st.setCateName("出租"); st.setSeriesName("成都市"); st.setValue(8766.0f); list1.add(st); st = new StatData1(); st.setCateName("公交"); st.setSeriesName("成都市"); st.setValue(2980.0f); list1.add(st); st = new StatData1(); st.setCateName("私用"); st.setSeriesName("成都市"); st.setValue(72187.0f); list1.add(st); st = new StatData1(); st.setCateName("货运"); st.setSeriesName("成都市"); st.setValue(1378.0f); list1.add(st); st = new StatData1(); st.setCateName("客运"); st.setSeriesName("成都市"); st.setValue(3132.0f); list1.add(st); st = new StatData1(); st.setCateName("营转非"); st.setSeriesName("成都市"); st.setValue(2317.0f); list1.add(st); st = new StatData1(); st.setCateName("其他"); st.setSeriesName("成都市"); st.setValue(7981.0f); list1.add(st); } int CancelFlag=0; CancelFlag = Integer.parseInt(req.getParameter("CancelFlag")); // list1.addAll( new CarsDataStatisticsProcedure().queryCarStatList(privilegeCode, regionNo, searchType, startTime, endTime,isEffi)); list1.addAll( new CarsDataStatisticsProcedure().queryCarStatList0111(privilegeCode, regionNo, searchType, startTime, endTime,isEffi,CancelFlag)); float sum=0.0f; if(list1!=null&&list1.size()>0){ for(int i=0;i i; j -- ) { if(list1.get(i).getCateName().equals(list1.get(j).getCateName())){ list1.get(i).setValue(list1.get(i).getValue()+list1.get(j).getValue()); list1.remove(j); } } } int lsize = list1.size(); double[][] data = new double[1][lsize]; String[] rowKeys = new String[1]; String[] columnKeys = new String[lsize]; if(list1.size()>0){ int i =0; for(StatData1 sd:list1){ data[0][i]=Double.parseDouble(String.valueOf(sd.getValue())); rowKeys[0]="车辆"; columnKeys[i]=sd.getCateName(); i++; } } new CreateChartServiceImpl().makeBarGroupChart1(data, rowKeys, columnKeys, pName); }else if(searchType==1){ List ls = new ArrayList(); List ls1 = new ArrayList(); for(StatData1 sd:list1){ ls.add(sd.getSeriesName()); ls1.add(sd.getCateName()); } ls = quchong(ls);//列数 ls1 = quchong(ls1);//行数 double[][] data = new double[ls1.size()][ls.size()]; String[] rowKeys = new String[ls.size()]; String[] columnKeys = new String[ls1.size()]; int f=0; for(String s:ls){ if(f8){ // s=s.substring(s.length()-8, s.length()); // } rowKeys[f] = s; if(s.contains(checkText)){ rowKeys[f] = s.substring(s.indexOf(checkText)+checkText.length(), s.length()); if(rowKeys[f]==null||rowKeys[f].equals("")||rowKeys[f].trim().length()==0){ rowKeys[f] = checkText; } } } f++; } int ff=0; for(String s:ls1){ if(ff0){ for(int i =0;ii;j--){ if(list1.get(i).getSeriesName().equals(list1.get(j).getSeriesName())){ list1.get(i).setValue(list1.get(i).getValue()+list1.get(j).getValue()); list1.remove(j); } } } } checkText = checkText.replace(" ", ""); checkText = checkText.replace("无", ""); checkText = checkText.replace("全部", ""); System.out.println(checkText); int le = list1.size(); double[][] data = new double[1][le]; String[] rowKeys = new String[le]; String[] columnKeys = {"车辆"}; int k=0; for(StatData1 sd:list1){ data[0][k] = Double.parseDouble(String.valueOf(sd.getValue())); rowKeys[k] = sd.getSeriesName(); String s=sd.getSeriesName(); if(s.contains(checkText)){ rowKeys[k] = s.substring(s.indexOf(checkText)+checkText.length(), s.length()); if(rowKeys[k]==null||rowKeys[k].equals("")||rowKeys[k].trim().length()==0){ rowKeys[k] = checkText; } } k++; } new CreateChartServiceImpl().makeBarGroupChart1(data, columnKeys, rowKeys, pName); } // response.setContentType("text/html;charset=utf-8"); // PrintWriter out = response.getWriter(); // out.write(""); Map map=new HashMap(); map.put("status",sum); JsonUtil.outjson(map, response, null, JsonUtil.df, ""); } @SuppressWarnings("unchecked") public static List quchong(List list){ HashSet h = new HashSet(list); list.clear(); list.addAll(h); return list; } public static List quchong1(List list){ if(list.size()>0){ for(int i=0;ii;j++){ if(list.get(i)==list.get(j)){ list.remove(j); } } } } return list; } }