524108c0 张雷

水质监控功能开发

1 个父辈 610c0bb5
......@@ -62,4 +62,6 @@ public interface CommonSqlMapper {
String getChildDepartByUserId(@Param(value="userId") String userId);
List<DepartVO> getChildDepartList(@Param(value="departId") String departId);
String getChildFactorysNotInNF(@Param(value="departId") String departId,@Param(value="notInParentId") String notInParentId);
}
......
......@@ -70,6 +70,11 @@
'${item}'
</foreach>
)
OR parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
) )
</select>
<select id="getChildFactorys" resultType="java.lang.String">
......@@ -92,7 +97,13 @@
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
))
)
OR parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
) )
)
</select>
<select id="getChildDeparts" resultType="java.lang.String">
......@@ -114,6 +125,11 @@
'${item}'
</foreach>
)
OR parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
) )
</select>
<select id="getChildDepartByUserId" resultType="java.lang.String">
......@@ -143,6 +159,42 @@
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
))
)
OR parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
) )
)
</select>
<select id="getChildFactorysNotInNF" resultType="java.lang.String">
SELECT
GROUP_CONCAT( id SEPARATOR ',' ) AS depart_ids
FROM
sys_depart
WHERE
depart_type = '1'
AND parent_id != #{notInParentId}
AND (
parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
OR id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
OR parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
)
OR parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN ( SELECT id FROM sys_depart WHERE parent_id IN
<foreach item="item" index="index" collection="departId.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
) )
)
</select>
</mapper>
......
......@@ -50,5 +50,7 @@ public interface ICommonSqlService {
String getChildFactorys(String departId);
String getChildFactorysNotInNF(String departId);
List<DepartVO> getChildDepartList(String departId);
}
......
......@@ -98,6 +98,12 @@ public class CommonSqlServiceImpl implements ICommonSqlService {
}
@Override
public String getChildFactorysNotInNF(String departId) {
String notInParentId = "1818215543140909056";
return commonSqlMapper.getChildFactorysNotInNF(departId,notInParentId);
}
@Override
public List<DepartVO> getChildDepartList(String departId) {
List<DepartVO> list = commonSqlMapper.getChildDepartList(departId);
return list;
......
......@@ -190,30 +190,86 @@ public class FactoryCenterController {
@GetMapping(value = "/queryMonitoringData")
public Result<WaterQualityMonitoringVO> queryMonitoringData(WaterQualityParams waterQualityParams) {
Result<WaterQualityMonitoringVO> result = new Result<WaterQualityMonitoringVO>();
int all = 0;//全部
int abnormal = 0;//异常
List<WaterQualityMonitoringDetailVO> list = new ArrayList<>();
WaterQualityMonitoringVO res = new WaterQualityMonitoringVO();
String departIds = "";
if(ConvertUtils.isNotEmpty(waterQualityParams.getDepartId())){
departIds = commonSqlService.getChildFactorys(waterQualityParams.getDepartId());
departIds = commonSqlService.getChildFactorysNotInNF(waterQualityParams.getDepartId());
}else{
departIds = commonSqlService.getChildFactorys(BaseContextHandler.getRealDepartId());
departIds = commonSqlService.getChildFactorysNotInNF(BaseContextHandler.getRealDepartId());
}
list = factoryCenterService.queryMonitoringData(departIds,waterQualityParams.getParmType());
res.setList(list);
all = list.size();
res.setAll(String.valueOf(all));
res = updateFactoryStatusCount(res,list,waterQualityParams.getDataType());
result.setSuccess(true);
result.setResult(res);
return result;
}
/**
* 统计水厂数量
* @param waterQualityMonitoringVO
* @param list
* @return
*/
private WaterQualityMonitoringVO updateFactoryStatusCount(WaterQualityMonitoringVO waterQualityMonitoringVO,
List<WaterQualityMonitoringDetailVO> list,String dataType) {
List<WaterQualityMonitoringDetailVO> resultList = new ArrayList<>();
List<WaterQualityMonitoringDetailVO> restList = new ArrayList<>();
Map<String,String> alarmMap = new HashMap<>();
Map<String,String> allMap = new HashMap<>();
Map<String,String> offMap = new HashMap<>();
int all = 0;//全部
int abnormal = 0;//异常
int off = 0;//离线
for (WaterQualityMonitoringDetailVO vo:list) {
if(ConvertUtils.isNotEmpty(dataType)){
//all/access/online/normal/abnormal
if("all".equals(dataType)){
restList.add(vo);
}else if("online".equals(dataType)){
if(!"离线".equals(vo.getCodAbnormal())||!"离线".equals(vo.getNh3Abnormal())||!"离线".equals(vo.getFlowAbnormal())||
!"离线".equals(vo.getTnAbnormal())||!"离线".equals(vo.getTpAbnormal())||!"离线".equals(vo.getPhAbnormal())){
restList.add(vo);
}
}else if("normal".equals(dataType)){
if("0".equals(vo.getCodAbnormal())&&"0".equals(vo.getNh3Abnormal())&&
"0".equals(vo.getTnAbnormal())&&"0".equals(vo.getTpAbnormal())&&"0".equals(vo.getPhAbnormal())){
restList.add(vo);
}
}else if("abnormal".equals(dataType)){
if("1".equals(vo.getCodAbnormal())||"1".equals(vo.getNh3Abnormal())||
"1".equals(vo.getTnAbnormal())||"1".equals(vo.getTpAbnormal())||"1".equals(vo.getPhAbnormal())){
restList.add(vo);
}
}else{
restList.add(vo);
}
}else{
restList.add(vo);
}
resultList.add(vo);
allMap.put(vo.getDepartId(),"1");
if("1".equals(vo.getCodAbnormal())||"1".equals(vo.getNh3Abnormal())||
"1".equals(vo.getTnAbnormal())||"1".equals(vo.getTpAbnormal())||"1".equals(vo.getPhAbnormal())){
abnormal++;
alarmMap.put(vo.getDepartId(),"1");
}
if("离线".equals(vo.getCodAbnormal())&&"离线".equals(vo.getNh3Abnormal())&&"离线".equals(vo.getFlowAbnormal())&&
"离线".equals(vo.getTnAbnormal())&&"离线".equals(vo.getTpAbnormal())&&"离线".equals(vo.getPhAbnormal())){
offMap.put(vo.getDepartId(),"1");
}
}
res.setNormal(String.valueOf(all-abnormal));
res.setAbnormal(String.valueOf(abnormal));
result.setSuccess(true);
result.setResult(res);
return result;
all = allMap.size();
abnormal = alarmMap.size();
off = offMap.size();
waterQualityMonitoringVO.setAll(String.valueOf(all));
waterQualityMonitoringVO.setNormal(String.valueOf(all-abnormal));
waterQualityMonitoringVO.setAbnormal(String.valueOf(abnormal));
waterQualityMonitoringVO.setAccess(String.valueOf(all));
waterQualityMonitoringVO.setOnline(String.valueOf(all-off));
waterQualityMonitoringVO.setOff(String.valueOf(off));
waterQualityMonitoringVO.setList(restList);
return waterQualityMonitoringVO;
}
}
......
......@@ -309,35 +309,104 @@ 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("no".equals(waterQualityMonitoringDetailVO.getCodVal())){
waterQualityMonitoringDetailVO.setCodAbnormal("未接入");
waterQualityMonitoringDetailVO.setCodVal(null);
}else if("off".equals(waterQualityMonitoringDetailVO.getCodVal())){
waterQualityMonitoringDetailVO.setCodAbnormal("离线");
waterQualityMonitoringDetailVO.setCodVal(null);
}else{
if(Double.parseDouble(waterQualityMonitoringDetailVO.getCodVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getCodUpper())){
waterQualityMonitoringDetailVO.setCodAbnormal("1");
waterQualityMonitoringDetailVO.setCodMessage("超过上限:"+waterQualityMonitoringDetailVO.getCodUpper()+"(mg/L)");
}
if(Double.parseDouble(waterQualityMonitoringDetailVO.getCodVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getCodLower())){
waterQualityMonitoringDetailVO.setCodAbnormal("1");
waterQualityMonitoringDetailVO.setCodMessage("低于下限:"+waterQualityMonitoringDetailVO.getCodLower()+"(mg/L)");
}
}
}
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("no".equals(waterQualityMonitoringDetailVO.getNh3Val())){
waterQualityMonitoringDetailVO.setNh3Abnormal("未接入");
waterQualityMonitoringDetailVO.setNh3Val(null);
}else if("off".equals(waterQualityMonitoringDetailVO.getNh3Val())){
waterQualityMonitoringDetailVO.setNh3Abnormal("离线");
waterQualityMonitoringDetailVO.setNh3Val(null);
}else{
if(Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Val()) > Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Upper())){
waterQualityMonitoringDetailVO.setNh3Abnormal("1");
waterQualityMonitoringDetailVO.setNh3Message("超过上限:"+waterQualityMonitoringDetailVO.getNh3Upper()+"(mg/L)");
}
if(Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Val()) < Double.parseDouble(waterQualityMonitoringDetailVO.getNh3Lower())){
waterQualityMonitoringDetailVO.setNh3Abnormal("1");
waterQualityMonitoringDetailVO.setNh3Message("低于下限:"+waterQualityMonitoringDetailVO.getNh3Lower()+"(mg/L)");
}
}
}
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("no".equals(waterQualityMonitoringDetailVO.getTnVal())){
waterQualityMonitoringDetailVO.setTnAbnormal("未接入");
waterQualityMonitoringDetailVO.setTnVal(null);
}else if("off".equals(waterQualityMonitoringDetailVO.getTnVal())){
waterQualityMonitoringDetailVO.setTnAbnormal("离线");
waterQualityMonitoringDetailVO.setTnVal(null);
}else{
if(Double.parseDouble(waterQualityMonitoringDetailVO.getTnVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getTnUpper())){
waterQualityMonitoringDetailVO.setTnAbnormal("1");
waterQualityMonitoringDetailVO.setTnMessage("超过上限:"+waterQualityMonitoringDetailVO.getTnUpper()+"(mg/L)");
}
if(Double.parseDouble(waterQualityMonitoringDetailVO.getTnVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getTnLower())){
waterQualityMonitoringDetailVO.setTnAbnormal("1");
waterQualityMonitoringDetailVO.setTnMessage("低于下限:"+waterQualityMonitoringDetailVO.getTnLower()+"(mg/L)");
}
}
}
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("no".equals(waterQualityMonitoringDetailVO.getTpVal())){
waterQualityMonitoringDetailVO.setTpAbnormal("未接入");
waterQualityMonitoringDetailVO.setTpVal(null);
}else if("off".equals(waterQualityMonitoringDetailVO.getTpVal())){
waterQualityMonitoringDetailVO.setTpAbnormal("离线");
waterQualityMonitoringDetailVO.setTpVal(null);
}else{
if(Double.parseDouble(waterQualityMonitoringDetailVO.getTpVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getTpUpper())){
waterQualityMonitoringDetailVO.setTpAbnormal("1");
waterQualityMonitoringDetailVO.setTpMessage("超过上限:"+waterQualityMonitoringDetailVO.getTpUpper()+"(mg/L)");
}
if(Double.parseDouble(waterQualityMonitoringDetailVO.getTpVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getTpLower())){
waterQualityMonitoringDetailVO.setTpAbnormal("1");
waterQualityMonitoringDetailVO.setTpMessage("低于下限:"+waterQualityMonitoringDetailVO.getTpLower()+"(mg/L)");
}
}
}
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");
if("no".equals(waterQualityMonitoringDetailVO.getPhVal())){
waterQualityMonitoringDetailVO.setPhAbnormal("未接入");
waterQualityMonitoringDetailVO.setPhVal(null);
}else if("off".equals(waterQualityMonitoringDetailVO.getPhVal())){
waterQualityMonitoringDetailVO.setPhAbnormal("离线");
waterQualityMonitoringDetailVO.setPhVal(null);
}else{
if(Double.parseDouble(waterQualityMonitoringDetailVO.getPhVal()) > Double.parseDouble(waterQualityMonitoringDetailVO.getPhUpper())){
waterQualityMonitoringDetailVO.setPhAbnormal("1");
waterQualityMonitoringDetailVO.setPhMessage("超过上限:"+waterQualityMonitoringDetailVO.getPhUpper());
}
if(Double.parseDouble(waterQualityMonitoringDetailVO.getPhVal()) < Double.parseDouble(waterQualityMonitoringDetailVO.getPhLower())){
waterQualityMonitoringDetailVO.setPhAbnormal("1");
waterQualityMonitoringDetailVO.setPhMessage("低于下限:"+waterQualityMonitoringDetailVO.getPhLower());
}
}
}
if("no".equals(waterQualityMonitoringDetailVO.getFlowVal())){
waterQualityMonitoringDetailVO.setFlowAbnormal("未接入");
waterQualityMonitoringDetailVO.setFlowVal(null);
}else if("off".equals(waterQualityMonitoringDetailVO.getFlowVal())){
waterQualityMonitoringDetailVO.setFlowAbnormal("离线");
waterQualityMonitoringDetailVO.setFlowVal(null);
}else{
waterQualityMonitoringDetailVO.setFlowAbnormal("0");
}
return waterQualityMonitoringDetailVO;
}
......@@ -354,10 +423,10 @@ public class FactoryCenterServiceImpl implements IFactoryCenterService {
if(dataMap.get(monitorTagMap.get(tag+"-"+depart).toString())!=null){
return dataMap.get(monitorTagMap.get(tag+"-"+depart).toString()).toString();
}else{
return "0";
return "off";
}
}else{
return "0";
return "no";
}
}
......
......@@ -53,28 +53,28 @@ public class WaterQualityMonitoringDetailVO {
private String codUpper;
private String codLower;
private String codAbnormal;
// private String codWarnMessage;//预警
private String codMessage;//预警
@ApiModelProperty(value = "氨氮")
private String nh3Val;
private String nh3Upper;
private String nh3Lower;
private String nh3Abnormal;
// private String nh3WarnMessage;
private String nh3Message;
@ApiModelProperty(value = "总磷")
private String tpVal;
private String tpUpper;
private String tpLower;
private String tpAbnormal;
// private String tpWarnMessage;
private String tpMessage;
@ApiModelProperty(value = "总氮")
private String tnVal;
private String tnUpper;
private String tnLower;
private String tnAbnormal;
// private String tnWarnMessage;
private String tnMessage;
// @ApiModelProperty(value = "温度")
// private String temperatureVal;
......@@ -85,7 +85,7 @@ public class WaterQualityMonitoringDetailVO {
private String phUpper;
private String phLower;
private String phAbnormal;
// private String phWarnMessage;
private String phMessage;
@ApiModelProperty(value = "浊度")
private String zdVal;
......
......@@ -15,12 +15,12 @@ public class WaterQualityMonitoringVO {
private String normal;//正常
@ApiModelProperty(value = "异常")
private String abnormal;//异常
// @ApiModelProperty(value = "脱机")
// private String offline;//脱机
// @ApiModelProperty(value = "零值")
// private String zeroVal;//零值
// @ApiModelProperty(value = "预警")
// private String warnVal;//零值
@ApiModelProperty(value = "接入")
private String access;//接入
@ApiModelProperty(value = "在线")
private String online;//在线
@ApiModelProperty(value = "离线")
private String off;//离线
@ApiModelProperty(value = "水质监控明细")
private List<WaterQualityMonitoringDetailVO> list;//明细
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!