金林湾修改bug

This commit is contained in:
Administrator 2023-06-15 19:05:41 +08:00
parent 7fb91ac2b1
commit caf24dc623
16 changed files with 372 additions and 152 deletions

View File

@ -2,18 +2,21 @@ package com.zhgd.xmgl.device.ammeter.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.base.Objects;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.async.AsyncDoubleCarbon;
import com.zhgd.xmgl.device.ammeter.util.AmmeterUtils;
import com.zhgd.xmgl.device.ammeter.util.ParserDataUtils;
import com.zhgd.xmgl.modules.ammeter.entity.Ammeter;
import com.zhgd.xmgl.modules.ammeter.entity.AmmeterRecordDetail;
import com.zhgd.xmgl.modules.ammeter.entity.AmmeterSupplierRecord;
import com.zhgd.xmgl.modules.ammeter.entity.*;
import com.zhgd.xmgl.modules.ammeter.mapper.AmmeterRecordDetailMapper;
import com.zhgd.xmgl.modules.ammeter.mapper.AmmeterSupplierRecordMapper;
import com.zhgd.xmgl.modules.ammeter.service.IAmmeterAlarmService;
import com.zhgd.xmgl.modules.ammeter.service.IAmmeterRecordDetailService;
import com.zhgd.xmgl.modules.ammeter.service.IAmmeterService;
import com.zhgd.xmgl.modules.ammeter.service.IAmmeterThresholdService;
import com.zhgd.xmgl.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
@ -38,7 +41,13 @@ public class AmmeterCallBackController {
@Autowired
private IAmmeterService ammeterService;
@Autowired
private IAmmeterAlarmService ammeterAlarmService;
@Autowired
private IAmmeterThresholdService ammeterThresholdService;
@Autowired
private AmmeterSupplierRecordMapper ammeterSupplierRecordMapper;
@Autowired
private AmmeterRecordDetailMapper ammeterRecordDetailMapper;
@Resource
AsyncDoubleCarbon asyncDoubleCarbon;
@ -135,7 +144,8 @@ public class AmmeterCallBackController {
if (CollectionUtils.isNotEmpty(detailList)) {
for (AmmeterRecordDetail d : detailList) {
QueryWrapper<Ammeter> ammeterQueryWrapper = new QueryWrapper<>();
ammeterQueryWrapper.lambda().eq(Ammeter::getAmmeterNo, d.getAmmeterNo());
String ammeterNo = d.getAmmeterNo();
ammeterQueryWrapper.lambda().eq(Ammeter::getAmmeterNo, ammeterNo);
Ammeter one = ammeterService.getOne(ammeterQueryWrapper);
if (one == null) {
return Result.error("电表号ammeterNo不存在");
@ -143,14 +153,40 @@ public class AmmeterCallBackController {
AmmeterRecordDetail ammeterRecordDetail = new AmmeterRecordDetail();
ammeterRecordDetail.setAddTime(d.getAddTime());
ammeterRecordDetail.setDegree(d.getDegree());
ammeterRecordDetail.setAmmeterNo(d.getAmmeterNo());
ammeterRecordDetail.setProjectSn(one.getProjectSn());
ammeterRecordDetail.setAmmeterNo(ammeterNo);
String projectSn = one.getProjectSn();
ammeterRecordDetail.setProjectSn(projectSn);
ammeterRecordDetailService.save(ammeterRecordDetail);
Ammeter a = new Ammeter();
a.setId(one.getId());
a.setOnline(1);
ammeterService.updateById(a);
//是否报警超出月用电量则报警
Date now = new Date();
int monthNum = DateUtil.month(now) + 1;
AmmeterThreshold threshold = ammeterThresholdService.getOne(new LambdaQueryWrapper<AmmeterThreshold>()
.eq(AmmeterThreshold::getProjectSn, projectSn)
.eq(AmmeterThreshold::getAmmeterNo, ammeterNo)
.eq(AmmeterThreshold::getMonthNum, monthNum));
if (threshold != null && threshold.getThresholdValue() != null) {
Double maxDegree = ammeterRecordDetailMapper.queryMaxAmmeterRecordDegreeDetailCurrentMonth(ammeterRecordDetail);
Double minDegree = ammeterRecordDetailMapper.queryMinAmmeterRecordDegreeDetailCurrentMonth(ammeterRecordDetail);
if (maxDegree != null && minDegree != null) {
double currentDegreeCurrentMonth = maxDegree - minDegree;
if (threshold.getThresholdValue().compareTo(new BigDecimal(currentDegreeCurrentMonth)) <= 0) {
AmmeterAlarm meterAlarm = new AmmeterAlarm();
meterAlarm.setAmmeterNo(ammeterNo);
meterAlarm.setProjectSn(projectSn);
meterAlarm.setAlarmTime(DateUtil.formatDateTime(d.getAddTime()));
meterAlarm.setAlarmReason("本月用电量超过设定阈值");
meterAlarm.setAlarmValue(d.getDegree().toString());
meterAlarm.setThresholdValue(threshold.getThresholdValue().toString());
ammeterAlarmService.save(meterAlarm);
}
}
}
}
}
return Result.ok();

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.device.water.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.base.Objects;
import com.zhgd.jeecg.common.api.vo.Result;
@ -9,13 +10,15 @@ import com.zhgd.xmgl.async.AsyncDoubleCarbon;
import com.zhgd.xmgl.device.water.entity.AddWaterMeterRecord;
import com.zhgd.xmgl.device.water.util.MeterUtils;
import com.zhgd.xmgl.device.water.util.ParserDataUtils;
import com.zhgd.xmgl.modules.water.entity.WaterMeter;
import com.zhgd.xmgl.modules.water.entity.WaterMeterRecordDetail;
import com.zhgd.xmgl.modules.water.entity.WaterSupplierRecord;
import com.zhgd.xmgl.modules.water.entity.*;
import com.zhgd.xmgl.modules.water.mapper.WaterMeterRecordDetailMapper;
import com.zhgd.xmgl.modules.water.mapper.WaterSupplierRecordMapper;
import com.zhgd.xmgl.modules.water.service.IWaterMeterAlarmService;
import com.zhgd.xmgl.modules.water.service.IWaterMeterRecordDetailService;
import com.zhgd.xmgl.modules.water.service.IWaterMeterService;
import com.zhgd.xmgl.modules.water.service.IWaterMeterThresholdService;
import com.zhgd.xmgl.util.Base64;
import com.zhgd.xmgl.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
@ -43,6 +46,12 @@ public class CallBackController {
private WaterSupplierRecordMapper waterSupplierRecordMapper;
@Autowired
private IWaterMeterRecordDetailService waterMeterRecordDetailService;
@Autowired
private IWaterMeterAlarmService waterMeterAlarmService;
@Autowired
private IWaterMeterThresholdService waterMeterThresholdService;
@Autowired
private WaterMeterRecordDetailMapper waterMeterRecordDetailMapper;
@Resource
AsyncDoubleCarbon asyncDoubleCarbon;
@ -183,23 +192,49 @@ public class CallBackController {
if (CollectionUtils.isNotEmpty(addWaterMeterRecords)) {
for (AddWaterMeterRecord r : addWaterMeterRecords) {
QueryWrapper<WaterMeter> ammeterQueryWrapper = new QueryWrapper<>();
ammeterQueryWrapper.lambda().eq(WaterMeter::getWaterMeterNo, r.getWaterMeterNo());
String waterMeterNo = r.getWaterMeterNo();
ammeterQueryWrapper.lambda().eq(WaterMeter::getWaterMeterNo, waterMeterNo);
WaterMeter one = ammeterService.getOne(ammeterQueryWrapper);
if (one == null) {
return Result.error("水表号waterMeterNo不存在");
}
String projectSn = one.getProjectSn();
WaterMeter waterMeter = new WaterMeter();
waterMeter.setId(one.getId());
waterMeter.setOnline(1);
ammeterService.updateById(waterMeter);
WaterMeterRecordDetail ammeterRecordDetail = new WaterMeterRecordDetail();
ammeterRecordDetail.setAddTime(new Date());
ammeterRecordDetail.setWaterTonnage(r.getWaterTonnage());
ammeterRecordDetail.setWaterMeterNo(r.getWaterMeterNo());
ammeterRecordDetail.setProjectSn(one.getProjectSn());
waterMeterRecordDetailService.save(ammeterRecordDetail);
WaterMeterRecordDetail waterMeterRecordDetail = new WaterMeterRecordDetail();
Date now = new Date();
waterMeterRecordDetail.setAddTime(now);
waterMeterRecordDetail.setWaterTonnage(r.getWaterTonnage());
waterMeterRecordDetail.setWaterMeterNo(waterMeterNo);
waterMeterRecordDetail.setProjectSn(projectSn);
waterMeterRecordDetailService.save(waterMeterRecordDetail);
//是否报警超出月用水量则报警
int monthNum = DateUtil.month(now) + 1;
WaterMeterThreshold threshold = waterMeterThresholdService.getOne(new LambdaQueryWrapper<WaterMeterThreshold>()
.eq(WaterMeterThreshold::getProjectSn, projectSn)
.eq(WaterMeterThreshold::getWaterMeterNo, waterMeterNo)
.eq(WaterMeterThreshold::getMonthNum, monthNum));
if (threshold != null && threshold.getThresholdValue() != null) {
Double maxDegree = waterMeterRecordDetailMapper.queryMaxAmmeterRecordDegreeDetailCurrentMonth(waterMeterRecordDetail);
Double minDegree = waterMeterRecordDetailMapper.queryMinAmmeterRecordDegreeDetailCurrentMonth(waterMeterRecordDetail);
if (maxDegree != null && minDegree != null) {
double currentDegreeCurrentMonth = maxDegree - minDegree;
if (threshold.getThresholdValue().compareTo(new BigDecimal(currentDegreeCurrentMonth)) <= 0) {
WaterMeterAlarm waterMeterAlarm = new WaterMeterAlarm();
waterMeterAlarm.setWaterMeterNo(waterMeterNo);
waterMeterAlarm.setProjectSn(projectSn);
waterMeterAlarm.setAlarmTime(DateUtil.formatDateTime(now));
waterMeterAlarm.setAlarmReason("本月用水量超过设定阈值");
waterMeterAlarmService.save(waterMeterAlarm);
}
}
}
}
}

View File

@ -47,4 +47,8 @@ public interface AmmeterRecordDetailMapper extends BaseMapper<AmmeterRecordDetai
* @return
*/
Float getSum(String projectSn);
Double queryMaxAmmeterRecordDegreeDetailCurrentMonth(AmmeterRecordDetail ammeterRecordDetail);
Double queryMinAmmeterRecordDegreeDetailCurrentMonth(AmmeterRecordDetail ammeterRecordDetail);
}

View File

@ -55,4 +55,28 @@
where project_sn = #{projectSn}
GROUP BY ammeter_no) temp
</select>
<select id="queryMaxAmmeterRecordDegreeDetailCurrentMonth" resultType="java.lang.Double">
SELECT degree
FROM ammeter_record_detail
WHERE id = (
SELECT max(ard.id)
FROM `ammeter_record_detail` ard
WHERE DATE_FORMAT(ard.add_time, '%Y-%m') = DATE_FORMAT(
curdate(),
'%Y-%m')
)
</select>
<select id="queryMinAmmeterRecordDegreeDetailCurrentMonth" resultType="java.lang.Double">
SELECT degree
FROM ammeter_record_detail
WHERE id = (
SELECT min(ard.id)
FROM `ammeter_record_detail` ard
WHERE DATE_FORMAT(ard.add_time, '%Y-%m') = DATE_FORMAT(
curdate(),
'%Y-%m')
)
</select>
</mapper>

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.bigdevice.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@ -85,11 +86,15 @@ public class BigDeviceDriverRecord implements Serializable {
@ApiModelProperty(value = "项目sn")
private java.lang.String projectSn;
@ApiModelProperty(value = "性别1男2女")
@TableField(exist = false)
private java.lang.Integer sex;
@ApiModelProperty(value = "年龄")
@TableField(exist = false)
private java.lang.Integer age;
@ApiModelProperty(value = "工作年限")
@TableField(exist = false)
private java.lang.Integer workYear;
@ApiModelProperty(value = "本次连续工作时长(分钟)")
@TableField(exist = false)
private java.lang.Integer continuousWorkingTime;
}

View File

@ -68,7 +68,6 @@ public class CarWashCurrentDataController {
@PostMapping(value = "/add")
public Result<CarWashCurrentData> add(@RequestBody CarWashCurrentData carWashCurrentData) {
log.info("添加车辆冲洗实时数据信息:{}", JSON.toJSONString(carWashCurrentData));
carWashCurrentDataService.saveCarWashCurrentData(carWashCurrentData);
return Result.ok();
}

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.concrete.controller;
import com.gexin.fastjson.JSON;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.concrete.entity.ConcreteMonitorCurrentData;
@ -36,7 +37,6 @@ public class ConcreteMonitorCurrentDataController {
private IConcreteMonitorCurrentDataService concreteMonitorCurrentDataService;
/**
* 添加
* @param
@ -45,6 +45,7 @@ public class ConcreteMonitorCurrentDataController {
@ApiOperation(value = " 添加混凝土监测-实时数据信息", notes = "添加混凝土监测-实时数据信息" , httpMethod="POST")
@PostMapping(value = "/add")
public Result<ConcreteMonitorCurrentData> add(@RequestBody ConcreteMonitorCurrentDataVo concreteMonitorCurrentDataVo) {
log.info("添加混凝土监测-实时数据信息:{}", JSON.toJSONString(concreteMonitorCurrentDataVo));
concreteMonitorCurrentDataService.saveConcreteMonitorCurrentData(concreteMonitorCurrentDataVo);
return Result.ok();
}
@ -69,5 +70,4 @@ public class ConcreteMonitorCurrentDataController {
}
}

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.concrete.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.entity.vo.ConcreteMonitorCurrentDataVo;
@ -17,8 +18,6 @@ import com.zhgd.xmgl.util.MessageUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
@ -47,21 +46,25 @@ public class ConcreteMonitorCurrentDataServiceImpl extends ServiceImpl<ConcreteM
@Override
public void saveConcreteMonitorCurrentData(ConcreteMonitorCurrentDataVo concreteMonitorCurrentDataVo) {
QueryWrapper<ConcreteMonitorDev> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ConcreteMonitorDev::getDevSn, concreteMonitorCurrentDataVo.getDevSn());
String devSn = concreteMonitorCurrentDataVo.getDevSn();
queryWrapper.lambda().eq(ConcreteMonitorDev::getDevSn, devSn);
ConcreteMonitorDev dev = concreteMonitorDevMapper.selectOne(queryWrapper);
if (dev == null) {
throw new OpenAlertException(MessageUtil.get("EquipmentNumIncorrectErr"));
}
String projectSn = dev.getProjectSn();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (concreteMonitorCurrentDataVo.getList().size() > 0) {
for (ConcreteMonitorCurrentData currentData : concreteMonitorCurrentDataVo.getList()) {
currentData.setProjectSn(dev.getProjectSn());
currentData.setProjectSn(projectSn);
currentData.setDevSn(devSn);
concreteMonitorCurrentDataMapper.insert(currentData);
QueryWrapper<ConcreteMonitorDevPointPosition> qu = new QueryWrapper<>();
qu.lambda().eq(ConcreteMonitorDevPointPosition::getProjectSn,dev.getProjectSn())
qu.lambda().eq(ConcreteMonitorDevPointPosition::getProjectSn, projectSn)
.eq(ConcreteMonitorDevPointPosition::getDevSn, dev.getDevSn())
.eq(ConcreteMonitorDevPointPosition::getPointNo, currentData.getPointNo());
ConcreteMonitorDevPointPosition pointPosition = concreteMonitorDevPointPositionMapper.selectOne(qu);
//添加报警信息
if (pointPosition != null) {
if (pointPosition.getTemperatureThreshold() != null && currentData.getTemperature() != null
&& currentData.getTemperature().doubleValue() > pointPosition.getTemperatureThreshold().doubleValue()) {
@ -69,7 +72,7 @@ public class ConcreteMonitorCurrentDataServiceImpl extends ServiceImpl<ConcreteM
concreteMonitorAlarm.setDevSn(dev.getDevSn());
concreteMonitorAlarm.setAddTime(sdf.format(new Date()));
concreteMonitorAlarm.setAlarmType("预警");
concreteMonitorAlarm.setProjectSn(dev.getProjectSn());
concreteMonitorAlarm.setProjectSn(projectSn);
concreteMonitorAlarm.setPointNo(currentData.getPointNo());
concreteMonitorAlarm.setAlarmValue(currentData.getTemperature());
concreteMonitorAlarm.setAlarmLevel(4);

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.discharging.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gexin.fastjson.JSON;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformCurrentData;
@ -53,14 +54,17 @@ public class DischargingPlatformCurrentDataController {
result.setResult(pageList);
return result;
}
/**
* 添加
*
* @param dischargingPlatformCurrentData
* @return
*/
@ApiOperation(value = " 添加卸料平台-实时数据信息", notes = "添加卸料平台-实时数据信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<DischargingPlatformCurrentData> add(@RequestBody DischargingPlatformCurrentData dischargingPlatformCurrentData) {
log.info("添加卸料平台-实时数据信息:{}", JSON.toJSONString(dischargingPlatformCurrentData));
dischargingPlatformCurrentDataService.saveDischargingPlatformCurrentData(dischargingPlatformCurrentData);
return Result.ok();
}
@ -80,5 +84,4 @@ public class DischargingPlatformCurrentDataController {
}
}

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.discharging.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformAlarm;
@ -15,8 +16,6 @@ import com.zhgd.xmgl.modules.discharging.service.IDischargingPlatformCurrentData
import com.zhgd.xmgl.util.MessageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@ -49,6 +48,7 @@ public class DischargingPlatformCurrentDataServiceImpl extends ServiceImpl<Disch
}
dischargingPlatformCurrentData.setProjectSn(dev.getProjectSn());
dischargingPlatformCurrentDataMapper.insert(dischargingPlatformCurrentData);
//添加报警信息
if (dischargingPlatformCurrentData.getIsAlarm() != null && dischargingPlatformCurrentData.getIsAlarm() == 1) {
DischargingPlatformAlarm dischargingPlatformAlarm = new DischargingPlatformAlarm();
dischargingPlatformAlarm.setDevSn(dev.getDevSn());

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
@ -9,10 +10,7 @@ import com.zhgd.xmgl.modules.worker.entity.UfaceDev;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
import com.zhgd.xmgl.modules.worker.mapper.UserDevAuthorityMapper;
import com.zhgd.xmgl.util.JxjNewUfaceDevUtil;
import com.zhgd.xmgl.util.JxjUfaceUtil;
import com.zhgd.xmgl.util.QYUfaceUtil;
import com.zhgd.xmgl.util.UniUbiUtil;
import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -68,6 +66,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
//判断是否配置并下发设备
if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
try {
if (tempProjectUfaceConfig.getSupplierType() == 1) {
//宇泛
UniUbiUtil.regDevice(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(), ufaceDev.getDevSn());
@ -83,6 +82,10 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl<ProjectUfaceConfi
//佳信捷新设备
JxjNewUfaceDevUtil.addUfaceDev(ufaceDev, tempProjectUfaceConfig);
}
} catch (Exception e) {
log.error("err:", e);
throw new OpenAlertException(MessageUtil.get("thirdErr"));
}
}
}

View File

@ -57,4 +57,8 @@ public interface WaterMeterRecordDetailMapper extends BaseMapper<WaterMeterRecor
* @return
*/
Float getSum(String projectSn);
Double queryMaxAmmeterRecordDegreeDetailCurrentMonth(WaterMeterRecordDetail waterMeterRecordDetail);
Double queryMinAmmeterRecordDegreeDetailCurrentMonth(WaterMeterRecordDetail waterMeterRecordDetail);
}

View File

@ -63,4 +63,28 @@
where project_sn = #{projectSn}
GROUP BY water_meter_no) temp
</select>
<select id="queryMaxAmmeterRecordDegreeDetailCurrentMonth" resultType="java.lang.Double">
SELECT water_tonnage
FROM water_meter_record_detail
WHERE id = (
SELECT max(ard.id)
FROM `water_meter_record_detail` ard
WHERE DATE_FORMAT(ard.add_time, '%Y-%m') = DATE_FORMAT(
curdate(),
'%Y-%m')
)
</select>
<select id="queryMinAmmeterRecordDegreeDetailCurrentMonth" resultType="java.lang.Double">
SELECT water_tonnage
FROM water_meter_record_detail
WHERE id = (
SELECT min(ard.id)
FROM `water_meter_record_detail` ard
WHERE DATE_FORMAT(ard.add_time, '%Y-%m') = DATE_FORMAT(
curdate(),
'%Y-%m')
)
</select>
</mapper>

View File

@ -44,4 +44,6 @@ public interface IWaterMeterRecordDetailService extends IService<WaterMeterRecor
* @return
*/
List<WaterMeterRecordDetail> listByProjectSn(String projectSn);
}

View File

@ -0,0 +1,80 @@
http.port=52421
spring.datasource.url=jdbc:mysql://localhost:3306/jxj_wisdom_template?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=ENC(XR4C/hvTYCUqudS49Wh/jA==)
spring.datasource.password=ENC(LsKaVL2ycDu+uUNoPndYLA==)
server.port=30016
basePath=C:/jxj/prod/backEnd/itbgpImage/
arcsoft.dllPath=C:/jxj/prod/backEnd/dll
security.enable=false
isGetStandardData=false
isGetEnvironmentData=false
isGetFaceFeatureDate=false
#\u6D77\u5EB7\u89C6\u9891\u62A5\u8B66\u56FE\u7247IP\u7AEF\u53E3\u66FF\u6362
video.alarm.newUrl=223.82.100.80:6040
wx-appid=
wx-AppSecret=
mqtt.username=admin
mqtt.password=public
#mqtt.url=tcp://139.159.226.224:1883
mqtt.url=ws://121.196.214.246:8083/mqtt
mqtt.producer.clientId=mqttProd
mqtt.producer.defaultTopic=topic1
mqtt.consumer.clientId=mqttConsumer
mqtt.consumer.defaultTopic=topic1
mqtt-scope=prodTopic
serverUrl=http://124.71.178.44:8
#\u89C6\u9891\u5206\u6790url
video-analysis-url=
#\u9ED8\u8BA4\u653F\u52A1\u521B\u5EFA\u9879\u76EE\u6240\u5C5E\u4F01\u4E1A
defaultZwComapnySn=
#\u6587\u4EF6\u5B58\u50A8\u914D\u7F6E
#\u9ED8\u8BA4\u4F7F\u7528\u7684\u5B58\u50A8\u5E73\u53F0
spring.file-storage.default-platform=local
#".min.jpg" #\u7F29\u7565\u56FE\u540E\u7F00\uFF0C\u4F8B\u5982\u3010.min.jpg\u3011\u3010.png\u3011
spring.file-storage.thumbnail-suffix=.jpg
# \u672C\u5730\u5B58\u50A8\uFF0C\u4E0D\u4F7F\u7528\u7684\u60C5\u51B5\u4E0B\u53EF\u4EE5\u4E0D\u5199
# \u5B58\u50A8\u5E73\u53F0\u6807\u8BC6
spring.file-storage.local[0].platform=local
#\u542F\u7528\u5B58\u50A8
spring.file-storage.local[0].enable-storage=true
#\u542F\u7528\u8BBF\u95EE\uFF08\u7EBF\u4E0A\u8BF7\u4F7F\u7528 Nginx \u914D\u7F6E\uFF0C\u6548\u7387\u66F4\u9AD8\uFF09
spring.file-storage.local[0].enable-access=false
# \u8BBF\u95EE\u57DF\u540D\uFF0C\u4F8B\u5982\uFF1A\u201Chttp://127.0.0.1:6023/image/\u201D\uFF0C\u6CE8\u610F\u540E\u9762\u8981\u548C path-patterns \u4FDD\u6301\u4E00\u81F4\uFF0C\u201C/\u201D\u7ED3\u5C3E\uFF0C\u672C\u5730\u5B58\u50A8\u5EFA\u8BAE\u4F7F\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u65B9\u4FBF\u540E\u671F\u66F4\u6362\u57DF\u540D
spring.file-storage.local[0].domain=
# \u5B58\u50A8\u5730\u5740
spring.file-storage.local[0].base-path=C:/jxj/prod/backEnd/itbgpImage/
# \u8BBF\u95EE\u8DEF\u5F84\uFF0C\u5F00\u542F enable-access \u540E\uFF0C\u901A\u8FC7\u6B64\u8DEF\u5F84\u53EF\u4EE5\u8BBF\u95EE\u5230\u4E0A\u4F20\u7684\u6587\u4EF6
spring.file-storage.local[0].path-patterns=
spring.file-storage.aliyun-oss[0].platform=aliyun-oss
spring.file-storage.aliyun-oss[0].enable-storage=false
spring.file-storage.aliyun-oss[0].access-key=
spring.file-storage.aliyun-oss[0].secret-key=
spring.file-storage.aliyun-oss[0].end-point=
spring.file-storage.aliyun-oss[0].bucket-name=
# \u8BBF\u95EE\u57DF\u540D\uFF0C\u6CE8\u610F\u201C/\u201D\u7ED3\u5C3E\uFF0C\u4F8B\u5982\uFF1Ahttps://abc.oss-cn-shanghai.aliyuncs.com/
spring.file-storage.aliyun-oss[0].domain=
spring.file-storage.aliyun-oss[0].base-path=
#\u5BA2\u6237\u7AEF License\u76F8\u5173\u914D\u7F6E
#license.licensePath=D:/license_demo/client/license.lic
#license.publicKeysStorePath=D:/license_demo/client/publicCerts.keystore
#redis
spring.redis.database=1
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=2000s
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=60s
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=10
server.tomcat.basedir=C:/tempImage/
license.licensePath=C:/license/license.lic
license.publicKeysStorePath=C:/license/publicCerts.keystore
govt.host=
server.ssl.enabled=false
# admin\u4E2D\u5BF9\u5E94\u7684\u5730\u5740\u53CA\u5B9E\u4F8B\u540D
spring.boot.admin.client.instance.service-url=http://localhost:18070
spring.boot.admin.client.instance.name=zjsj
# \u6C34\u7535\u6570\u636E\u63A8\u9001\u5730\u5740
double-carbon.water-data-url=http://test.cesms.net
double-carbon.ammeter-data-url=http://test.cesms.net

View File

@ -9,7 +9,7 @@ security.enable=false
isGetStandardData=false
isGetEnvironmentData=false
isGetFaceFeatureDate=false
#\u6D77\u5EB7\u89C6\u9891\u62A5\u8B66\u56FE\u7247IP\u7AEF\u53E3\u66FF\u6362
#海康视频报警图片ip端口替换
video.alarm.newUrl=223.82.100.80:6040
wx-appid=
wx-AppSecret=
@ -23,27 +23,27 @@ mqtt.consumer.clientId=mqttConsumer
mqtt.consumer.defaultTopic=topic1
mqtt-scope=prodTopic
serverUrl=http://124.71.178.44:8
#\u89C6\u9891\u5206\u6790url
#视频分析url
video-analysis-url=
#\u9ED8\u8BA4\u653F\u52A1\u521B\u5EFA\u9879\u76EE\u6240\u5C5E\u4F01\u4E1A
#默认政务创建项目所属企业
defaultZwComapnySn=
#\u6587\u4EF6\u5B58\u50A8\u914D\u7F6E
#\u9ED8\u8BA4\u4F7F\u7528\u7684\u5B58\u50A8\u5E73\u53F0
#文件存储配置
#默认使用的存储平台
spring.file-storage.default-platform=local
#".min.jpg" #\u7F29\u7565\u56FE\u540E\u7F00\uFF0C\u4F8B\u5982\u3010.min.jpg\u3011\u3010.png\u3011
#".min.jpg" #缩略图后缀,例如【.min.jpg】【.png】
spring.file-storage.thumbnail-suffix=.jpg
# \u672C\u5730\u5B58\u50A8\uFF0C\u4E0D\u4F7F\u7528\u7684\u60C5\u51B5\u4E0B\u53EF\u4EE5\u4E0D\u5199
# \u5B58\u50A8\u5E73\u53F0\u6807\u8BC6
# 本地存储,不使用的情况下可以不写
# 存储平台标识
spring.file-storage.local[0].platform=local
#\u542F\u7528\u5B58\u50A8
#启用存储
spring.file-storage.local[0].enable-storage=true
#\u542F\u7528\u8BBF\u95EE\uFF08\u7EBF\u4E0A\u8BF7\u4F7F\u7528 Nginx \u914D\u7F6E\uFF0C\u6548\u7387\u66F4\u9AD8\uFF09
#启用访问(线上请使用 nginx 配置,效率更高)
spring.file-storage.local[0].enable-access=false
# \u8BBF\u95EE\u57DF\u540D\uFF0C\u4F8B\u5982\uFF1A\u201Chttp://127.0.0.1:6023/image/\u201D\uFF0C\u6CE8\u610F\u540E\u9762\u8981\u548C path-patterns \u4FDD\u6301\u4E00\u81F4\uFF0C\u201C/\u201D\u7ED3\u5C3E\uFF0C\u672C\u5730\u5B58\u50A8\u5EFA\u8BAE\u4F7F\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u65B9\u4FBF\u540E\u671F\u66F4\u6362\u57DF\u540D
# 访问域名例如“http://127.0.0.1:6023/image/”,注意后面要和 path-patterns 保持一致,“/”结尾,本地存储建议使用相对路径,方便后期更换域名
spring.file-storage.local[0].domain=
# \u5B58\u50A8\u5730\u5740
# 存储地址
spring.file-storage.local[0].base-path=/data
# \u8BBF\u95EE\u8DEF\u5F84\uFF0C\u5F00\u542F enable-access \u540E\uFF0C\u901A\u8FC7\u6B64\u8DEF\u5F84\u53EF\u4EE5\u8BBF\u95EE\u5230\u4E0A\u4F20\u7684\u6587\u4EF6
# 访问路径,开启 enable-access 后,通过此路径可以访问到上传的文件
spring.file-storage.local[0].path-patterns=
spring.file-storage.aliyun-oss[0].platform=aliyun-oss
spring.file-storage.aliyun-oss[0].enable-storage=false
@ -51,13 +51,12 @@ spring.file-storage.aliyun-oss[0].access-key=
spring.file-storage.aliyun-oss[0].secret-key=
spring.file-storage.aliyun-oss[0].end-point=
spring.file-storage.aliyun-oss[0].bucket-name=
# \u8BBF\u95EE\u57DF\u540D\uFF0C\u6CE8\u610F\u201C/\u201D\u7ED3\u5C3E\uFF0C\u4F8B\u5982\uFF1Ahttps://abc.oss-cn-shanghai.aliyuncs.com/
# 访问域名,注意“/”结尾,例如:https://abc.oss-cn-shanghai.aliyuncs.com/
spring.file-storage.aliyun-oss[0].domain=
spring.file-storage.aliyun-oss[0].base-path=
#\u5BA2\u6237\u7AEF License\u76F8\u5173\u914D\u7F6E
#license.licensePath=D:/license_demo/client/license.lic
#license.publicKeysStorePath=D:/license_demo/client/publicCerts.keystore
#客户端 license相关配置
#license.licensepath=d:/license_demo/client/license.lic
#license.publickeysstorepath=d:/license_demo/client/publiccerts.keystore
#redis
spring.redis.database=1
spring.redis.host=127.0.0.1
@ -77,10 +76,9 @@ license.publicKeysStorePath=C:/license/publicCerts.keystore
govt.host=http://47.96.183.143/uatapi
server.ssl.enabled=false
# admin\u4E2D\u5BF9\u5E94\u7684\u5730\u5740\u53CA\u5B9E\u4F8B\u540D
# admin中对应的地址及实例名
spring.boot.admin.client.instance.service-url=http://localhost:18070
spring.boot.admin.client.instance.name=zjsj
# \u6C34\u7535\u6570\u636E\u63A8\u9001\u5730\u5740
# 水电数据推送地址
double-carbon.water-data-url=http://test.cesms.net
double-carbon.ammeter-data-url=http://test.cesms.net