Merge remote-tracking branch 'origin/master'

master
魔神煜修罗皇 2 years ago
commit 229b471f33
  1. 4
      psdc-business/src/main/java/com/psdc/entity/PsdcScene.java
  2. 2
      psdc-business/src/main/java/com/psdc/entity/vo/DeviceStatusVo.java
  3. 4
      psdc-business/src/main/java/com/psdc/entity/vo/SceneVo.java
  4. 7
      psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java
  5. 11
      psdc-business/src/main/java/com/psdc/mapper/PsdcStatisticsDayMapper.java
  6. 9
      psdc-business/src/main/java/com/psdc/mapper/PsdcStatisticsYearMapper.java
  7. 7
      psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java
  8. 25
      psdc-business/src/main/java/com/psdc/service/IStatisticsAnalysisService.java
  9. 46
      psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
  10. 208
      psdc-business/src/main/java/com/psdc/service/impl/StatisticsAnalysisService.java
  11. 28
      psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml
  12. 10
      psdc-business/src/main/resources/mapper/business/PsdcStatisticsDayMapper.xml
  13. 9
      psdc-business/src/main/resources/mapper/business/PsdcStatisticsYearMapper.xml
  14. 3897
      psdc-ui/yarn.lock
  15. 13
      psdc-web/src/main/java/com/psdc/controller/control/ManualController.java
  16. 44
      psdc-web/src/main/java/com/psdc/controller/evaluate/EnergyAnalysisController.java

@ -18,6 +18,10 @@ public class PsdcScene {
private Integer sceneId ;
/** 场景名 */
private String sceneName ;
/**
* 策略码
*/
private Integer sceneCode;
/** 用户id */
private Integer userId;
/** 设备id */

@ -32,5 +32,7 @@ public class DeviceStatusVo {
private String photoUrl ;
/** 设备运行状态:1-开启,2-关闭 */
private Integer deviceRunstatus ;
/** 设备模型 */
private String deviceModel;
}

@ -14,6 +14,10 @@ public class SceneVo {
private Integer sceneId ;
/** 场景名 */
private String sceneName ;
/**
* 策略码
*/
private Integer sceneCode;
/** 用户id */
private Integer userId;
/** 设备id */

@ -55,6 +55,13 @@ public interface PsdcSceneMapper{
*/
List<SceneVo> queryByUserId(Long userId);
/**
* 根据策略码查询策略
* @param sceneCode 策略码
* @return 策略列表
*/
List<PsdcScene> queryBySceneCode(Integer sceneCode);
/**
* 获取场景名称分组
* @param userId

@ -61,4 +61,13 @@ public interface PsdcStatisticsDayMapper{
* @return 影响行数
*/
int deleteById(Integer statisticsId);
}
/**
* 计算一行数据总和
* @param deviceId 设备id
* @param datetime 日期
* @return 总和
*/
Double queryOneLineSum(@Param("deviceId") Integer deviceId,
@Param("datetime") String datetime);
}

@ -82,4 +82,13 @@ public interface PsdcStatisticsYearMapper{
*/
PsdcStatisticsYear queryByDeviceIdAndDate(@Param("deviceId") Integer deviceId,
@Param("date") String date);
/**
* 计算一行数据总和
* @param deviceId 设备id
* @param datetime 日期
* @return 总和
*/
Double queryOneLineSum(@Param("deviceId") Integer deviceId,
@Param("datetime") String datetime);
}

@ -101,4 +101,11 @@ public interface IPsdcDeviceService {
* @return
*/
int setTemperature(Integer deviceId, String key,String value, String controlBym,Integer controlMethod);
/**
* 执行策略
* @param strategyCode 策略码
* @return
*/
String executiveStrategy(Integer strategyCode);
}

@ -0,0 +1,25 @@
package com.psdc.service;
import org.apache.poi.ss.formula.functions.T;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
public interface IStatisticsAnalysisService {
/**
* 计算单个设备的同比数据
* @param deviceId 设备id
* @param year 本期
* @param toYear 同期
*/
HashMap<String,Object> computeYearOnYear(Integer deviceId, String year, String toYear);
/**
* 计算环比数据
* @param timeType 时间类型 1 2 3
* @param datetime 时间
*/
List<HashMap<String,Object>> computeLinkRelativeRatio(Integer timeType, String datetime) throws ParseException;
}

@ -2,12 +2,15 @@ package com.psdc.service.impl;
import com.psdc.entity.PsdcControlLog;
import com.psdc.entity.PsdcDevice;
import com.psdc.entity.PsdcScene;
import com.psdc.entity.res.PsdcDeviceInfoRes;
import com.psdc.entity.vo.DeviceStatusVo;
import com.psdc.entity.vo.SceneVo;
import com.psdc.enums.ControlKeyEnum;
import com.psdc.exception.ControlException;
import com.psdc.mapper.PsdcControlLogMapper;
import com.psdc.mapper.PsdcDeviceMapper;
import com.psdc.mapper.PsdcSceneMapper;
import com.psdc.service.IPsdcDeviceService;
import com.psdc.utils.SecurityUtils;
import com.psdc.utils.poi.ExcelUtil;
@ -19,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.InputStream;
import java.security.cert.TrustAnchor;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@ -38,6 +42,9 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
@Resource
private PsdcControlLogMapper psdcControlLogMapper;
@Resource
private PsdcSceneMapper psdcSceneMapper;
/**
* 通过ID查询单条数据
*
@ -278,6 +285,45 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
}
/**
* 执行策略
* @param strategyCode 策略码
* @return
*/
@Override
public String executiveStrategy(Integer strategyCode) {
int success = 0 ;
int lose = 0;
List<PsdcScene> psdcScenes = psdcSceneMapper.queryBySceneCode(strategyCode);
//根据策略码查询策略列表
for (PsdcScene psdcScene: psdcScenes ) {
String controlKey = psdcScene.getSceneKey();
String controlValue = psdcScene.getSceneValue();
String controlContext = ControlKeyEnum.getControlContext(controlKey);
String deviceName = psdcDeviceMapper.queryDeviceNameByDeviceId(psdcScene.getDeviceId());
Boolean flag = Boolean.FALSE;
//TODO 发送MQTT指令
flag = Boolean.TRUE;
if (flag)
{
//发送成功
int insert = psdcControlLogMapper.insert(new PsdcControlLog(psdcScene.getDeviceId(), deviceName, psdcScene.getDeviceSn(), controlContext, controlValue, 3, 2, "控制成功", SecurityUtils.getUsername()));
success = success + insert;
} else {
// psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),controlContext,controlValue,controlMethod,2,"控制成功",controlBy));
// psdcControlLogMapper.insert(new PsdcControlLog(deviceId,psdcDevice.getDeviceName(),psdcDevice.getDeviceSn(),controlContext,controlValue,controlMethod,3,"等待终端响应超时",controlBy));
// lose = lose + i;
}
}
if(success == psdcScenes.size()){
return "控制成功,控制数量:" + success;
} else {
return "部分失败,成功:" + success + "条,失败:" + lose + "条";
}
}
private String coverStr(String s, int i) {
switch (s) {
case "s":

@ -0,0 +1,208 @@
package com.psdc.service.impl;
import com.psdc.entity.PsdcDevice;
import com.psdc.entity.PsdcStatisticsYear;
import com.psdc.mapper.PsdcDeviceMapper;
import com.psdc.mapper.PsdcStatisticsDayMapper;
import com.psdc.mapper.PsdcStatisticsMonthMapper;
import com.psdc.mapper.PsdcStatisticsYearMapper;
import com.psdc.service.IStatisticsAnalysisService;
import com.psdc.utils.SecurityUtils;
import com.psdc.utils.bean.BeanUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 统计分析页面服务层
*/
@Service
@Slf4j
public class StatisticsAnalysisService implements IStatisticsAnalysisService {
@Resource
private PsdcStatisticsYearMapper psdcStatisticsYearMapper;
@Resource
private PsdcDeviceMapper psdcDeviceMapper;
@Resource
private PsdcStatisticsMonthMapper psdcStatisticsMonthMapper;
@Resource
private PsdcStatisticsDayMapper psdcStatisticsDayMapper;
/**
* 计算单个设备的同比数据
* @param deviceId 设备id
* @param year 本期
* @param toYear 同期
*/
@Override
public HashMap<String,Object> computeYearOnYear(Integer deviceId, String year, String toYear) {
HashMap<String, Object> map = new HashMap<>();
PsdcStatisticsYear psdcStatisticsYear = psdcStatisticsYearMapper.queryByDeviceIdAndDate(deviceId, year);
PsdcStatisticsYear psdcStatisticsYearTo = psdcStatisticsYearMapper.queryByDeviceIdAndDate(deviceId, toYear);
List<HashMap<String,Object>> mapList = new ArrayList<>();
map.put("StatisticsYear",psdcStatisticsYear);
map.put("StatisticsToYear",psdcStatisticsYearTo);
if ( psdcStatisticsYear == null && psdcStatisticsYearTo == null){
return map;
}
List<String> yearList = new ArrayList<>();
List<String> toYearList = new ArrayList<>();
BeanUtils.coverObjToList(3,15,psdcStatisticsYear,yearList);
BeanUtils.coverObjToList(3,15,psdcStatisticsYearTo,toYearList);
Double addUp = 0.0;
for (int i = 1; i < 13; i++) {
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
stringObjectHashMap.put("month", i < 10 ? "0" + i + "月" : i + "月");
stringObjectHashMap.put("year",yearList.isEmpty() ? null : yearList.get(i));
stringObjectHashMap.put("toYear",toYearList.isEmpty() ? null : toYearList.get(i));
Double compute = null;
if ( !yearList.isEmpty() && yearList.get(i) != null && !yearList.get(i).equals("") && ( !toYearList.isEmpty() && toYearList.get(i) != null && !toYearList.get(i).equals(""))){
double yearDouble = Double.parseDouble(yearList.get(i));
double toYearDouble = Double.parseDouble(toYearList.get(i));
if (toYearDouble == 0){
toYearDouble = 1;
}
compute = ( yearDouble - toYearDouble ) / toYearDouble * 100;
}
if (compute != null ){
addUp = addUp + compute;
stringObjectHashMap.put("compute",String.format("%.2f%%",compute));
} else {
stringObjectHashMap.put("compute",null);
}
stringObjectHashMap.put("addUp",String.format("%.2f%%",addUp));
mapList.add(stringObjectHashMap);
}
map.put("yearOnYear",mapList);
return map;
}
/**
* 计算环比数据
* @param timeType 时间类型 1 2 3
* @param datetime 时间
*/
@Override
public List<HashMap<String,Object>> computeLinkRelativeRatio(Integer timeType, String datetime) throws ParseException {
//查找设备列表
List<PsdcDevice> psdcDevices = psdcDeviceMapper.controlQueryByUserId(SecurityUtils.getUserId());
List<HashMap<String,Object>> mapList = new ArrayList<>();
if ( timeType == 1 ){
SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar instance = Calendar.getInstance();
instance.setTime(dayFormat.parse(datetime));
instance.add(Calendar.DATE,-1);
String today = dayFormat.format(dayFormat.parse(datetime));
String yesterday = dayFormat.format(instance.getTime());
log.info("日环比,本期:{},同期:{}",today,yesterday);
mapList = psdcDevices.stream().map(psdcDevice -> {
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
Double compute = null;
Double addUp = null;
Integer deviceId = psdcDevice.getDeviceId();
Double todayTotal = psdcStatisticsDayMapper.queryOneLineSum(deviceId, today);
Double yesterdayTotal = psdcStatisticsDayMapper.queryOneLineSum(deviceId, yesterday);
if( todayTotal == null ){
todayTotal = 0.0;
}
if ( yesterdayTotal != null && yesterdayTotal != 0.0) {
addUp = todayTotal - yesterdayTotal;
compute = (todayTotal - yesterdayTotal) / yesterdayTotal * 100;
stringObjectHashMap.put("lastMonthTotal", String.format("%.2f", yesterdayTotal));
stringObjectHashMap.put("addUp", String.format("%.2f", addUp));
stringObjectHashMap.put("compute", String.format("%.2f%%", compute));
} else {
stringObjectHashMap.put("addUp", null);
stringObjectHashMap.put("compute", null);
stringObjectHashMap.put("lastMonthTotal", null);
}
stringObjectHashMap.put("deviceId", psdcDevice.getDeviceId());
stringObjectHashMap.put("deviceName", psdcDevice.getDeviceName());
stringObjectHashMap.put("thisMonthTotal", String.format("%.2f", todayTotal));
return stringObjectHashMap;
}).collect(Collectors.toList());
} else if ( timeType == 2 ){
SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-MM");
Calendar instance = Calendar.getInstance();
instance.setTime(monthFormat.parse(datetime));
instance.add(Calendar.MONTH,-1);
String thisMonth = monthFormat.format(monthFormat.parse(datetime));
String lastMonth = monthFormat.format(instance.getTime());
log.info("月环比,本期:{},同期:{}",thisMonth,lastMonth);
mapList = psdcDevices.stream().map(psdcDevice -> {
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
Double compute = null;
Double addUp = null;
Integer deviceId = psdcDevice.getDeviceId();
Double thisMonthTotal = psdcStatisticsMonthMapper.queryOneLineSum(deviceId, thisMonth);
Double lastMonthTotal = psdcStatisticsMonthMapper.queryOneLineSum(deviceId, lastMonth);
if( thisMonthTotal == null ){
thisMonthTotal = 0.0;
}
if ( lastMonthTotal != null && lastMonthTotal != 0.0) {
addUp = thisMonthTotal - lastMonthTotal;
compute = (thisMonthTotal - lastMonthTotal) / lastMonthTotal * 100;
stringObjectHashMap.put("lastMonthTotal", String.format("%.2f", lastMonthTotal));
stringObjectHashMap.put("addUp", String.format("%.2f", addUp));
stringObjectHashMap.put("compute", String.format("%.2f%%", compute));
} else {
stringObjectHashMap.put("addUp", null);
stringObjectHashMap.put("compute", null);
stringObjectHashMap.put("lastMonthTotal", null);
}
stringObjectHashMap.put("deviceId", psdcDevice.getDeviceId());
stringObjectHashMap.put("deviceName", psdcDevice.getDeviceName());
stringObjectHashMap.put("thisMonthTotal", String.format("%.2f", thisMonthTotal));
return stringObjectHashMap;
}).collect(Collectors.toList());
} else if ( timeType == 3){
SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy");
Calendar instance = Calendar.getInstance();
instance.setTime(yearFormat.parse(datetime));
instance.add(Calendar.YEAR,-1);
String thisYear = yearFormat.format(yearFormat.parse(datetime));
String lastYear = yearFormat.format(instance.getTime());
log.info("年环比,本期:{},同期:{}",thisYear,lastYear);
mapList = psdcDevices.stream().map(psdcDevice -> {
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
Double compute = null;
Double addUp = null;
Integer deviceId = psdcDevice.getDeviceId();
Double thisYearTotal = psdcStatisticsYearMapper.queryOneLineSum(deviceId, thisYear);
Double lastYearTotal = psdcStatisticsYearMapper.queryOneLineSum(deviceId, lastYear);
if( thisYearTotal == null ){
thisYearTotal = 0.0;
}
if ( lastYearTotal != null && lastYearTotal != 0.0) {
addUp = thisYearTotal - lastYearTotal;
compute = (thisYearTotal - lastYearTotal) / lastYearTotal * 100;
stringObjectHashMap.put("lastMonthTotal", String.format("%.2f", lastYearTotal));
stringObjectHashMap.put("addUp", String.format("%.2f", addUp));
stringObjectHashMap.put("compute", String.format("%.2f%%", compute));
} else {
stringObjectHashMap.put("addUp", null);
stringObjectHashMap.put("compute", null);
stringObjectHashMap.put("lastMonthTotal", null);
}
stringObjectHashMap.put("deviceId", psdcDevice.getDeviceId());
stringObjectHashMap.put("deviceName", psdcDevice.getDeviceName());
stringObjectHashMap.put("thisMonthTotal", String.format("%.2f", thisYearTotal));
return stringObjectHashMap;
}).collect(Collectors.toList());
}
return mapList;
}
}

@ -4,6 +4,7 @@
<resultMap type="com.psdc.entity.PsdcScene" id="PsdcSceneMap">
<result property="sceneId" column="scene_id" />
<result property="sceneName" column="scene_name" />
<result property="sceneCode" column="scene_code"/>
<result property="userId" column="user_id"/>
<result property="deviceId" column="device_id" />
<result property="deviceSn" column="device_sn" />
@ -14,6 +15,7 @@
<resultMap type="com.psdc.entity.vo.SceneVo" id="SceneVoMap">
<result property="sceneName" column="scene_name" />
<result property="sceneCode" column="scene_code"/>
<result property="userId" column="user_id"/>
<result property="deviceName" column="device_name"/>
<result property="deviceId" column="device_id" />
@ -26,7 +28,7 @@
<!-- 通过ID查询单条数据 -->
<select id="queryById" resultMap="PsdcSceneMap">
select
scene_id,scene_name,user_id,device_id,device_sn,scene_context,scene_key,scene_value
scene_id,scene_name,user_id,scene_code,device_id,device_sn,scene_context,scene_key,scene_value
from psdc_scene
where scene_id = #{sceneId}
</select>
@ -37,8 +39,8 @@
<!--新增数据-->
<insert id="insert" keyProperty="UNDEFINED_ID" useGeneratedKeys="true">
insert into psdc_scene(scene_name,user_id,device_id,device_sn,scene_context,scene_key,scene_value)
values (#{sceneName},#{userId},#{deviceId},#{deviceSn},#{sceneContext},#{sceneKey},#{sceneValue})
insert into psdc_scene(scene_name,scene_code,user_id,device_id,device_sn,scene_context,scene_key,scene_value)
values (#{sceneName},#{sceneCode},#{userId},#{deviceId},#{deviceSn},#{sceneContext},#{sceneKey},#{sceneValue})
</insert>
<!-- 更新数据 -->
@ -48,6 +50,9 @@
<if test="sceneName != null and sceneName != ''">
scene_name = #{sceneName},
</if>
<if test="sceneCode != null and sceneCode != ''">
scene_code = #{sceneCode},
</if>
<if test="userId != null and userId != ''">
user_id = #{userId},
</if>
@ -77,12 +82,17 @@
<!-- 根据用户ID查询策略信息-->
<select id="queryByUserId" resultMap="SceneVoMap">
select ps.scene_id,ps.scene_name,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
select ps.scene_id,ps.scene_name,ps.scene_code,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
from psdc_scene ps left join sys_user su on ps.user_id = su.user_id
left join psdc_device pd on ps.device_id = pd.device_id
where su.user_id = #{userId}
</select>
<!-- 根据用户ID查询策略信息-->
<select id="queryBySceneCode" resultMap="PsdcSceneMap">
select * from psdc_scene where scene_code = #{sceneCode}
</select>
<!-- 根据用户ID查询策略信息-->
<select id="querySceneGroup" resultType="string">
select ps.scene_name
@ -92,7 +102,7 @@
<!-- 根据用户ID查询策略信息-->
<select id="querySceneByDeviceId" resultMap="SceneVoMap">
select ps.scene_id,ps.scene_name,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
select ps.scene_id,ps.scene_name,ps.scene_code,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
from psdc_scene ps left join sys_user su on ps.user_id = su.user_id
left join psdc_device pd on ps.device_id = pd.device_id
where su.user_id = #{userId} and pd.device_id = #{deviceId}
@ -100,7 +110,7 @@
<!-- 根据用户ID查询策略信息-->
<select id="querySceneByDeviceIdAndSceneName" resultMap="SceneVoMap">
select ps.scene_id,ps.scene_name,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
select ps.scene_id,ps.scene_name,ps.scene_code,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
from psdc_scene ps left join sys_user su on ps.user_id = su.user_id
left join psdc_device pd on ps.device_id = pd.device_id
where su.user_id = #{userId} and ps.device_id = #{deviceId} and ps.scene_name = #{sceneName}
@ -108,13 +118,13 @@
<!-- 根据策略名称查询策略信息-->
<select id="queryBySceneName" resultMap="SceneVoMap">
select ps.scene_id,ps.scene_name,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
select ps.scene_id,ps.scene_name,ps.scene_code,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
from psdc_scene ps left join psdc_device pd on ps.device_id = pd.device_id
where ps.scene_name like concat('%', #{sceneName}, '%')
</select>
<select id="findSceneByUserAndSceneName" resultMap="SceneVoMap">
Select ps.scene_id,ps.scene_name,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
Select ps.scene_id,ps.scene_name,ps.scene_code,ps.user_id,pd.device_name,ps.device_id,pd.device_sn,ps.scene_context,ps.scene_key,ps.scene_value
From psdc_scene ps
Left join sys_user su On su.user_id = ps.user_id
Left join psdc_device pd On pd.device_id = ps.device_id
@ -127,4 +137,6 @@
</if>
</where>
</select>
</mapper>

@ -220,4 +220,14 @@
<delete id="deleteById">
delete from psdc_statistics_day where day_id = #{dayId}
</delete>
<!-- 计算一行数据总和-->
<select id="queryOneLineSum" resultType="double">
select ifnull(hour_00,0.0) + ifnull(hour_01,0.0) + ifnull(hour_02,0.0) + ifnull(hour_03,0.0) + ifnull(hour_04,0.0) +
ifnull(hour_05,0.0) + ifnull(hour_06,0.0) + ifnull(hour_07,0.0) + ifnull(hour_08,0.0) + ifnull(hour_09,0.0) +
ifnull(hour_10,0.0) + ifnull(hour_11,0.0) + ifnull(hour_12,0.0) + ifnull(hour_13,0.0) + ifnull(hour_14,0.0) +
ifnull(hour_15,0.0) + ifnull(hour_16,0.0) + ifnull(hour_17,0.0) + ifnull(hour_18,0.0) + ifnull(hour_19,0.0) +
ifnull(hour_20,0.0) + ifnull(hour_21,0.0) + ifnull(hour_22,0.0) + ifnull(hour_23,0.0) as total
from psdc_statistics_day where device_id = #{deviceId} and date_format(day_date,'%Y-%m-d') = #{datetime}
</select>
</mapper>

@ -160,6 +160,13 @@
<!-- 根据设备id和日期查询-->
<select id="queryByDeviceIdAndDate" resultMap="PsdcStatisticsYearMap">
select * from psdc_statistics_year where device_id = #{deviceId} and date_format(year_date,'%Y-%m') = #{date}
select * from psdc_statistics_year where device_id = #{deviceId} and date_format(year_date,'%Y') = #{date}
</select>
<select id="queryOneLineSum" resultType="double">
select ifnull(month_01,0.0) + ifnull(month_02,0.0) + ifnull(month_03,0.0) + ifnull(month_04,0.0) + ifnull(month_05,0.0) +
ifnull(month_06,0.0) + ifnull(month_07,0.0) + ifnull(month_08,0.0) + ifnull(month_09,0.0) + ifnull(month_10,0.0) +
ifnull(month_11,0.0) + ifnull(month_12,0.0) as total
from psdc_statistics_year where device_id = #{deviceId} and date_format(year_date,'%Y') = #{datetime}
</select>
</mapper>

File diff suppressed because it is too large Load Diff

@ -11,6 +11,7 @@ import com.psdc.service.IPsdcDeviceService;
import com.psdc.service.IPsdcSceneService;
import com.psdc.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@ -85,6 +86,18 @@ public class ManualController extends BaseController {
return AjaxResult.success(strategyList);
}
/**
* 发送控制策略
* @return ajax
*/
@PreAuthorize("@ss.hasPermi('control:manual:strategy')")
@GetMapping("/{strategyCode}")
public AjaxResult getStrategyList(@PathVariable(value = "strategyCode") Integer strategyCode){
String s = psdcDeviceService.executiveStrategy(strategyCode);
return AjaxResult.success(s);
}
/**
* 设置温度
* @param jsonObject 传参对象

@ -1,4 +1,48 @@
package com.psdc.controller.evaluate;
import com.alibaba.fastjson2.JSONObject;
import com.psdc.core.domain.AjaxResult;
import com.psdc.service.IStatisticsAnalysisService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("/evaluate/analysis")
public class EnergyAnalysisController {
@Resource
private IStatisticsAnalysisService statisticsAnalysisService;
@PreAuthorize("@ss.hasPermi('analyse:nhfx:nhtb')")
@PostMapping("/yearOnYearAnalyse")
public AjaxResult yearOnYearAnalyse(@RequestBody JSONObject jsonObject){
Integer deviceId = jsonObject.getInteger("deviceId");
String year = jsonObject.getString("year");
String toYear = jsonObject.getString("toYear");
log.info("设备id:{},本期年份:{},同期年份:{}",deviceId,year,toYear);
HashMap<String, Object> stringObjectHashMap = statisticsAnalysisService.computeYearOnYear(deviceId, year, toYear);
return AjaxResult.success(stringObjectHashMap);
}
@PreAuthorize("@ss.hasPermi('analyse:nhfx:nhhb')")
@PostMapping("/linkRelativeRatio")
public AjaxResult linkRelativeRatio(@RequestBody JSONObject jsonObject) throws ParseException {
Integer timeType = jsonObject.getInteger("timeType");
String datetime = jsonObject.getString("datetime");
List<HashMap<String, Object>> mapList = statisticsAnalysisService.computeLinkRelativeRatio(timeType, datetime);
return AjaxResult.success(mapList);
}
}

Loading…
Cancel
Save