diff --git a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java index 85d15a4a1..105f58870 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java @@ -50,7 +50,6 @@ public class DataTowerServiceImpl implements DataTowerService { WxBillRentMapper wxBillRentMapper; - @Override public Map queryRunning(String tenantId) { WxShop wxShop = new WxShop(); @@ -65,48 +64,48 @@ public class DataTowerServiceImpl implements DataTowerService { int yczsize = yczlist.size(); int wczsize = wczlist.size(); int size = yczsize + wczsize; - if(size==0){ - datamap.put("yczsl",0); - datamap.put("wczsl",0); - datamap.put("yczl",0); - datamap.put("wczl",0); - }else{ - datamap.put("yczsl",yczsize); - datamap.put("wczsl",wczsize); - double yczld=((double)yczsize/size)*100; + if (size == 0) { + datamap.put("yczsl", 0); + datamap.put("wczsl", 0); + datamap.put("yczl", 0); + datamap.put("wczl", 0); + } else { + datamap.put("yczsl", yczsize); + datamap.put("wczsl", wczsize); + double yczld = ((double) yczsize / size) * 100; double dczl = new BigDecimal(yczld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double wczld = ((double) wczsize / size) * 100; double wczl = new BigDecimal(wczld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - datamap.put("yczl", dczl+"%"); - datamap.put("wczl", wczl+"%"); + datamap.put("yczl", dczl + "%"); + datamap.put("wczl", wczl + "%"); } //租金 - Map params=new HashMap<>(); - params.put("tenantId",tenantId); + Map params = new HashMap<>(); + params.put("tenantId", tenantId); Calendar calendar = Calendar.getInstance();//日历对象 calendar.setTime(new Date());//设置当前日期 calendar.add(Calendar.MONTH, -1);//月份减一 - params.put("receiveDate", DateUtils.date2String(calendar.getTime(),"yyyy-MM")); - Map payinfo=wxBillRentMapper.queryPayInfo(params); - if(payinfo!=null){ + params.put("receiveDate", DateUtils.date2String(calendar.getTime(), "yyyy-MM")); + Map payinfo = wxBillRentMapper.queryPayInfo(params); + if (payinfo != null) { BigDecimal receivepay = (BigDecimal) payinfo.get("receivepay"); BigDecimal pay = (BigDecimal) payinfo.get("pay"); - if(receivepay.doubleValue()>0){ - BigDecimal divide = pay.divide(receivepay,2, BigDecimal.ROUND_HALF_UP); + if (receivepay.doubleValue() > 0) { + BigDecimal divide = pay.divide(receivepay, 2, BigDecimal.ROUND_HALF_UP); double zjcjl = divide.multiply(new BigDecimal(100)).doubleValue(); - datamap.put("ysje",receivepay); - datamap.put("ssje",pay); - datamap.put("zjsjl",zjcjl+"%"); - }else{ - datamap.put("ysje",0); - datamap.put("ssje",0); - datamap.put("zjsjl",0); + datamap.put("ysje", receivepay); + datamap.put("ssje", pay); + datamap.put("zjsjl", zjcjl + "%"); + } else { + datamap.put("ysje", 0); + datamap.put("ssje", 0); + datamap.put("zjsjl", 0); } - }else{ - datamap.put("ysje",0); - datamap.put("ssje",0); - datamap.put("zjsjl",0); + } else { + datamap.put("ysje", 0); + datamap.put("ssje", 0); + datamap.put("zjsjl", 0); } //上报 @@ -122,20 +121,20 @@ public class DataTowerServiceImpl implements DataTowerService { List tradelist = wxMerchantTradeDailyMapper.findList(wxMerchantTradeDaily); int merchantsize = merchants.size(); int tradesize = tradelist.size(); - if(merchantsize>0 && tradesize>0){ - double shsbld = ((double)tradesize/merchantsize)*100; + if (merchantsize > 0 && tradesize > 0) { + double shsbld = ((double) tradesize / merchantsize) * 100; double shsbl = new BigDecimal(shsbld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - datamap.put("shsbl",shsbl+"%"); - }else{ - datamap.put("shsbl",0); + datamap.put("shsbl", shsbl + "%"); + } else { + datamap.put("shsbl", 0); } int shsbjg = tradelist.stream().mapToInt(WxMerchantTradeDaily::getTradeAmt).sum(); - datamap.put("shsbjg",shsbjg); + datamap.put("shsbjg", shsbjg); - List> recordlist=wxDateAmountRecordMapper.queryprice(tenantId); + List> recordlist = wxDateAmountRecordMapper.queryprice(tenantId); Map collect = recordlist.stream().collect(Collectors.toMap(m -> { - return DateUtils.date2String((Date)m.get("date"),"MM/dd"); + return DateUtils.date2String((Date) m.get("date"), "MM/dd"); }, m -> { return m.get("price"); })); @@ -154,7 +153,7 @@ public class DataTowerServiceImpl implements DataTowerService { return r.getPayPrice().intValue(); })));*/ - datamap.put("records",recordmap); + datamap.put("records", recordmap); return datamap; } @@ -162,17 +161,17 @@ public class DataTowerServiceImpl implements DataTowerService { @Override public Map queryCar(String tenantId) { HashMap params = new HashMap<>(); - params.put("tenantId",tenantId); - params.put("cmdType",EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); + params.put("tenantId", tenantId); + params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); String startdate = DateUtils.getTimeBefore(30, new Date()); String systemTime = DateUtils.getSystemTime("yyyy-MM-dd"); List tjTimeList = DateUtils.getTjTimeList(startdate, systemTime, "0"); - params.put("startdate",startdate+" 00:00:00"); - params.put("enddate",systemTime+" 23:59:59"); + params.put("startdate", startdate + " 00:00:00"); + params.put("enddate", systemTime + " 23:59:59"); - List> historylist=wxCarCmdLogMapper.queryHistory(params); + List> historylist = wxCarCmdLogMapper.queryHistory(params); Map collect = historylist.stream().collect(Collectors.toMap(m -> { return m.get("create_date"); @@ -180,12 +179,12 @@ public class DataTowerServiceImpl implements DataTowerService { return m.get("carcount"); })); - for(String date:tjTimeList){ + for (String date : tjTimeList) { Object o = collect.get(date); - if(o==null){ - collect.put(date.substring(5).replace("-","/"),0l); + if (o == null) { + collect.put(date.substring(5).replace("-", "/"), 0L); } else { - collect.put(date.substring(5).replace("-","/"),o); + collect.put(date.substring(5).replace("-", "/"), o); } } @@ -193,49 +192,62 @@ public class DataTowerServiceImpl implements DataTowerService { historymap.putAll(collect); Map datamap = new HashMap<>(); - datamap.put("history",historymap); + datamap.put("history", historymap); //今日车流量 long todaycar = (long) collect.get(DateUtils.getSystemTime("MM/dd")); - datamap.put("todaycar",todaycar); + datamap.put("todaycar", todaycar); //环比 - long yesterdaycar = (long) collect.get(tjTimeList.get(8 - 2).substring(5).replace("-","/")); - if(yesterdaycar>0){ - double hbd = (double) (todaycar - yesterdaycar) / yesterdaycar *100; + long yesterdaycar = (long) collect.get(tjTimeList.get(8 - 2).substring(5).replace("-", "/")); + if (yesterdaycar > 0) { + double hbd = (double) (todaycar - yesterdaycar) / yesterdaycar * 100; double hb = new BigDecimal(hbd).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - datamap.put("hb",hb); - }else{ - datamap.put("hb","--"); + datamap.put("hb", hb); + } else { + datamap.put("hb", "--"); } //上周同期 - long last = (long) collect.get(tjTimeList.get(0).substring(5).replace("-","/")); - if(last>0){ - double lasthbd = (double) (todaycar - last) / last *100; + long last = (long) collect.get(tjTimeList.get(0).substring(5).replace("-", "/")); + if (last > 0) { + double lasthbd = (double) (todaycar - last) / last * 100; double lasthb = new BigDecimal(lasthbd).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - datamap.put("lasthb",lasthb); - }else{ - datamap.put("lasthb","--"); + datamap.put("lasthb", lasthb); + } else { + datamap.put("lasthb", "--"); } - params.put("startdate",systemTime+" 05:00:00"); - params.put("enddate",systemTime+" 22:59:59"); + params.put("startdate", systemTime + " 05:00:00"); + params.put("enddate", DateUtils.getSystemTime("yyyy-MM-dd HH:mm:ss")); - List> todayCarlist=wxCarCmdLogMapper.queryTodayCar(params); + List> todayCarlist = wxCarCmdLogMapper.queryTodayCar(params); Map todaycollect = todayCarlist.stream().collect(Collectors.toMap(m -> { return m.get("create_time"); }, m -> { return m.get("carcount"); })); - TreeMap todaytreemap = getTimeTreeMap(); - todaytreemap.putAll(todaycollect); - datamap.put("todaycardata",todaytreemap); + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.HOUR_OF_DAY, 1); + int hour = instance.get(Calendar.HOUR_OF_DAY); + TreeMap hourMap = new TreeMap<>(); + int startHour = 6; + int endHour = 24; + for (int i = startHour; i < endHour; i++) { + if (i <= hour) { + hourMap.put(i < 10 ? "0" + i + ":00" : i + ":00", 0); + } else { + hourMap.put(i < 10 ? "0" + i + ":00" : i + ":00", ""); + } + } + hourMap.putAll(todaycollect); + + datamap.put("todaycardata", hourMap); String yesterday = DateUtils.getTimeBefore(1, new Date()); - params.put("startdate",yesterday+" 05:00:00"); - params.put("enddate",yesterday+" 22:59:59"); - List> yesterdayCarlist=wxCarCmdLogMapper.queryTodayCar(params); + params.put("startdate", yesterday + " 05:00:00"); + params.put("enddate", yesterday + " 22:59:59"); + List> yesterdayCarlist = wxCarCmdLogMapper.queryTodayCar(params); Map yesterdaycollect = yesterdayCarlist.stream().collect(Collectors.toMap(m -> { return m.get("create_time"); }, m -> { @@ -244,12 +256,13 @@ public class DataTowerServiceImpl implements DataTowerService { TreeMap yesterdaytreemap = getTimeTreeMap(); yesterdaytreemap.putAll(yesterdaycollect); - datamap.put("yesterdaycardata",yesterdaytreemap); + datamap.put("yesterdaycardata", yesterdaytreemap); - params.put("startdate",startdate+" 05:00:00"); - params.put("enddate",startdate+" 22:59:59"); - List> lastdayCarlist=wxCarCmdLogMapper.queryTodayCar(params); + String lastweek = DateUtils.getTimeBefore(7, new Date(), "yyyy-MM-dd"); + params.put("startdate", lastweek + " 05:00:00"); + params.put("enddate", lastweek + " 22:59:59"); + List> lastdayCarlist = wxCarCmdLogMapper.queryTodayCar(params); Map lastdaycollect = lastdayCarlist.stream().collect(Collectors.toMap(m -> { return m.get("create_time"); }, m -> { @@ -257,7 +270,7 @@ public class DataTowerServiceImpl implements DataTowerService { })); TreeMap lastdaytreemap = getTimeTreeMap(); lastdaytreemap.putAll(lastdaycollect); - datamap.put("lastdaycardata",lastdaytreemap); + datamap.put("lastdaycardata", lastdaytreemap); return datamap; @@ -271,51 +284,47 @@ public class DataTowerServiceImpl implements DataTowerService { wxMall.setTenantId(tenantId); List list = wxMallMapper.findList(wxMall); wxMall = list.get(0); - String username=wxMall.getWiwideId(); - String authVal=encrypt(wxMall.getWiwideKey()); - Map params=new HashMap<>(); - params.put("username",username); - params.put("authVal",authVal); + String username = wxMall.getWiwideId(); + String authVal = encrypt(wxMall.getWiwideKey()); + Map params = new HashMap<>(); + params.put("username", username); + params.put("authVal", authVal); String wiwideUrl = wxMall.getWiwideUrl(); - String token = HttpUtil.doPost(wiwideUrl+"/login/auth", params); + String token = HttpUtil.doPost(wiwideUrl + "/login/auth", params); Map datamap = new HashMap<>(); - datamap.put("token",JSONObject.parseObject(token).get("data")); - datamap.put("url",wiwideUrl); + datamap.put("token", JSONObject.parseObject(token).get("data")); + datamap.put("url", wiwideUrl); return datamap; } - public String encrypt(String key) - { - String data = new Date().getTime()/1000+30+""; + public String encrypt(String key) { + String data = System.currentTimeMillis() / 1000 + 30 + ""; String md5 = HashUtil.md5(key); - int x = 0; + int x = 0; int len = data.length(); - int l = md5.length(); - char[] datachar =new char[len]; - for (int i = 0; i < len; i++) - { - if (x == l) - { + int l = md5.length(); + char[] datachar = new char[len]; + for (int i = 0; i < len; i++) { + if (x == l) { x = 0; } - datachar[i]=md5.charAt(x); + datachar[i] = md5.charAt(x); x++; } - StringBuilder chars=new StringBuilder(); - for (int i = 0; i < len; i++) - { + StringBuilder chars = new StringBuilder(); + for (int i = 0; i < len; i++) { int a = data.charAt(i); - int b = (datachar[i]%256); - char v = (char) (a+b); + int b = (datachar[i] % 256); + char v = (char) (a + b); chars.append(v); } - byte[] bytes=null; + byte[] bytes = null; try { bytes = chars.toString().getBytes("ISO-8859-1"); } catch (Exception e) { @@ -326,30 +335,28 @@ public class DataTowerServiceImpl implements DataTowerService { } - public TreeMap getTimeTreeMap(){ - TreeMap timemap=new TreeMap(); - timemap.put("06:00",0); - timemap.put("07:00",0); - timemap.put("08:00",0); - timemap.put("09:00",0); - timemap.put("10:00",0); - timemap.put("11:00",0); - timemap.put("12:00",0); - timemap.put("13:00",0); - timemap.put("14:00",0); - timemap.put("15:00",0); - timemap.put("16:00",0); - timemap.put("17:00",0); - timemap.put("18:00",0); - timemap.put("19:00",0); - timemap.put("20:00",0); - timemap.put("21:00",0); - timemap.put("22:00",0); - timemap.put("23:00",0); + public TreeMap getTimeTreeMap() { + TreeMap timemap = new TreeMap(); + timemap.put("06:00", 0); + timemap.put("07:00", 0); + timemap.put("08:00", 0); + timemap.put("09:00", 0); + timemap.put("10:00", 0); + timemap.put("11:00", 0); + timemap.put("12:00", 0); + timemap.put("13:00", 0); + timemap.put("14:00", 0); + timemap.put("15:00", 0); + timemap.put("16:00", 0); + timemap.put("17:00", 0); + timemap.put("18:00", 0); + timemap.put("19:00", 0); + timemap.put("20:00", 0); + timemap.put("21:00", 0); + timemap.put("22:00", 0); + timemap.put("23:00", 0); return timemap; } - - } diff --git a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml index 233382a60..dbcdf25f2 100644 --- a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml @@ -82,7 +82,7 @@ select id,DATE_FORMAT(DATE_ADD(create_date,INTERVAL 1 HOUR),'%H:00') create_time from wx_car_cmd_log where tenant_id = #{tenantId} and cmd_type=#{cmdType} and create_date BETWEEN #{startdate} and #{enddate} - ) c group by c.create_time + ) c group by c.create_time order by c.create_time