Commit 55edb1083a511537e6266634837c1dd245018c0b

Authored by 娄高锋
1 parent 4df634e6

添加每月指标统计接口

src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
... ... @@ -16,6 +16,7 @@ import java.util.Set;
16 16  
17 17 import javax.ws.rs.GET;
18 18 import javax.ws.rs.Path;
  19 +import javax.ws.rs.PathParam;
19 20 import javax.ws.rs.Produces;
20 21 import javax.ws.rs.core.MediaType;
21 22  
... ... @@ -46,7 +47,7 @@ public class BigscreenService {
46 47 @Autowired
47 48 ScheduleRealInfoRepository scheduleRealInfoRepository;
48 49  
49   - DecimalFormat df = new DecimalFormat("0.00");
  50 + DecimalFormat df = new DecimalFormat("0.###");
50 51  
51 52 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
52 53  
... ... @@ -763,6 +764,359 @@ public class BigscreenService {
763 764 }
764 765  
765 766 @GET
  767 + @Path("/selectData/getMonthly/{month}")
  768 + public JSONObject getMonthly(@PathParam("month") String month){
  769 + Map<String, Object> resMap = new HashMap<String, Object>();
  770 +
  771 + String gpLineSql = "select * from bsth_c_line_plate";
  772 + List<Map<String, Object>> gpLineList=jdbcTemplate.query(gpLineSql,
  773 + new RowMapper<Map<String, Object>>(){
  774 + @Override
  775 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  776 + Map<String, Object> m=new HashMap<String,Object>();
  777 + m.put("lineName", rs.getString("line_name"));
  778 + m.put("lineCode", rs.getString("line_code"));
  779 + return m;
  780 + }
  781 + });
  782 +
  783 + Set<String> gpSet = new HashSet<String>();
  784 + for(Map<String, Object> t : gpLineList){
  785 + if(t.get("lineCode") != null && t.get("lineCode").toString().trim().length() > 0){
  786 + gpSet.add(t.get("lineCode").toString().trim());
  787 + }
  788 + }
  789 +
  790 +
  791 + String yyxlSql="SELECT line_code from bsth_c_line "
  792 + + " where nature in ('yxl','cgxl','gjxl','csbs','cctxl')";
  793 + List<Map<String, Object>> yyxlList=jdbcTemplate.query(yyxlSql,
  794 + new RowMapper<Map<String, Object>>(){
  795 + @Override
  796 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  797 + Map<String, Object> m=new HashMap<String,Object>();
  798 + m.put("lineCode", rs.getString("line_code"));
  799 + return m;
  800 + }
  801 + });
  802 + Set<String> yyLine = new HashSet<String>();
  803 + for(Map<String, Object> t : yyxlList){
  804 + if(t.get("lineCode") != null){
  805 + yyLine.add(t.get("lineCode").toString());
  806 + }
  807 + }
  808 +
  809 +
  810 + String sql="select xl,xl_name,date,jhbc,bczxl,jhbcz,sjbc,jhcc,sjcc,ccl,jhccz,"
  811 + + " jhyylc,sjyylc,jhyylcz,jhkslc,sjkslc,jhkslcz,"
  812 + + " jhssgfbcs,sjgfbcs,jhgfbcsz,jhssdgbcs,sjdgbcs,jhdgbcsz,"
  813 + + " jhsmbcs,sjsmbczds,smbczdl,jhsmbcsz,sjsmbczdsz,smbczdlz,"
  814 + + " jhszfcs,sjszfczds,szfczdl,jhzgl,sjzgl,create_date"
  815 + + " from bsth_c_calc_count "
  816 + + " where date like '%"+month+"%'";
  817 +
  818 + List<Map<String, Object>> list=jdbcTemplate.query(sql,
  819 + new RowMapper<Map<String, Object>>(){
  820 + @Override
  821 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  822 + Map<String, Object> m=new HashMap<String,Object>();
  823 + m.put("lineCode",rs.getString("xl"));
  824 + m.put("lineName", rs.getString("xl_name"));
  825 + m.put("date", rs.getString("date"));
  826 +
  827 + m.put("jhbc", rs.getString("jhbc"));
  828 + m.put("sjbc", rs.getString("sjbc"));
  829 + m.put("bczxl", rs.getString("bczxl"));
  830 + m.put("jhbcz", rs.getString("jhbcz"));
  831 +
  832 + m.put("jhcc", rs.getString("jhcc"));
  833 + m.put("sjcc", rs.getString("sjcc"));
  834 + m.put("ccl", rs.getString("ccl"));
  835 + m.put("jhccz", rs.getString("jhccz"));
  836 +
  837 + m.put("jhyylc", rs.getString("jhyylc"));
  838 + m.put("sjyylc", rs.getString("sjyylc"));
  839 + m.put("jhyylcz", rs.getString("jhyylcz"));
  840 + m.put("jhkslc", rs.getString("jhkslc"));
  841 + m.put("sjkslc", rs.getString("sjkslc"));
  842 + m.put("jhkslcz", rs.getString("jhkslcz"));
  843 +
  844 + m.put("jhgfbcs", rs.getString("jhssgfbcs"));
  845 + m.put("sjgfbcs", rs.getString("sjgfbcs"));
  846 + m.put("jhgfbcsz", rs.getString("jhgfbcsz"));
  847 + m.put("jhdgbcs", rs.getString("jhssdgbcs"));
  848 + m.put("sjdgbcs", rs.getString("sjdgbcs"));
  849 + m.put("jhdgbcsz", rs.getString("jhdgbcsz"));
  850 +
  851 + m.put("jhsmbcs", rs.getString("jhsmbcs"));
  852 + m.put("sjsmbczds", rs.getString("sjsmbczds"));
  853 + m.put("smbczdl", rs.getString("smbczdl"));
  854 + m.put("jhsmbcsz", rs.getString("jhsmbcsz"));
  855 + m.put("sjsmbczdsz", rs.getString("sjsmbczdsz"));
  856 + m.put("smbczdlz", rs.getString("smbczdlz"));
  857 +
  858 + m.put("jhszfcs", rs.getString("jhszfcs"));
  859 + m.put("sjszfczds", rs.getString("sjszfczds"));
  860 + m.put("szfczdl", rs.getString("szfczdl"));
  861 +
  862 + m.put("jhzgl", rs.getString("jhzgl"));
  863 + m.put("sjzgl", rs.getString("sjzgl"));
  864 +
  865 + Date date = new Date();
  866 + date.setTime(rs.getTimestamp("create_date").getTime());
  867 + m.put("createDate", sdf.format(date));
  868 + return m;
  869 + }
  870 + });
  871 +
  872 +
  873 + BigDecimal jhzgl = new BigDecimal(0), sjzgl = new BigDecimal(0);//
  874 + long jhcc = 0, sjcc = 0, jhbc = 0, sjbc = 0, jhsmbc = 0, sjsmbc = 0,
  875 + jhqqbc = 0, sjqqzd = 0, jhgpqqbc = 0, sjgpqqzd = 0;
  876 +
  877 + for(Map<String, Object> t : list){
  878 + if(yyLine.contains(t.get("lineCode").toString())){
  879 +
  880 + jhzgl = jhzgl.add(new BigDecimal(t.get("jhzgl").toString()));
  881 + sjzgl = sjzgl.add(new BigDecimal(t.get("sjzgl").toString()));
  882 +
  883 + jhcc += Long.valueOf(t.get("jhccz").toString());
  884 + sjcc += Long.valueOf(t.get("sjcc").toString());
  885 + jhbc += Long.valueOf(t.get("jhbc").toString());
  886 + sjbc += Long.valueOf(t.get("sjbc").toString());
  887 + jhsmbc += Long.valueOf(t.get("jhsmbcs").toString());
  888 + sjsmbc += Long.valueOf(t.get("sjsmbczds").toString());
  889 + jhqqbc += Long.valueOf(t.get("jhszfcs").toString());
  890 + sjqqzd += Long.valueOf(t.get("sjszfczds").toString());
  891 + if(gpSet.contains(t.get("lineCode").toString())){
  892 + jhgpqqbc += Long.valueOf(t.get("jhszfcs").toString());
  893 + sjgpqqzd += Long.valueOf(t.get("sjszfczds").toString());
  894 + }
  895 +
  896 + }
  897 + }
  898 +
  899 + resMap.put("jhzgl", df.format(jhzgl));
  900 + resMap.put("sjzgl", df.format(sjzgl));
  901 + resMap.put("jhcc", jhcc);
  902 + resMap.put("sjcc", sjcc);
  903 + resMap.put("jhbc", jhbc);
  904 + resMap.put("sjbc", sjbc);
  905 + resMap.put("jhsm", jhsmbc);
  906 + resMap.put("sjsm", sjsmbc);
  907 + resMap.put("jhqq", jhqqbc);
  908 + resMap.put("sjqq", sjqqzd);
  909 + resMap.put("jhgp", jhgpqqbc);
  910 + resMap.put("sjgp", sjgpqqzd);
  911 +
  912 + resMap.put("glzxl", jhzgl.doubleValue()>0?sjzgl.divide(jhzgl,
  913 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  914 + resMap.put("ccl", jhcc>0?new BigDecimal(sjcc).divide(new BigDecimal(jhcc),
  915 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  916 + resMap.put("bczxl", jhbc>0?new BigDecimal(sjbc).divide(new BigDecimal(jhbc),
  917 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  918 + resMap.put("smbzdl", jhbc>0?new BigDecimal(sjsmbc).divide(new BigDecimal(jhsmbc),
  919 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  920 + resMap.put("qqzzdl", jhbc>0?new BigDecimal(sjqqzd).divide(new BigDecimal(jhqqbc),
  921 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  922 + resMap.put("gpzdl", jhbc>0?new BigDecimal(sjgpqqzd).divide(new BigDecimal(jhgpqqbc),
  923 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  924 +
  925 + return JSON.parseObject(JSON.toJSONString(resMap));
  926 + }
  927 +
  928 + @GET
  929 + @Path("/selectData/getCompanyData")
  930 + public JSONObject getCompanyData(){
  931 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  932 +
  933 + String date = sd.format(new Date());
  934 + String date2 = sd.format(new Date(new Date().getTime() - 1l*1000*60*60*24));
  935 +
  936 + String gpLineSql = "select * from bsth_c_line_plate";
  937 + List<Map<String, Object>> gpLineList=jdbcTemplate.query(gpLineSql,
  938 + new RowMapper<Map<String, Object>>(){
  939 + @Override
  940 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  941 + Map<String, Object> m=new HashMap<String,Object>();
  942 + m.put("lineName", rs.getString("line_name"));
  943 + m.put("lineCode", rs.getString("line_code"));
  944 + return m;
  945 + }
  946 + });
  947 +
  948 + Set<String> gpSet = new HashSet<String>();
  949 + for(Map<String, Object> t : gpLineList){
  950 + if(t.get("lineCode") != null && t.get("lineCode").toString().trim().length() > 0){
  951 + gpSet.add(t.get("lineCode").toString().trim());
  952 + }
  953 + }
  954 +
  955 +
  956 + String yyxlSql="SELECT line_code from bsth_c_line "
  957 + + " where nature in ('yxl','cgxl','gjxl','csbs','cctxl')";
  958 + List<Map<String, Object>> yyxlList=jdbcTemplate.query(yyxlSql,
  959 + new RowMapper<Map<String, Object>>(){
  960 + @Override
  961 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  962 + Map<String, Object> m=new HashMap<String,Object>();
  963 + m.put("lineCode", rs.getString("line_code"));
  964 + return m;
  965 + }
  966 + });
  967 + Set<String> yyLine = new HashSet<String>();
  968 + for(Map<String, Object> t : yyxlList){
  969 + if(t.get("lineCode") != null){
  970 + yyLine.add(t.get("lineCode").toString());
  971 + }
  972 + }
  973 +
  974 +
  975 + String gsSql="SELECT business_name, business_code from bsth_c_business ";
  976 + List<Map<String, Object>> gsList=jdbcTemplate.query(gsSql,
  977 + new RowMapper<Map<String, Object>>(){
  978 + @Override
  979 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  980 + Map<String, Object> m=new HashMap<String,Object>();
  981 + m.put("name", rs.getString("business_name")!=null?rs.getString("business_name"):"");
  982 + m.put("code", rs.getString("business_code")!=null?rs.getString("business_code"):"");
  983 + return m;
  984 + }
  985 + });
  986 + final Map<String, String> gsMap = new HashMap<String, String>();
  987 + for(Map<String, Object> t : gsList){
  988 + if(t.get("code") != null && t.get("name") != null){
  989 + gsMap.put(t.get("code").toString(), t.get("name").toString().substring(0, 2));
  990 + }
  991 + }
  992 +
  993 +
  994 + String sql="select gsdm,xl,xl_name,date,jhbc,bczxl,jhbcz,sjbc,jhcc,sjcc,ccl,jhccz,"
  995 + + " jhyylc,sjyylc,jhyylcz,jhkslc,sjkslc,jhkslcz,"
  996 + + " jhssgfbcs,sjgfbcs,jhgfbcsz,jhssdgbcs,sjdgbcs,jhdgbcsz,"
  997 + + " jhsmbcs,sjsmbczds,smbczdl,jhsmbcsz,sjsmbczdsz,smbczdlz,"
  998 + + " jhszfcs,sjszfczds,szfczdl,create_date"
  999 + + " from bsth_c_calc_count "
  1000 + + " where date >= '"+date2+"' and date <= '"+date+"'";
  1001 +
  1002 + List<Map<String, Object>> list=jdbcTemplate.query(sql,
  1003 + new RowMapper<Map<String, Object>>(){
  1004 + @Override
  1005 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1006 + Map<String, Object> m=new HashMap<String,Object>();
  1007 + m.put("gs",rs.getString("gsdm")!=null?gsMap.get(rs.getString("gsdm")):"");
  1008 + m.put("lineCode",rs.getString("xl"));
  1009 + m.put("lineName", rs.getString("xl_name"));
  1010 + m.put("date", rs.getString("date"));
  1011 +
  1012 + m.put("jhbc", rs.getString("jhbc"));
  1013 + m.put("sjbc", rs.getString("sjbc"));
  1014 + m.put("bczxl", rs.getString("bczxl"));
  1015 + m.put("jhbcz", rs.getString("jhbcz"));
  1016 +
  1017 + m.put("jhcc", rs.getString("jhcc"));
  1018 + m.put("sjcc", rs.getString("sjcc"));
  1019 + m.put("ccl", rs.getString("ccl"));
  1020 + m.put("jhccz", rs.getString("jhccz"));
  1021 +
  1022 + m.put("jhyylc", rs.getString("jhyylc"));
  1023 + m.put("sjyylc", rs.getString("sjyylc"));
  1024 + m.put("jhyylcz", rs.getString("jhyylcz"));
  1025 + m.put("jhkslc", rs.getString("jhkslc"));
  1026 + m.put("sjkslc", rs.getString("sjkslc"));
  1027 + m.put("jhkslcz", rs.getString("jhkslcz"));
  1028 +
  1029 + m.put("jhgfbcs", rs.getString("jhssgfbcs"));
  1030 + m.put("sjgfbcs", rs.getString("sjgfbcs"));
  1031 + m.put("jhgfbcsz", rs.getString("jhgfbcsz"));
  1032 + m.put("jhdgbcs", rs.getString("jhssdgbcs"));
  1033 + m.put("sjdgbcs", rs.getString("sjdgbcs"));
  1034 + m.put("jhdgbcsz", rs.getString("jhdgbcsz"));
  1035 +
  1036 + m.put("jhsmbcs", rs.getString("jhsmbcs"));
  1037 + m.put("sjsmbczds", rs.getString("sjsmbczds"));
  1038 + m.put("smbczdl", rs.getString("smbczdl"));
  1039 + m.put("jhsmbcsz", rs.getString("jhsmbcsz"));
  1040 + m.put("sjsmbczdsz", rs.getString("sjsmbczdsz"));
  1041 + m.put("smbczdlz", rs.getString("smbczdlz"));
  1042 +
  1043 + m.put("jhszfcs", rs.getString("jhszfcs"));
  1044 + m.put("sjszfczds", rs.getString("sjszfczds"));
  1045 + m.put("szfczdl", rs.getString("szfczdl"));
  1046 +
  1047 + Date date = new Date();
  1048 + date.setTime(rs.getTimestamp("create_date").getTime());
  1049 + m.put("createDate", sdf.format(date));
  1050 + return m;
  1051 + }
  1052 + });
  1053 +
  1054 +
  1055 + Map<String, Integer> sortMap = new HashMap<String, Integer>();
  1056 + sortMap.put("杨高", 1);
  1057 + sortMap.put("上南", 2);
  1058 + sortMap.put("金高", 3);
  1059 + sortMap.put("南汇", 4);
  1060 + Map<String, Object> ygMap = new HashMap<String, Object>();
  1061 + Map<String, Object> snMap = new HashMap<String, Object>();
  1062 + Map<String, Object> jgMap = new HashMap<String, Object>();
  1063 + Map<String, Object> nhMap = new HashMap<String, Object>();
  1064 + resList.add(ygMap);
  1065 + resList.add(snMap);
  1066 + resList.add(jgMap);
  1067 + resList.add(nhMap);
  1068 +
  1069 +
  1070 + for(Map<String, Object> t : list){
  1071 + if(yyLine.contains(t.get("lineCode").toString())){
  1072 + if(sortMap.get(t.get("gs")) != null){
  1073 + Map<String, Object> m = resList.get(sortMap.get(t.get("gs")));
  1074 + if(date.equals(t.get(date).toString())){
  1075 + mapPut(m, "jhcc", t.get("jhccz").toString());
  1076 + mapPut(m, "sjcc", t.get("sjcc").toString());
  1077 + mapPut(m, "jhbc", t.get("jhbc").toString());
  1078 + mapPut(m, "sjbc", t.get("sjbc").toString());
  1079 + mapPut(m, "jhsmbc", t.get("jhsmbcs").toString());
  1080 + mapPut(m, "sjsmbc", t.get("sjsmbczds").toString());
  1081 + mapPut(m, "jhqqbc", t.get("jhszfcs").toString());
  1082 + mapPut(m, "sjqqzd", t.get("sjszfczds").toString());
  1083 + if(gpSet.contains(t.get("lineCode").toString())){
  1084 + mapPut(m, "jhgpqqbc", t.get("jhszfcs").toString());
  1085 + mapPut(m, "sjgpqqzd", t.get("sjszfczds").toString());
  1086 + }
  1087 + } else {
  1088 + mapPut(m, "jhzgl", t.get("jhzgl").toString());
  1089 + mapPut(m, "sjzgl", t.get("sjzgl").toString());
  1090 + }
  1091 + }
  1092 + }
  1093 + }
  1094 +
  1095 + for(Map<String, Object> m : resList){
  1096 + m.put("glzxl", new BigDecimal(m.get("jhzgl").toString()).doubleValue()>0?
  1097 + new BigDecimal(m.get("sjzgl").toString()).divide(new BigDecimal(m.get("jhzgl").toString()),
  1098 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1099 + m.put("ccl", new BigDecimal(m.get("jhcc").toString()).doubleValue()>0?
  1100 + new BigDecimal(m.get("sjcc").toString()).divide(new BigDecimal(m.get("jhcc").toString()),
  1101 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1102 + m.put("bczxl", new BigDecimal(m.get("jhbc").toString()).doubleValue()>0?
  1103 + new BigDecimal(m.get("sjbc").toString()).divide(new BigDecimal(m.get("jhbc").toString()),
  1104 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1105 + m.put("smbzdl", new BigDecimal(m.get("jhsmbc").toString()).doubleValue()>0?
  1106 + new BigDecimal(m.get("sjsmbc").toString()).divide(new BigDecimal(m.get("jhsmbc").toString()),
  1107 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1108 + m.put("qqzzdl", new BigDecimal(m.get("jhqqbc").toString()).doubleValue()>0?
  1109 + new BigDecimal(m.get("sjqqzd").toString()).divide(new BigDecimal(m.get("jhqqbc").toString()),
  1110 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1111 + m.put("gpzdl", new BigDecimal(m.get("jhgpqqbc").toString()).doubleValue()>0?
  1112 + new BigDecimal(m.get("sjgpqqzd").toString()).divide(new BigDecimal(m.get("jhgpqqbc").toString()),
  1113 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1114 + }
  1115 +
  1116 + return JSON.parseObject(JSON.toJSONString(resList));
  1117 + }
  1118 +
  1119 + @GET
766 1120 @Path("/selectData/getReport")
767 1121 public List<Map<String, Object>> getReport(){
768 1122 String sql="SELECT ID,REPORT_TYPE,REPORT_GS,REPORT_FGS,REPORT_GSNAME,REPORT_FGSNAME,"
... ... @@ -843,6 +1197,14 @@ public class BigscreenService {
843 1197 return mapList;
844 1198 }
845 1199  
  1200 + public void mapPut(Map<String, Object> m, String key, Object value){
  1201 + if(m.get(key) != null){
  1202 + m.put(key, new BigDecimal(m.get(key).toString()).add(new BigDecimal(value.toString())));
  1203 + } else {
  1204 + m.put(key, value);
  1205 + }
  1206 + }
  1207 +
846 1208 /**计划营运公里*/
847 1209 public double culateJhgl(List<ScheduleRealInfo> lists) {
848 1210 // TODO Auto-generated method stub
... ...