| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- 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<StatData1> list1 = new ArrayList<StatData1>();
- 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<list1.size();i++){
- StatData1 st = list1.get(i);
- sum+=list1.get(i).getValue();
- if(st.getSeriesName()!=null&&st.getSeriesName().contains("四川省")){
- list1.get(i).setSeriesName(st.getSeriesName().substring(st.getSeriesName().indexOf("四川省")+3, st.getSeriesName().length()));
- }
- }
- //成都的数量
- sum+=0f;
- }
-
- String pName = (String)req.getParameter("cylinderpName")+".png";
- if(searchType==0){//按所选地区应用类型统计
- for ( int i = 0 ; i < list1.size(); i ++ ) {
- for ( int j = list1.size() - 1 ; j > 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<String> ls = new ArrayList<String>();
- List<String> ls1 = new ArrayList<String>();
- 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(f<ls.size()){
- // if(s.length()>8){
- // 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(ff<ls1.size())
- columnKeys[ff]=s;
- ff++;
- }
- for(int i=0;i<ls1.size();i++){//这是一列
- for(int j=0;j<ls.size();j++){//这是一行
- for(StatData1 sd:list1){
- if(sd.getCateName().equals(ls1.get(i))){
- // System.out.println("首先是:"+ls1.get(i));
- if(sd.getSeriesName().equals(ls.get(j))){
- data[i][j]+=Double.parseDouble(String.valueOf(sd.getValue()));
- }
- }
- }
-
-
-
- }
-
-
-
- }
-
- System.out.println(data);
- System.out.println(rowKeys);
- System.out.println(columnKeys);
- new CreateChartServiceImpl().makeBarGroupChart1(data, columnKeys, rowKeys, pName);
-
- }else if(searchType==2){
- if(list1.size()>0){
- for(int i =0;i<list1.size();i++){
- for(int j=list1.size()-1;j>i;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<String,Object> map=new HashMap<String, Object>();
- 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;i<list.size();i++){
- for(int j=list.size()-1;j>i;j++){
- if(list.get(i)==list.get(j)){
- list.remove(j);
- }
- }
- }
- }
- return list;
- }
- }
-
|