|
|
|
@@ -50,7 +50,6 @@ public class DataTowerServiceImpl implements DataTowerService { |
|
|
|
WxBillRentMapper wxBillRentMapper; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Map<String, Object> 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<String,Object> params=new HashMap<>(); |
|
|
|
params.put("tenantId",tenantId); |
|
|
|
Map<String, Object> 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<String,Object> payinfo=wxBillRentMapper.queryPayInfo(params); |
|
|
|
if(payinfo!=null){ |
|
|
|
params.put("receiveDate", DateUtils.date2String(calendar.getTime(), "yyyy-MM")); |
|
|
|
Map<String, Object> 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<WxMerchantTradeDaily> 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<Map<String,Object>> recordlist=wxDateAmountRecordMapper.queryprice(tenantId); |
|
|
|
List<Map<String, Object>> recordlist = wxDateAmountRecordMapper.queryprice(tenantId); |
|
|
|
Map<Object, Object> 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<String, Object> queryCar(String tenantId) { |
|
|
|
HashMap<Object, Object> 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<String> 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<Map<String,Object>> historylist=wxCarCmdLogMapper.queryHistory(params); |
|
|
|
List<Map<String, Object>> historylist = wxCarCmdLogMapper.queryHistory(params); |
|
|
|
|
|
|
|
Map<Object, Object> 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<String, Object> 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<Map<String,Object>> todayCarlist=wxCarCmdLogMapper.queryTodayCar(params); |
|
|
|
List<Map<String, Object>> todayCarlist = wxCarCmdLogMapper.queryTodayCar(params); |
|
|
|
Map<Object, Object> 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<Object, Object> 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<Map<String,Object>> yesterdayCarlist=wxCarCmdLogMapper.queryTodayCar(params); |
|
|
|
params.put("startdate", yesterday + " 05:00:00"); |
|
|
|
params.put("enddate", yesterday + " 22:59:59"); |
|
|
|
List<Map<String, Object>> yesterdayCarlist = wxCarCmdLogMapper.queryTodayCar(params); |
|
|
|
Map<Object, Object> 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<Map<String,Object>> 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<Map<String, Object>> lastdayCarlist = wxCarCmdLogMapper.queryTodayCar(params); |
|
|
|
Map<Object, Object> 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<WxMall> list = wxMallMapper.findList(wxMall); |
|
|
|
wxMall = list.get(0); |
|
|
|
String username=wxMall.getWiwideId(); |
|
|
|
String authVal=encrypt(wxMall.getWiwideKey()); |
|
|
|
Map<String,String> params=new HashMap<>(); |
|
|
|
params.put("username",username); |
|
|
|
params.put("authVal",authVal); |
|
|
|
String username = wxMall.getWiwideId(); |
|
|
|
String authVal = encrypt(wxMall.getWiwideKey()); |
|
|
|
Map<String, String> 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<String, Object> 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<Object,Object> 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<Object, Object> 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; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |