1f18fd20 康伟

Merge remote-tracking branch 'origin/master'

2 个父辈 87d75531 2df9ad46
......@@ -255,8 +255,8 @@
sys_monitor_metric_info m
WHERE
m.metric_uid_tag IN (
'CSAD','CSCOD','CSLJLL','CSLL','CSPH','CSSS','CSTN','CSZL',
'JSAD','JSCOD','JSLJLL','JSLL','JSPH','JSSS','JSZD','JSZL'
'CSNH3N','CSCOD','CSLJLL','CSLL','CSPH','CSSS','CSTN','CSTP',
'JSNH3N','JSCOD','JSLJLL','JSLL','JSPH','JSSS','JSTN','JSTP'
)
</select>
</mapper>
......
......@@ -2,6 +2,7 @@ package com.skua.modules.dataAnalysis.controller;
import com.skua.core.api.vo.Result;
import com.skua.core.context.BaseContextHandler;
import com.skua.core.util.ConvertUtils;
import com.skua.modules.common.service.ICommonSqlService;
import com.skua.modules.dataAnalysis.service.IFactoryCenterService;
import com.skua.modules.dataAnalysis.vo.StatisticsParam;
......@@ -194,7 +195,7 @@ public class FactoryCenterController {
List<WaterQualityMonitoringDetailVO> list = new ArrayList<>();
WaterQualityMonitoringVO res = new WaterQualityMonitoringVO();
String departIds = "";
if(waterQualityParams.getDepartId()!=null){
if(ConvertUtils.isNotEmpty(waterQualityParams.getDepartId())){
departIds = commonSqlService.getChildFactorys(waterQualityParams.getDepartId());
}else{
departIds = commonSqlService.getChildFactorys(BaseContextHandler.getRealDepartId());
......
......@@ -226,12 +226,18 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
inVO.setPhUpper(phMap.getOrDefault("upper","0"));
inVO.setPhLower(phMap.getOrDefault("lower","0"));
inVO.setPhAbnormal("0");
if(ConvertUtils.isNotEmpty(dataMap.get("time"))){
Date date = new Date(Long.parseLong(dataMap.get("time").toString()) * 1000);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
inVO.setMonitorTime(formatter.format(date));
}
inVO.setFlowAbnormal("0");
inVO.setCodVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSCOD"));
inVO.setNh3Val(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSNH3N"));
inVO.setTpVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSTP"));
inVO.setTnVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSTN"));
inVO.setPhVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSPH"));
inVO.setSsllVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSLL"));
inVO.setFlowVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSLL"));
inVO.setLjllVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSLJLL"));
inVO.setZdVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"JSSS"));
inVO = updateDataStatus(inVO);
......@@ -282,12 +288,18 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
outVO.setPhUpper(phMap.getOrDefault("upper","0"));
outVO.setPhLower(phMap.getOrDefault("lower","0"));
outVO.setPhAbnormal("0");
if(ConvertUtils.isNotEmpty(dataMap.get("time"))){
Date date = new Date(Long.parseLong(dataMap.get("time").toString()) * 1000);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
outVO.setMonitorTime(formatter.format(date));
}
outVO.setFlowAbnormal("0");
outVO.setCodVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSCOD"));
outVO.setNh3Val(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSNH3N"));
outVO.setTpVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSTP"));
outVO.setTnVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSTN"));
outVO.setPhVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSPH"));
outVO.setSsllVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSLL"));
outVO.setFlowVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSLL"));
outVO.setLjllVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSLJLL"));
outVO.setZdVal(getValueFromDataMap(dataMap,monitorTagMap,depart,"CSSS"));
outVO = updateDataStatus(outVO);
......@@ -296,26 +308,36 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
}
private WaterQualityMonitoringDetailVO updateDataStatus(WaterQualityMonitoringDetailVO waterQualityMonitoringDetailVO) {
if(ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getCodUpper())&&ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getCodLower())){
if(Double.parseDouble(waterQualityMonitoringDetailVO.getCodVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getCodUpper())||
Double.parseDouble(waterQualityMonitoringDetailVO.getCodVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getCodLower())){
waterQualityMonitoringDetailVO.setCodAbnormal("1");
}
}
if(ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getNh3Upper())&&ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getNh3Lower())){
if(Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Val()) > Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Upper())||
Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Val()) < Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Lower())){
waterQualityMonitoringDetailVO.setNh3Abnormal("1");
}
}
if(ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getTnUpper())&&ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getTnLower())){
if(Double.parseDouble(waterQualityMonitoringDetailVO.getTnVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getTnUpper())||
Double.parseDouble(waterQualityMonitoringDetailVO.getTnVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getTnLower())){
waterQualityMonitoringDetailVO.setTnAbnormal("1");
}
}
if(ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getTpUpper())&&ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getTpLower())){
if(Double.parseDouble(waterQualityMonitoringDetailVO.getTpVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getTpUpper())||
Double.parseDouble(waterQualityMonitoringDetailVO.getTpVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getTpLower())){
waterQualityMonitoringDetailVO.setTpAbnormal("1");
}
}
if(ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getPhUpper())&&ConvertUtils.isNotEmpty(waterQualityMonitoringDetailVO.getPhLower())){
if(Double.parseDouble(waterQualityMonitoringDetailVO.getPhVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getPhUpper())||
Double.parseDouble(waterQualityMonitoringDetailVO.getPhVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getPhLower())){
waterQualityMonitoringDetailVO.setPhAbnormal("1");
}
}
return waterQualityMonitoringDetailVO;
}
......@@ -576,6 +598,7 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
@Override
public Map<String, Object> getHourWaterData(StatisticsParam statisticsParam) {
SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tag = "CSPH,CSCOD,CSNH3N,CSTN,CSTP,CSLL,JSCOD,JSNH3N,JSPH,JSTN,JSTP,JSLL";
Map<String, Object> map = new HashMap<>();
Map<String, Object> dataMap = new HashMap<>();
Map<String, Object> chartsMap = new HashMap<>();
......@@ -585,16 +608,18 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
List<Object> jstnList = new ArrayList<>();
List<Object> jstpList = new ArrayList<>();
List<Object> jsphList = new ArrayList<>();
List<Object> jsllList = new ArrayList<>();
List<Object> cscodList = new ArrayList<>();
List<Object> csadList = new ArrayList<>();
List<Object> cstnList = new ArrayList<>();
List<Object> cstpList = new ArrayList<>();
List<Object> csphList = new ArrayList<>();
List<Object> csllList = new ArrayList<>();
map.put("number",new HashMap<>());
map.put("realTime",new HashMap<>());
QueryWrapper<SysMonitorMetricInfo> qw = new QueryWrapper<>();
// 使用 split() 将字符串分割成数组并传递给 in() 方法
qw.in("metric_uid_tag", "CSPH,CSCOD,CSNH3N,CSTN,CSTP,JSCOD,JSNH3N,JSPH,JSTN,JSTP".split(","));
qw.in("metric_uid_tag", tag.split(","));
// 进行等值匹配
qw.eq("depart_id", statisticsParam.getDepartId());
// 使用 groupBy 进行分组
......@@ -603,14 +628,35 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
List<SysMonitorMetricInfo> metricInfos = sysMonitorMetricInfoService.list(qw);
if (!CollectionUtils.isEmpty(metricInfos)){
String fields = metricInfos.stream().map(SysMonitorMetricInfo::getId).collect(Collectors.joining(","));
Map<String, String> fieldsMap = metricInfos.stream().collect(Collectors.toMap(SysMonitorMetricInfo::getMetricUidTag, SysMonitorMetricInfo::getId));
List<Map<String, Object>> list1 = factoryInfoService.queryFactoryInfos(statisticsParam.getDepartId(),fields,
List<Map<String, Object>> list1 = new ArrayList<>();
if(ConvertUtils.isNotEmpty(statisticsParam.getStatics())){
if("hour".equals(statisticsParam.getStatics())){
list1 = factoryInfoService.queryFactoryInfos(statisticsParam.getDepartId(),fields,
statisticsParam.getStartDate(),statisticsParam.getEndDate(),"1");
}else if("day".equals(statisticsParam.getStatics())){
list1 = factoryInfoService.queryReportData(statisticsParam.getDepartId(),fields,
statisticsParam.getStartDate()+" 00:00:00",statisticsParam.getEndDate()+" 23:59:59","day");
}else if("month".equals(statisticsParam.getStatics())){
list1 = factoryInfoService.queryReportData(statisticsParam.getDepartId(),fields,
statisticsParam.getStartDate(),statisticsParam.getEndDate(),"month");
}else{
list1 = factoryInfoService.queryFactoryInfos(statisticsParam.getDepartId(),fields,
statisticsParam.getStartDate(),statisticsParam.getEndDate(),"1");
}
}
if (!CollectionUtils.isEmpty(list1)) {
for (Map<String, Object> map1 : list1) {
String time = DateUtils.date2Str(new Date(Long.parseLong(map1.get("time").toString()) * 1000), datetimeFormat);
String time = "";
if("hour".equals(statisticsParam.getStatics())){
time = DateUtils.date2Str(new Date(Long.parseLong(map1.get("time").toString()) * 1000), datetimeFormat);
}else if("day".equals(statisticsParam.getStatics())){
time = map1.get("time").toString();
}else if("month".equals(statisticsParam.getStatics())){
time = map1.get("time").toString();
}else{
time = DateUtils.date2Str(new Date(Long.parseLong(map1.get("time").toString()) * 1000), datetimeFormat);
}
xlist.add(time);
String jscod;
if (!StringUtils.isEmpty(jscod = fieldsMap.get("JSCOD"))) {
......@@ -654,6 +700,15 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
}
}
String jsll;
if (!StringUtils.isEmpty(jsll = fieldsMap.get("JSLL"))) {
if(map1.get(jsll)!=null){
jsllList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(jsll).toString()),2));
}else{
jsllList.add(0.00);
}
}
String cscod;
if (!StringUtils.isEmpty(cscod = fieldsMap.get("CSCOD"))) {
if(map1.get(cscod)!=null){
......@@ -698,6 +753,15 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
csphList.add(0.00);
}
}
String csll;
if (!StringUtils.isEmpty(csll = fieldsMap.get("CSLL"))) {
if(map1.get(csll)!=null){
csllList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(csll).toString()),2));
}else{
csllList.add(0.00);
}
}
}
}
}
......@@ -707,11 +771,13 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
dataMap.put("jstn",jstnList);
dataMap.put("jstp",jstpList);
dataMap.put("jsph",jsphList);
dataMap.put("jsll",csllList);
dataMap.put("cscod",cscodList);
dataMap.put("csad",csadList);
dataMap.put("cstn",cstnList);
dataMap.put("cstp",cstpList);
dataMap.put("csph",csphList);
dataMap.put("csll",csllList);
chartsMap.put("dataMap",dataMap);
chartsMap.put("xline",xlist);
map.put("charts",chartsMap);
......
......@@ -20,4 +20,14 @@ public class StatisticsParam {
/**结束时间*/
@ApiModelProperty(value = "结束时间")
private String endDate;
/**进出水类型*/
@ApiModelProperty(value = "进出水类型")
private String parmType;
/**数据类型*/
@ApiModelProperty(value = "数据类型")
private String statics;
/**数据标签*/
@ApiModelProperty(value = "数据标签")
private String tag;
}
......
......@@ -42,11 +42,11 @@ public class WaterQualityMonitoringDetailVO {
@ApiModelProperty(value = "监测时间")
private String monitorTime;
// @ApiModelProperty(value = "流量")
// private String flowVal;
// private String flowUpper;
// private String flowLower;
// private String flowAbnormal;
@ApiModelProperty(value = "流量")
private String flowVal;
private String flowUpper;
private String flowLower;
private String flowAbnormal;
@ApiModelProperty(value = "cod")
private String codVal;
......@@ -90,8 +90,8 @@ public class WaterQualityMonitoringDetailVO {
@ApiModelProperty(value = "浊度")
private String zdVal;
@ApiModelProperty(value = "瞬时流量")
private String ssllVal;
// @ApiModelProperty(value = "瞬时流量")
// private String ssllVal;
@ApiModelProperty(value = "累计流量")
private String ljllVal;
......
......@@ -19,4 +19,8 @@ public class WaterQualityParams {
@ApiModelProperty(value = "进出水类型")
private String parmType;
//数据类型
@ApiModelProperty(value = "数据类型 all/access/online/normal/abnormal")
private String dataType;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!