Commit 9c2e8731274071f70d8f8b2e9a6f537199107830

Authored by 廖磊
1 parent c33e25aa

统计日报合并统计好的数据与实时数据

src/main/java/com/bsth/controller/calc/CalcWaybillController.java
... ... @@ -151,6 +151,39 @@ public class CalcWaybillController extends BaseController<CalcWaybill, Integer>
151 151 return calcWaybillService.calcStatisticsDaily(gsdm,fgsdm,line,date,date2,xlName,type);
152 152 }
153 153  
  154 + @RequestMapping(value="/calcStatisticsDaily2")
  155 + public List<Map<String, Object>> calcStatisticsDaily2(@RequestParam Map<String, Object> map){
  156 + String gsdm="";
  157 + if(map.get("gsdm")!=null){
  158 + gsdm=map.get("gsdm").toString().trim();
  159 + }
  160 + String fgsdm="";
  161 + if(map.get("fgsdm")!=null){
  162 + fgsdm=map.get("fgsdm").toString().trim();
  163 + }
  164 + String line="";
  165 + if(map.get("line")!=null){
  166 + line=map.get("line").toString().trim();
  167 + }
  168 + String date="";
  169 + if(map.get("date")!=null){
  170 + date=map.get("date").toString().trim();
  171 + }
  172 + String date2="";
  173 + if(map.get("date2")!=null){
  174 + date2=map.get("date2").toString().trim();
  175 + }
  176 + String xlName="";
  177 + if(map.get("xlName")!=null){
  178 + xlName=map.get("xlName").toString().trim();
  179 + }
  180 + String type="";
  181 + if(map.get("type")!=null){
  182 + type=map.get("type").toString().trim();
  183 + }
  184 + return calcWaybillService.calcStatisticsDaily2(gsdm,fgsdm,line,date,date2,xlName,type);
  185 + }
  186 +
154 187 @RequestMapping(value="/generateLineMileage")
155 188 public Map<String, Object> generateLineMileage(@RequestParam Map<String, Object> map) throws Exception{
156 189 Map<String, Object> m = new HashMap<String, Object>();
... ...
src/main/java/com/bsth/service/calc/CalcWaybillService.java
... ... @@ -32,6 +32,8 @@ public interface CalcWaybillService extends BaseService&lt;CalcWaybill, Integer&gt; {
32 32  
33 33 List<CalcStatistics> calcStatisticsDaily(String gsdm,String fgsdm, String line, String date, String date2, String xlName, String type);
34 34  
  35 + List<Map<String, Object>> calcStatisticsDaily2(String gsdm,String fgsdm, String line, String date, String date2, String xlName, String type);
  36 +
35 37 Map<String, Object> calcLineMileage(String date, String line);
36 38  
37 39 Map<String, Object> calcBusMileage(String date, String line);
... ...
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
... ... @@ -2,6 +2,7 @@ package com.bsth.service.calc.impl;
2 2  
3 3 import java.sql.ResultSet;
4 4 import java.sql.SQLException;
  5 +import java.text.ParseException;
5 6 import java.text.SimpleDateFormat;
6 7 import java.util.ArrayList;
7 8 import java.util.Calendar;
... ... @@ -37,6 +38,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
37 38 import com.bsth.service.calc.CalcToolService;
38 39 import com.bsth.service.calc.CalcWaybillService;
39 40 import com.bsth.service.impl.BaseServiceImpl;
  41 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
40 42 import com.bsth.service.report.CulateMileageService;
41 43 import com.bsth.service.report.ReportService;
42 44 import com.bsth.util.Arith;
... ... @@ -81,6 +83,9 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
81 83 private CulateMileageService culateService;
82 84  
83 85 @Autowired
  86 + private ScheduleRealInfoService scheduleRealInfoService;
  87 +
  88 + @Autowired
84 89 private ScheduleRealInfoRepository scheduleRealInfoRepository;
85 90  
86 91 @Autowired
... ... @@ -850,6 +855,332 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
850 855  
851 856 return resList;
852 857 }
  858 +
  859 + @Override
  860 + public List<Map<String, Object>> calcStatisticsDaily2(String gsdm, String fgsdm,
  861 + String line, String date, String date2, String xlName, String type) {
  862 + // TODO Auto-generated method stub
  863 + SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
  864 + Date beginDate = new Date();
  865 + Calendar calendar = Calendar.getInstance();
  866 + calendar.setTime(beginDate);
  867 + calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 4);
  868 + String d2 = dft.format(calendar.getTime()); //当前日期前4天
  869 + calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) +1);
  870 + String d3= dft.format(calendar.getTime()); //当前日期前3天
  871 +
  872 + String d1="";
  873 + String d4="";
  874 + try {
  875 + long t3 = dft.parse(d2).getTime();
  876 + long t1=dft.parse(date).getTime();
  877 + long t2=dft.parse(date2).getTime();
  878 +
  879 + if(t1<=t3 && t2>t3){
  880 + //所选日期区间区间既有实时数据也有历史数据
  881 + d1=date;
  882 + d4=date2;
  883 + } else if (t1>t3&&t2>t3){
  884 + d1=date;
  885 + d2=date2;
  886 + d3=date;
  887 + d4=date2;
  888 + }else{
  889 + d1=date;
  890 + d2=date2;
  891 + //实时数据无需
  892 + d3="";
  893 + d4="";
  894 + }
  895 + } catch (ParseException e1) {
  896 + // TODO Auto-generated catch block
  897 + e1.printStackTrace();
  898 + }
  899 +
  900 +
  901 + List<CalcStatistics> list = new ArrayList<CalcStatistics>();
  902 + if(line.length() > 0){
  903 + list = calcStatisticsRepository.selectByDateAndLineTj2(line, d1, d2);
  904 + } else {
  905 + list = calcStatisticsRepository.selectByDateAndLineTj(line, d1, d2, gsdm, fgsdm);
  906 + }
  907 +
  908 + List<CalcStatistics> resList = new ArrayList<CalcStatistics>();
  909 + Map<String, List<CalcStatistics>> keyMap = new HashMap<String, List<CalcStatistics>>();
  910 + List<String> keyList = new ArrayList<String>();
  911 +
  912 + for(CalcStatistics s : list){
  913 + try {
  914 + String key = PinyinHelper.convertToPinyinString(s.getXlName(), "" , PinyinFormat.WITHOUT_TONE);
  915 + if(!keyMap.containsKey(key)){
  916 + keyMap.put(key, new ArrayList<CalcStatistics>());
  917 + keyList.add(key);
  918 + }
  919 + keyMap.get(key).add(s);
  920 + } catch (PinyinException e) {
  921 + // TODO Auto-generated catch block
  922 + e.printStackTrace();
  923 + }
  924 + }
  925 + Collections.sort(keyList, new AccountXlbmStr());
  926 +
  927 + for(String key : keyList){
  928 + if(keyMap.get(key).size() > 0){
  929 + CalcStatistics s = keyMap.get(key).get(0);
  930 + if(keyMap.get(key).size() > 1)
  931 + for(int i = 1; i < keyMap.get(key).size(); i++){
  932 + CalcStatistics s_ = keyMap.get(key).get(i);
  933 + s = addStatistics(s, s_);
  934 + }
  935 + resList.add(s);
  936 + }
  937 + }
  938 +
  939 + if(resList.size() > 0){
  940 + CalcStatistics temp = new CalcStatistics();
  941 + temp.setXlName("合计");
  942 + temp.setXl("hj");
  943 + for(CalcStatistics s : resList){
  944 + temp = addStatistics(temp, s);
  945 + }
  946 + resList.add(temp);
  947 + }
  948 + List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
  949 + for(CalcStatistics c : resList){
  950 + Map<String, Object> m = new HashMap<String, Object>();
  951 + m.put("xlBm", c.getXl());
  952 + m.put("xlName", c.getXlName());
  953 + m.put("jhzlc", c.getJhzlc());
  954 + m.put("jhlc", c.getJhyylc());
  955 + m.put("jcclc", c.getJhkslc());
  956 + m.put("sjzgl", c.getSjzlc());
  957 + m.put("sjgl", c.getSjyylc());
  958 + m.put("sjksgl", c.getSjkslc());
  959 + m.put("ssgl", c.getSslc());
  960 + m.put("ssbc", c.getSsbc());
  961 + m.put("ssgl_lz", c.getLzlc());
  962 + m.put("ssgl_dm", c.getDmlc());
  963 + m.put("ssgl_gz", c.getGzlc());
  964 + m.put("ssgl_jf", c.getJflc());
  965 + m.put("ssgl_zs", c.getZslc());
  966 + m.put("ssgl_qr", c.getQrlc());
  967 + m.put("ssgl_qc", c.getQclc());
  968 + m.put("ssgl_kx", c.getKxlc());
  969 + m.put("ssgl_qh", c.getQhlc());
  970 + m.put("ssgl_yw", c.getYwlc());
  971 + m.put("ssgl_other", c.getQtlc());
  972 + m.put("ljgl", c.getLjlc());
  973 + m.put("jhbc", c.getJhbcq());
  974 + m.put("jhbc_m", c.getJhbcz());
  975 + m.put("jhbc_a", c.getJhbcw());
  976 + m.put("sjbc", c.getSjbcq());
  977 + m.put("sjbc_m", c.getSjbcz());
  978 + m.put("sjbc_a", c.getSjbcw());
  979 + m.put("ljbc", c.getLjbcq());
  980 + m.put("ljbc_m", c.getLjbcz());
  981 + m.put("ljbc_a", c.getLjbcw());
  982 + m.put("fzbc", c.getFzbcq());
  983 + m.put("fzbc_m", c.getFzbcz());
  984 + m.put("fzbc_a", c.getFzbcw());
  985 + m.put("dtbc", c.getDtbcq());
  986 + m.put("dtbc_m", c.getDtbcz());
  987 + m.put("dtbc_a", c.getDtbcw());
  988 + m.put("djg", c.getDjgq());
  989 + m.put("djg_m", c.getDjgz());
  990 + m.put("djg_a", c.getDjgw());
  991 + m.put("djg_time", c.getDjgsj());
  992 + mapList.add(m);
  993 + }
  994 +
  995 + List<Map<String, Object>> tjlist=new ArrayList<Map<String, Object>>();
  996 + if(!d4.equals("")){
  997 + tjlist= scheduleRealInfoService.statisticsDailyTjHb(gsdm, fgsdm, line, d3, d4, xlName, type);
  998 + }
  999 + List<Map<String, Object>> mapListHj = new ArrayList<Map<String, Object>>();
  1000 +
  1001 + if(mapList.size()>0){
  1002 + for ( int i=0;i<tjlist.size();i++) {
  1003 + Map<String, Object> tjMap =tjlist.get(i);
  1004 + boolean fage=true;
  1005 + for(int j=0;j<mapList.size();j++){
  1006 + Map<String, Object> lsMap=mapList.get(j);
  1007 + if(lsMap.get("xlBm").toString().equals(tjMap.get("xlBm").toString())){
  1008 + Map<String, Object> hjMap=new HashMap<String,Object>();
  1009 + hjMap.put("xlBm", tjMap.get("xlBm"));
  1010 + hjMap.put("xlName", tjMap.get("xlName"));
  1011 + hjMap.put("jhzlc", Arith.add(lsMap.get("jhzlc"), tjMap.get("jhzlc")));
  1012 + hjMap.put("jhlc", Arith.add(lsMap.get("jhlc"), tjMap.get("jhlc")));
  1013 + hjMap.put("jcclc",Arith.add(lsMap.get("jcclc"), tjMap.get("jcclc")));
  1014 + hjMap.put("sjzgl",Arith.add(lsMap.get("sjzgl"), tjMap.get("sjzgl")));
  1015 + hjMap.put("sjgl", Arith.add(lsMap.get("sjgl"), tjMap.get("sjgl")));
  1016 + hjMap.put("sjksgl", Arith.add(lsMap.get("sjksgl"), tjMap.get("sjksgl")));
  1017 + hjMap.put("ssgl", Arith.add(lsMap.get("ssgl"), tjMap.get("ssgl")));
  1018 + hjMap.put("ssbc", Integer.parseInt(lsMap.get("ssbc").toString())+Integer.parseInt(tjMap.get("ssbc").toString()));
  1019 + hjMap.put("ssgl_lz", Arith.add(lsMap.get("ssgl_lz"), tjMap.get("ssgl_lz")));
  1020 + hjMap.put("ssgl_dm", Arith.add(lsMap.get("ssgl_dm"), tjMap.get("ssgl_dm")));
  1021 + hjMap.put("ssgl_gz", Arith.add(lsMap.get("ssgl_gz"), tjMap.get("ssgl_gz")));
  1022 + hjMap.put("ssgl_jf", Arith.add(lsMap.get("ssgl_jf"), tjMap.get("ssgl_jf")));
  1023 + hjMap.put("ssgl_zs", Arith.add(lsMap.get("ssgl_zs"), tjMap.get("ssgl_zs")));
  1024 + hjMap.put("ssgl_qr", Arith.add(lsMap.get("ssgl_qr"), tjMap.get("ssgl_qr")));
  1025 + hjMap.put("ssgl_qc", Arith.add(lsMap.get("ssgl_qc"), tjMap.get("ssgl_qc")));
  1026 + hjMap.put("ssgl_kx", Arith.add(lsMap.get("ssgl_kx"), tjMap.get("ssgl_kx")));
  1027 + hjMap.put("ssgl_qh", Arith.add(lsMap.get("ssgl_qh"), tjMap.get("ssgl_qh")));
  1028 + hjMap.put("ssgl_yw", Arith.add(lsMap.get("ssgl_yw"), tjMap.get("ssgl_yw")));
  1029 + hjMap.put("ssgl_other", Arith.add(lsMap.get("ssgl_other"), tjMap.get("ssgl_other")));
  1030 + hjMap.put("ljgl", Arith.add(lsMap.get("ljgl"), tjMap.get("ljgl")));
  1031 + hjMap.put("jhbc", Integer.parseInt(lsMap.get("jhbc").toString())+ Integer.parseInt(tjMap.get("jhbc").toString()));
  1032 + hjMap.put("jhbc_m", Integer.parseInt(lsMap.get("jhbc_m").toString())+Integer.parseInt(tjMap.get("jhbc_m").toString()));
  1033 + hjMap.put("jhbc_a", Integer.parseInt(lsMap.get("jhbc_a").toString())+ Integer.parseInt(tjMap.get("jhbc_a").toString()));
  1034 + hjMap.put("sjbc", Integer.parseInt(lsMap.get("sjbc").toString())+ Integer.parseInt(tjMap.get("sjbc").toString()));
  1035 + hjMap.put("sjbc_m",Integer.parseInt(lsMap.get("sjbc_m").toString())+ Integer.parseInt(tjMap.get("sjbc_m").toString()));
  1036 + hjMap.put("sjbc_a", Integer.parseInt(lsMap.get("sjbc_a").toString())+ Integer.parseInt(tjMap.get("sjbc_a").toString()));
  1037 + hjMap.put("ljbc", Integer.parseInt(lsMap.get("ljbc").toString())+ Integer.parseInt(tjMap.get("ljbc").toString()));
  1038 + hjMap.put("ljbc_m", Integer.parseInt(lsMap.get("ljbc_m").toString())+ Integer.parseInt(tjMap.get("ljbc_m").toString()));
  1039 + hjMap.put("ljbc_a", Integer.parseInt(lsMap.get("ljbc_a").toString())+Integer.parseInt( tjMap.get("ljbc_a").toString()));
  1040 + hjMap.put("fzbc", Integer.parseInt(lsMap.get("fzbc").toString())+ Integer.parseInt(tjMap.get("fzbc").toString()));
  1041 + hjMap.put("fzbc_m",Integer.parseInt(lsMap.get("fzbc_m").toString())+ Integer.parseInt(tjMap.get("fzbc_m").toString()));
  1042 + hjMap.put("fzbc_a",Integer.parseInt(lsMap.get("fzbc_a").toString())+ Integer.parseInt(tjMap.get("fzbc_a").toString()));
  1043 + hjMap.put("dtbc", Integer.parseInt(lsMap.get("dtbc").toString())+ Integer.parseInt(tjMap.get("dtbc").toString()));
  1044 + hjMap.put("dtbc_m", Integer.parseInt(lsMap.get("dtbc_m").toString())+ Integer.parseInt(tjMap.get("dtbc_m").toString()));
  1045 + hjMap.put("dtbc_a", Integer.parseInt(lsMap.get("dtbc_a").toString())+ Integer.parseInt(tjMap.get("dtbc_a").toString()));
  1046 + hjMap.put("djg", Integer.parseInt(lsMap.get("djg").toString())+ Integer.parseInt(tjMap.get("djg").toString()));
  1047 + hjMap.put("djg_m", Integer.parseInt(lsMap.get("djg_m").toString())+ Integer.parseInt(tjMap.get("djg_m").toString()));
  1048 + hjMap.put("djg_a", Integer.parseInt(lsMap.get("djg_a").toString())+ Integer.parseInt(tjMap.get("djg_a").toString()));
  1049 + if(Arith.add(lsMap.get("djg_time"),0)>Arith.add(tjMap.get("djg_time"), 0)){
  1050 + hjMap.put("djg_time", lsMap.get("djg_time"));
  1051 + }else{
  1052 + hjMap.put("djg_time",tjMap.get("djg_time"));
  1053 + }
  1054 + mapListHj.add(hjMap);
  1055 + fage=false;
  1056 + }
  1057 + }
  1058 +
  1059 + if(fage){
  1060 + Map<String, Object> m = new HashMap<String, Object>();
  1061 + m.put("xlBm", tjMap.get("xlBm"));
  1062 + m.put("xlName", tjMap.get("xlName"));
  1063 + m.put("jhzlc", tjMap.get("jhzlc"));
  1064 + m.put("jhlc", tjMap.get("jhlc"));
  1065 + m.put("jcclc", tjMap.get("jcclc"));
  1066 + m.put("sjzgl",tjMap.get("sjzgl"));
  1067 + m.put("sjgl", tjMap.get("sjgl"));
  1068 + m.put("sjksgl", tjMap.get("sjksgl"));
  1069 + m.put("ssgl", tjMap.get("ssgl"));
  1070 + m.put("ssbc", tjMap.get("ssbc"));
  1071 + m.put("ssgl_lz", tjMap.get("ssgl_lz"));
  1072 + m.put("ssgl_dm", tjMap.get("ssgl_dm"));
  1073 + m.put("ssgl_gz", tjMap.get("ssgl_gz"));
  1074 + m.put("ssgl_jf", tjMap.get("ssgl_jf"));
  1075 + m.put("ssgl_zs", tjMap.get("ssgl_zs"));
  1076 + m.put("ssgl_qr", tjMap.get("ssgl_qr"));
  1077 + m.put("ssgl_qc", tjMap.get("ssgl_qc"));
  1078 + m.put("ssgl_kx", tjMap.get("ssgl_kx"));
  1079 + m.put("ssgl_qh", tjMap.get("ssgl_qh"));
  1080 + m.put("ssgl_yw", tjMap.get("ssgl_yw"));
  1081 + m.put("ssgl_other", tjMap.get("ssgl_other"));
  1082 + m.put("ljgl", tjMap.get("ljgl"));
  1083 + m.put("jhbc", tjMap.get("jhbc"));
  1084 + m.put("jhbc_m", tjMap.get("jhbc_m"));
  1085 + m.put("jhbc_a", tjMap.get("jhbc_a"));
  1086 + m.put("sjbc", tjMap.get("sjbc"));
  1087 + m.put("sjbc_m",tjMap.get("sjbc_m"));
  1088 + m.put("sjbc_a", tjMap.get("sjbc_a"));
  1089 + m.put("ljbc", tjMap.get("ljbc"));
  1090 + m.put("ljbc_m", tjMap.get("ljbc_m"));
  1091 + m.put("ljbc_a",tjMap.get("ljbc_a"));
  1092 + m.put("fzbc", tjMap.get("fzbc"));
  1093 + m.put("fzbc_m", tjMap.get("fzbc_m"));
  1094 + m.put("fzbc_a",tjMap.get("fzbc_a"));
  1095 + m.put("dtbc", tjMap.get("dtbc"));
  1096 + m.put("dtbc_m", tjMap.get("dtbc_m"));
  1097 + m.put("dtbc_a", tjMap.get("dtbc_a"));
  1098 + m.put("djg", tjMap.get("djg"));
  1099 + m.put("djg_m", tjMap.get("djg_m"));
  1100 + m.put("djg_a", tjMap.get("djg_a"));
  1101 + m.put("djg_time", tjMap.get("djg_time"));
  1102 + mapListHj.add(m);
  1103 + }
  1104 + }
  1105 +
  1106 + }else{
  1107 + for (int i=0;i<tjlist.size();i++) {
  1108 + Map<String, Object> tjMap =tjlist.get(i);
  1109 + Map<String, Object> m = new HashMap<String, Object>();
  1110 + m.put("xlBm", tjMap.get("xlBm"));
  1111 + m.put("xlName", tjMap.get("xlName"));
  1112 + m.put("jhzlc", tjMap.get("jhzlc"));
  1113 + m.put("jhlc", tjMap.get("jhlc"));
  1114 + m.put("jcclc", tjMap.get("jcclc"));
  1115 + m.put("sjzgl",tjMap.get("sjzgl"));
  1116 + m.put("sjgl", tjMap.get("sjgl"));
  1117 + m.put("sjksgl", tjMap.get("sjksgl"));
  1118 + m.put("ssgl", tjMap.get("ssgl"));
  1119 + m.put("ssbc", tjMap.get("ssbc"));
  1120 + m.put("ssgl_lz", tjMap.get("ssgl_lz"));
  1121 + m.put("ssgl_dm", tjMap.get("ssgl_dm"));
  1122 + m.put("ssgl_gz", tjMap.get("ssgl_gz"));
  1123 + m.put("ssgl_jf", tjMap.get("ssgl_jf"));
  1124 + m.put("ssgl_zs", tjMap.get("ssgl_zs"));
  1125 + m.put("ssgl_qr", tjMap.get("ssgl_qr"));
  1126 + m.put("ssgl_qc", tjMap.get("ssgl_qc"));
  1127 + m.put("ssgl_kx", tjMap.get("ssgl_kx"));
  1128 + m.put("ssgl_qh", tjMap.get("ssgl_qh"));
  1129 + m.put("ssgl_yw", tjMap.get("ssgl_yw"));
  1130 + m.put("ssgl_other", tjMap.get("ssgl_other"));
  1131 + m.put("ljgl", tjMap.get("ljgl"));
  1132 + m.put("jhbc", tjMap.get("jhbc"));
  1133 + m.put("jhbc_m", tjMap.get("jhbc_m"));
  1134 + m.put("jhbc_a", tjMap.get("jhbc_a"));
  1135 + m.put("sjbc", tjMap.get("sjbc"));
  1136 + m.put("sjbc_m",tjMap.get("sjbc_m"));
  1137 + m.put("sjbc_a", tjMap.get("sjbc_a"));
  1138 + m.put("ljbc", tjMap.get("ljbc"));
  1139 + m.put("ljbc_m", tjMap.get("ljbc_m"));
  1140 + m.put("ljbc_a",tjMap.get("ljbc_a"));
  1141 + m.put("fzbc", tjMap.get("fzbc"));
  1142 + m.put("fzbc_m", tjMap.get("fzbc_m"));
  1143 + m.put("fzbc_a",tjMap.get("fzbc_a"));
  1144 + m.put("dtbc", tjMap.get("dtbc"));
  1145 + m.put("dtbc_m", tjMap.get("dtbc_m"));
  1146 + m.put("dtbc_a", tjMap.get("dtbc_a"));
  1147 + m.put("djg", tjMap.get("djg"));
  1148 + m.put("djg_m", tjMap.get("djg_m"));
  1149 + m.put("djg_a", tjMap.get("djg_a"));
  1150 + m.put("djg_time", tjMap.get("djg_time"));
  1151 + mapListHj.add(m);
  1152 +
  1153 + }
  1154 + }
  1155 +
  1156 + if (type != null && type.length() != 0 && type.equals("export")) {
  1157 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  1158 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  1159 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  1160 + Map<String, Object> m = new HashMap<String, Object>();
  1161 + m.put("date", date+"至"+date2);
  1162 + ReportUtils ee = new ReportUtils();
  1163 + try {
  1164 + String dateTime = "";
  1165 + if(date.equals(date2)){
  1166 + dateTime = sdfSimple.format(sdfMonth.parse(date));
  1167 + } else {
  1168 + dateTime = sdfSimple.format(sdfMonth.parse(date))
  1169 + +"-"+sdfSimple.format(sdfMonth.parse(date2));
  1170 + }
  1171 + listI.add(mapListHj.iterator());
  1172 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  1173 + ee.excelReplace(listI, new Object[]{m}, path + "mould/statisticsDaily_.xls",
  1174 + path + "export/" + dateTime + "-" + xlName + "-统计日报.xls");
  1175 + } catch (Exception e) {
  1176 + // TODO: handle exception
  1177 + //e.printStackTrace();
  1178 + logger.info("" , e);
  1179 + }
  1180 + }
  1181 +
  1182 + return mapListHj;
  1183 + }
853 1184  
854 1185 public CalcStatistics addStatistics(CalcStatistics s, CalcStatistics s_){
855 1186 s.setJhzlc(Arith.add(s.getJhzlc()!=null?s.getJhzlc():0, s_.getJhzlc()));
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -119,6 +119,9 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
119 119  
120 120 List<Map<String,Object>> statisticsDailyTj(String gsdm,String fgsdm,String line, String date,String date2, String xlName, String type);
121 121  
  122 + //用于实时数据与统计数据合并查询
  123 + List<Map<String,Object>> statisticsDailyTjHb(String gsdm,String fgsdm,String line, String date,String date2, String xlName, String type);
  124 +
122 125 //List<Object> scheduleDaily(String line,String date);
123 126  
124 127 int countByLineCodeAndDate(String xlBm, String schDate);
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -2662,6 +2662,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2662 2662 }
2663 2663 Map<String, Object> map = new HashMap<String, Object>();
2664 2664 if (list.size() > 0) {
  2665 + map.put("xlBm", list.get(0).getXlBm());
2665 2666 map.put("xlName", list.get(0).getXlName());
2666 2667 try {
2667 2668 map.put("xlNamePy", PinyinHelper.convertToPinyinString(list.get(0).getXlName(), "", PinyinFormat.WITHOUT_TONE));
... ... @@ -2910,6 +2911,148 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2910 2911 }
2911 2912  
2912 2913 @Override
  2914 + public List<Map<String, Object>> statisticsDailyTjHb(String gsdm, String fgsdm, String line, String date, String date2,
  2915 + String xlName, String type) {
  2916 + List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
  2917 + List<ScheduleRealInfo> list_s = new ArrayList<ScheduleRealInfo>();
  2918 + List<ScheduleRealInfo> lists = new ArrayList<ScheduleRealInfo>();
  2919 + line = line.trim();
  2920 + if (line.equals("")) {
  2921 + //查询所有线路
  2922 + list = scheduleRealInfoRepository.scheduleByDateAndLineTj(line, date, date2, gsdm, fgsdm);
  2923 + } else {
  2924 + //查询单条线路
  2925 + list = scheduleRealInfoRepository.scheduleByDateAndLineTj2(line, date, date2);
  2926 + }
  2927 + for (int i = 0; i < list.size(); i++) {
  2928 + ScheduleRealInfo s = list.get(i);
  2929 + Set<ChildTaskPlan> cts = s.getcTasks();
  2930 + if (cts != null && cts.size() > 0) {
  2931 + list_s.add(s);
  2932 + } else {
  2933 + if (s.getZdsjActual() != null && s.getFcsjActual() != null) {
  2934 + list_s.add(s);
  2935 + }
  2936 + }
  2937 + }
  2938 + List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
  2939 + for (int i = 0; i < list.size(); i++) {
  2940 + if (i < list.size() - 1) {
  2941 + if (list.get(i + 1).getXlBm().equals(list.get(i).getXlBm())) {
  2942 + lists.add(list.get(i));
  2943 + } else {
  2944 + lists.add(list.get(i));
  2945 + Map<String, Object> map = staticTj(lists);
  2946 + lMap.add(map);
  2947 + lists = new ArrayList<ScheduleRealInfo>();
  2948 + }
  2949 + } else {
  2950 + if (list.get(i).getXlBm().equals(list.get(i - 1).getXlBm())) {
  2951 + lists.add(list.get(i));
  2952 + Map<String, Object> map = staticTj(lists);
  2953 + lMap.add(map);
  2954 + } else {
  2955 + lists = new ArrayList<ScheduleRealInfo>();
  2956 + lists.add(list.get(i));
  2957 + Map<String, Object> map = staticTj(lists);
  2958 + lMap.add(map);
  2959 + }
  2960 + }
  2961 + }
  2962 +
  2963 + Collections.sort(lMap, new AccountXlbm());
  2964 + Map<String, Object> map = new HashMap<String, Object>();
  2965 + map.put("xlBm", "hj");
  2966 + map.put("xlName", "合计");
  2967 + double jhyygl = culateService.culateJhgl(list);//计划营运公里
  2968 + double jhjcclc = culateService.culateJhJccgl(list);//计划进出场公里(计划空驶公里)
  2969 + map.put("jhlc", jhyygl);
  2970 + map.put("jcclc", jhjcclc);
  2971 + map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  2972 +
  2973 + double ljgl = culateService.culateLjgl(list_s);
  2974 + double sjyygl = culateService.culateSjgl(list_s);
  2975 + double zyygl = Arith.add(sjyygl, ljgl);
  2976 +
  2977 + double sjjccgl = culateService.culateJccgl(list_s);
  2978 + double sjksgl = culateService.culateKsgl(list_s);
  2979 + double zksgl = Arith.add(sjjccgl, sjksgl);
  2980 + map.put("sjzgl", Arith.add(zyygl, zksgl));
  2981 + map.put("sjgl", zyygl);
  2982 + map.put("sjksgl", zksgl);
  2983 +
  2984 + double ssgl = culateService.culateLbgl(list);
  2985 + map.put("ssgl", ssgl);
  2986 + //计划+临加-少驶=实驶
  2987 + double jl = Arith.sub(Arith.add(jhyygl, ljgl), ssgl);
  2988 + if (jl == zyygl) {
  2989 + map.put("zt", 0);
  2990 + } else {
  2991 + map.put("zt", 1);
  2992 + }
  2993 + map.put("ssgl_lz", culateService.culateCJLC(list, "路阻"));
  2994 + map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢"));
  2995 + map.put("ssgl_gz", culateService.culateCJLC(list, "故障"));
  2996 + map.put("ssgl_jf", culateService.culateCJLC(list, "纠纷"));
  2997 + map.put("ssgl_zs", culateService.culateCJLC(list, "肇事"));
  2998 + map.put("ssgl_qr", culateService.culateCJLC(list, "缺人"));
  2999 + map.put("ssgl_qc", culateService.culateCJLC(list, "缺车"));
  3000 + map.put("ssgl_kx", culateService.culateCJLC(list, "客稀"));
  3001 + map.put("ssgl_qh", culateService.culateCJLC(list, "气候"));
  3002 + map.put("ssgl_yw", culateService.culateCJLC(list, "援外"));
  3003 + double ssgl_pc = culateService.culateCJLC(list, "配车");
  3004 + double ssgl_by = culateService.culateCJLC(list, "保养");
  3005 + double ssgl_cj = culateService.culateCJLC(list, "抽减");
  3006 + double ssgl_qt = culateService.culateCJLC(list, "其他");
  3007 + map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by), Arith.add(ssgl_cj, ssgl_qt)));
  3008 +
  3009 + map.put("ssbc", culateService.culateLbbc(list));
  3010 + map.put("ljgl", ljgl);
  3011 + map.put("jhbc", culateService.culateJhbc(list, ""));
  3012 + map.put("jhbc_m", culateService.culateJhbc(list, "zgf"));
  3013 + map.put("jhbc_a", culateService.culateJhbc(list, "wgf"));
  3014 + map.put("sjbc", culateService.culateSjbc(list_s, ""));
  3015 + map.put("sjbc_m", culateService.culateSjbc(list_s, "zgf"));
  3016 + map.put("sjbc_a", culateService.culateSjbc(list_s, "wgf"));
  3017 + map.put("ljbc", culateService.culateLjbc(list_s, ""));
  3018 + map.put("ljbc_m", culateService.culateLjbc(list_s, "zgf"));
  3019 + map.put("ljbc_a", culateService.culateLjbc(list_s, "wgf"));
  3020 + map.put("fzbc", culateService.culateFzbc(list_s, ""));
  3021 + map.put("fzbc_m", culateService.culateFzbc(list_s, "zgf"));
  3022 + map.put("fzbc_a", culateService.culateFzbc(list_s, "wgf"));
  3023 + map.put("dtbc", 0);
  3024 + map.put("dtbc_m", 0);
  3025 + map.put("dtbc_a", 0);
  3026 + if (list.size() > 0) {
  3027 + int djg = 0, djg_m = 0, djg_a = 0, djg_time = 0;
  3028 + for (Map<String, Object> m : lMap) {
  3029 + if (m.containsKey("djg") && m.get("djg") != null)
  3030 + djg += Integer.valueOf(m.get("djg").toString());
  3031 + if (m.containsKey("djg_m") && m.get("djg_m") != null)
  3032 + djg_m += Integer.valueOf(m.get("djg_m").toString());
  3033 + if (m.containsKey("djg_a") && m.get("djg_a") != null)
  3034 + djg_a += Integer.valueOf(m.get("djg_a").toString());
  3035 + if (m.containsKey("djg_time") && m.get("djg_time") != null) {
  3036 + int t = Integer.valueOf(m.get("djg_time").toString());
  3037 + if (t > djg_time)
  3038 + djg_time = t;
  3039 + }
  3040 + }
  3041 + map.put("djg", djg);
  3042 + map.put("djg_m", djg_m);
  3043 + map.put("djg_a", djg_a);
  3044 + map.put("djg_time", djg_time);
  3045 + } else {
  3046 + map.put("djg", "0");
  3047 + map.put("djg_m", "0");
  3048 + map.put("djg_a", "0");
  3049 + map.put("djg_time", "0");
  3050 + }
  3051 + lMap.add(map);
  3052 + return lMap;
  3053 + }
  3054 +
  3055 + @Override
2913 3056 public Map<String, Object> scheduleDaily(String line, String date) {
2914 3057 Map<String, String> tempMap = null;
2915 3058 List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
... ...
src/main/resources/static/pages/forms/statement/statisticsDaily.html
... ... @@ -148,16 +148,6 @@
148 148 // 关闭左侧栏
149 149 if (!$('body').hasClass('page-sidebar-closed'))
150 150 $('.menu-toggler.sidebar-toggler').click();
151   -
152   - $("#date").datetimepicker({
153   - format : 'YYYY-MM-DD',
154   - locale : 'zh-cn'
155   - });
156   -
157   - $("#date2").datetimepicker({
158   - format : 'YYYY-MM-DD',
159   - locale : 'zh-cn'
160   - });
161 151 var d = new Date();
162 152 var year = d.getFullYear();
163 153 var month = d.getMonth() + 1;
... ... @@ -166,9 +156,22 @@
166 156 month = "0" + month;
167 157 if(day < 10)
168 158 day = "0" + day;
169   - $("#date").val(year + "-" + month + "-" + day);
170 159  
171   - $("#date2").val(year + "-" + month + "-" + day);
  160 + var dateTime=year + "-" + month + "-" + day;
  161 + $("#date").val(dateTime);
  162 + $("#date2").val(dateTime);
  163 + $("#date").datetimepicker({
  164 + format : 'YYYY-MM-DD',
  165 + locale : 'zh-cn',
  166 + maxDate : dateTime
  167 + });
  168 +
  169 + $("#date2").datetimepicker({
  170 + format : 'YYYY-MM-DD',
  171 + locale : 'zh-cn',
  172 + maxDate : dateTime
  173 + });
  174 +
172 175  
173 176 var fage=false;
174 177 var obj = [];
... ...
src/main/resources/static/pages/forms/statement/statisticsDailyCalc2.html
... ... @@ -162,12 +162,10 @@
162 162 $("#date").datetimepicker({
163 163 format : 'YYYY-MM-DD',
164 164 locale : 'zh-cn',
165   - maxDate : dateTime
166 165 });
167 166 $("#date2").datetimepicker({
168 167 format : 'YYYY-MM-DD',
169 168 locale : 'zh-cn',
170   - maxDate : dateTime
171 169 });
172 170 $("#date").val(dateTime);
173 171 $("#date2").val(dateTime);
... ... @@ -291,7 +289,7 @@
291 289 params['type'] = "query";
292 290 var i = layer.load(2);
293 291 // $get('/realSchedule/statisticsDailyTj',params,function(result){
294   - $get('/calcWaybill/calcStatisticsDaily',params,function(result){
  292 + $get('/calcWaybill/calcStatisticsDaily2',params,function(result){
295 293 // 把数据填充到模版中
296 294 var tbodyHtml = template('statisticsDailyCalc2',{list:result});
297 295 // 把渲染好的模版html文本追加到表格中
... ... @@ -318,7 +316,7 @@
318 316 params['type'] = "export";
319 317 var i = layer.load(2);
320 318 // $get('/realSchedule/statisticsDailyTj',params,function(result){
321   - $get('/calcWaybill/calcStatisticsDaily',params,function(result){
  319 + $get('/calcWaybill/calcStatisticsDaily2',params,function(result){
322 320 var dateTime = "";
323 321 if(date == date2){
324 322 dateTime = moment(date).format("YYYYMMDD");
... ... @@ -339,44 +337,44 @@
339 337 <tr {{if obj.zt==1}}style='color: red'{{/if}}>
340 338 <td>{{obj.xlName}}</td>
341 339 <td>{{obj.jhzlc}}</td>
342   - <td>{{obj.jhyylc}}</td>
343   - <td>{{obj.jhkslc}}</td>
344   - <td>{{obj.sjzlc}}</td>
345   - <td>{{obj.sjyylc}}</td>
346   - <td>{{obj.sjkslc}}</td>
347   - <td>{{obj.sslc}}</td>
  340 + <td>{{obj.jhlc}}</td>
  341 + <td>{{obj.jcclc}}</td>
  342 + <td>{{obj.sjzgl}}</td>
  343 + <td>{{obj.sjgl}}</td>
  344 + <td>{{obj.sjksgl}}</td>
  345 + <td>{{obj.ssgl}}</td>
348 346 <td>{{obj.ssbc}}</td>
349   - <td>{{obj.lzlc}}</td>
350   - <td>{{obj.dmlc}}</td>
351   - <td>{{obj.gzlc}}</td>
352   - <td>{{obj.jflc}}</td>
353   - <td>{{obj.zslc}}</td>
354   - <td>{{obj.qrlc}}</td>
355   - <td>{{obj.qclc}}</td>
356   - <td>{{obj.kxlc}}</td>
357   - <td>{{obj.qhlc}}</td>
358   - <td>{{obj.ywlc}}</td>
359   - <td>{{obj.qtlc}}</td>
360   - <td>{{obj.ljlc}}</td>
361   - <td>{{obj.jhbcq}}</td>
362   - <td>{{obj.jhbcz}}</td>
363   - <td>{{obj.jhbcw}}</td>
364   - <td>{{obj.sjbcq}}</td>
365   - <td>{{obj.sjbcz}}</td>
366   - <td>{{obj.sjbcw}}</td>
367   - <td>{{obj.ljbcq}}</td>
368   - <td>{{obj.ljbcz}}</td>
369   - <td>{{obj.ljbcw}}</td>
370   - <td>{{obj.fzbcq}}</td>
371   - <td>{{obj.fzbcz}}</td>
372   - <td>{{obj.fzbcw}}</td>
373   - <td>{{obj.dtbcq}}</td>
374   - <td>{{obj.dtbcz}}</td>
375   - <td>{{obj.dtbcw}}</td>
376   - <td>{{obj.djgq}}</td>
377   - <td>{{obj.djgz}}</td>
378   - <td>{{obj.djgw}}</td>
379   - <td>{{obj.djgsj}}</td>
  347 + <td>{{obj.ssgl_lz}}</td>
  348 + <td>{{obj.ssgl_dm}}</td>
  349 + <td>{{obj.ssgl_gz}}</td>
  350 + <td>{{obj.ssgl_jf}}</td>
  351 + <td>{{obj.ssgl_zs}}</td>
  352 + <td>{{obj.ssgl_qr}}</td>
  353 + <td>{{obj.ssgl_qc}}</td>
  354 + <td>{{obj.ssgl_kx}}</td>
  355 + <td>{{obj.ssgl_qh}}</td>
  356 + <td>{{obj.ssgl_yw}}</td>
  357 + <td>{{obj.ssgl_other}}</td>
  358 + <td>{{obj.ljgl}}</td>
  359 + <td>{{obj.jhbc}}</td>
  360 + <td>{{obj.jhbc_m}}</td>
  361 + <td>{{obj.jhbc_a}}</td>
  362 + <td>{{obj.sjbc}}</td>
  363 + <td>{{obj.sjbc_m}}</td>
  364 + <td>{{obj.sjbc_a}}</td>
  365 + <td>{{obj.ljbc}}</td>
  366 + <td>{{obj.ljbc_m}}</td>
  367 + <td>{{obj.ljbc_a}}</td>
  368 + <td>{{obj.fzbc}}</td>
  369 + <td>{{obj.fzbc_m}}</td>
  370 + <td>{{obj.fzbc_a}}</td>
  371 + <td>{{obj.dtbc}}</td>
  372 + <td>{{obj.dtbc_m}}</td>
  373 + <td>{{obj.dtbc_a}}</td>
  374 + <td>{{obj.djg}}</td>
  375 + <td>{{obj.djg_m}}</td>
  376 + <td>{{obj.djg_a}}</td>
  377 + <td>{{obj.djg_time}}</td>
380 378 <td>&nbsp;</td>
381 379 </tr>
382 380 {{/each}}
... ...