| @@ -46,8 +46,8 @@ public class KwMeterDataController extends BaseController { | |||||
| @ApiOperation("获取电量") | @ApiOperation("获取电量") | ||||
| @GetMapping("getMeterUsedPower") | |||||
| public Result getMeterUsedPower(@ModelAttribute KwMeterDataDto kwMeterDataDto) { | |||||
| @GetMapping("getPower") | |||||
| public Result getMeterPower(@ModelAttribute KwMeterDataDto kwMeterDataDto) { | |||||
| if (kwMeterDataDto == null) | if (kwMeterDataDto == null) | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | ||||
| @@ -60,7 +60,7 @@ public class KwMeterDataController extends BaseController { | |||||
| if (kwMeterDataDto.getEndTime() == null && kwMeterDataDto.getEndNumber() == null) | if (kwMeterDataDto.getEndTime() == null && kwMeterDataDto.getEndNumber() == null) | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | ||||
| return new ResultData(kwMeterDataService.getMeterUsedPower(kwMeterDataDto)); | |||||
| return new ResultData(kwMeterDataService.getPower(kwMeterDataDto)); | |||||
| } | } | ||||
| @@ -64,7 +64,7 @@ public enum EnumChart { | |||||
| BUSINESS(54,"业态分析"), | BUSINESS(54,"业态分析"), | ||||
| POWER_SUMMERY(54,"电能分析"), | |||||
| POWER_SUMMERY(55,"电能分析"), | |||||
| ; | ; | ||||
| public static EnumChart getEnum(Integer code) { | public static EnumChart getEnum(Integer code) { | ||||
| @@ -8,7 +8,8 @@ public enum EnumMeterDataReportType { | |||||
| VALID(0, "全量"), | VALID(0, "全量"), | ||||
| HOUR(1, "时"), | HOUR(1, "时"), | ||||
| DAY(2, "日"), | DAY(2, "日"), | ||||
| MONTH(3, "月"); | |||||
| MONTH(3, "月"), | |||||
| BY_HOUR(4, "时分"); | |||||
| public static EnumMeterDataReportType getEnum(Integer code) { | public static EnumMeterDataReportType getEnum(Integer code) { | ||||
| for (EnumMeterDataReportType value : values()) { | for (EnumMeterDataReportType value : values()) { | ||||
| if (value.getCode().equals(code)) { | if (value.getCode().equals(code)) { | ||||
| @@ -16,7 +16,9 @@ import com.iformall.service.MarkingDataReportService; | |||||
| import com.iformall.service.WxBusinessService; | import com.iformall.service.WxBusinessService; | ||||
| import com.iformall.service.WxChartDataService; | import com.iformall.service.WxChartDataService; | ||||
| import com.iformall.service.WxCouponService; | import com.iformall.service.WxCouponService; | ||||
| import com.iformall.service.kw.KwMerchantMeterService; | |||||
| import com.iformall.service.kw.KwMeterDataService; | import com.iformall.service.kw.KwMeterDataService; | ||||
| import com.iformall.service.kw.KwMeterService; | |||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import org.apache.commons.collections.CollectionUtils; | import org.apache.commons.collections.CollectionUtils; | ||||
| import org.apache.commons.collections.map.HashedMap; | import org.apache.commons.collections.map.HashedMap; | ||||
| @@ -84,6 +86,11 @@ public class WxChartServiceImpl implements WxChartDataService { | |||||
| @Autowired | @Autowired | ||||
| KwMeterDataService kwMeterDataService; | KwMeterDataService kwMeterDataService; | ||||
| @Autowired | |||||
| KwMerchantMeterService kwMerchantMeterService; | |||||
| @Autowired | |||||
| KwMeterService kwMeterService; | |||||
| @Override | @Override | ||||
| public ResultData queryData(Map<String, String> paramsMap) { | public ResultData queryData(Map<String, String> paramsMap) { | ||||
| @@ -347,26 +354,66 @@ public class WxChartServiceImpl implements WxChartDataService { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| private ResultData getPowerSummery(String tenantId,Map<String, String> paramsMap){ | private ResultData getPowerSummery(String tenantId,Map<String, String> paramsMap){ | ||||
| /* | |||||
| Map<String,Long> resultMap = new LinkedMap(); | |||||
| Map<String,Object> resultMap = new LinkedMap(); | |||||
| KwMeterDataDto kwMeterDataDto = new KwMeterDataDto(); | KwMeterDataDto kwMeterDataDto = new KwMeterDataDto(); | ||||
| kwMeterDataDto.setStartTime(); | |||||
| kwMeterDataDto.setEndTime(); | |||||
| kwMeterDataDto.setStartTime(addDay(-29)); | |||||
| kwMeterDataDto.setEndTime(addDay(1)); | |||||
| kwMeterDataDto.setTenantId(tenantId); | kwMeterDataDto.setTenantId(tenantId); | ||||
| kwMeterDataDto.setReportType(EnumMeterDataReportType.DAY.getCode()); | kwMeterDataDto.setReportType(EnumMeterDataReportType.DAY.getCode()); | ||||
| List<KwMeterDataVo> kwMeterDataVos = kwMeterDataService.findVoList(new WxBusiness()); | |||||
| Map<String,Object> query = new HashedMap(); | |||||
| query.put("tenantId",tenantId); | |||||
| query.put("id",paramsMap.get("id")); | |||||
| query.put("buildingId",paramsMap.get("buildingId")); | |||||
| List<Map<String,Object>> mapList = wxMerchantMapper.findBusByFloorId(query); | |||||
| for (Map<String,Object> map:mapList) { | |||||
| resultMap.put((String)map.get("btitle"),(Long)map.get("count")); | |||||
| List<KwMeterDataVo> kwMeterDataVos = kwMeterDataService.findVoList(kwMeterDataDto); | |||||
| List<KwMeterDataVo> monthDailyPower = new ArrayList<>(); | |||||
| for (int i = 30; i >= 0; i--) { | |||||
| String date = new SimpleDateFormat("yyyy-MM-dd").format(addDay(-i)); | |||||
| Optional<KwMeterDataVo> optionalKwMeterDataVo = kwMeterDataVos.stream().filter(md->md.getReportTime().equals(date)).findFirst(); | |||||
| if (optionalKwMeterDataVo.isPresent()) | |||||
| monthDailyPower.add(optionalKwMeterDataVo.get()); | |||||
| else { | |||||
| KwMeterDataVo kwMeterDataVo = new KwMeterDataVo(); | |||||
| kwMeterDataVo.setReportTime(date); | |||||
| monthDailyPower.add(kwMeterDataVo); | |||||
| } | |||||
| } | } | ||||
| */ | |||||
| return new ResultData(); | |||||
| resultMap.put("monthDailyPower",monthDailyPower); | |||||
| kwMeterDataDto.setReportType(EnumMeterDataReportType.BY_HOUR.getCode()); | |||||
| List<KwMeterDataVo> monthHoursPower = kwMeterDataService.findVoList(kwMeterDataDto); | |||||
| resultMap.put("monthHoursPower",monthHoursPower); | |||||
| kwMeterDataDto = new KwMeterDataDto(); | |||||
| kwMeterDataDto.setStartTime(addDay(-29)); | |||||
| kwMeterDataDto.setEndTime(addDay(1)); | |||||
| kwMeterDataDto.setTenantId(tenantId); | |||||
| KwMeterDataVo currentPower = kwMeterDataService.getPower(kwMeterDataDto); | |||||
| resultMap.put("currentPower",currentPower); | |||||
| KwMeter kwMeter = new KwMeter(); | |||||
| kwMeter.setTenantId(tenantId); | |||||
| kwMeter.setStatus(EnumMeterStatus.VALID.getCode()); | |||||
| int meterCount = kwMeterService.selectCount(kwMeter); | |||||
| kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode()); | |||||
| int meterBindCount = kwMeterService.selectCount(kwMeter); | |||||
| resultMap.put("meterCount",meterCount); | |||||
| resultMap.put("meterBindCount",meterBindCount); | |||||
| KwMerchantMeter kwMerchantMeter = new KwMerchantMeter(); | |||||
| kwMerchantMeter.setTenantId(tenantId); | |||||
| kwMerchantMeter.setStatus(EnumMerchantMeterStatus.VALID.getCode()); | |||||
| int meterMerchantCount = kwMerchantMeterService.selectCount(kwMerchantMeter); | |||||
| resultMap.put("meterMerchantCount",meterMerchantCount); | |||||
| return new ResultData(resultMap); | |||||
| } | } | ||||
| @@ -19,5 +19,5 @@ public interface KwMeterDataService { | |||||
| int save(List<KwMeterData> recordList); | int save(List<KwMeterData> recordList); | ||||
| KwMeterDataVo getMeterUsedPower(KwMeterDataDto dto); | |||||
| KwMeterDataVo getPower(KwMeterDataDto dto); | |||||
| } | } | ||||
| @@ -55,5 +55,5 @@ public interface KwMeterService { | |||||
| */ | */ | ||||
| List<KwMeter> findList(KwMeter record); | List<KwMeter> findList(KwMeter record); | ||||
| int selectCount(KwMeter record); | |||||
| } | } | ||||
| @@ -86,5 +86,4 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { | |||||
| return kwMerchantMeterMapper.unbindBatch(record); | return kwMerchantMeterMapper.unbindBatch(record); | ||||
| } | } | ||||
| } | } | ||||
| @@ -56,7 +56,7 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public KwMeterDataVo getMeterUsedPower(KwMeterDataDto dto) | |||||
| public KwMeterDataVo getPower(KwMeterDataDto dto) | |||||
| { | { | ||||
| KwMeterDataVo usedPower = new KwMeterDataVo(); | KwMeterDataVo usedPower = new KwMeterDataVo(); | ||||
| usedPower.setMeterId(dto.getMeterId()); | usedPower.setMeterId(dto.getMeterId()); | ||||
| @@ -100,5 +100,4 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { | |||||
| return usedPower; | return usedPower; | ||||
| } | } | ||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.KwMeter; | import com.iformall.domain.po.KwMeter; | ||||
| import com.iformall.domain.po.KwMeterData; | |||||
| import com.iformall.mapper.KwMeterMapper; | import com.iformall.mapper.KwMeterMapper; | ||||
| import com.iformall.service.kw.KwMeterService; | import com.iformall.service.kw.KwMeterService; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -60,5 +61,8 @@ public class KwMeterServiceImpl implements KwMeterService { | |||||
| return kwMeterMapper.findList(record); | return kwMeterMapper.findList(record); | ||||
| } | } | ||||
| @Override | |||||
| public int selectCount(KwMeter record) { | |||||
| return kwMeterMapper.selectCount(record); | |||||
| } | |||||
| } | } | ||||
| @@ -95,19 +95,22 @@ | |||||
| <if test=" null != startTime and null != endTime "> | <if test=" null != startTime and null != endTime "> | ||||
| and `create_time` between #{startTime} and #{endTime} | and `create_time` between #{startTime} and #{endTime} | ||||
| </if> | </if> | ||||
| <if test=" null == reportType and null != reportTime"> | <if test=" null == reportType and null != reportTime"> | ||||
| and date_format(`create_time`, '%Y-%m-%d %H:00') = #{reportTime} | and date_format(`create_time`, '%Y-%m-%d %H:00') = #{reportTime} | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 1 == reportType and null != reportTime"> | |||||
| <if test=" 1 == reportType and null != reportTime"> | |||||
| and date_format(`create_time`, '%Y-%m-%d') = #{reportTime} | and date_format(`create_time`, '%Y-%m-%d') = #{reportTime} | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 2 == reportType and null != reportTime"> | |||||
| <if test=" 2 == reportType and null != reportTime"> | |||||
| and date_format(`create_time`, '%Y-%m') = #{reportTime} | and date_format(`create_time`, '%Y-%m') = #{reportTime} | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 3 == reportType and null != reportTime"> | |||||
| <if test=" 3 == reportType and null != reportTime"> | |||||
| and date_format(`create_time`, '%Y') = #{reportTime} | and date_format(`create_time`, '%Y') = #{reportTime} | ||||
| </if> | </if> | ||||
| <if test=" 4 == reportType and null != reportTime"> | |||||
| and date_format(`create_time`, '%Y-%m') = #{reportTime} | |||||
| </if> | |||||
| </sql> | </sql> | ||||
| @@ -115,10 +118,12 @@ | |||||
| select | select | ||||
| temp.tenant_id, | temp.tenant_id, | ||||
| temp.reportTime, | temp.reportTime, | ||||
| min(temp.recordStartTime) as recordStartTime, | |||||
| max(temp.recordEndTime) as recordEndTime, | |||||
| sum(temp.totalPower) as totalPower, | |||||
| sum(temp.lastTotalPower) as lastTotalPower, | |||||
| <if test="4 != reportType "> | |||||
| min(temp.recordStartTime) as recordStartTime, | |||||
| max(temp.recordEndTime) as recordEndTime, | |||||
| sum(temp.totalPower) as totalPower, | |||||
| sum(temp.lastTotalPower) as lastTotalPower, | |||||
| </if> | |||||
| sum(temp.usedPower) as usedPower | sum(temp.usedPower) as usedPower | ||||
| from | from | ||||
| (SELECT | (SELECT | ||||
| @@ -126,19 +131,24 @@ | |||||
| <if test=" null == reportType"> | <if test=" null == reportType"> | ||||
| create_time as reportTime, | create_time as reportTime, | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| <if test="1 == reportType "> | |||||
| date_format(create_time, '%Y-%m-%d %H:00') as reportTime, | date_format(create_time, '%Y-%m-%d %H:00') as reportTime, | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| <if test="2 == reportType "> | |||||
| date_format(create_time, '%Y-%m-%d') as reportTime, | date_format(create_time, '%Y-%m-%d') as reportTime, | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| <if test="3 == reportType "> | |||||
| date_format(create_time, '%Y-%m') as reportTime, | date_format(create_time, '%Y-%m') as reportTime, | ||||
| </if> | </if> | ||||
| min(last_device_time) as recordStartTime, | |||||
| min(last_total_power) as lastTotalPower, | |||||
| max(device_time) as recordEndTime, | |||||
| max(total_power) as totalPower, | |||||
| <if test="4 == reportType "> | |||||
| date_format(create_time, '%H:00') as reportTime, | |||||
| </if> | |||||
| <if test="4 != reportType "> | |||||
| min(last_device_time) as recordStartTime, | |||||
| min(last_total_power) as lastTotalPower, | |||||
| max(device_time) as recordEndTime, | |||||
| max(total_power) as totalPower, | |||||
| </if> | |||||
| sum(used_power) as usedPower | sum(used_power) as usedPower | ||||
| FROM kw_meter_data | FROM kw_meter_data | ||||
| <include refid="dynamicWhereConditionsVo"/> | <include refid="dynamicWhereConditionsVo"/> | ||||
| @@ -158,27 +168,27 @@ | |||||
| <select id="getPower" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap"> | <select id="getPower" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap"> | ||||
| SELECT | SELECT | ||||
| tenant_id,box_id,meter_id, | |||||
| <if test=" null == reportType"> | <if test=" null == reportType"> | ||||
| create_time as reportTime, | |||||
| now() as reportTime, | |||||
| </if> | </if> | ||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| <if test=" 1 == reportType "> | |||||
| date_format(create_time, '%Y-%m-%d %H:00') as reportTime, | date_format(create_time, '%Y-%m-%d %H:00') as reportTime, | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| <if test=" 2 == reportType "> | |||||
| date_format(create_time, '%Y-%m-%d') as reportTime, | date_format(create_time, '%Y-%m-%d') as reportTime, | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| <if test=" 3 == reportType "> | |||||
| date_format(create_time, '%Y-%m') as reportTime, | date_format(create_time, '%Y-%m') as reportTime, | ||||
| </if> | </if> | ||||
| <if test=" null != startTime"> | <if test=" null != startTime"> | ||||
| min(device_time) as recordStartTime, | min(device_time) as recordStartTime, | ||||
| min(total_power) as totalPower | |||||
| min(total_power) as totalPower, | |||||
| </if> | </if> | ||||
| <if test=" null != endTime"> | <if test=" null != endTime"> | ||||
| max(device_time) as recordEndTime, | max(device_time) as recordEndTime, | ||||
| max(total_power) as totalPower | |||||
| max(total_power) as totalPower, | |||||
| </if> | </if> | ||||
| tenant_id,box_id,meter_id | |||||
| FROM kw_meter_data | FROM kw_meter_data | ||||
| where 1 = 1 | where 1 = 1 | ||||
| <if test=" null != tenantId "> | <if test=" null != tenantId "> | ||||
| @@ -193,30 +203,30 @@ | |||||
| <if test=" null != startTime"> | <if test=" null != startTime"> | ||||
| <if test=" null == reportType"> | <if test=" null == reportType"> | ||||
| and create_time = #{startTime} | |||||
| and create_time > #{startTime} | |||||
| </if> | </if> | ||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| <if test=" 1 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d %H:00') = date_format(#{startTime}, '%Y-%m-%d %H:00') | and date_format(create_time, '%Y-%m-%d %H:00') = date_format(#{startTime}, '%Y-%m-%d %H:00') | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| <if test=" 2 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d') = date_format(#{startTime}, '%Y-%m-%d') | and date_format(create_time, '%Y-%m-%d') = date_format(#{startTime}, '%Y-%m-%d') | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| <if test=" 3 == reportType "> | |||||
| and date_format(create_time, '%Y-%m') = date_format(#{startTime}, '%Y-%m') | and date_format(create_time, '%Y-%m') = date_format(#{startTime}, '%Y-%m') | ||||
| </if> | </if> | ||||
| </if> | </if> | ||||
| <if test=" null != endTime"> | <if test=" null != endTime"> | ||||
| <if test=" null == reportType"> | <if test=" null == reportType"> | ||||
| and create_time = #{endTime} | |||||
| and create_time < #{endTime} | |||||
| </if> | </if> | ||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| <if test=" 1 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d %H:00') = date_format(#{endTime}, '%Y-%m-%d %H:00') | and date_format(create_time, '%Y-%m-%d %H:00') = date_format(#{endTime}, '%Y-%m-%d %H:00') | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| <if test=" 2 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d') = date_format(#{endTime}, '%Y-%m-%d') | and date_format(create_time, '%Y-%m-%d') = date_format(#{endTime}, '%Y-%m-%d') | ||||
| </if> | </if> | ||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| <if test=" 3 == reportType "> | |||||
| and date_format(create_time, '%Y-%m') = date_format(#{endTime}, '%Y-%m') | and date_format(create_time, '%Y-%m') = date_format(#{endTime}, '%Y-%m') | ||||
| </if> | </if> | ||||
| </if> | </if> | ||||