|
|
|
@@ -1,10 +1,13 @@ |
|
|
|
package com.iformall.schedule; |
|
|
|
|
|
|
|
import com.iformall.domain.dto.WxCUserBasicInfoDto; |
|
|
|
import com.iformall.domain.po.WxChartDataEntity; |
|
|
|
import com.iformall.domain.po.WxMall; |
|
|
|
import com.iformall.enums.EnumCarCmd; |
|
|
|
import com.iformall.enums.EnumChartType; |
|
|
|
import com.iformall.mapper.WxCUserCarMapper; |
|
|
|
import com.iformall.mapper.WxCarCmdLogMapper; |
|
|
|
import com.iformall.mapper.WxChartDataMapper; |
|
|
|
import com.iformall.mapper.WxMallMapper; |
|
|
|
import com.iformall.utils.DateUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
@@ -36,10 +39,13 @@ public class ChartDataSchedule { |
|
|
|
@Autowired |
|
|
|
WxCUserCarMapper wxCUserCarMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WxChartDataMapper wxChartDataMapper; |
|
|
|
|
|
|
|
/** |
|
|
|
* 车流数据 每天9点执行 |
|
|
|
* 车相关数据 每天9点执行 |
|
|
|
*/ |
|
|
|
@Scheduled(cron = "0 0 9 * * ?") |
|
|
|
@Scheduled(cron = "0 0 1 * * ?") |
|
|
|
|
|
|
|
public void createCarData() { |
|
|
|
createCarPayFeeCountData(); |
|
|
|
@@ -51,38 +57,78 @@ public class ChartDataSchedule { |
|
|
|
public void createCarPayFeeCountData() { |
|
|
|
HashMap<String, Object> params = new HashMap<>(); |
|
|
|
params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); |
|
|
|
String startdate = DateUtils.getTimeBefore(1, new Date()); |
|
|
|
String showdate = startdate.substring(5).replace("-", "/"); |
|
|
|
Date createtime = new Date(); |
|
|
|
String startdate = DateUtils.getTimeBefore(1, createtime); |
|
|
|
Date date = DateUtils.stringToDate(startdate); |
|
|
|
long time = date.getTime(); |
|
|
|
params.put("startdate", startdate + " 00:00:00"); |
|
|
|
params.put("enddate", startdate + " 23:59:59"); |
|
|
|
List<WxMall> wxMalls = wxMallMapper.selectAll(); |
|
|
|
for (WxMall wxMall : wxMalls) { |
|
|
|
String tenantId = wxMall.getTenantId(); |
|
|
|
params.put("tenantId", tenantId); |
|
|
|
//出场车数 |
|
|
|
List<Map<String, Object>> historylist = wxCarCmdLogMapper.queryHistory(params); |
|
|
|
Long carOutCount = historylist.isEmpty() ? 0L : (Long) historylist.get(0).get("carcount"); |
|
|
|
logger.info("出场车数>>>>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
carOutData(params, createtime, date, tenantId); |
|
|
|
params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PAY_MANUAL.getCode()); |
|
|
|
//缴费车辆 |
|
|
|
Long carPayFeeCount = wxCarCmdLogMapper.queryWeekCarPayCount(params); |
|
|
|
//缴费金额 |
|
|
|
List<Map<String, Object>> weekCarPayHistoryList = wxCarCmdLogMapper.queryWeekCarPay(params); |
|
|
|
BigDecimal fee = weekCarPayHistoryList.isEmpty() ? new BigDecimal(0) : (BigDecimal) weekCarPayHistoryList.get(0).get("fee"); |
|
|
|
//新增会员 |
|
|
|
List<Map<String, Object>> carCountHistory = wxCUserCarMapper.queryCarCountHistory(params); |
|
|
|
Long userCount = carCountHistory.isEmpty() ? 0L : (Long) carCountHistory.get(0).get("count"); |
|
|
|
//新增停车会员 |
|
|
|
WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); |
|
|
|
wxCUserBasicInfoDto.setTenantId(tenantId); |
|
|
|
wxCUserBasicInfoDto.setStartTime(date); |
|
|
|
wxCUserBasicInfoDto.setEndTime(date); |
|
|
|
Integer carUserCount = wxCUserCarMapper.countUser(wxCUserBasicInfoDto); |
|
|
|
//已绑车辆 |
|
|
|
Long todaybindcar = wxCUserCarMapper.queryCarCount(params); |
|
|
|
|
|
|
|
logger.info("缴费车辆>>>>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
carPaidData(params, createtime, date, tenantId); |
|
|
|
logger.info("缴费金额>>>>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
carPayFeeData(params, createtime, date, tenantId); |
|
|
|
logger.info("新增会员>>>>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
carMemberData(params, createtime, date, tenantId); |
|
|
|
logger.info("新增停车会员>>>>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
carNewMemberData(createtime, date, tenantId); |
|
|
|
logger.info("已绑车辆>>>>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
carBindData(params, createtime, date, tenantId); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void carBindData(HashMap<String, Object> params, Date createtime, Date date, String tenantId) { |
|
|
|
Long todaybindcar = wxCUserCarMapper.queryCarCount(params); |
|
|
|
addChartData(tenantId, todaybindcar.toString(), EnumChartType.CAR_BIND.getCode(), date, createtime); |
|
|
|
} |
|
|
|
|
|
|
|
public void carNewMemberData(Date createtime, Date date, String tenantId) { |
|
|
|
WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); |
|
|
|
wxCUserBasicInfoDto.setTenantId(tenantId); |
|
|
|
wxCUserBasicInfoDto.setStartTime(date); |
|
|
|
wxCUserBasicInfoDto.setEndTime(date); |
|
|
|
Integer carUserCount = wxCUserCarMapper.countUser(wxCUserBasicInfoDto); |
|
|
|
addChartData(tenantId, carUserCount.toString(), EnumChartType.CAR_NEW_MEMBER.getCode(), date, createtime); |
|
|
|
} |
|
|
|
|
|
|
|
public void carMemberData(HashMap<String, Object> params, Date createtime, Date date, String tenantId) { |
|
|
|
List<Map<String, Object>> carCountHistory = wxCUserCarMapper.queryCarCountHistory(params); |
|
|
|
Long userCount = carCountHistory.isEmpty() ? 0L : (Long) carCountHistory.get(0).get("count"); |
|
|
|
addChartData(tenantId, userCount.toString(), EnumChartType.CAR_MEMBER.getCode(), date, createtime); |
|
|
|
} |
|
|
|
|
|
|
|
public void carPayFeeData(HashMap<String, Object> params, Date createtime, Date date, String tenantId) { |
|
|
|
List<Map<String, Object>> weekCarPayHistoryList = wxCarCmdLogMapper.queryWeekCarPay(params); |
|
|
|
BigDecimal fee = weekCarPayHistoryList.isEmpty() ? new BigDecimal(0) : (BigDecimal) weekCarPayHistoryList.get(0).get("fee"); |
|
|
|
addChartData(tenantId, fee.toString(), EnumChartType.CAR_PAY_FEE.getCode(), date, createtime); |
|
|
|
} |
|
|
|
|
|
|
|
public void carPaidData(HashMap<String, Object> params, Date createtime, Date date, String tenantId) { |
|
|
|
Long carPayFeeCount = wxCarCmdLogMapper.queryWeekCarPayCount(params); |
|
|
|
addChartData(tenantId, carPayFeeCount.toString(), EnumChartType.CAR_PAID.getCode(), date, createtime); |
|
|
|
} |
|
|
|
|
|
|
|
public void carOutData(HashMap<String, Object> params, Date createtime, Date date, String tenantId) { |
|
|
|
List<Map<String, Object>> historylist = wxCarCmdLogMapper.queryHistory(params); |
|
|
|
Long carOutCount = historylist.isEmpty() ? 0L : (Long) historylist.get(0).get("carcount"); |
|
|
|
addChartData(tenantId, carOutCount.toString(), EnumChartType.CAR_OUT.getCode(), date, createtime); |
|
|
|
} |
|
|
|
|
|
|
|
private void addChartData(String tenantId, String result, Integer type, Date querytime, Date createtime) { |
|
|
|
logger.info("即将插入数据>>>>>>>>>>>>>>>>>>>>>>>"); |
|
|
|
WxChartDataEntity wxChartDataEntity = new WxChartDataEntity(); |
|
|
|
wxChartDataEntity.setTenantId(tenantId); |
|
|
|
wxChartDataEntity.setResult(result); |
|
|
|
wxChartDataEntity.setType(type); |
|
|
|
wxChartDataEntity.setQuerytime(querytime); |
|
|
|
wxChartDataEntity.setCreatetime(createtime); |
|
|
|
logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>" + wxChartDataEntity.toString()); |
|
|
|
wxChartDataMapper.insertSelective(wxChartDataEntity); |
|
|
|
} |
|
|
|
|
|
|
|
} |