From 8ad50012c89f6cd99deb86fc9a2b5255cdd3c1dd Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 21 Feb 2022 18:24:01 +0800 Subject: [PATCH] =?UTF-8?q?/=E3=80=82=20baobiao=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxCarCmdLog.java | 11 +++ .../iformall/mapper/WxCarCmdLogMapper.java | 2 +- .../iformall/service/WxCarCmdLogService.java | 8 +- .../service/impl/WxCarCmdLogServiceImpl.java | 47 ++++++++-- .../service/impl/WxChartServiceImpl.java | 85 +++++++------------ .../resources/mapper/WxCarCmdLogMapper.xml | 14 +-- 6 files changed, 94 insertions(+), 73 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java index a06c55e05..27835d250 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.List; @TableName(value = "wx_car_cmd_log") @Data @@ -45,5 +46,15 @@ public class WxCarCmdLog extends TenantEntity { @TableField(exist = false) @io.swagger.annotations.ApiModelProperty(value="feeTime",name="feeTime") private String feeTime; + + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="停车厂家命令",name="cmdType") + private List cmdTypes; + + @TableField(exist = false) + private Date startdate; + @TableField(exist = false) + private Date enddate; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java index 257731f2d..c8b61a6b9 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java @@ -23,7 +23,7 @@ public interface WxCarCmdLogMapper extends CommonMapper { List> queryHistory(HashMap params); long queryHistoryCount(HashMap params); - List> queryTodayCar(HashMap params); + List> queryTodayCar(WxCarCmdLog wxCarCmdLog); List> queryWeekCarPay(HashMap params); BigDecimal queryCarPay(HashMap params); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java b/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java index 49663f176..dc8c69a30 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java @@ -54,11 +54,7 @@ public interface WxCarCmdLogService { WxCarCmdLog getBySynId(HashMap params); + Map getHourCountMap(WxCarCmdLog wxCarCmdLog); - - - - - - + long queryHistoryCount(HashMap weekParams); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java index 0c2409252..f9ff75f3a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java @@ -3,8 +3,11 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCarCmdLog; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.mapper.WxCarCmdLogMapper; +import com.iformall.mapper.WxMallMapper; import com.iformall.service.WxCarCmdLogService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +16,8 @@ import com.iformall.common.IdWorker; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { @@ -21,6 +26,9 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { @Autowired WxCarCmdLogMapper wxCarCmdLogMapper; + @Autowired + WxMallMapper wxMallMapper; + @Override public PageInfo listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize) { @@ -69,9 +77,38 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { return wxCarCmdLogMapper.queryBySynId(params); } - - - - - + @Override + public Map getHourCountMap(WxCarCmdLog wxCarCmdLog) { + if(StringUtils.isBlank(wxCarCmdLog.getTenantId()) + && StringUtils.isNotBlank(wxCarCmdLog.getParentTenantId())){ + List tenantEntitys = wxMallMapper.getTenantEntitys(wxCarCmdLog); + int count = 0; + Map map = new HashMap<>(); + for (TenantEntity tenantEntity:tenantEntitys) { + wxCarCmdLog.updateTenantInfo(tenantEntity); + List> list = wxCarCmdLogMapper.queryTodayCar(wxCarCmdLog); + Map collect = list.stream().collect(Collectors.toMap(m -> { + return (String)m.get("create_time"); + }, m -> { + return (Integer)m.get("carcount"); + })); + collect.forEach((key,value) -> map.merge(key,value,Integer::sum)); + } + return map; + } + List> list = wxCarCmdLogMapper.queryTodayCar(wxCarCmdLog); + Map collect = list.stream().collect(Collectors.toMap(m -> { + return (String)m.get("create_time"); + }, m -> { + return (Integer)m.get("carcount"); + })); + return collect; + } + + @Override + public long queryHistoryCount(HashMap weekParams) { + return wxCarCmdLogMapper.queryHistoryCount(weekParams); + } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 66b8a8053..3fca127e3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -58,7 +57,7 @@ public class WxChartServiceImpl implements WxChartDataService { @Autowired WxMerchantTradeDailyMapper wxMerchantTradeDailyMapper; @Autowired - WxCarCmdLogMapper wxCarCmdLogMapper; + WxCarCmdLogService wxCarCmdLogService; @Autowired WxCouponOrderMapper wxCouponOrderMapper; @Autowired @@ -852,22 +851,14 @@ public class WxChartServiceImpl implements WxChartDataService { String systemTime = DateUtils.getSystemTime("yyyy-MM-dd"); String yesterday = DateUtils.getTimeBefore(1, new Date()); String lastweek = DateUtils.getTimeBefore(7, new Date()); - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); - HashMap params = new HashMap<>(); - params.put("tenantEntitys",tenantEntitys); - params.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params.put("parentTenantId", tenantEntity.getParentTenantId()); - } - params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); - params.put("startdate", systemTime + " 05:00:00"); - params.put("enddate", DateUtils.getSystemTime("yyyy-MM-dd HH:mm:ss")); - List> todayCarlist = wxCarCmdLogMapper.queryTodayCar(params); - Map todaycollect = todayCarlist.stream().collect(Collectors.toMap(m -> { - return m.get("create_time"); - }, m -> { - return m.get("carcount"); - })); + + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); + wxCarCmdLog.updateTenantInfo(tenantEntity); + wxCarCmdLog.setCmdTypes(EnumCarCmd.getCarIn()); + wxCarCmdLog.setStartdate(DateUtils.stringToDate(systemTime + " 05:00:00","yyyy-MM-dd HH:mm:ss")); + wxCarCmdLog.setEnddate(new Date()); + Map todaycollect = wxCarCmdLogService.getHourCountMap(wxCarCmdLog); + List hourList = new ArrayList<>(); Calendar instance = Calendar.getInstance(); instance.add(Calendar.HOUR_OF_DAY, 1); @@ -887,28 +878,19 @@ public class WxChartServiceImpl implements WxChartDataService { } datamap.put("currentimeindex", hourList); datamap.put("todaycardata", todayCarList); - 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 -> { - return m.get("carcount"); - })); + + wxCarCmdLog.setStartdate(DateUtils.stringToDate(yesterday + " 05:00:00","yyyy-MM-dd HH:mm:ss")); + wxCarCmdLog.setEnddate(DateUtils.stringToDate(yesterday + " 22:59:59","yyyy-MM-dd HH:mm:ss")); + Map yesterdaycollect = wxCarCmdLogService.getHourCountMap(wxCarCmdLog); List yesterdayCarList = new ArrayList<>(); for (int i = startHour; i < endHour; i++) { yesterdayCarList.add(yesterdaycollect.get((Object) hourList.get(i-startHour))); } datamap.put("yesterdaycardata", yesterdayCarList); - params.put("startdate", lastweek + " 05:00:00"); - params.put("enddate", lastweek + " 22:59:59"); - List> lastdayCarlist = wxCarCmdLogMapper.queryTodayCar(params); - Map lastweekdaycollect = lastdayCarlist.stream().collect(Collectors.toMap(m -> { - return m.get("create_time"); - }, m -> { - return m.get("carcount"); - })); + wxCarCmdLog.setStartdate(DateUtils.stringToDate(lastweek + " 05:00:00","yyyy-MM-dd HH:mm:ss")); + wxCarCmdLog.setEnddate(DateUtils.stringToDate(lastweek + " 22:59:59","yyyy-MM-dd HH:mm:ss")); + Map lastweekdaycollect = wxCarCmdLogService.getHourCountMap(wxCarCmdLog); List lastweekdayCarList = new ArrayList<>(); for (int i = startHour; i < endHour; i++) { lastweekdayCarList.add(lastweekdaycollect.get((Object) hourList.get(i-startHour))); @@ -941,14 +923,14 @@ public class WxChartServiceImpl implements WxChartDataService { })); List tjTimeList = DateUtils.getTjTimeList(startdate, enddate, "0"); List timeList = new ArrayList<>(); - List valList = new ArrayList<>(); + List valList = new ArrayList<>(); for (String date : tjTimeList) { - Object o = collect.get(date); + String o = collect.get(date); timeList.add(date.substring(5).replace("-", "/")); - if (o == null) { + if (StringUtils.isBlank(o)) { valList.add(0L); } else { - valList.add(o); + valList.add(Long.parseLong(o)); } } Map map = new HashMap(); @@ -1007,7 +989,7 @@ public class WxChartServiceImpl implements WxChartDataService { weekParams.put("startdate", oneWeekStartdate + " 00:00:00"); weekParams.put("enddate", oneWeekEndDate + " 23:59:59"); weekParams.put("cmdTypes", EnumCarCmd.getCarPay()); - datamap.put("oneWeekCarPayCount", wxCarCmdLogMapper.queryHistoryCount(weekParams)); + datamap.put("oneWeekCarPayCount", wxCarCmdLogService.queryHistoryCount(weekParams)); return new ResultData(datamap); } @@ -1018,23 +1000,18 @@ public class WxChartServiceImpl implements WxChartDataService { */ private ResultData getCarPayCountInWeek(TenantEntity tenantEntity) { HashMap datamap = new HashMap<>(); - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); - HashMap weekParams = new HashMap<>(); - weekParams.put("tenantEntitys",tenantEntitys); - weekParams.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - weekParams.put("parentTenantId", tenantEntity.getParentTenantId()); - } String oneWeekStartdate = DateUtils.getTimeBefore(7, new Date()); String oneWeekEndDate = DateUtils.getTimeBefore(1, new Date()); - weekParams.put("startdate", oneWeekStartdate + " 00:00:00"); - weekParams.put("enddate", oneWeekEndDate + " 23:59:59"); - weekParams.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PAY_MANUAL.getCode()); - List> weekCarPayHistoryList = wxCarCmdLogMapper.queryWeekCarPay(weekParams); - Map weekCollect = weekCarPayHistoryList.stream().collect(Collectors.toMap(m -> { - return (String) m.get("create_time"); + WxChartDataEntity chartData = new WxChartDataEntity(); + chartData.updateTenantInfo(tenantEntity); + chartData.setType(EnumChartType.CAR_PAY_FEE.getCode()); + chartData.setStartTime(DateUtils.stringToDate(oneWeekStartdate + " 00:00:00","yyyy-MM-dd HH:mm:ss")); + chartData.setEndTime(DateUtils.stringToDate(oneWeekEndDate + " 23:59:59","yyyy-MM-dd HH:mm:ss")); + List list = wxChartDataMapper.findList(chartData); + Map weekCollect = list.stream().collect(Collectors.toMap(m -> { + return new SimpleDateFormat("yyyy-MM-dd").format(m.getQuerytime()); }, m -> { - return m.get("fee"); + return m.getResult(); })); List days = DateUtils.getTjTimeList(oneWeekStartdate, oneWeekEndDate, "0"); List timeList = new ArrayList<>(); @@ -1042,7 +1019,7 @@ public class WxChartServiceImpl implements WxChartDataService { for (String date : days) { String dateStr = date.substring(5, date.length()).replace("-", "/"); timeList.add(dateStr); - Object o = weekCollect.get(dateStr); + String o = weekCollect.get(dateStr); if (o == null) { valList.add(0L); } else { diff --git a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml index 89903a460..c7ae23e6c 100644 --- a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml @@ -104,12 +104,12 @@ and create_date BETWEEN #{startdate} and #{enddate} - + select DATE_FORMAT(DATE_ADD(create_date,INTERVAL 1 HOUR),'%H:00') create_time,count(id) carcount + from wx_car_cmd_log where cmd_type in + + #{cmdTypeItem} + and `tenant_id` = #{tenantId} @@ -117,7 +117,7 @@ and `parent_tenant_id` = #{parentTenantId} and create_date BETWEEN #{startdate} and #{enddate} - ) c group by c.create_time order by c.create_time + group by create_time order by create_time