update 添加厂区看板接口

maser
yinq 7 hours ago
parent f95354603d
commit 0bfe10d28c

@ -33,5 +33,24 @@ public class EmsConstants
*/
public static final String EMS_ENERGY_TYPE_NITROGEN = "6";
/**
*
*/
public static final String EMS_IS_FLAG_YES = "0";
/**
*
*/
public static final String EMS_IS_FLAG_NO = "1";
/**
* 0 1
*/
public static final String EMS_IS_AMMETER_YES = "0";
/**
* 0 1
*/
public static final String EMS_IS_AMMETER_NO = "1";
}

@ -10,13 +10,12 @@ import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
import org.apache.commons.lang3.time.DateFormatUtils;
import static org.hibernate.validator.internal.engine.messageinterpolation.el.RootResolver.FORMATTER;
/**
*
*
@ -253,7 +252,50 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
}
/**
*
* @return Map
*/
public static Map<String, String> getDateTimeRanges() {
Map<String, String> timeMap = new HashMap<>();
String nowDateTime = LocalDateTime.now()
.withMinute(0)
.withSecond(0)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:00:00"));
//当前时间
timeMap.put("currentTime", nowDateTime);
String lastYearDateTime = LocalDateTime.now()
.minusYears(1) // 关键修改减去1年
.withMinute(0)
.withSecond(0)
.withNano(0)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:00:00"));
timeMap.put("lastYearCurrentTime", lastYearDateTime);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
// 当天开始时间 (00:00:00)
LocalDateTime todayStart = now.toLocalDate().atStartOfDay();
timeMap.put("todayStart", todayStart.format(formatter));
// 当月开始时间 (当月1日 00:00:00)
LocalDateTime monthStart = now.withDayOfMonth(1).toLocalDate().atStartOfDay();
timeMap.put("monthStart", monthStart.format(formatter));
// 当年开始时间 (当年1月1日 00:00:00)
LocalDateTime yearStart = now.withDayOfYear(1).toLocalDate().atStartOfDay();
timeMap.put("yearStart", yearStart.format(formatter));
// 去年当天开始时间
LocalDateTime lastYearTodayStart = todayStart.minusYears(1);
timeMap.put("lastYearTodayStart", lastYearTodayStart.format(formatter));
// 去年当月开始时间
LocalDateTime lastYearMonthStart = monthStart.minusYears(1);
timeMap.put("lastYearMonthStart", lastYearMonthStart.format(formatter));
// 去年当年开始时间
LocalDateTime lastYearYearStart = yearStart.minusYears(1);
timeMap.put("lastYearYearStart", lastYearYearStart.format(formatter));
return timeMap;
}

@ -1,5 +1,6 @@
package com.os.ems.record.mapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@ -42,4 +42,71 @@ public class EmsBoardController extends BaseController {
return success(list);
}
/**
* -
* @param hashMap
* @return
*/
@GetMapping("/deviceOverview")
public AjaxResult deviceOverview(@RequestParam(required = false) Map hashMap) {
HashMap<String, Object> result = emsBoardService.deviceOverview(hashMap);
return success(result);
}
/**
* -
* @param hashMap
* @return
*/
@GetMapping("/monthConsumptionRanking")
public AjaxResult monthConsumptionRanking(@RequestParam(required = false) Map hashMap) {
HashMap<String, Object> result = emsBoardService.monthConsumptionRanking(hashMap);
return success(result);
}
/**
* -
* @param hashMap
* @return
*/
@GetMapping("/peaksValleysConsumption")
public AjaxResult peaksValleysConsumption(@RequestParam(required = false) Map hashMap) {
HashMap<String, Object> result = emsBoardService.peaksValleysConsumption(hashMap);
return success(result);
}
/**
* -
* @param hashMap
* @return
*/
@GetMapping("/fiveConsumptionStatistics")
public AjaxResult fiveConsumptionStatistics(@RequestParam(required = false) Map hashMap) {
HashMap<String, Object> result = emsBoardService.fiveConsumptionStatistics(hashMap);
return success(result);
}
/**
* -
* @param hashMap
* @return
*/
@GetMapping("/energyConsumptionStatistics")
public AjaxResult energyConsumptionStatistics(@RequestParam(required = false) Map hashMap) {
HashMap<String, Object> result = emsBoardService.energyConsumptionStatistics(hashMap);
return success(result);
}
/**
* -
* @param hashMap
* @return
*/
@GetMapping("/realTimeAlarm")
public AjaxResult realTimeAlarm(@RequestParam(required = false) Map hashMap) {
HashMap<String, Object> result = emsBoardService.realTimeAlarm(hashMap);
return success(result);
}
}

@ -1,6 +1,9 @@
package com.os.ems.report.mapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.os.ems.report.domain.EmsReportPointDnb;
/**
@ -58,4 +61,26 @@ public interface EmsReportPointDnbMapper
* @return
*/
public int deleteEmsReportPointDnbByObjIds(Long[] objIds);
/**
*
* @param hashMap
* @return
*/
List<HashMap<String, String>> selectWorkUnitTotalConsumption(Map hashMap);
/**
*
* @param hashMap
* @return
*/
List<HashMap<String, String>> peaksValleysConsumption(Map hashMap);
/**
*
* @param hashMap
* @return
*/
List<HashMap<String, String>> selectWorkUnitDateConsumption(Map hashMap);
}

@ -5,6 +5,7 @@ import com.os.ems.report.domain.EnergyStatisticalReport;
import com.os.ems.report.domain.PeaksValleysConsumptionReport;
import com.os.ems.report.domain.RealTimeDataBo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -23,5 +24,45 @@ public interface IEmsBoardService {
*/
List<RealTimeDataBo> realTimeDataList(Map hashMap);
/**
* -
* @param hashMap
* @return
*/
HashMap<String, Object> deviceOverview(Map hashMap);
/**
* -
* @param hashMap
* @return
*/
HashMap<String, Object> monthConsumptionRanking(Map hashMap);
/**
* -
* @param hashMap
* @return
*/
HashMap<String, Object> peaksValleysConsumption(Map hashMap);
/**
* -
* @param hashMap
* @return
*/
HashMap<String, Object> fiveConsumptionStatistics(Map hashMap);
/**
* -
* @param hashMap
* @return
*/
HashMap<String, Object> energyConsumptionStatistics(Map hashMap);
/**
* -
* @param hashMap
* @return
*/
HashMap<String, Object> realTimeAlarm(Map hashMap);
}

@ -1,14 +1,21 @@
package com.os.ems.report.service.impl;
import com.os.common.constant.EmsConstants;
import com.os.common.utils.DateUtils;
import com.os.ems.base.domain.EmsBaseCollectDeviceInfo;
import com.os.ems.base.domain.EmsBaseMonitorInfo;
import com.os.ems.base.domain.EmsBaseWorkUnit;
import com.os.ems.base.mapper.EmsBaseCollectDeviceInfoMapper;
import com.os.ems.base.mapper.EmsBaseMonitorInfoMapper;
import com.os.ems.base.mapper.EmsBaseMonitorWorkUnitMapper;
import com.os.ems.base.mapper.EmsBaseWorkUnitMapper;
import com.os.ems.record.domain.EmsRecordAlarmData;
import com.os.ems.record.mapper.*;
import com.os.ems.report.domain.EnergyStatisticalReport;
import com.os.ems.report.domain.PeaksValleysConsumptionReport;
import com.os.ems.report.domain.RealTimeDataBo;
import com.os.ems.report.mapper.EmsReportMapper;
import com.os.ems.report.mapper.EmsReportPointDnbMapper;
import com.os.ems.report.service.IEmsBoardService;
import com.os.ems.report.service.IEmsReportService;
import org.springframework.beans.factory.annotation.Autowired;
@ -48,9 +55,20 @@ public class EmsBoardServiceImpl implements IEmsBoardService {
@Autowired
private EmsBaseMonitorWorkUnitMapper emsBaseMonitorWorkUnitMapper;
@Autowired
private EmsReportPointDnbMapper emsReportPointDnbMapper;
@Autowired
private EmsBaseWorkUnitMapper emsBaseWorkUnitMapper;
@Autowired
private EmsBaseCollectDeviceInfoMapper emsBaseCollectDeviceInfoMapper;
@Autowired
private EmsBaseMonitorInfoMapper emsBaseMonitorInfoMapper;
@Autowired
private EmsRecordAlarmDataMapper emsRecordAlarmDataMapper;
/**
*
@ -63,21 +81,179 @@ public class EmsBoardServiceImpl implements IEmsBoardService {
if (!hashMap.containsKey("monitorType")) {
return null;
}
String energyType = String.valueOf(hashMap.get("monitorType"));
String monitorType = String.valueOf(hashMap.get("monitorType"));
List<RealTimeDataBo> reportList = new ArrayList<>();
if (Objects.equals(energyType, EmsConstants.EMS_ENERGY_TYPE_DNB)) {
if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_DNB)) {
reportList = emsRecordDnbInstantMapper.realTimeDataList(hashMap);
} else if (Objects.equals(energyType, EmsConstants.EMS_ENERGY_TYPE_WATER)) {
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_WATER)) {
reportList = emsRecordWaterInstantMapper.realTimeDataList(hashMap);
} else if (Objects.equals(energyType, EmsConstants.EMS_ENERGY_TYPE_STEAM)) {
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_STEAM)) {
reportList = emsRecordSteamInstantMapper.realTimeDataList(hashMap);
} else if (Objects.equals(energyType, EmsConstants.EMS_ENERGY_TYPE_Air)) {
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_Air)) {
reportList = emsRecordAirInstantMapper.realTimeDataList(hashMap);
} else if (Objects.equals(energyType, EmsConstants.EMS_ENERGY_TYPE_NITROGEN)) {
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_NITROGEN)) {
reportList = emsRecordNitrogenInstantMapper.realTimeDataList(hashMap);
}
return reportList;
}
/**
* -
* @param hashMap
* @return
*/
@Override
public HashMap<String, Object> deviceOverview(Map hashMap) {
HashMap<String, Object> result = new HashMap<>();
EmsBaseCollectDeviceInfo deviceInfo = new EmsBaseCollectDeviceInfo();
deviceInfo.setIsFlag(EmsConstants.EMS_IS_FLAG_YES);
List<EmsBaseCollectDeviceInfo> deviceInfoList = emsBaseCollectDeviceInfoMapper.selectEmsBaseCollectDeviceInfoList(deviceInfo);
EmsBaseMonitorInfo monitorInfo = new EmsBaseMonitorInfo();
monitorInfo.setIsAmmeter(EmsConstants.EMS_IS_AMMETER_NO);
List<EmsBaseMonitorInfo> monitorInfoList = emsBaseMonitorInfoMapper.selectEmsBaseMonitorInfoList(monitorInfo);
Long dnbSum = 0L;
Long waterSum = 0L;
Long steamSum = 0L;
Long airSum = 0L;
Long nitrogenSum = 0L;
for (EmsBaseMonitorInfo emsBaseMonitorInfo : monitorInfoList) {
String monitorType = String.valueOf(emsBaseMonitorInfo.getMonitorType());
if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_DNB)) {
dnbSum++;
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_WATER)) {
waterSum++;
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_STEAM)) {
steamSum++;
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_Air)) {
airSum++;
} else if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_NITROGEN)) {
nitrogenSum++;
}
}
result.put("deviceSum", deviceInfoList.size());
result.put("dnbSum", dnbSum);
result.put("waterSum", waterSum);
result.put("steamSum", steamSum);
result.put("airSum", airSum);
result.put("nitrogenSum", nitrogenSum);
return result;
}
/**
* -
* @param hashMap
* @return
*/
@Override
public HashMap<String, Object> monthConsumptionRanking(Map hashMap) {
HashMap<String, Object> result = new HashMap<>();
if (!hashMap.containsKey("monitorType")) {
return null;
}
String monitorType = String.valueOf(hashMap.get("monitorType"));
List<HashMap<String, String>> reportList = new ArrayList<>();
Map<String, String> dateTimeRanges = DateUtils.getDateTimeRanges();
String monthStart = dateTimeRanges.get("monthStart");
String monthEnd = dateTimeRanges.get("currentTime");
hashMap.put("beginCollectTime", monthStart);
hashMap.put("endCollectTime", monthEnd);
if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_DNB)) {
reportList = emsReportPointDnbMapper.selectWorkUnitTotalConsumption(hashMap);
}
result.put("ranking", reportList);
result.put("statistics", reportList);
return result;
}
/**
* -
* @param hashMap
* @return
*/
@Override
public HashMap<String, Object> peaksValleysConsumption(Map hashMap) {
HashMap<String, Object> result = new HashMap<>();
List<HashMap<String, String>> reportList = emsReportPointDnbMapper.peaksValleysConsumption(hashMap);
result.put("reportList", reportList);
return result;
}
/**
* -
* @param hashMap
* @return
*/
@Override
public HashMap<String, Object> fiveConsumptionStatistics(Map hashMap) {
HashMap<String, Object> result = new LinkedHashMap<>();
result.put("dnbSum", new BigDecimal(String.format("%.2f", Math.random() * Math.round(10000 * Math.random()))));
result.put("waterSum", new BigDecimal(String.format("%.2f", Math.random() * Math.round(10000 * Math.random()))));
result.put("steamSum", new BigDecimal(String.format("%.2f", Math.random() * Math.round(10000 * Math.random()))));
result.put("airSum", new BigDecimal(String.format("%.2f", Math.random() * Math.round(10000 * Math.random()))));
result.put("nitrogenSum", new BigDecimal(String.format("%.2f", Math.random() * Math.round(10000 * Math.random()))));
result.put("dnbRate", new BigDecimal(String.format("%.2f", 100 * Math.random())));
result.put("waterRate", new BigDecimal(String.format("%.2f", 100 * Math.random())));
result.put("steamRate", new BigDecimal(String.format("%.2f", -100 * Math.random())));
result.put("airRate", new BigDecimal(String.format("%.2f", 100 * Math.random())));
result.put("nitrogenRate", new BigDecimal(String.format("%.2f", -100 * Math.random())));
return result;
}
/**
* -
* @param hashMap
* @return
*/
@Override
public HashMap<String, Object> energyConsumptionStatistics(Map hashMap) {
HashMap<String, Object> result = new HashMap<>();
if (!hashMap.containsKey("monitorType") || !hashMap.containsKey("dateType")) {
return null;
}
String monitorType = String.valueOf(hashMap.get("monitorType"));
String dateType = String.valueOf(hashMap.get("dateType"));
List<HashMap<String, String>> reportList = new ArrayList<>();
Map<String, String> dateTimeRanges = DateUtils.getDateTimeRanges();
String currentTime = dateTimeRanges.get("currentTime");
String todayStart = dateTimeRanges.get("todayStart");
String monthStart = dateTimeRanges.get("monthStart");
String yearStart = dateTimeRanges.get("yearStart");
if (dateType.equals("day")){
hashMap.put("beginCollectTime", todayStart);
hashMap.put("endCollectTime", currentTime);
hashMap.put("timeSub", 19);
} else if (dateType.equals("month")){
hashMap.put("beginCollectTime", monthStart);
hashMap.put("endCollectTime", currentTime);
hashMap.put("timeSub", 10);
} else if (dateType.equals("year")){
hashMap.put("beginCollectTime", yearStart);
hashMap.put("endCollectTime", currentTime);
hashMap.put("timeSub", 7);
}
if (Objects.equals(monitorType, EmsConstants.EMS_ENERGY_TYPE_DNB)) {
reportList = emsReportPointDnbMapper.selectWorkUnitDateConsumption(hashMap);
}
result.put("reportList", reportList);
return result;
}
/**
* -
* @param hashMap
* @return
*/
@Override
public HashMap<String, Object> realTimeAlarm(Map hashMap) {
HashMap<String, Object> result = new HashMap<>();
EmsRecordAlarmData emsRecordAlarmData = new EmsRecordAlarmData();
emsRecordAlarmData.setAlarmStatus(0L);
List<EmsRecordAlarmData> alarmDataList = emsRecordAlarmDataMapper.selectEmsRecordAlarmDataList(emsRecordAlarmData);
result.put("alarmDataList", alarmDataList);
return result;
}
}

@ -11,7 +11,7 @@
SELECT WU.WORK_UNIT_CODE workUnitCode,
WU.WORK_UNIT_NAME workUnitName,
MAX(RPD.INSTRUMENT_VALUE) instrumentValue,
SUM(RPD.EXPEND) expend,
SUM(RPD.EXPEND * IIF(MWU.formula_mode = 0, 1, 0) * MWU.proportion) expend,
SUM(RPD.power_expend) powerExpend,
SUBSTRING(FORMAT(RPD.BEGIN_TIME, 'yyyy-MM-dd HH:mm:ss'), 1, DT.TIMESUB) beginTime,
SUBSTRING(FORMAT(RPD.BEGIN_TIME, 'yyyy-MM-dd HH:mm:ss'), 1, DT.TIMESUB) endTime
@ -37,8 +37,9 @@
<select id="peaksValleysConsumptionReportList"
resultType="com.os.ems.report.domain.PeaksValleysConsumptionReport" parameterType="java.util.HashMap">
SELECT ebwu.work_unit_code workUnitCode, ebwu.work_unit_name workUnitName,
dnb.pointTime, dnb.priceType, sum(expend) expend,
sum(expend * dnb_price) price
dnb.pointTime, dnb.priceType,
SUM(dnb.EXPEND * IIF(ebmwu.formula_mode = 0, 1, 0) * ebmwu.proportion) expend,
sum(dnb.EXPEND * IIF(ebmwu.formula_mode = 0, 1, 0) * ebmwu.proportion * dnb_price) price
FROM (
SELECT erpd.monitor_code,
<if test="dateType == 10">CONVERT(VARCHAR(10), erpd.begin_time, 120) pointTime,</if>

@ -128,4 +128,68 @@
#{objId}
</foreach>
</delete>
<select id="selectWorkUnitTotalConsumption" resultType="java.util.HashMap">
SELECT WU.WORK_UNIT_CODE workUnitCode,
WU.WORK_UNIT_NAME workUnitName,
ISNULL(ex.expend, 0) expend
FROM ems_base_work_unit wu
LEFT JOIN
(SELECT mwu.work_unit_code, SUM(rpd.expend * (IIF(mwu.formula_mode = 0, 1, 0)) * mwu.proportion) expend
FROM ems_base_monitor_work_unit mwu
LEFT JOIN ems_report_point_dnb rpd on rpd.monitor_code = mwu.monitor_code
WHERE 1=1
<if test="beginCollectTime != null and beginCollectTime != '' and endCollectTime != null and endCollectTime != ''">
AND FORMAT(rpd.begin_time, 'yyyy-MM-dd HH:mm:ss') between #{beginCollectTime} and #{endCollectTime}
</if>
group by mwu.work_unit_code) ex ON ex.work_unit_code = wu.work_unit_code
ORDER BY ex.expend DESC
</select>
<select id="peaksValleysConsumption" resultType="java.util.HashMap">
SELECT dnb.date,
dnb.priceType,
SUM(dnb.EXPEND * IIF(ebmwu.formula_mode = 0, 1, 0) * ebmwu.proportion) expend
FROM (SELECT CONVERT(VARCHAR, erpd.begin_time, 23) date,
erpd.monitor_code,
NULLIF(erpd.expend, 0) expend,
case
when ebsp.price_type = 0 then '尖峰'
when ebsp.price_type = 1 then '高峰'
when ebsp.price_type = 2 then '平段'
when ebsp.price_type = 3 then '低谷'
when ebsp.price_type = 4 then '深谷' END priceType
FROM ems_report_point_dnb erpd
JOIN ems_base_share_price ebsp
ON LEFT(CONVERT(VARCHAR, erpd.begin_time, 23), 7) = ebsp.year_month_date) dnb
LEFT JOIN ems_base_monitor_info ebmi on ebmi.monitor_code = dnb.monitor_code
LEFT JOIN ems_base_monitor_work_unit ebmwu on ebmi.monitor_code = ebmwu.monitor_code
LEFT JOIN ems_base_work_unit ebwu on ebwu.work_unit_code = ebmwu.work_unit_code
WHERE ebwu.parent_id = 1
GROUP BY dnb.date, dnb.priceType
ORDER BY dnb.date, dnb.priceType
</select>
<select id="selectWorkUnitDateConsumption" resultType="java.util.HashMap">
WITH DT AS (SELECT CAST(#{timeSub} AS INT) TIMESUB)
SELECT ex.date,
ISNULL(SUM(ex.expend), 0) expend
FROM (SELECT mwu.work_unit_code,
SUM(rpd.expend * (IIF(mwu.formula_mode = 0, 1, 0)) * mwu.proportion) expend,
LEFT(CONVERT(VARCHAR, rpd.begin_time, 120), DT.TIMESUB) date
FROM ems_report_point_dnb rpd
LEFT JOIN ems_base_monitor_work_unit mwu on rpd.monitor_code = mwu.monitor_code
CROSS JOIN DT
WHERE 1 = 1
<if test="beginCollectTime != null and beginCollectTime != '' and endCollectTime != null and endCollectTime != ''">
AND FORMAT(rpd.begin_time, 'yyyy-MM-dd HH:mm:ss') between #{beginCollectTime} and #{endCollectTime}
</if>
GROUP BY mwu.work_unit_code, LEFT(CONVERT(VARCHAR, rpd.begin_time, 120), DT.TIMESUB)) ex
LEFT JOIN ems_base_work_unit wu
ON ex.work_unit_code = wu.work_unit_code
WHERE wu.parent_id = 1
GROUP BY ex.date
ORDER BY ex.date
</select>
</mapper>
Loading…
Cancel
Save