盾构机优化

This commit is contained in:
pengjie 2025-02-21 16:28:02 +08:00
parent 4806ed1b60
commit bb15bed6b9
8 changed files with 145 additions and 38 deletions

View File

@ -26,5 +26,7 @@ public interface TunnelBoringMachineCurrentDataMapper extends BaseMapper<TunnelB
TunnelBoringMachineCurrentData getLastData(Map<String, Object> map); TunnelBoringMachineCurrentData getLastData(Map<String, Object> map);
TunnelBoringMachineCurrentData getFirstDataByMonth(Map<String, Object> map);
TunnelBoringMachineCurrentData getFirstData(Map<String, Object> map); TunnelBoringMachineCurrentData getFirstData(Map<String, Object> map);
} }

View File

@ -5,7 +5,7 @@
<select id="pageList" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineAlarm"> <select id="pageList" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineAlarm">
select * from (select t.*, d.dev_name deviceName select * from (select t.*, d.dev_name deviceName
from tunnel_boring_machine_alarm t left join tunnel_boring_machine d on t.dev_sn = d.dev_sn) a from tunnel_boring_machine_alarm t left join tunnel_boring_machine d on t.dev_sn = d.dev_sn) a
${ew.customSqlSegment} ${ew.customSqlSegment} order by alarm_time desc
</select> </select>
<select id="getNewAlarm" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineAlarm"> <select id="getNewAlarm" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineAlarm">

View File

@ -5,7 +5,7 @@
<select id="pageList" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData"> <select id="pageList" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData">
select * from (select t.*, d.dev_name deviceName select * from (select t.*, d.dev_name deviceName
from tunnel_boring_machine_current_data t left join tunnel_boring_machine d on t.device_sn = d.dev_sn) a from tunnel_boring_machine_current_data t left join tunnel_boring_machine d on t.device_sn = d.dev_sn) a
${ew.customSqlSegment} ${ew.customSqlSegment} order by report_time desc
</select> </select>
<select id="getLastData" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData" <select id="getLastData" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData"
@ -17,12 +17,19 @@
limit 1 limit 1
</select> </select>
<select id="getFirstDataByMonth" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData"
parameterType="map">
select *
from tunnel_boring_machine_current_data
where project_sn = #{projectSn} and device_sn = #{deviceSn} AND DATE_FORMAT(report_time,'%Y-%m') = #{time}
limit 1
</select>
<select id="getFirstData" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData" <select id="getFirstData" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData"
parameterType="map"> parameterType="map">
select * select *
from tunnel_boring_machine_current_data from tunnel_boring_machine_current_data
where project_sn = #{projectSn} and device_sn = #{deviceSn} where project_sn = #{projectSn} and device_sn = #{deviceSn} AND DATE_FORMAT(report_time,'%Y-%m-%d') = #{time}
ORDER BY report_time
limit 1 limit 1
</select> </select>
</mapper> </mapper>

View File

@ -27,5 +27,6 @@ public interface ITunnelBoringMachineCurrentDataService extends IService<TunnelB
TunnelBoringMachineCurrentDataVo getLastData(Map<String, Object> map); TunnelBoringMachineCurrentDataVo getLastData(Map<String, Object> map);
TunnelBoringMachineStatVo getStatData(Map<String, Object> map); TunnelBoringMachineStatVo getStatData(Map<String, Object> map);
} }

View File

@ -11,10 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.healthmarketscience.jackcess.impl.expr.BigDecimalValue; import com.healthmarketscience.jackcess.impl.expr.BigDecimalValue;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachine; import com.zhgd.xmgl.modules.bigdevice.entity.*;
import com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineCurrentData;
import com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineStat;
import com.zhgd.xmgl.modules.bigdevice.entity.TunnelBoringMachineWarning;
import com.zhgd.xmgl.modules.bigdevice.entity.vo.TunnelBoringMachineCurrentDataVo; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TunnelBoringMachineCurrentDataVo;
import com.zhgd.xmgl.modules.bigdevice.entity.vo.TunnelBoringMachineStatVo; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TunnelBoringMachineStatVo;
import com.zhgd.xmgl.modules.bigdevice.mapper.TunnelBoringMachineCurrentDataMapper; import com.zhgd.xmgl.modules.bigdevice.mapper.TunnelBoringMachineCurrentDataMapper;
@ -253,11 +250,19 @@ public class TunnelBoringMachineCurrentDataServiceImpl extends ServiceImpl<Tunne
return dataBuilder(lastData); return dataBuilder(lastData);
} }
private TunnelBoringMachineCurrentDataVo getLastData1(Map<String, Object> map) {
TunnelBoringMachineCurrentData lastData = baseMapper.getLastData(map);
if (lastData == null) {
return new TunnelBoringMachineCurrentDataVo();
}
return dataBuilder1(lastData);
}
@Override @Override
public TunnelBoringMachineStatVo getStatData(Map<String, Object> map) { public TunnelBoringMachineStatVo getStatData(Map<String, Object> map) {
String projectSn = MapUtils.getString(map, "projectSn"); String projectSn = MapUtils.getString(map, "projectSn");
String deviceSn = MapUtils.getString(map, "deviceSn"); String deviceSn = MapUtils.getString(map, "deviceSn");
TunnelBoringMachineCurrentDataVo lastData = getLastData(map); TunnelBoringMachineCurrentDataVo lastData = getLastData1(map);
TunnelBoringMachine tunnelBoringMachine = tunnelBoringMachineMapper.selectOne(Wrappers.<TunnelBoringMachine>lambdaQuery() TunnelBoringMachine tunnelBoringMachine = tunnelBoringMachineMapper.selectOne(Wrappers.<TunnelBoringMachine>lambdaQuery()
.eq(TunnelBoringMachine::getProjectSn, projectSn) .eq(TunnelBoringMachine::getProjectSn, projectSn)
.eq(TunnelBoringMachine::getDevSn, deviceSn)); .eq(TunnelBoringMachine::getDevSn, deviceSn));
@ -269,12 +274,11 @@ public class TunnelBoringMachineCurrentDataServiceImpl extends ServiceImpl<Tunne
TunnelBoringMachineStatVo tunnelBoringMachineStatVo = new TunnelBoringMachineStatVo(); TunnelBoringMachineStatVo tunnelBoringMachineStatVo = new TunnelBoringMachineStatVo();
tunnelBoringMachineStatVo.setTotalMileage(tunnelBoringMachine.getTotalMileage()); tunnelBoringMachineStatVo.setTotalMileage(tunnelBoringMachine.getTotalMileage());
tunnelBoringMachineStatVo.setTotalNumber(tunnelBoringMachine.getTotalNumber()); tunnelBoringMachineStatVo.setTotalNumber(tunnelBoringMachine.getTotalNumber());
tunnelBoringMachineStatVo.setNumberByDay(machineStatList.stream().filter(m -> m.getCreateTime().equals(DateUtil.parseDate(DateUtil.formatDate(new Date())))) tunnelBoringMachineStatVo.setNumberByDay(lastData.getDayNumber());
.map(m -> m.getNumber()).mapToInt(Integer::intValue).sum()); tunnelBoringMachineStatVo.setNumberByMonth(lastData.getMonthNumber());
tunnelBoringMachineStatVo.setNumberByMonth(machineStatList.stream().map(m -> m.getNumber()).mapToInt(Integer::intValue).sum());
tunnelBoringMachineStatVo.setTunnelBoringMachineCurrentDataVo(lastData); tunnelBoringMachineStatVo.setTunnelBoringMachineCurrentDataVo(lastData);
tunnelBoringMachineStatVo.setCompleteRatio(tunnelBoringMachine.getTotalNumber() == null ? "0" : new BigDecimal(lastData.getCurrentNumber()).divide(new BigDecimal(tunnelBoringMachine.getTotalNumber()), tunnelBoringMachineStatVo.setCompleteRatio(tunnelBoringMachine.getTotalNumber() == null ? "0" : new BigDecimal(lastData.getCurrentNumber()).divide(new BigDecimal(tunnelBoringMachine.getTotalNumber()),
2,BigDecimal.ROUND_HALF_UP).toString()); 3,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).toString());
List<String> dayList = DateUtils.getNowFewDaysAgoList(15); List<String> dayList = DateUtils.getNowFewDaysAgoList(15);
List<TunnelBoringMachineStat> resultList = new ArrayList<>(); List<TunnelBoringMachineStat> resultList = new ArrayList<>();
for (String s : dayList) { for (String s : dayList) {
@ -294,6 +298,56 @@ public class TunnelBoringMachineCurrentDataServiceImpl extends ServiceImpl<Tunne
return tunnelBoringMachineStatVo; return tunnelBoringMachineStatVo;
} }
private TunnelBoringMachineCurrentDataVo dataBuilder1(TunnelBoringMachineCurrentData tunnelBoringMachineCurrentData) {
TunnelBoringMachineCurrentDataVo tunnelBoringMachineCurrentDataVo = new TunnelBoringMachineCurrentDataVo();
BeanUtils.copyProperties(tunnelBoringMachineCurrentData, tunnelBoringMachineCurrentDataVo);
List<TunnelBoringMachineAlarm> list = tunnelBoringMachineAlarmService.list(Wrappers.<TunnelBoringMachineAlarm>lambdaQuery()
.ge(TunnelBoringMachineAlarm::getAlarmTime, DateUtil.beginOfDay(new Date()))
.le(TunnelBoringMachineAlarm::getAlarmTime, DateUtil.endOfDay(new Date())));
String [] alarmType = {"normal", "yellow", "red"};
for (TunnelBoringMachineAlarm tunnelBoringMachineAlarm : list) {
Integer alarm = 0;
for (int i = 0; i < alarmType.length; i++) {
if (alarmType[i].equals(tunnelBoringMachineAlarm.getType())) {
alarm = i;
}
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("刀盘扭矩")) {
tunnelBoringMachineCurrentDataVo.setCutterheadTorqueType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("刀盘水平偏差")) {
tunnelBoringMachineCurrentDataVo.setCutterheadHorizontalDeviationType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("刀盘垂直偏差")) {
tunnelBoringMachineCurrentDataVo.setCutterheadVerticalDeviationType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("盾尾水平偏差")) {
tunnelBoringMachineCurrentDataVo.setShieldHorizontalDeviationType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("盾尾垂直偏差")) {
tunnelBoringMachineCurrentDataVo.setShieldVerticalDeviationType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("刀盘转速")) {
tunnelBoringMachineCurrentDataVo.setCutterheadSpeedType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("总推力")) {
tunnelBoringMachineCurrentDataVo.setTotalThrustType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("推进速度")) {
tunnelBoringMachineCurrentDataVo.setAdvanceSpeedType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("滚动角")) {
tunnelBoringMachineCurrentDataVo.setRollPositionType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("舱压")) {
tunnelBoringMachineCurrentDataVo.setCabinPressureType(alarm);
}
if (tunnelBoringMachineAlarm.getAlarmType().equals("注浆状态")) {
tunnelBoringMachineCurrentDataVo.setGroutingStatusType(alarm);
}
}
return tunnelBoringMachineCurrentDataVo;
}
private TunnelBoringMachineCurrentDataVo dataBuilder(TunnelBoringMachineCurrentData tunnelBoringMachineCurrentData) { private TunnelBoringMachineCurrentDataVo dataBuilder(TunnelBoringMachineCurrentData tunnelBoringMachineCurrentData) {
TunnelBoringMachineCurrentDataVo tunnelBoringMachineCurrentDataVo = new TunnelBoringMachineCurrentDataVo(); TunnelBoringMachineCurrentDataVo tunnelBoringMachineCurrentDataVo = new TunnelBoringMachineCurrentDataVo();
BeanUtils.copyProperties(tunnelBoringMachineCurrentData, tunnelBoringMachineCurrentDataVo); BeanUtils.copyProperties(tunnelBoringMachineCurrentData, tunnelBoringMachineCurrentDataVo);

View File

@ -151,6 +151,16 @@ public class VideoItem implements Serializable {
*/ */
@ApiModelProperty(value = "AI分析硬件设备id") @ApiModelProperty(value = "AI分析硬件设备id")
private String aiHardwareId; private String aiHardwareId;
/**
* AI分析画面播放路径
*/
@ApiModelProperty(value = "AI分析画面播放路径")
private String aiVideoUrl;
/**
* 监控密码
*/
@ApiModelProperty(value = "监控密码")
private String videoPassword;
/** /**
* 项目sn * 项目sn
*/ */

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.video.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -391,11 +392,30 @@ public class VideoItemServiceImpl extends ServiceImpl<VideoItemMapper, VideoItem
Map<String, Object> data = new HashMap<>(16); Map<String, Object> data = new HashMap<>(16);
List<EntityMap> videoList = videoItemMapper.selectProjectVideoList(map); List<EntityMap> videoList = videoItemMapper.selectProjectVideoList(map);
if (videoList.size() > 0 && String.valueOf(TOWER.getCode()).equals(MapUtils.getString(videoList.get(0), VIDEO_TYPE))) { if (videoList.size() > 0 && String.valueOf(TOWER.getCode()).equals(MapUtils.getString(videoList.get(0), VIDEO_TYPE))) {
String token = YsVideoUtil.getToken(MapUtils.getString(videoList.get(0), "appId"), MapUtils.getString(videoList.get(0), "appSecret")); String token = "";
if (MapUtils.getString(videoList.get(0), "appId").equals("noexist")) {
JSONObject body = new JSONObject();
body.put("secretKey", "z2YU1t7GRif9oJn/1dkKwG8VAPiAu1+u4m6vy5Cnb1nZGXdOlCQGxOsjkdpaXnBOr9AyDD0LrOhy8ogOMpgh6A==");
body.put("name", "swzk");
String result = HttpRequest.post("https://trans.tbmcloud.com.cn/trans/sentYSToken/ex/getToken")
.body(JSON.toJSONString(body))
.execute()
.body();
token = JSONObject.parseObject(result).getJSONObject("data").getString("accessToken");
} else {
token = YsVideoUtil.getToken(MapUtils.getString(videoList.get(0), "appId"), MapUtils.getString(videoList.get(0), "appSecret"));
}
for (EntityMap entityMap : videoList) { for (EntityMap entityMap : videoList) {
entityMap.put("token", token); entityMap.put("token", token);
entityMap.put("url", "ezopen://open.ys7.com/" + MapUtils.getString(entityMap, "serialNumber") + "/" + String videoPassword = MapUtils.getString(entityMap, "videoPassword");
MapUtils.getString(entityMap, "verificationCode") + ".hd.live"); if (StringUtils.isNotBlank(videoPassword)) {
entityMap.put("url", "ezopen://" + videoPassword +"@open.ys7.com/" + MapUtils.getString(entityMap, "serialNumber") + "/" +
MapUtils.getString(entityMap, "verificationCode") + ".hd.live");
} else {
entityMap.put("url", "ezopen://open.ys7.com/" + MapUtils.getString(entityMap, "serialNumber") + "/" +
MapUtils.getString(entityMap, "verificationCode") + ".hd.live");
}
} }
} }
List<EntityMap> groupList = videoGroupMapper.selectVideoGroupList(map); List<EntityMap> groupList = videoGroupMapper.selectVideoGroupList(map);

View File

@ -69,23 +69,23 @@ public class TunnelBoringMachineTask {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("projectSn", tunnelBoringMachine.getProjectSn()); map.put("projectSn", tunnelBoringMachine.getProjectSn());
map.put("deviceSn", tunnelBoringMachine.getDevSn()); map.put("deviceSn", tunnelBoringMachine.getDevSn());
map.put("time", DateUtil.formatDate(new Date()));
TunnelBoringMachineCurrentData lastData = tunnelBoringMachineCurrentDataMapper.getLastData(map); TunnelBoringMachineCurrentData lastData = tunnelBoringMachineCurrentDataMapper.getLastData(map);
TunnelBoringMachineCurrentData firstData = tunnelBoringMachineCurrentDataMapper.getFirstData(map);
TunnelBoringMachineStat tunnelBoringMachineStat = new TunnelBoringMachineStat(); TunnelBoringMachineStat tunnelBoringMachineStat = new TunnelBoringMachineStat();
tunnelBoringMachineStat.setProjectSn(tunnelBoringMachine.getProjectSn()); tunnelBoringMachineStat.setProjectSn(tunnelBoringMachine.getProjectSn());
tunnelBoringMachineStat.setDevSn(tunnelBoringMachine.getDevSn()); tunnelBoringMachineStat.setDevSn(tunnelBoringMachine.getDevSn());
tunnelBoringMachineStat.setCreateTime(DateUtil.parseDate(DateUtil.formatDate(new Date()))); tunnelBoringMachineStat.setCreateTime(DateUtil.parseDate(DateUtil.formatDate(new Date())));
if (lastData == null || firstData == null) { if (lastData != null && DateUtil.formatDate(lastData.getReportTime()).equals(DateUtil.formatDate(new Date()))) {
tunnelBoringMachineStat.setNumber(0); tunnelBoringMachineStat.setNumber(lastData.getDayNumber());
} else { } else {
tunnelBoringMachineStat.setNumber(lastData.getCurrentNumber() - firstData.getCurrentNumber()); tunnelBoringMachineStat.setNumber(0);
} }
list.add(tunnelBoringMachineStat); list.add(tunnelBoringMachineStat);
} }
tunnelBoringMachineStatService.saveBatch(list); tunnelBoringMachineStatService.saveBatch(list);
} }
// @Scheduled(cron = "0/30 * * * * ?") @Scheduled(cron = "0/30 * * * * ?")
@RequestMapping("getTunnelBoringMachineAlarm") @RequestMapping("getTunnelBoringMachineAlarm")
public void getTunnelBoringMachineAlarm() { public void getTunnelBoringMachineAlarm() {
log.info("获取盾构机报警数据开始任务"); log.info("获取盾构机报警数据开始任务");
@ -105,7 +105,7 @@ public class TunnelBoringMachineTask {
body.put("secretKey", "Xvt875SvK8zz7F+3Lj0faInIyd800TK0wGXt5GcaL4JubaXuwmlLoMXKXj7M9A21FxNB12mqhGqZnzW8ZSZHxQ=="); body.put("secretKey", "Xvt875SvK8zz7F+3Lj0faInIyd800TK0wGXt5GcaL4JubaXuwmlLoMXKXj7M9A21FxNB12mqhGqZnzW8ZSZHxQ==");
body.put("tbmCode", tunnelBoringMachine.getDevSn()); body.put("tbmCode", tunnelBoringMachine.getDevSn());
body.put("name", "ysej"); body.put("name", "ysej");
String result = HttpRequest.post("https://trans.tbmcloud.com.cn/tbmcenter-trans/trans/alarm/ex/getCurrent") String result = HttpRequest.post("https://trans.tbmcloud.com.cn/trans/alarm/ex/getCurrent")
.body(JSON.toJSONString(body)) .body(JSON.toJSONString(body))
.timeout(2000) .timeout(2000)
.execute() .execute()
@ -145,6 +145,13 @@ public class TunnelBoringMachineTask {
tunnelBoringMachineAlarm.setAlarmValue(obj.getDouble("aramValue")); tunnelBoringMachineAlarm.setAlarmValue(obj.getDouble("aramValue"));
tunnelBoringMachineAlarm.setLine(tunnelBoringMachine.getLine()); tunnelBoringMachineAlarm.setLine(tunnelBoringMachine.getLine());
tunnelBoringMachineAlarm.setAlarmTime(new Date(obj.getLong("timestamp"))); tunnelBoringMachineAlarm.setAlarmTime(new Date(obj.getLong("timestamp")));
TunnelBoringMachineAlarm exist = tunnelBoringMachineAlarmMapper.selectOne(Wrappers.<TunnelBoringMachineAlarm>lambdaQuery()
.eq(TunnelBoringMachineAlarm::getDevSn, tunnelBoringMachineAlarm.getDevSn())
.eq(TunnelBoringMachineAlarm::getAlarmTime, tunnelBoringMachineAlarm.getAlarmTime()));
// tunnelBoringMachineCurrentData.setWorkerStatus();
if (exist != null) {
return;
}
tunnelBoringMachineAlarmMapper.insert(tunnelBoringMachineAlarm); tunnelBoringMachineAlarmMapper.insert(tunnelBoringMachineAlarm);
} }
} }
@ -173,15 +180,11 @@ public class TunnelBoringMachineTask {
body.put("name", "ysej"); body.put("name", "ysej");
String result = HttpRequest.post("https://trans.tbmcloud.com.cn/trans/transGetRealData/ex/getRealData") String result = HttpRequest.post("https://trans.tbmcloud.com.cn/trans/transGetRealData/ex/getRealData")
.body(JSON.toJSONString(body)) .body(JSON.toJSONString(body))
.timeout(2000)
.execute() .execute()
.body(); .body();
JSONObject jsonObject = JSONObject.parseObject(result); JSONObject jsonObject = JSONObject.parseObject(result);
if (jsonObject != null || jsonObject.getInteger("code") == 200) { if (jsonObject != null || jsonObject.getInteger("code") == 200) {
TunnelBoringMachineCurrentData tunnelBoringMachineCurrentData = new TunnelBoringMachineCurrentData(); TunnelBoringMachineCurrentData tunnelBoringMachineCurrentData = new TunnelBoringMachineCurrentData();
PoisonousGasDevCurrentData poisonousGasDevCurrentData = new PoisonousGasDevCurrentData();
poisonousGasDevCurrentData.setDevSn(tunnelBoringMachine.getDevSn());
poisonousGasDevCurrentData.setProjectSn(tunnelBoringMachine.getProjectSn());
tunnelBoringMachineCurrentData.setDeviceSn(tunnelBoringMachine.getDevSn()); tunnelBoringMachineCurrentData.setDeviceSn(tunnelBoringMachine.getDevSn());
tunnelBoringMachineCurrentData.setProjectSn(tunnelBoringMachine.getProjectSn()); tunnelBoringMachineCurrentData.setProjectSn(tunnelBoringMachine.getProjectSn());
tunnelBoringMachineCurrentData.setLine(tunnelBoringMachine.getLine()); tunnelBoringMachineCurrentData.setLine(tunnelBoringMachine.getLine());
@ -313,19 +316,13 @@ public class TunnelBoringMachineTask {
tunnelBoringMachineCurrentData.setRightUpGroutingPressure(obj.getDouble("val")); tunnelBoringMachineCurrentData.setRightUpGroutingPressure(obj.getDouble("val"));
} }
if (obj.getString("colName").equals("螺机O2")) { if (obj.getString("colName").equals("螺机O2")) {
poisonousGasDevCurrentData.setGasType(1); savePoisonousGas(tunnelBoringMachine, 1, 2, obj.getDouble("val"));
poisonousGasDevCurrentData.setGasVal(obj.getDouble("val"));
poisonousGasDevCurrentData.setUnit(2);
} }
if (obj.getString("colName").equals("螺机CH4")) { if (obj.getString("colName").equals("螺机CH4")) {
poisonousGasDevCurrentData.setGasType(2); savePoisonousGas(tunnelBoringMachine, 2, 1, obj.getDouble("val"));
poisonousGasDevCurrentData.setGasVal(obj.getDouble("val"));
poisonousGasDevCurrentData.setUnit(1);
} }
if (obj.getString("colName").equals("螺机CO")) { if (obj.getString("colName").equals("螺机CO")) {
poisonousGasDevCurrentData.setGasType(3); savePoisonousGas(tunnelBoringMachine, 3, 0, obj.getDouble("val"));
poisonousGasDevCurrentData.setGasVal(obj.getDouble("val"));
poisonousGasDevCurrentData.setUnit(0);
} }
// if (obj.getString("colName").equals("螺机CO2")) { // if (obj.getString("colName").equals("螺机CO2")) {
// poisonousGasDevCurrentData.setGasType(1); // poisonousGasDevCurrentData.setGasType(1);
@ -341,12 +338,20 @@ public class TunnelBoringMachineTask {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("projectSn", tunnelBoringMachine.getProjectSn()); map.put("projectSn", tunnelBoringMachine.getProjectSn());
map.put("deviceSn", tunnelBoringMachine.getDevSn()); map.put("deviceSn", tunnelBoringMachine.getDevSn());
map.put("time", DateUtil.formatDate(new Date()));
TunnelBoringMachineCurrentData firstData = tunnelBoringMachineCurrentDataMapper.getFirstData(map); TunnelBoringMachineCurrentData firstData = tunnelBoringMachineCurrentDataMapper.getFirstData(map);
if (firstData == null) { if (firstData == null) {
tunnelBoringMachineCurrentData.setDayNumber(0); tunnelBoringMachineCurrentData.setDayNumber(0);
} else { } else {
tunnelBoringMachineCurrentData.setDayNumber(tunnelBoringMachineCurrentData.getCurrentNumber() - firstData.getCurrentNumber()); tunnelBoringMachineCurrentData.setDayNumber(tunnelBoringMachineCurrentData.getCurrentNumber() - firstData.getCurrentNumber());
} }
map.put("time", DateUtil.format(DateUtil.beginOfMonth(new Date()), "yyyy-MM"));
TunnelBoringMachineCurrentData firstDataByMonth = tunnelBoringMachineCurrentDataMapper.getFirstDataByMonth(map);
if (firstDataByMonth == null) {
tunnelBoringMachineCurrentData.setMonthNumber(0);
} else {
tunnelBoringMachineCurrentData.setMonthNumber(tunnelBoringMachineCurrentData.getCurrentNumber() - firstDataByMonth.getCurrentNumber());
}
tunnelBoringMachineCurrentData.setReportTime(DateUtil.parseDateTime(jsonObject.getJSONObject("data").getString("time_str"))); tunnelBoringMachineCurrentData.setReportTime(DateUtil.parseDateTime(jsonObject.getJSONObject("data").getString("time_str")));
tunnelBoringMachineCurrentData.setCreateTime(new Date()); tunnelBoringMachineCurrentData.setCreateTime(new Date());
TunnelBoringMachineCurrentData exist = tunnelBoringMachineCurrentDataMapper.selectOne(Wrappers.<TunnelBoringMachineCurrentData>lambdaQuery() TunnelBoringMachineCurrentData exist = tunnelBoringMachineCurrentDataMapper.selectOne(Wrappers.<TunnelBoringMachineCurrentData>lambdaQuery()
@ -357,9 +362,17 @@ public class TunnelBoringMachineTask {
return; return;
} }
tunnelBoringMachineCurrentDataMapper.insert(tunnelBoringMachineCurrentData); tunnelBoringMachineCurrentDataMapper.insert(tunnelBoringMachineCurrentData);
poisonousGasDevCurrentData.setUploadTime(new Date());
poisonousGasDevCurrentDataMapper.insert(poisonousGasDevCurrentData);
} }
} }
private void savePoisonousGas(TunnelBoringMachine tunnelBoringMachine, Integer gasType, Integer unit, double value) {
PoisonousGasDevCurrentData poisonousGasDevCurrentData = new PoisonousGasDevCurrentData();
poisonousGasDevCurrentData.setDevSn(tunnelBoringMachine.getDevSn());
poisonousGasDevCurrentData.setProjectSn(tunnelBoringMachine.getProjectSn());
poisonousGasDevCurrentData.setGasType(gasType);
poisonousGasDevCurrentData.setGasVal(value);
poisonousGasDevCurrentData.setUnit(unit);
poisonousGasDevCurrentData.setUploadTime(new Date());
poisonousGasDevCurrentDataMapper.insert(poisonousGasDevCurrentData);
}
} }