bug修改

This commit is contained in:
guo 2024-01-22 17:28:24 +08:00
parent cdce5ab672
commit 14f0e20254
11 changed files with 152 additions and 3 deletions

View File

@ -3,6 +3,7 @@ package com;
import cn.xuyanwu.spring.file.storage.EnableFileStorage;
import org.apache.catalina.connector.Connector;
import org.junit.Test;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
@ -149,4 +150,9 @@ public class WisdomSiteApplication extends SpringBootServletInitializer {
return firewall;
}
@Test
public void test() {
System.out.println();
}
}

View File

@ -4,4 +4,5 @@ public interface DictionaryConstant {
String PROJECT_CONSTRUCTION_STAGE = "project_construction_stage";
String AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE = "ai_analyse_hard_ware_alarm_record_type";
String LOCATION_DATA_PROJECT_SN_DISAPPEAR_TIME = "location_data_project_sn_disappear_time";
String PROJECT_STRUCTURE_TYPE = "project_structure_type";
}

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.exteriorscaffolding.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
@ -208,4 +209,32 @@ public class ExteriorScaffoldingCurrentDataController {
public Result<List<NumberDifferentTypesAlarmsRadarChartOneMonthVo>> getNumberDifferentTypesAlarmsRadarChartOneMonth(@RequestParam Map<String, Object> map) {
return Result.success(exteriorScaffoldingCurrentDataService.getNumberDifferentTypesAlarmsRadarChartOneMonth(map));
}
@PostMapping("/lrk/add")
@ApiOperation(value = "接收外墙脚手架自动化监测系统数据", notes = "接收外墙脚手架自动化监测系统数据")
@ApiImplicitParams({
@ApiImplicitParam(required = true, allowMultiple = true, dataType = "array"),
@ApiImplicitParam(name = "current", value = "实时数据", dataType = "object"),
@ApiImplicitParam(name = "current.calcValue", value = "单位根据监测类型", allowMultiple = true, dataType = "object"),
@ApiImplicitParam(name = "current.calcValue.rateChange", value = "变化速率", dataType = "float"),
@ApiImplicitParam(name = "current.calcValue.value", value = "计算值", dataType = "float"),
@ApiImplicitParam(name = "current.calcValue.variation", value = "变化值", dataType = "float"),
@ApiImplicitParam(name = "current.pointAlarmStatus", value = "报警状态", dataType = "object"),
@ApiImplicitParam(name = "current.pointAlarmStatus.alarmState", value = "警状态 报警状态 1.正常 2.超报警 3.超控制 4.变化速率报警", dataType = "int"),
@ApiImplicitParam(name = "metadata.deviceCode", value = "设备编号", dataType = "string"),
@ApiImplicitParam(name = "metadata.monitorTypeName", value = "监测名称", dataType = "string"),
@ApiImplicitParam(name = "metadata.nickname", value = "测点昵称", dataType = "string"),
@ApiImplicitParam(name = "metadata.projectCode", value = "项目编号", dataType = "string")
})
public Result addLrkData(@RequestBody JSONArray jsonArray) {
log.info("addLrkData推送数据{}", jsonArray);
try {
exteriorScaffoldingCurrentDataService.saveBatchExteriorScaffoldingCurrentData(jsonArray);
} catch (Exception e) {
e.printStackTrace();
log.error("推送数据接收错误!错误原因为:{}", e.getMessage());
throw new RuntimeException("推送数据接收错误!错误原因为:" + e.getMessage());
}
return new Result().code(1);
}
}

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.sewage.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gexin.fastjson.JSON;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
import com.zhgd.xmgl.modules.sewage.service.ISewageDataService;
import io.swagger.annotations.Api;
@ -173,4 +174,14 @@ public class SewageDataController {
return mv;
}
@ApiOperation(value = "监测曲线趋势", notes = "监测曲线趋势", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "date", value = "日期", paramType = "body", required = false, dataType = "String"),
})
@PostMapping(value = "/countSewageDataTrend")
public Result<List<SewageData>> countSewageDataTrend(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(sewageDataService.countSewageDataTrend(paramMap));
}
}

View File

@ -105,4 +105,9 @@ public class SewageData implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "设备名称")
private java.lang.String devName;
@TableField(exist = false)
@ApiModelProperty(value = "time")
private java.lang.String time;
}

View File

@ -21,4 +21,6 @@ import java.util.List;
public interface SewageDataMapper extends BaseMapper<SewageData> {
Page<SewageData> queryDevAndNewestData(@Param(Constants.WRAPPER) QueryWrapper<SewageData> queryWrapper, Page<SewageData> page);
List<SewageData> countSewageDataTrend(HashMap<String, Object> paramMap);
}

View File

@ -1,6 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.sewage.mapper.SewageDataMapper">
<select id="countSewageDataTrend" resultType="com.zhgd.xmgl.modules.sewage.entity.SewageData">
select date_format(create_date,'%H:00') time,
ifnull(avg(ph_value),0) ph_value,
ifnull(avg(turbidity_value),0) turbidity_value,
ifnull(avg(conductivity),0) conductivity,
ifnull(avg(dissolved_oxygen),0) dissolved_oxygen,
ifnull(avg(water_temperature),0) water_temperature,
ifnull(avg(flow_velocity),0) flow_velocity,
ifnull(avg(water_level),0) water_level
from sewage_data
where 1=1
<if test="projectSn != null and projectSn != ''">
and project_sn = #{projectSn}
</if>
<if test="devSn != null and devSn != ''">
and dev_sn = #{devSn}
</if>
<choose>
<when test="date != null and date != ''">
and create_date >= DATE_FORMAT(#{date}, '%Y-%m-%d')
and create_date <![CDATA[<=]]> if(LENGTH(#{date}) = 10, CONCAT(DATE_FORMAT(#{date}, '%Y-%m-%d'), '
23:59:59'), #{date})
</when>
<otherwise>
and create_date >= current_date
</otherwise>
</choose>
group by date_format(create_date,'%Y-%m-%d %H:00')
</select>
<select id="queryDevAndNewestData" resultType="com.zhgd.xmgl.modules.sewage.entity.SewageData">
select sd.dev_sn, sd.dev_name,d.*
from sewage_dev sd

View File

@ -22,4 +22,6 @@ public interface ISewageDataService extends IService<SewageData> {
IPage<SewageData> queryDevAndNewestData(HashMap<String, Object> paramMap);
void add(SewageData sewageData);
List<SewageData> countSewageDataTrend(HashMap<String, Object> paramMap);
}

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.sewage.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -16,15 +17,17 @@ import com.zhgd.xmgl.modules.sewage.mapper.SewageDataMapper;
import com.zhgd.xmgl.modules.sewage.mapper.SewageDevMapper;
import com.zhgd.xmgl.modules.sewage.mapper.SewageWarnThresholdMapper;
import com.zhgd.xmgl.modules.sewage.service.ISewageDataService;
import com.zhgd.xmgl.util.DateUtils;
import com.zhgd.xmgl.util.NumberUtils;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Description: 污水数据
@ -110,6 +113,34 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighAlarm(), dev, "水位", 2);
}
@Override
public List<SewageData> countSewageDataTrend(HashMap<String, Object> paramMap) {
String projectSn = MapUtils.getString(paramMap, "projectSn");
String devSn = MapUtils.getString(paramMap, "devSn");
List<SewageData> list = baseMapper.countSewageDataTrend(paramMap);
Map<String, SewageData> map = list.stream().collect(Collectors.toMap(SewageData::getTime, Function.identity()));
List<String> timeList = DateUtils.getDateTimeStrList(100, "HH:00");
List<SewageData> rtList = new ArrayList<>();
for (String time : timeList) {
SewageData d = map.get(time);
if (d == null) {
d = new SewageData();
d.setPhValue(0.0);
d.setTurbidityValue(0.0);
d.setConductivity(0.0);
d.setDissolvedOxygen(0.0);
d.setWaterTemperature(0.0);
d.setFlowVelocity(0.0);
d.setWaterLevel(0.0);
d.setTime(time);
}
d.setProjectSn(projectSn);
d.setDevSn(devSn);
rtList.add(d);
}
return rtList;
}
private void insertAlarmIfLe(Double data, Double threshold, SewageDev dev, String c, Integer alarmType) {
if (NumberUtils.le(data, threshold)) {
SewageAlarm entity = new SewageAlarm();

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.steelstructure.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
@ -208,4 +209,32 @@ public class SteelStructureCurrentDataController {
public Result<List<NumberDifferentTypesAlarmsRadarChartOneMonthVo>> getNumberDifferentTypesAlarmsRadarChartOneMonth(@RequestParam Map<String, Object> map) {
return Result.success(steelStructureCurrentDataService.getNumberDifferentTypesAlarmsRadarChartOneMonth(map));
}
@PostMapping("/lrk/add")
@ApiOperation(value = "接收钢结构自动化监测系统数据", notes = "接收钢结构自动化监测系统数据")
@ApiImplicitParams({
@ApiImplicitParam(required = true, allowMultiple = true, dataType = "array"),
@ApiImplicitParam(name = "current", value = "实时数据", dataType = "object"),
@ApiImplicitParam(name = "current.calcValue", value = "单位根据监测类型", allowMultiple = true, dataType = "object"),
@ApiImplicitParam(name = "current.calcValue.rateChange", value = "变化速率", dataType = "float"),
@ApiImplicitParam(name = "current.calcValue.value", value = "计算值", dataType = "float"),
@ApiImplicitParam(name = "current.calcValue.variation", value = "变化值", dataType = "float"),
@ApiImplicitParam(name = "current.pointAlarmStatus", value = "报警状态", dataType = "object"),
@ApiImplicitParam(name = "current.pointAlarmStatus.alarmState", value = "警状态 报警状态 1.正常 2.超报警 3.超控制 4.变化速率报警", dataType = "int"),
@ApiImplicitParam(name = "metadata.deviceCode", value = "设备编号", dataType = "string"),
@ApiImplicitParam(name = "metadata.monitorTypeName", value = "监测名称", dataType = "string"),
@ApiImplicitParam(name = "metadata.nickname", value = "测点昵称", dataType = "string"),
@ApiImplicitParam(name = "metadata.projectCode", value = "项目编号", dataType = "string")
})
public Result addLrkData(@RequestBody JSONArray jsonArray) {
log.info("addLrkData推送数据{}", jsonArray);
try {
steelStructureCurrentDataService.saveBatchSteelStructureCurrentData(jsonArray);
} catch (Exception e) {
e.printStackTrace();
log.error("推送数据接收错误!错误原因为:{}", e.getMessage());
throw new RuntimeException("推送数据接收错误!错误原因为:" + e.getMessage());
}
return new Result().code(1);
}
}

View File

@ -300,6 +300,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/xmgl/taskProgressRt/queryById").permitAll()
.antMatchers("/xmgl/frontierProtectionNoNetData/alaDeviceSubscribe").permitAll()
.antMatchers("/xmgl/highSlopeCurrentData/exportData").permitAll()
.antMatchers("/xmgl/steelStructureCurrentData/lrk/add").permitAll()
.antMatchers("/xmgl/exteriorScaffoldingCurrentData/lrk/add").permitAll()
.antMatchers("/xmgl/exteriorScaffoldingCurrentData/exportData").permitAll()
.antMatchers(HttpMethod.OPTIONS, "/**").anonymous()
.anyRequest().authenticated() // 剩下所有的验证都需要验证.
.and()