소스 검색

[数据塔台][车流数据][修改实时流量]

release_toaliyun_real
gongbiao 7 년 전
부모
커밋
4f63c00346
2개의 변경된 파일131개의 추가작업 그리고 124개의 파일을 삭제
  1. +130
    -123
      mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java
  2. +1
    -1
      mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml

+ 130
- 123
mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java 파일 보기

@@ -50,7 +50,6 @@ public class DataTowerServiceImpl implements DataTowerService {
WxBillRentMapper wxBillRentMapper; WxBillRentMapper wxBillRentMapper;





@Override @Override
public Map<String, Object> queryRunning(String tenantId) { public Map<String, Object> queryRunning(String tenantId) {
WxShop wxShop = new WxShop(); WxShop wxShop = new WxShop();
@@ -65,48 +64,48 @@ public class DataTowerServiceImpl implements DataTowerService {
int yczsize = yczlist.size(); int yczsize = yczlist.size();
int wczsize = wczlist.size(); int wczsize = wczlist.size();
int size = yczsize + wczsize; 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 dczl = new BigDecimal(yczld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
double wczld = ((double) wczsize / size) * 100; double wczld = ((double) wczsize / size) * 100;
double wczl = new BigDecimal(wczld).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 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 calendar = Calendar.getInstance();//日历对象
calendar.setTime(new Date());//设置当前日期 calendar.setTime(new Date());//设置当前日期
calendar.add(Calendar.MONTH, -1);//月份减一 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 receivepay = (BigDecimal) payinfo.get("receivepay");
BigDecimal pay = (BigDecimal) payinfo.get("pay"); 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(); 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); List<WxMerchantTradeDaily> tradelist = wxMerchantTradeDailyMapper.findList(wxMerchantTradeDaily);
int merchantsize = merchants.size(); int merchantsize = merchants.size();
int tradesize = tradelist.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(); 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(); 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 -> { 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 -> { }, m -> {
return m.get("price"); return m.get("price");
})); }));
@@ -154,7 +153,7 @@ public class DataTowerServiceImpl implements DataTowerService {
return r.getPayPrice().intValue(); return r.getPayPrice().intValue();
})));*/ })));*/


datamap.put("records",recordmap);
datamap.put("records", recordmap);


return datamap; return datamap;
} }
@@ -162,17 +161,17 @@ public class DataTowerServiceImpl implements DataTowerService {
@Override @Override
public Map<String, Object> queryCar(String tenantId) { public Map<String, Object> queryCar(String tenantId) {
HashMap<Object, Object> params = new HashMap<>(); 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 startdate = DateUtils.getTimeBefore(30, new Date());
String systemTime = DateUtils.getSystemTime("yyyy-MM-dd"); String systemTime = DateUtils.getSystemTime("yyyy-MM-dd");


List<String> tjTimeList = DateUtils.getTjTimeList(startdate, systemTime, "0"); 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 -> { Map<Object, Object> collect = historylist.stream().collect(Collectors.toMap(m -> {
return m.get("create_date"); return m.get("create_date");
@@ -180,12 +179,12 @@ public class DataTowerServiceImpl implements DataTowerService {
return m.get("carcount"); return m.get("carcount");
})); }));


for(String date:tjTimeList){
for (String date : tjTimeList) {
Object o = collect.get(date); 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 { } 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); historymap.putAll(collect);


Map<String, Object> datamap = new HashMap<>(); Map<String, Object> datamap = new HashMap<>();
datamap.put("history",historymap);
datamap.put("history", historymap);


//今日车流量 //今日车流量
long todaycar = (long) collect.get(DateUtils.getSystemTime("MM/dd")); 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(); 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(); 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 -> { Map<Object, Object> todaycollect = todayCarlist.stream().collect(Collectors.toMap(m -> {
return m.get("create_time"); return m.get("create_time");
}, m -> { }, m -> {
return m.get("carcount"); 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()); 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 -> { Map<Object, Object> yesterdaycollect = yesterdayCarlist.stream().collect(Collectors.toMap(m -> {
return m.get("create_time"); return m.get("create_time");
}, m -> { }, m -> {
@@ -244,12 +256,13 @@ public class DataTowerServiceImpl implements DataTowerService {
TreeMap yesterdaytreemap = getTimeTreeMap(); TreeMap yesterdaytreemap = getTimeTreeMap();
yesterdaytreemap.putAll(yesterdaycollect); 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 -> { Map<Object, Object> lastdaycollect = lastdayCarlist.stream().collect(Collectors.toMap(m -> {
return m.get("create_time"); return m.get("create_time");
}, m -> { }, m -> {
@@ -257,7 +270,7 @@ public class DataTowerServiceImpl implements DataTowerService {
})); }));
TreeMap lastdaytreemap = getTimeTreeMap(); TreeMap lastdaytreemap = getTimeTreeMap();
lastdaytreemap.putAll(lastdaycollect); lastdaytreemap.putAll(lastdaycollect);
datamap.put("lastdaycardata",lastdaytreemap);
datamap.put("lastdaycardata", lastdaytreemap);




return datamap; return datamap;
@@ -271,51 +284,47 @@ public class DataTowerServiceImpl implements DataTowerService {
wxMall.setTenantId(tenantId); wxMall.setTenantId(tenantId);
List<WxMall> list = wxMallMapper.findList(wxMall); List<WxMall> list = wxMallMapper.findList(wxMall);
wxMall = list.get(0); 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 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<>(); 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; 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); String md5 = HashUtil.md5(key);
int x = 0;
int x = 0;
int len = data.length(); 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; x = 0;
} }
datachar[i]=md5.charAt(x);
datachar[i] = md5.charAt(x);
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 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); chars.append(v);
} }


byte[] bytes=null;
byte[] bytes = null;
try { try {
bytes = chars.toString().getBytes("ISO-8859-1"); bytes = chars.toString().getBytes("ISO-8859-1");
} catch (Exception e) { } 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; return timemap;
} }






} }

+ 1
- 1
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 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} from wx_car_cmd_log where tenant_id = #{tenantId} and cmd_type=#{cmdType}
and create_date BETWEEN #{startdate} and #{enddate} and create_date BETWEEN #{startdate} and #{enddate}
) c group by c.create_time
) c group by c.create_time order by c.create_time
</select> </select>


<select id="queryForSceneRepotyHistoryCar" resultType="com.iformall.domain.vo.MarkingSceneDataVo" parameterType="hashmap"> <select id="queryForSceneRepotyHistoryCar" resultType="com.iformall.domain.vo.MarkingSceneDataVo" parameterType="hashmap">


불러오는 중...
취소
저장