电表部分代码
This commit is contained in:
parent
53870d2d36
commit
29058b3094
@ -1,5 +1,7 @@
|
||||
package com.zhgd.xmgl.base.entity.vo;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import lombok.Data;
|
||||
|
||||
@ -35,9 +37,21 @@ public class TrendVo {
|
||||
vo.setY("0");
|
||||
vo.setX(day);
|
||||
}
|
||||
vo.setX(DateUtil.format(DateUtil.parseDate(vo.getX()), format));
|
||||
vo.setX(DateUtil.format(parse(vo.getX(), format), format));
|
||||
rtList.add(vo);
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param str
|
||||
* @param format
|
||||
* @return
|
||||
*/
|
||||
private static DateTime parse(String str, String format) {
|
||||
if ("yyyy-MM".equals(format)) {
|
||||
return DateUtil.parse(str, format);
|
||||
}
|
||||
return DateUtil.parse(str);
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ public interface AmmeterRecordDetailMapper extends BaseMapper<AmmeterRecordDetai
|
||||
|
||||
List<AmmeterRecordDetail> queryNewestRecord(Map<String, Object> map);
|
||||
|
||||
double getDegreeSum(Map<String, Object> map);
|
||||
Double getDegreeSum(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 查询用电量
|
||||
|
||||
@ -116,8 +116,8 @@
|
||||
group by b.ammeter_no
|
||||
</select>
|
||||
|
||||
<select id="getDegreeSum" resultType="double">
|
||||
select sum(ifnull(a.degree, 0))
|
||||
<select id="getDegreeSum" resultType="java.lang.Double">
|
||||
select ifnull(sum(ifnull(a.degree, 0)), 0)
|
||||
from ammeter_record_detail a
|
||||
WHERE a.project_sn = #{projectSn}
|
||||
<if test="ammeterNo != null and ammeterNo != ''">
|
||||
|
||||
@ -9,9 +9,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.xmgl.base.entity.vo.TrendVo;
|
||||
import com.zhgd.xmgl.modules.ammeter.entity.Ammeter;
|
||||
import com.zhgd.xmgl.modules.ammeter.entity.AmmeterMonthRecord;
|
||||
import com.zhgd.xmgl.modules.ammeter.entity.AmmeterRecordDetail;
|
||||
import com.zhgd.xmgl.modules.ammeter.entity.vo.CountAmmeterRecordDetailVo;
|
||||
import com.zhgd.xmgl.modules.ammeter.mapper.AmmeterMapper;
|
||||
import com.zhgd.xmgl.modules.ammeter.mapper.AmmeterMonthRecordMapper;
|
||||
import com.zhgd.xmgl.modules.ammeter.mapper.AmmeterRecordDetailMapper;
|
||||
import com.zhgd.xmgl.modules.ammeter.service.IAmmeterRecordDetailService;
|
||||
import com.zhgd.xmgl.modules.doublecarbon.entity.dto.DateValueDTO;
|
||||
@ -39,6 +41,8 @@ public class AmmeterRecordDetailServiceImpl extends ServiceImpl<AmmeterRecordDet
|
||||
@Autowired
|
||||
private AmmeterRecordDetailMapper ammeterRecordDetailMapper;
|
||||
@Autowired
|
||||
private AmmeterMonthRecordMapper ammeterMonthRecordMapper;
|
||||
@Autowired
|
||||
private AmmeterMapper ammeterMapper;
|
||||
|
||||
@Override
|
||||
@ -138,6 +142,8 @@ public class AmmeterRecordDetailServiceImpl extends ServiceImpl<AmmeterRecordDet
|
||||
public List<TrendVo> queryUseRecordTrend(Map<String, Object> map) {
|
||||
List<TrendVo> trendVos = new ArrayList<>();
|
||||
Integer type = MapUtils.getInteger(map, "type");
|
||||
String projectSn = MapUtils.getString(map, "projectSn");
|
||||
String ammeterNo = MapUtils.getString(map, "ammeterNo");
|
||||
if (Objects.equals(type, 1)) {
|
||||
//近7天
|
||||
List<AmmeterRecordDetail> ammeterRecordDetails = baseMapper.queryUseRecord(map);
|
||||
@ -162,7 +168,30 @@ public class AmmeterRecordDetailServiceImpl extends ServiceImpl<AmmeterRecordDet
|
||||
return TrendVo.fillTrendVos(list, days, "MM-dd");
|
||||
} else if (Objects.equals(type, 3)) {
|
||||
//近半年
|
||||
|
||||
List<AmmeterMonthRecord> ammeterMonthRecords = ammeterMonthRecordMapper.selectList(new LambdaQueryWrapper<AmmeterMonthRecord>()
|
||||
.eq(AmmeterMonthRecord::getAmmeterNo, ammeterNo)
|
||||
.eq(AmmeterMonthRecord::getAmmeterNo, projectSn));
|
||||
List<String> dateStrList = DateUtils.getDateStrList(90, "yyyy-MM");
|
||||
List<TrendVo> list = ammeterMonthRecords.stream().map(detail -> {
|
||||
TrendVo vo = new TrendVo();
|
||||
vo.setY(detail.getUseDegree() + "");
|
||||
vo.setX(detail.getMonthTime() + "");
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
return TrendVo.fillTrendVos(list, dateStrList, "yyyy-MM");
|
||||
} else if (Objects.equals(type, 4)) {
|
||||
//近一年
|
||||
List<AmmeterMonthRecord> ammeterMonthRecords = ammeterMonthRecordMapper.selectList(new LambdaQueryWrapper<AmmeterMonthRecord>()
|
||||
.eq(AmmeterMonthRecord::getAmmeterNo, ammeterNo)
|
||||
.eq(AmmeterMonthRecord::getAmmeterNo, projectSn));
|
||||
List<String> dateStrList = DateUtils.getDateStrList(93, "yyyy-MM");
|
||||
List<TrendVo> list = ammeterMonthRecords.stream().map(detail -> {
|
||||
TrendVo vo = new TrendVo();
|
||||
vo.setY(detail.getUseDegree() + "");
|
||||
vo.setX(detail.getMonthTime() + "");
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
return TrendVo.fillTrendVos(list, dateStrList, "yyyy-MM");
|
||||
}
|
||||
return trendVos;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhgd.xmgl.util;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@ -425,11 +426,11 @@ public class DateUtils {
|
||||
public static List<String> getCurrentMonthAllDayList() {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
Date now = new Date();
|
||||
DateTime beginDate = cn.hutool.core.date.DateUtil.beginOfMonth(now);
|
||||
DateTime endDate = cn.hutool.core.date.DateUtil.endOfMonth(now);
|
||||
long offset = cn.hutool.core.date.DateUtil.betweenDay(beginDate, endDate, true);
|
||||
DateTime beginDate = DateUtil.beginOfMonth(now);
|
||||
DateTime endDate = DateUtil.endOfMonth(now);
|
||||
long offset = DateUtil.betweenDay(beginDate, endDate, true);
|
||||
for (int i = 0; i < offset + 1; i++) {
|
||||
rtList.add(cn.hutool.core.date.DateUtil.formatDate(cn.hutool.core.date.DateUtil.offsetDay(beginDate, i)));
|
||||
rtList.add(DateUtil.formatDate(DateUtil.offsetDay(beginDate, i)));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
@ -441,11 +442,11 @@ public class DateUtils {
|
||||
*/
|
||||
public static List<String> getDaysBetweenLastMonth() {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime beginDate = cn.hutool.core.date.DateUtil.lastMonth();
|
||||
DateTime beginDate = DateUtil.lastMonth();
|
||||
DateTime endDate = DateTime.now();
|
||||
long offset = cn.hutool.core.date.DateUtil.betweenDay(beginDate, endDate, true);
|
||||
long offset = DateUtil.betweenDay(beginDate, endDate, true);
|
||||
for (int i = 0; i < offset + 1; i++) {
|
||||
rtList.add(cn.hutool.core.date.DateUtil.formatDate(cn.hutool.core.date.DateUtil.offsetDay(beginDate, i)));
|
||||
rtList.add(DateUtil.formatDate(DateUtil.offsetDay(beginDate, i)));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
@ -457,11 +458,11 @@ public class DateUtils {
|
||||
*/
|
||||
public static List<String> getDaysBetweenLastWeek() {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime beginDate = cn.hutool.core.date.DateUtil.lastWeek();
|
||||
DateTime beginDate = DateUtil.lastWeek();
|
||||
DateTime endDate = DateTime.now();
|
||||
long offset = cn.hutool.core.date.DateUtil.betweenDay(beginDate, endDate, true);
|
||||
long offset = DateUtil.betweenDay(beginDate, endDate, true);
|
||||
for (int i = 0; i < offset + 1; i++) {
|
||||
rtList.add(cn.hutool.core.date.DateUtil.formatDate(cn.hutool.core.date.DateUtil.offsetDay(beginDate, i)));
|
||||
rtList.add(DateUtil.formatDate(DateUtil.offsetDay(beginDate, i)));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
@ -507,9 +508,9 @@ public class DateUtils {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime beginDate = DateUtil.parseDate(queryStartTime);
|
||||
DateTime endDate = DateUtil.parseDate(queryEndTime);
|
||||
long offset = cn.hutool.core.date.DateUtil.betweenDay(beginDate, endDate, true);
|
||||
long offset = DateUtil.betweenDay(beginDate, endDate, true);
|
||||
for (int i = 0; i < offset + 1; i++) {
|
||||
rtList.add(cn.hutool.core.date.DateUtil.format(cn.hutool.core.date.DateUtil.offsetDay(beginDate, i), format));
|
||||
rtList.add(DateUtil.format(DateUtil.offsetDay(beginDate, i), format));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
@ -521,11 +522,11 @@ public class DateUtils {
|
||||
*/
|
||||
public static List<String> getDaysBetweenLastWeekWithoutYear() {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime beginDate = cn.hutool.core.date.DateUtil.lastWeek();
|
||||
DateTime beginDate = DateUtil.lastWeek();
|
||||
DateTime endDate = DateTime.now();
|
||||
long offset = cn.hutool.core.date.DateUtil.betweenDay(beginDate, endDate, true);
|
||||
long offset = DateUtil.betweenDay(beginDate, endDate, true);
|
||||
for (int i = 0; i < offset + 1; i++) {
|
||||
rtList.add(cn.hutool.core.date.DateUtil.format(cn.hutool.core.date.DateUtil.offsetDay(beginDate, i), "MM-dd"));
|
||||
rtList.add(DateUtil.format(DateUtil.offsetDay(beginDate, i), "MM-dd"));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
@ -537,11 +538,11 @@ public class DateUtils {
|
||||
*/
|
||||
public static List<String> getHoursListLastDay() {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime beginDate = cn.hutool.core.date.DateUtil.yesterday();
|
||||
DateTime beginDate = DateUtil.yesterday();
|
||||
DateTime endDate = DateTime.now();
|
||||
long offset = cn.hutool.core.date.DateUtil.between(beginDate, endDate, DateUnit.HOUR);
|
||||
long offset = DateUtil.between(beginDate, endDate, DateUnit.HOUR);
|
||||
for (int i = 1; i < offset + 1; i++) {
|
||||
rtList.add(cn.hutool.core.date.DateUtil.format(cn.hutool.core.date.DateUtil.offsetHour(beginDate, i), "HH:00"));
|
||||
rtList.add(DateUtil.format(DateUtil.offsetHour(beginDate, i), "HH:00"));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
@ -557,7 +558,41 @@ public class DateUtils {
|
||||
return DateUtil.formatDate(DateUtil.offsetDay(DateUtil.parseDate(dayStr), offset));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有日期列表
|
||||
*
|
||||
* @param type 类型:
|
||||
* 10.近12小时,20.近24小时,30.近半天,40.近一天,50.近两天,60.近一周,70.近两周,80.近一个月,90.近半年,93.近一年
|
||||
* 100.今天,200.昨天,300.本周,400.本月,500.本年,600.去年
|
||||
* @param pattern 格式 如:yyyy-MM-dd HH:mm:ss
|
||||
* @return
|
||||
*/
|
||||
public static List<String> getDateStrList(int type, String pattern) {
|
||||
if (type == 1) {
|
||||
|
||||
} else if (type == 90) {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime endDate = DateTime.now();
|
||||
DateTime beginDate = DateUtil.offsetMonth(endDate, -6);
|
||||
long offset = DateUtil.betweenMonth(beginDate, endDate, true);
|
||||
for (int i = 1; i < offset + 1; i++) {
|
||||
rtList.add(DateUtil.format(DateUtil.offsetMonth(beginDate, i), pattern));
|
||||
}
|
||||
return rtList;
|
||||
} else if (type == 93) {
|
||||
ArrayList<String> rtList = new ArrayList<>();
|
||||
DateTime endDate = DateTime.now();
|
||||
DateTime beginDate = DateUtil.offsetMonth(endDate, -12);
|
||||
long offset = DateUtil.betweenMonth(beginDate, endDate, true);
|
||||
for (int i = 1; i < offset + 1; i++) {
|
||||
rtList.add(DateUtil.format(DateUtil.offsetMonth(beginDate, i), pattern));
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(getDaysBetweenLastHalfMonth());
|
||||
System.out.println(getDateStrList(93, "yyyy-MM"));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user