jzdzs

1.AirConditioningController:===============================================================================================

package com.cars.ict.rbpsems.warning;

import com.cars.ict.rbpsems.entity.record.MonitorDevice;
import com.cars.ict.rbpsems.inventory.service.record.MonitorDeviceService;
import com.cars.ict.rbpsems.utils.PageUtil;
import com.cars.ict.rbpsems.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/end")
public class AirConditioningController {

@Autowired
private MonitorDeviceService monitorDeviceService;

/**
* 末端空调设备分页查询
*
* @return
*/
@GetMapping("/air")
public Result airConditioningQuery(String stationCode, PageUtil pageUtil) {
int pageSize = 1000;
pageUtil.setPageSize(pageSize);
List<MonitorDevice> page = monitorDeviceService.airConditioningQuery(stationCode, pageUtil);
return Result.ok(page);
}

/**
* 末端空调设备条件分页查询
*
* @return
*/
@GetMapping("/con")
public Result conditioningQuery(String stationCode, String deviceName, String serviceStatus, PageUtil pageUtil) {
int pageSize = 1000;
pageUtil.setPageSize(pageSize);
if (StringUtils.isEmpty(serviceStatus)) {
serviceStatus = null;
}
if (StringUtils.isEmpty(deviceName)) {
deviceName = null;
}
List<MonitorDevice> page = monitorDeviceService.conditioningQuery(stationCode, deviceName, serviceStatus, pageUtil);
return Result.ok(page);
}
}



2.
MonitorDeviceService ===============================================================================================

package com.cars.ict.rbpsems.inventory.service.record;

import com.cars.ict.rbpsems.entity.record.Callpolice;
import com.cars.ict.rbpsems.entity.record.MonitorDevice;
import com.cars.ict.rbpsems.utils.PageUtil;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface MonitorDeviceService {
/**
* 获取所有潜污泵
* gdh
* @return
*/
List<MonitorDevice> findByIdIn(Set<String> idList);

List<Callpolice> Cycle(String deviceUnique,String Code);

List<MonitorDevice> findAllByCode(String Code);

List<MonitorDevice> findDeviceUnique(String deviceUnique,String Code);

//查询monitor表中电伴热的上一次报错的数据是否还存在
List<MonitorDevice> findDeviceUnique1(String deviceUnique, String Code);

List<Callpolice> QueryCode(String Code);

//查詢清河站电伴热在报错的设备编码
List<Callpolice> QueryCode1(String Code);

int DeleteCode(String deviceUnique, String Code);

List<Map<String, Object>> findMapByDeviceIdIn(Set<String> circuitDeviceIdSet);

List<Map<String,Object>> findDrainageList(String StationCode,PageUtil pageUtil);

List<Map<String,Object>> findList(String StationCode,String name, String type);

/**
* 获取所有空调的送排风口
* zyl
* @return
*/
Page<MonitorDevice> getAllVents(String stationCode, PageUtil pageUtil);

Page<MonitorDevice> findDeviceByName(String stationCode, String name, String statusFlag, PageUtil pageUtil);

//末端空调设备分页查询
List<MonitorDevice> airConditioningQuery(String stationCode, PageUtil pageUtil);

//末端空调设备条件分页查询
List<MonitorDevice> conditioningQuery(String stationCode, String deviceName, String serviceStatus, PageUtil pageUtil);
/**
* 获取所有电伴热
* zyl
* @return
*/
Page<MonitorDevice> getAllElectricHeating(String stationCode,PageUtil pageUtil);

Page<MonitorDevice> findHeating(String stationCode, String name, String statusFlag, PageUtil pageUtil);

}



3. MonitorDeviceServiceImpl ===============================================================================================

package com.cars.ict.rbpsems.inventory.service.record.impl;


import com.alibaba.fastjson.JSONObject;
import com.cars.ict.rbpsems.entity.record.Callpolice;
import com.cars.ict.rbpsems.entity.record.MonitorDevice;
import com.cars.ict.rbpsems.inventory.dao.record.CallpoliceDao;
import com.cars.ict.rbpsems.inventory.dao.record.MonitorDeviceDao;
import com.cars.ict.rbpsems.inventory.service.record.MonitorDeviceService;
import com.cars.ict.rbpsems.utils.PageUtil;
import org.bouncycastle.asn1.DERVideotexString;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.security.PrivateKey;
import java.util.*;
import java.util.function.Function;

@Service
public class MonitorDeviceServiceImpl implements MonitorDeviceService {
@Autowired
private MonitorDeviceDao monitorDeviceDao;
@Autowired
private CallpoliceDao callpoliceDao;


@Override
public List<MonitorDevice> findByIdIn(Set<String> idList) {
List<MonitorDevice> monitorDeviceList = monitorDeviceDao.findByIdIn(idList);
return monitorDeviceList;
}

@Override
public List<Map<String, Object>> findMapByDeviceIdIn(Set<String> idList) {
List<Map<String, Object>> mapByDeviceIdIn = monitorDeviceDao.findMapByDeviceIdIn(idList);
return mapByDeviceIdIn;
}

/**
* 轮训接口
* gdh
* @return
*/
@Override
public List<Callpolice> Cycle(String deviceUnique,String Code) {
List<Callpolice> Cycle = callpoliceDao.Cycle(deviceUnique,Code);
return Cycle;
}
//查询全部问题的数据
@Override
public List<MonitorDevice> findAllByCode(String Code) {
List<MonitorDevice> findAllList = monitorDeviceDao.findAllByCode(Code);
return findAllList;
}

//查询monitor表中上一次报错的数据是否还存在
@Override
public List<MonitorDevice> findDeviceUnique(String deviceUnique,String Code) {
List<MonitorDevice> Relieve = monitorDeviceDao.findDeviceUnique(deviceUnique,Code);
return Relieve;
}
//查询monitor表中清河站电伴热的上一次报错的数据是否还存在
@Override
public List<MonitorDevice> findDeviceUnique1(String deviceUnique, String Code) {
List<MonitorDevice> Relieve = monitorDeviceDao.findDeviceUnique1(deviceUnique,Code);
return Relieve;
}

// 查詢所有在报错的设备编码
@Override
public List<Callpolice> QueryCode(String Code) {
List<Callpolice> QueryCode = callpoliceDao.QueryCode(Code);
return QueryCode;
}
//查詢清河站电伴热在报错的设备编码
@Override
public List<Callpolice> QueryCode1(String Code) {
List<Callpolice> QueryCode = callpoliceDao.QueryCode1(Code);
return QueryCode;
}
//删除
@Override
public int DeleteCode(String deviceUnique,String Code) {
callpoliceDao.DeleteCode(deviceUnique,Code);
return 1;
}





/**
* 获取所有潜污泵
* gdh
* @return
*/
@Override
public List<Map<String,Object>> findDrainageList(String StationCode,PageUtil pageUtil) {
List<MonitorDevice> findDrainage = monitorDeviceDao.findDrainage1(StationCode);
List<Map<String, Object>> list = saveQWBlist(findDrainage);
return list;
}



/**
* 条件查询获取潜污泵
* gdh
* @return
*/
@Override
public List<Map<String,Object>> findList(String StationCode,String name, String type) {
if(type==null){
//查所有
if (StringUtils.isEmpty(name)) {
List<MonitorDevice> findDrainage = monitorDeviceDao.findDrainage1(StationCode);
List<Map<String, Object>> list = saveQWBlist(findDrainage);
return list;
}
if (!StringUtils.isEmpty(name)) {
List<MonitorDevice> findDrainage =monitorDeviceDao.findDrainageByName(StationCode,name);
List<Map<String, Object>> list = saveQWBlist(findDrainage);
return list;
}
} else if(type.equals("1")){
type="true";
}else if(type.equals("0")){
type="false";
}
//按条件查询
//名称不为空
if (StringUtils.isEmpty(type) && !StringUtils.isEmpty(name)) {
List<MonitorDevice> findDrainage = monitorDeviceDao.findDrainageByName(StationCode,name);
List<Map<String, Object>> list = saveQWBlist(findDrainage);
return list;
} else if (!StringUtils.isEmpty(type) && StringUtils.isEmpty(name)) {//类型不为空
List<MonitorDevice> findDrainage =monitorDeviceDao.findDrainageByType(StationCode,type);
List<Map<String, Object>> list = saveQWBlist(findDrainage);
return list;
} else {//都不为空
List<MonitorDevice> findDrainage =monitorDeviceDao.findDrainageByTypeName(StationCode,name,type);
List<Map<String, Object>> list = saveQWBlist(findDrainage);
return list;
}
}

/**
* 获取所有空调的送排风口
* zyl
* @return
*/
@Override
public Page<MonitorDevice> getAllVents(String stationCode, PageUtil pageUtil) {
Pageable pageable = pageUtil.pageable();
// 判断站码
String inWindCode = "";
String outWindCode = "";
String addition1 = "";
//清河站专用点位名与key映射
Map<String, String> keyMap = new HashMap<String, String>() {{
put("ST", "YX");
put("AL", "GZ");
put("AUT", "SZD");
put("RL", "SZD");
}};
//宣化站和下花园站专用点位名与key映射
Map<String, String> keyMapVJP = new HashMap<String, String>() {{
put("run", "YX");
put("alarm", "GZ");
put("auto", "SZD");
}};
//东花园站专用点位名与key映射
Map<String, String> keyMapQBP = new HashMap<String, String>() {{
put("SZ", "SZD");
}};
//太子城站
if (stationCode.equals("IZP")) {
inWindCode = "0821";
outWindCode = "0819";
}
//张家口站
if (stationCode.equals("ZMP")) {
inWindCode = "0843";
outWindCode = "0819";
addition1 = "0842";
}
//清河站
if (stationCode.equals("QIP")) {
inWindCode = "0858";
outWindCode = "0838";
addition1 = "0823";
}
//昌平站
if (stationCode.equals("CPP")) {
inWindCode = "0861";
outWindCode = "0862";
}
//八达岭站
if (stationCode.equals("VLP")) {
inWindCode = "0835";
outWindCode = "0835";
}
//怀来站
if (stationCode.equals("VQP")) {
inWindCode = "0819";
outWindCode = "0823";
}
//宣化北站
if (stationCode.equals("VJP")) {
inWindCode = "0843";
outWindCode = "0819";
addition1 = "0842";
}
//下花园站
if (stationCode.equals("OKP")) {
inWindCode = "0842";
outWindCode = "0819";
}
//东花园站
if (stationCode.equals("QBP")) { inWindCode =
"0861";4.MonitorDeviceDao ===============================================================================================
outWindCode = "0819";
} Page<MonitorDevice> monitorDevices =
monitorDeviceDao.getAllVents(stationCode, inWindCode, outWindCode, addition1, pageable);
if (stationCode.equals("QIP")) return useProcessRes(monitorDevices, keyMap);
if (stationCode.equals("VJP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("OKP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("QBP")) return useProcessRes(monitorDevices, keyMapQBP);
return monitorDevices;
//return monitorDeviceDao.getAllVents(stationCode, inWindCode, outWindCode, addition1, pageable);
}


@Override
public Page<MonitorDevice> findDeviceByName(String stationCode, String name, String statusFlag, PageUtil pageUtil) { String inWindCode =
"";
String outWindCode = "";
String addition1 = "";
////站码与故障点位字段映射
//Map<String, String> stationCode2pointKey = new HashMap<String, String>() {{
// put("IZP", "GZ,h");
// put("ZMP", "GZ");
// put("QIP", "SZD");
//
//}};
//清河站专用点位名与key映射
Map<String, String> keyMap = new HashMap<String, String>() {{ put(
"ST", "YX");
put("AL", "GZ");
put("AUT", "SZD");
put("RL", "SZD");
}};
//宣化站和下花园站专用点位名与key映射
Map<String, String> keyMapVJP = new HashMap<String, String>() {{ put(
"run", "YX");
put("alarm", "GZ");
put("auto", "SZD");
}};
//东花园站专用点位名与key映射
Map<String, String> keyMapQBP = new HashMap<String, String>() {{ put(
"SZ", "SZD");
}};
//太子城站
if (stationCode.equals("IZP")) { inWindCode =
"0821";
outWindCode = "0819";
}
//张家口站
if (stationCode.equals("ZMP")) { inWindCode =
"0843";
outWindCode = "0819";
addition1 = "0842";
}
//清河站
if (stationCode.equals("QIP")) { inWindCode =
"0858";
outWindCode = "0838";
addition1 = "0823";
}
//昌平站
if (stationCode.equals("CPP")) { inWindCode =
"0861";
outWindCode = "0862";
}
//八达岭站
if (stationCode.equals("VLP")) { inWindCode =
"0835";
outWindCode = "0835";
}
//怀来站
if (stationCode.equals("VQP")) { inWindCode =
"0819";
outWindCode = "0823";
}
//宣化北站
if (stationCode.equals("VJP")) { inWindCode =
"0843";
outWindCode = "0819";
addition1 = "0842";
}
//下花园站
if (stationCode.equals("OKP")) { inWindCode =
"0842";
outWindCode = "0819";
}
//东花园站
if (stationCode.equals("QBP")) { inWindCode =
"0861";
outWindCode = "0819";
} Pageable pageable = pageUtil.pageable()
;
if (null == name) { name =
"";
}
if (null == statusFlag) { statusFlag =
"";
}
if (!name.isEmpty() && statusFlag.isEmpty()) { name =
"%" + name + "%";
Page<MonitorDevice> monitorDevices = monitorDeviceDao.findDeviceByName(stationCode, name, inWindCode, outWindCode, addition1, pageable);
if (stationCode.equals("QIP")) return useProcessRes(monitorDevices, keyMap);
if (stationCode.equals("VJP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("OKP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("QBP")) return useProcessRes(monitorDevices, keyMapQBP);
return monitorDevices;
}
if (name.isEmpty() && !statusFlag.isEmpty()) {
if (statusFlag.equals("0")) { statusFlag =
"false";
} else { statusFlag =
"true";
} Page<MonitorDevice> monitorDevices =
monitorDeviceDao.findDeviceByStatus(stationCode, statusFlag, inWindCode, outWindCode, addition1, pageable);
if (stationCode.equals("QIP")) return useProcessRes(monitorDevices, keyMap);
if (stationCode.equals("VJP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("OKP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("QBP")) return useProcessRes(monitorDevices, keyMapQBP);
return monitorDevices;
}
if (!name.isEmpty()) { name =
"%" + name + "%";
if (statusFlag.equals("0")) { statusFlag =
"false";
} else { statusFlag =
"true";
} Page<MonitorDevice> monitorDevices =
monitorDeviceDao.findDevByNameAndSts(stationCode,name,statusFlag,inWindCode,outWindCode,addition1,pageable);
if (stationCode.equals("QIP")) return useProcessRes(monitorDevices, keyMap);
if (stationCode.equals("VJP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("OKP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("QBP")) return useProcessRes(monitorDevices, keyMapQBP);
return monitorDevices;
} Page<MonitorDevice> monitorDevices =
monitorDeviceDao.getAllVents(stationCode,inWindCode,outWindCode,addition1,pageable);
if (stationCode.equals("QIP")) return useProcessRes(monitorDevices, keyMap);
if (stationCode.equals("VJP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("OKP")) return useProcessRes(monitorDevices, keyMapVJP);
if (stationCode.equals("QBP")) return useProcessRes(monitorDevices, keyMapQBP);
return monitorDevices;
}

//末端空调设备查询
@Override
public List<MonitorDevice> airConditioningQuery(String stationCode, PageUtil pageUtil) { List<MonitorDevice> monitorDevices =

monitorDeviceDao.ConditioningQuery(stationCode, pageUtil.pageable());

// ZMP是张家口车站的站码
if (stationCode.equals("ZMP")) { List<MonitorDevice> monitorDevice = jsonConvert(monitorDevices)
;
return monitorDevice;
}
// QIP清河车站的站码
if (stationCode.equals("QIP")) { List<MonitorDevice> monitorDevice = jsonConvertQIP(monitorDevices)
;
List<MonitorDevice> monitorDevices1 = booleanExchange(monitorDevice,"JZQT");
List<MonitorDevice> monitorDevices2 = removeVirtualPoint(monitorDevices1);
List<MonitorDevice> monitorDevices3 = convertBasName(monitorDevices2);
return monitorDevices3;
}
// CPP昌平车站的站码
if (stationCode.equals("CPP")) {
//设定新的字段名
List<MonitorDevice> monitorDevice = useProcessResCPP(monitorDevices,keyMapCPP);
//添加没有的字段并赋空值
List<MonitorDevice> monitorDevice1 = addKeyValueCPP(monitorDevice);
//将修改后的monitorDevice属性的值赋给monitorDevices,并返回。
List<MonitorDevice> monitorDevices2 = assignmentCPP(monitorDevice1);
return monitorDevices2;
}
// VLP八达岭车站的站码
if(stationCode.equals("VLP")) {
//设置新的字段名
List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices,keyMapVLP);
//添加没有的字段并赋空值
List<MonitorDevice> monitorDevices2 = addKeyValueVLP(monitorDevices1);
//将修改后的monitorDevice属性的值赋给monitorDevices,并返回。
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
// VQP怀来车站的站码
if(stationCode.equals("VQP")) {
//设置新的字段名
List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices,keyMapVQP);
//添加没有的字段并赋空值
List<MonitorDevice> monitorDevices2 = addKeyValueVQP(monitorDevices1);
//将修改后的monitorDevice属性的值赋给monitorDevices,并返回。
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
// VJP宣化北车站的站码 OKP下花园站的站码
if(stationCode.equals("VJP") || stationCode.equals("OKP")) {
//设置新的字段名
List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices,keyMapVJP);
//添加没有的字段并赋空值
List<MonitorDevice> monitorDevices2 = addKeyValueVJP(monitorDevices1);
//将修改后的monitorDevice属性的值赋给monitorDevices,并返回。
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
//QBP东花园站的站码
if(stationCode.equals("QBP")) {
//设置新的字段名
List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices,keyMapQBP);
//添加没有的字段并赋空值
List<MonitorDevice> monitorDevices2 = addKeyValueQBP(monitorDevices1);
//将修改后的monitorDevice属性的值赋给monitorDevices,并返回。
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
} List<MonitorDevice> monitorDevices1 = addJson(monitorDevices)
;
List<MonitorDevice> monitorDevices2 = jsonConvertIZP(monitorDevices1);
return monitorDevices2;
}

//===========================
//太子城将deviceMonitor里面的数据存放到deviceMonitors里面
private List<MonitorDevice> jsonConvertIZP (List<MonitorDevice> monitorDevices1) {
for (MonitorDevice monitorDevices2 : monitorDevices1) { JSONObject deviceMonitor = monitorDevices2.getDeviceMonitor()
;
JSONObject deviceMonitors = monitorDevices2.getDeviceMonitors();
if (deviceMonitor.getString("JZXFFKZT") != null) { deviceMonitors.put(
"JZXFFKZT",deviceMonitor.getString("JZXFFKZT"));
}
if (deviceMonitor.getString("JZSFKZT") != null) { deviceMonitors.put(
"JZSFKZT",deviceMonitor.getString("JZSFKZT"));
}
if (deviceMonitor.getString("JZQT") != null) { deviceMonitors.put(
"JZQT",deviceMonitor.getString("JZQT"));
}
if (deviceMonitor.getString("JZGZ") != null) { deviceMonitors.put(
"JZGZ",deviceMonitor.getString("JZGZ"));
}
if (deviceMonitor.getString("JZSZD") != null) { deviceMonitors.put(
"JZSZD",deviceMonitor.getString("JZSZD"));
} deviceMonitors.put(
"JZFJGLQZDBJ","");
deviceMonitors.put("MANMDV",""); //新风阀手自动状态
// deviceMonitor.put("YCDCKTXFWD", deviceMonitor.getString("XFTT")); //1.新风温度
// deviceMonitor.remove("XFTT");
monitorDevices2.setDeviceMonitors(deviceMonitors);
}
return monitorDevices1;
}

//清河将空调的deviceName改成对应的BAS名称
private List<MonitorDevice> convertBasName(List<MonitorDevice> monitorDevices) {
for(MonitorDevice monitorDevice : monitorDevices) { String newName = monitorDevice.getNewName()
;
monitorDevice.setDeviceName(newName);
}
return monitorDevices;
}

//清河去除5个虚拟点位:P_QIP_AHU_D3AHU05P_QIP_AHU_D2AHU10P_QIP_PAU_D1YSSTTSETP_QIP_AHU_D3AHU01P_QIP_B1PAU_DPAU
private List<MonitorDevice> removeVirtualPoint(List<MonitorDevice> monitorDevices) { Iterator<MonitorDevice> it = monitorDevices.iterator()
;
while (it.hasNext()) { MonitorDevice monitorDevice1 = it.next()
;
if(monitorDevice1.getDeviceUnique().equals("P_QIP_AHU_D3AHU05") || monitorDevice1.getDeviceUnique().equals("P_QIP_AHU_D2AHU10") || monitorDevice1.getDeviceUnique().equals("P_QIP_PAU_D1YSSTTSET") || monitorDevice1.getDeviceUnique().equals("P_QIP_AHU_D3AHU01") || monitorDevice1.getDeviceUnique().equals("P_QIP_B1PAU_DPAU")){ it.remove()
;
} }

return monitorDevices;
}

//清河true/false反转
private List<MonitorDevice> booleanExchange(List<MonitorDevice> ret, String param){
for (MonitorDevice monitorDevice : ret) { JSONObject deviceMonitors = monitorDevice.getDeviceMonitors()
;
if (!deviceMonitors.containsKey(param)){
continue;
} else {
if (deviceMonitors.getString(param) !=null){
if (deviceMonitors.getString(param).equals("false")){ deviceMonitors.put(param
,"true");
}else { deviceMonitors.put(param
,"false");
} } } }



return ret;
}

//张家口字段转换
private List<MonitorDevice> jsonConvert (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;

//=======================================================
deviceMonitor.put("JZSFKZT",""); //水阀状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤报警
deviceMonitor.put("MANMDV",""); //新风阀手自动状态
//=======================================================
deviceMonitor.put("YCDCKTXFWD",deviceMonitor.getString("JZXFWD")); //1.新风温度
deviceMonitor.remove("JZXFWD");
deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("JZXFFQT")); //2.新风阀状态
deviceMonitor.remove("JZXFFQT");
// deviceMonitor.put("JZSFKZT",deviceMonitor.getString("JZSFKZ")); //3.水阀状态先不展示
// deviceMonitor.remove("JZSFKZ");
deviceMonitor.put("YCDCKTSFWD",deviceMonitor.getString("JZSFWD")); //4.送风温度
deviceMonitor.remove("JZSFWD");
deviceMonitor.put("YCDCKTHFWD",deviceMonitor.getString("JZHFWD")); //5.回风温度
deviceMonitor.remove("JZHFWD");
deviceMonitor.put("JZQT",deviceMonitor.getString("JZBPYX")); //6.空调状态
deviceMonitor.remove("JZBPYX");
deviceMonitor.put("JZGZ",deviceMonitor.getString("JZBPGZ")); //7.空调故障状态
deviceMonitor.remove("JZBPGZ");
// deviceMonitor.put("JZSZD",deviceMonitor.getString("null")); //<===>8.空调手自动状态(和太子城一样,不用转换)
// deviceMonitor.remove("null");
// deviceMonitor.put("JZFJGLQZDBJ",deviceMonitor.getString("null")); //9.空调过滤报警不展示
// deviceMonitor.remove("null");
// deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("null")); //10.新风阀手自动状态不展示
// deviceMonitor.remove("null");

monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}


//清河字段转换
private List<MonitorDevice> jsonConvertQIP (List<MonitorDevice> monitorDevices){
// List<String> list = new ArrayList<String>(){{add("SFTT");add("TT");}};
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;
Set<String> set = deviceMonitor.keySet();
deviceMonitor.put("YCDCKTXFWD",deviceMonitor.getString("XFTT")); //1.新风温度
deviceMonitor.remove("XFTT");
// deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("JZXFFQT")); //2.新风阀状态不展示
// deviceMonitor.remove("JZXFFQT");
// deviceMonitor.put("JZSFKZT",deviceMonitor.getString("TVLFB")); //3.水阀状态不展示
// deviceMonitor.remove("TVLFB");
if (set.contains("SFTT")){ deviceMonitor.put(
"YCDCKTSFWD",deviceMonitor.getString("SFTT")); //4.送风温度 (SFTTTTTT1)
deviceMonitor.remove("SFTT");
}
if (set.contains("TT")){ deviceMonitor.put(
"YCDCKTSFWD",deviceMonitor.getString("TT"));
deviceMonitor.remove("TT");
}
if (set.contains("TT1")){ deviceMonitor.put(
"YCDCKTSFWD",deviceMonitor.getString("TT1"));
deviceMonitor.remove("TT1");
} deviceMonitor.put(
"YCDCKTHFWD",deviceMonitor.getString("RFTT")); //5.回风温度
deviceMonitor.remove("RFTT");
deviceMonitor.put("JZQT",deviceMonitor.getString("ST")); //6.空调状态
deviceMonitor.remove("ST");
deviceMonitor.put("JZGZ",deviceMonitor.getString("AL")); //7.空调故障状态
deviceMonitor.remove("AL");
deviceMonitor.put("JZSZD",deviceMonitor.getString("RL")); //8.空调手自动状态
deviceMonitor.remove("RL");
// deviceMonitor.put("JZFJGLQZDBJ",deviceMonitor.getString("JZJDCC")); //9.空调过滤报警不展示
// deviceMonitor.remove("JZJDCC");
// deviceMonitor.put("JZXFFKZT",deviceMonitor.getString("MANMDV")); //10.新风阀手自动状态不展示
// deviceMonitor.remove("MANMDV");////////////////////////////////////////////////////////////////////

//====================================
deviceMonitor.put("JZXFFKZT",""); //新风阀状态
deviceMonitor.put("JZSFKZT",""); //水阀状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤网警报
//====================================

monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}


//字段转换:改变json字符串Key的值
private List<MonitorDevice> useProcessResCPP(List<MonitorDevice> monitorDevices, Map<String,String> keyMap) {
return processingResCPP(monitorDevices, devices -> {
for (MonitorDevice device : devices) { JSONObject deviceMonitor = device.getDeviceMonitor()
;
//声明新的JSONObject空间
JSONObject tempJsonObj = new JSONObject(30);
if (deviceMonitor.isEmpty()) {
continue;
} else {
for (String s : deviceMonitor.keySet()) {
if (s.startsWith("XH")){
if (s.endsWith("02")){ tempJsonObj.put(
"YX",deviceMonitor.getString(s));
}else if (s.endsWith("03")){ tempJsonObj.put(
"GZ",deviceMonitor.getString(s));
}else if (s.endsWith("04")){ tempJsonObj.put(
"SZD",deviceMonitor.getString(s));
}else { tempJsonObj.put(s
,deviceMonitor.getString(s));
} }
else { tempJsonObj.put(
keyMap.getOrDefault(s, s), deviceMonitor.getString(s));
} } }


//重新设置json对象
device.setDeviceMonitor(tempJsonObj);
}
return devices;
});
}

private List<MonitorDevice> processingResCPP(List<MonitorDevice> result, Function<List<MonitorDevice>,List<MonitorDevice>> fun){
return fun.apply(result);
}


//字段转换:将deviceMonitor中改变字段后的json数据存放到deviceMonitors中,给前端展示。
private List<MonitorDevice> assignmentCPP (List<MonitorDevice> monitorDevice){
for (MonitorDevice monitorDevice1 : monitorDevice) { JSONObject deviceMonitor = monitorDevice1.getDeviceMonitor()
;
monitorDevice1.setDeviceMonitors(deviceMonitor);
}
return monitorDevice;
}

//昌平增加deviceMonitorskeyvalue
private List<MonitorDevice> addKeyValueCPP (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;

//====================================
deviceMonitor.put("JZXFFKZT",""); //新风阀状态
deviceMonitor.put("JZSFKZT",""); //水阀状态
deviceMonitor.put("JZSZD",""); //空调手自动状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤网警报
deviceMonitor.put("MANMDV",""); //新风阀手自动状态
//====================================

monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}

//昌平站字段转换
Map<String, String> keyMapCPP = new HashMap<String, String>() {{ put(
"FRESH_AIR_TEMP","YCDCKTXFWD"); //新风温度
// put("","JZXFFKZT"); //新风阀状态
// put("","JZSFKZT"); //水阀状态
put("DIS_AIR_TEMP","YCDCKTSFWD"); //送风温度
put("RET_AIR_TEMP","YCDCKTHFWD"); //回风温度
put("UNIT_START","JZQT"); //空调状态
put("REMOTE_RESET","JZGZ"); //空调故障状态
// put("","JZSZD"); //空调手自动状态
// put("","JZFJGLQZDBJ"); //空调过滤网报警
// put("","JZXFFKZT"); //新风阀手自动状态
}};


//八达岭增加deviceMonitorskeyvalue
private List<MonitorDevice> addKeyValueVLP (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;
deviceMonitor.put("JZXFFKZT",""); //新风阀状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤网警报
deviceMonitor.put("MANMDV",""); //新风阀手自动状态
monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}

//八达岭站字段转换
Map<String, String> keyMapVLP = new HashMap<String, String>() {{ put(
"HJWD","YCDCKTXFWD"); //新风温度
// put("null","JZXFFKZT"); //新风阀状态
put("QRSF","JZSFKZT"); //水阀状态
put("SFWD","YCDCKTSFWD"); //送风温度
put("HFWD","YCDCKTHFWD"); //回风温度
put("QYXZS","JZQT"); //空调状态
put("QGZZS","JZGZ"); //空调故障状态
put("SZD","JZSZD"); //空调手自动状态
// put("null","JZFJGLQZDBJ"); //空调过滤网报警
// put("null","JZXFFKZT"); //新风阀手自动状态
}};

//怀来增加deviceMonitorskeyvalue
private List<MonitorDevice> addKeyValueVQP (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;
deviceMonitor.put("JZXFFKZT",""); //新风阀状态
deviceMonitor.put("JZSFKZT",""); //水阀状态
deviceMonitor.put("JZSZD",""); //空调手自动状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤网警报
deviceMonitor.put("MANMDV",""); //新风阀手自动状态
monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}

//怀来站字段转换
Map<String, String> keyMapVQP = new HashMap<String, String>() {{ put(
"XFWD","YCDCKTXFWD"); //新风温度
// put("null","JZXFFKZT"); //新风阀状态
// put("null","JZSFKZT"); //水阀状态
put("SFWD","YCDCKTSFWD"); //送风温度
put("HFWD","YCDCKTHFWD"); //回风温度
put("YCQT","JZQT"); //空调状态
put("GZFW","JZGZ"); //空调故障状态
// put("null","JZSZD"); //空调手自动状态
// put("null","JZFJGLQZDBJ"); //空调过滤网报警
// put("null","JZXFFKZT"); //新风阀手自动状态
}};

//宣化北增加deviceMonitorskeyvalue(与下花园OKP一样)
private List<MonitorDevice> addKeyValueVJP (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;
deviceMonitor.put("JZSZD",""); //空调手自动状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤网警报
deviceMonitor.put("MANMDV",""); //新风阀手自动状态
monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}

//宣化北站字段转换(与下花园一样)
Map<String, String> keyMapVJP = new HashMap<String, String>() {{ put(
"FreshTemperature","YCDCKTXFWD"); //新风温度
put("FreshValve","JZXFFKZT"); //新风阀状态
put("HotWaterValve","JZSFKZT"); //水阀状态
put("AirTemperature","YCDCKTSFWD"); //送风温度
put("BackWindTemperatu","YCDCKTHFWD"); //回风温度
put("UnitStatus","JZQT"); //空调状态
put("Alarm","JZGZ"); //空调故障状态
// put("null","JZSZD"); //空调手自动状态
// put("null","JZFJGLQZDBJ"); //空调过滤网报警
// put("null","JZXFFKZT"); //新风阀手自动状态
}};

//东花园站增加deviceMonitorskeyvalue
private List<MonitorDevice> addKeyValueQBP (List<MonitorDevice> monitorDevices){
for (MonitorDevice monitorDevices1 : monitorDevices) { JSONObject deviceMonitor = monitorDevices1.getDeviceMonitor()
;
deviceMonitor.put("JZXFFKZT",""); //新风阀状态
deviceMonitor.put("JZSFKZT",""); //水阀状态
deviceMonitor.put("JZSZD",""); //空调手自动状态
deviceMonitor.put("JZFJGLQZDBJ",""); //空调过滤网警报
deviceMonitor.put("MANMDV",""); //新风阀手自动状态
monitorDevices1.setDeviceMonitors(deviceMonitor);
}
return monitorDevices;
}

//东花园站字段转换
Map<String, String> keyMapQBP = new HashMap<String, String>() {{ put(
"XFWD","YCDCKTXFWD"); //新风温度
// put("null","JZXFFKZT"); //新风阀状态
// put("null","JZSFKZT"); //水阀状态
put("SFWD","YCDCKTSFWD"); //送风温度
put("HFWD","YCDCKTHFWD"); //回风温度
put("YCQT","JZQT"); //空调状态
put("GZFW","JZGZ"); //空调故障状态
// put("null","JZSZD"); //空调手自动状态
// put("null","JZFJGLQZDBJ"); //空调过滤网报警
// put("null","JZXFFKZT"); //新风阀手自动状态
}};


//末端空调设备条件查询
@Override
public List<MonitorDevice> conditioningQuery(String stationCode, String deviceName, String serviceStatus, PageUtil pageUtil) {

if (serviceStatus==null){
if (StringUtils.isEmpty(deviceName)&&StringUtils.isEmpty(serviceStatus)){ //都空按全查分页
List<MonitorDevice> monitorDevices = monitorDeviceDao.ConditioningQuery(stationCode, pageUtil.pageable());

if (stationCode.equals("ZMP")) { List<MonitorDevice> monitorDevice = jsonConvert(monitorDevices)
;
return monitorDevice;
}
if (stationCode.equals("QIP")) { List<MonitorDevice> monitorDevice = jsonConvertQIP(monitorDevices)
;
List<MonitorDevice> monitorDevices1 = booleanExchange(monitorDevice,"JZQT");
List<MonitorDevice> monitorDevices2 = removeVirtualPoint(monitorDevices1);
List<MonitorDevice> monitorDevices3 = convertBasName(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("CPP")) { List<MonitorDevice> monitorDevice = useProcessResCPP(monitorDevices
,keyMapCPP);
List<MonitorDevice> monitorDevice1 = addKeyValueCPP(monitorDevice);
List<MonitorDevice> monitorDevices2 = assignmentCPP(monitorDevice1);
return monitorDevices2;
}
if (stationCode.equals("VLP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices
,keyMapVLP);
List<MonitorDevice> monitorDevices2 = addKeyValueVLP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("VQP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices
,keyMapVQP);
List<MonitorDevice> monitorDevices2 = addKeyValueVQP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("VJP") || stationCode.equals("OKP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices
,keyMapVJP);
List<MonitorDevice> monitorDevices2 = addKeyValueVJP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("QBP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(monitorDevices
,keyMapQBP);
List<MonitorDevice> monitorDevices2 = addKeyValueQBP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
} List<MonitorDevice> monitorDevices1 = addJson(monitorDevices)

;
List<MonitorDevice> monitorDevices2 = jsonConvertIZP(monitorDevices1);
return monitorDevices2;
}
if (!StringUtils.isEmpty(deviceName)){
if (StringUtils.isEmpty(serviceStatus)){ //statusname不空,按name模糊查
List<MonitorDevice> byDeviceName = monitorDeviceDao.findByDeviceName(stationCode, deviceName, pageUtil.pageable());

if (stationCode.equals("ZMP")) { List<MonitorDevice> monitorDevice = jsonConvert(byDeviceName)
;
return monitorDevice;
}
if (stationCode.equals("QIP")) { List<MonitorDevice> monitorDevice = jsonConvertQIP(byDeviceName)
;
List<MonitorDevice> monitorDevices1 = booleanExchange(monitorDevice,"JZQT");
List<MonitorDevice> monitorDevices2 = removeVirtualPoint(monitorDevices1);
List<MonitorDevice> monitorDevices3 = convertBasName(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("CPP")) { List<MonitorDevice> monitorDevice = useProcessResCPP(byDeviceName
,keyMapCPP);
List<MonitorDevice> monitorDevice1 = addKeyValueCPP(monitorDevice);
List<MonitorDevice> monitorDevices2 = assignmentCPP(monitorDevice1);
return monitorDevices2;
}
if(stationCode.equals("VLP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byDeviceName
,keyMapVLP);
List<MonitorDevice> monitorDevices2 = addKeyValueVLP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("VQP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byDeviceName
,keyMapVQP);
List<MonitorDevice> monitorDevices2 = addKeyValueVQP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("VJP") || stationCode.equals("OKP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byDeviceName
,keyMapVJP);
List<MonitorDevice> monitorDevices2 = addKeyValueVJP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("QBP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byDeviceName
,keyMapQBP);
List<MonitorDevice> monitorDevices2 = addKeyValueQBP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
} List<MonitorDevice> monitorDevices1 = addJson(byDeviceName)

;
List<MonitorDevice> monitorDevices2 = jsonConvertIZP(monitorDevices1);
return monitorDevices2;
} } }


// if (serviceStatus.equals("0")){
// serviceStatus="false";
// }else if(serviceStatus.equals("1")){
// serviceStatus="true";
// }
if (serviceStatus.equals("0")){ serviceStatus=
"true";
}else if(serviceStatus.equals("1")){ serviceStatus=
"false";
}
if (!StringUtils.isEmpty(serviceStatus)){
if (StringUtils.isEmpty(deviceName)){ //status不空name空,按status
List<MonitorDevice> byServiceStatus = monitorDeviceDao.findByServiceStatus(stationCode, serviceStatus, pageUtil.pageable());

if (stationCode.equals("ZMP")) { List<MonitorDevice> monitorDevice = jsonConvert(byServiceStatus)
;
return monitorDevice;
}
if (stationCode.equals("QIP")) { List<MonitorDevice> monitorDevice = jsonConvertQIP(byServiceStatus)
;
List<MonitorDevice> monitorDevices1 = booleanExchange(monitorDevice,"JZQT");
List<MonitorDevice> monitorDevices2 = removeVirtualPoint(monitorDevices1);
List<MonitorDevice> monitorDevices3 = convertBasName(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("CPP")) { List<MonitorDevice> monitorDevice = useProcessResCPP(byServiceStatus
,keyMapCPP);
List<MonitorDevice> monitorDevice1 = addKeyValueCPP(monitorDevice);
List<MonitorDevice> monitorDevices2 = assignmentCPP(monitorDevice1);
return monitorDevices2;
}
if(stationCode.equals("VLP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byServiceStatus
,keyMapVLP);
List<MonitorDevice> monitorDevices2 = addKeyValueVLP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("VQP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byServiceStatus
,keyMapVQP);
List<MonitorDevice> monitorDevices2 = addKeyValueVQP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("VJP") || stationCode.equals("OKP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byServiceStatus
,keyMapVJP);
List<MonitorDevice> monitorDevices2 = addKeyValueVJP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("QBP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byServiceStatus
,keyMapQBP);
List<MonitorDevice> monitorDevices2 = addKeyValueQBP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
} List<MonitorDevice> monitorDevices1 = addJson(byServiceStatus)

;
List<MonitorDevice> monitorDevices2 = jsonConvertIZP(monitorDevices1);
return monitorDevices2;
} }

if (deviceName != null){ deviceName =
"%"+deviceName+"%";
} List<MonitorDevice> byNameAndStatus =
monitorDeviceDao.findByNameAndStatus(stationCode, deviceName, serviceStatus, pageUtil.pageable());//两个条件都查

if (stationCode.equals("ZMP")) { List<MonitorDevice> monitorDevice = jsonConvert(byNameAndStatus)
;
return monitorDevice;
}
if (stationCode.equals("QIP")) { List<MonitorDevice> monitorDevice = jsonConvertQIP(byNameAndStatus)
;
List<MonitorDevice> monitorDevices1 = booleanExchange(monitorDevice,"JZQT");
List<MonitorDevice> monitorDevices2 = removeVirtualPoint(monitorDevices1);
List<MonitorDevice> monitorDevices3 = convertBasName(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("CPP")) { List<MonitorDevice> monitorDevice = useProcessResCPP(byNameAndStatus
,keyMapCPP);
List<MonitorDevice> monitorDevice1 = addKeyValueCPP(monitorDevice);
List<MonitorDevice> monitorDevices2 = assignmentCPP(monitorDevice1);
return monitorDevices2;
}
if(stationCode.equals("VLP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byNameAndStatus
,keyMapVLP);
List<MonitorDevice> monitorDevices2 = addKeyValueVLP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if (stationCode.equals("VQP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byNameAndStatus
,keyMapVQP);
List<MonitorDevice> monitorDevices2 = addKeyValueVQP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("VJP") || stationCode.equals("OKP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byNameAndStatus
,keyMapVJP);
List<MonitorDevice> monitorDevices2 = addKeyValueVJP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
}
if(stationCode.equals("QBP")) { List<MonitorDevice> monitorDevices1 = useProcessResCPP(byNameAndStatus
,keyMapQBP);
List<MonitorDevice> monitorDevices2 = addKeyValueQBP(monitorDevices1);
List<MonitorDevice> monitorDevices3 = assignmentCPP(monitorDevices2);
return monitorDevices3;
} List<MonitorDevice> monitorDevices1 = addJson(byNameAndStatus)

;
List<MonitorDevice> monitorDevices2 = jsonConvertIZP(monitorDevices1);
return monitorDevices2;

}

/**
* 清河电伴热专用0/1->true/false(上限和下线报警点位对应值的转换)
* @param ret
* @return
*/
private Page<MonitorDevice> convertBoolean(Page<MonitorDevice> ret){
for (MonitorDevice monitorDevice : ret) { JSONObject deviceMonitor = monitorDevice.getDeviceMonitor()
;
if (deviceMonitor.containsKey("SXBJ")){
if (deviceMonitor.getString("SXBJ").equals("0")){ deviceMonitor.put(
"SXBJ","false");
}else { deviceMonitor.put(
"SXBJ","true");
} }

if (deviceMonitor.containsKey("XXBJ")){
if (deviceMonitor.getString("XXBJ").equals("0")){ deviceMonitor.put(
"XXBJ","false");
}else { deviceMonitor.put(
"XXBJ","true");
} }

//monitorDevice.setDeviceMonitor(deviceMonitor);
}
return ret;
}

/**
* boolean 反转
* @param ret
* @param param
* @return
*/
private Page<MonitorDevice> booleanReverse(Page<MonitorDevice> ret, String param){
for (MonitorDevice monitorDevice : ret) { JSONObject deviceMonitor = monitorDevice.getDeviceMonitor()
;
if (!deviceMonitor.containsKey(param)){
continue;
} else {
if (deviceMonitor.getString(param).equals("false")){ deviceMonitor.put(param
,"true");
}else { deviceMonitor.put(param
,"false");
} } }


return ret;
}
/**
* @Description: 获取所有的电伴热设备
* @Param: [pageUtil]
* @Return: org.springframework.data.domain.Page<com.cars.ict.rbpsems.entity.record.MonitorDevice>
* @author: ZhaoYunLong
* @Date: 2021/10/13
*/
@Override
public Page<MonitorDevice> getAllElectricHeating(String stationCode, PageUtil pageUtil) { Pageable pageable = pageUtil.pageable()
;
//通讯中断时长设定
int hours = 120;
//设定点位名新的映射关系
Map<String, String> keyMap = new HashMap<String, String>() {{ put(
"SV", "SVT");
put("PV", "PVT");
put("HIAL", "SXBJ");
put("LDAL", "XXBJ");
put("COM", "TXZT");
}};
Page<MonitorDevice> monitorDevices = monitorDeviceDao.getAllElectricHeating(stationCode, pageable);
if (stationCode.equals("QIP")) return booleanReverse(convertBoolean(useProcessRes(monitorDevices, keyMap)),"TXZT");
return generateCommSts(monitorDevices, (long) hours);
}

/**
* 轮询检测上次更新时间是否已经超时(生成并添加通讯状态)
* @param monitorDevices
* @param hours
* @return
*/
private Page<MonitorDevice> generateCommSts(Page<MonitorDevice> monitorDevices, Long hours){
for (MonitorDevice monitorDevice : monitorDevices) { Date currentDate =
new Date();
Date createTime = monitorDevice.getCreateTime();
long diff = currentDate.getTime() - createTime.getTime();
if (diff>(1000 * 60 * 60 * hours)){ monitorDevice.setCommStatus(
"false");
}else { monitorDevice.setCommStatus(
"true");
} }

return monitorDevices;

}
/**
* @Description: 用于json字符串Key值的更改(点位名称与前端匹配不上的时候使用)
* @Param: [result:查询返回的Page类型, fun:接口函数]
* @Return: org.springframework.data.domain.Page<com.cars.ict.rbpsems.entity.record.MonitorDevice>
* @author: ZhaoYunLong
* @Date: 2021/11/15
*/
private Page<MonitorDevice> processingRes(Page<MonitorDevice> result, Function<Page<MonitorDevice>,Page<MonitorDevice>> fun){

return fun.apply(result);
}
private Page<MonitorDevice> useProcessRes(Page<MonitorDevice> monitorDevices, Map<String, String> keyMap) {
return processingRes(monitorDevices, devices -> {
for (MonitorDevice device : devices) { JSONObject deviceMonitor = device.getDeviceMonitor()
;
//声明新的JSONObject空间
JSONObject tempJsonObj = new JSONObject(30);
if (deviceMonitor.isEmpty()) {
continue;
} else {
for (String s : deviceMonitor.keySet()) {
if (s.startsWith("XH")){
if (s.endsWith("02")){ tempJsonObj.put(
"YX",deviceMonitor.getString(s));
}else if (s.endsWith("03")){ tempJsonObj.put(
"GZ",deviceMonitor.getString(s));
}else if (s.endsWith("04")){ tempJsonObj.put(
"SZD",deviceMonitor.getString(s));
}else { tempJsonObj.put(s
,deviceMonitor.getString(s));
} }
else { tempJsonObj.put(
keyMap.getOrDefault(s, s), deviceMonitor.getString(s));
} } }


//重新设置json对象
device.setDeviceMonitor(tempJsonObj);
}
return devices;
});

}

/**
* 电伴热条件筛选查询
* @param stationCode
* @param name
* @param statusFlag
* @param pageUtil
* @return
*/
@Override
public Page<MonitorDevice> findHeating(String stationCode, String name, String statusFlag, PageUtil pageUtil) { Pageable pageable = pageUtil.pageable()
;
Map<String, String> keyMap = new HashMap<String, String>() {{ put(
"SV", "SVT");
put("PV", "PVT");
put("HIAL", "SXBJ");
put("LDAL", "XXBJ");
put("COM", "TXZT");
}};
//通讯中断时长设定
int hours = 120;
//name空指针异常处理
if (null == name){ name =
"";
}
//statusFlag空指针异常处理
if (null == statusFlag){ statusFlag =
"";
}
//仅通过name进行模糊查询
if (!name.isEmpty() && statusFlag.isEmpty()){ name =
"%"+name+"%";
Page<MonitorDevice> monitorDevices = monitorDeviceDao.findHeatingByName(stationCode,name, pageable);
if (stationCode.equals("QIP")) return booleanReverse(convertBoolean(useProcessRes(monitorDevices, keyMap)),"TXZT");
return generateCommSts(monitorDevices, (long) hours);
}
//仅通过报警状态进行筛选查询
if (name.isEmpty() && !statusFlag.isEmpty()){
//状态码由0/1->转化成true/false
if (statusFlag.equals("0")){ statusFlag =
"false";
}else { statusFlag =
"true";
} Page<MonitorDevice> monitorDevices =
monitorDeviceDao.findHeatingByStatus(stationCode,statusFlag,pageable);
if (stationCode.equals("QIP")) return booleanReverse(convertBoolean(useProcessRes(monitorDevices, keyMap)),"TXZT");
return generateCommSts(monitorDevices, (long) hours);
}
//通过报警状态和name共同进行筛选
if (!name.isEmpty()){
//状态码由0/1->转化成true/false
if (statusFlag.equals("0")){ statusFlag =
"false";
}else { statusFlag =
"true";
} name =
"%"+name+"%";
Page<MonitorDevice> monitorDevices = monitorDeviceDao.findHeatingByNameAndSts(stationCode, name,statusFlag,pageable);
if (stationCode.equals("QIP")) return booleanReverse(convertBoolean(useProcessRes(monitorDevices, keyMap)),"TXZT");
return generateCommSts(monitorDevices, (long) hours);
} Page<MonitorDevice> monitorDevices =
monitorDeviceDao.getAllElectricHeating(stationCode, pageable);
if (stationCode.equals("QIP")) return booleanReverse(convertBoolean(useProcessRes(monitorDevices, keyMap)),"TXZT");
return generateCommSts(monitorDevices, (long) hours);
}




private List<MonitorDevice> addJson(List<MonitorDevice> monitorDevices){ System.
out.println(monitorDevices);

for (MonitorDevice monitorDevice : monitorDevices) { String opcDeviceName = monitorDevice.getOpcDeviceName()
;

if (opcDeviceName.equals("P_IZP_KTJZ_ID0001")){
for (MonitorDevice monitorDevice1 : monitorDevices) { String opcDeviceName1 = monitorDevice1.getOpcDeviceName()
;
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0007")){ JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor()
;
monitorDevice.setDeviceMonitors(deviceMonitor1);
} } }


if (opcDeviceName.equals("P_IZP_KTJZ_ID0002")){
for (MonitorDevice monitorDevice1 : monitorDevices) { String opcDeviceName1 = monitorDevice1.getOpcDeviceName()
;
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0007")){ JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor()
;
monitorDevice.setDeviceMonitors(deviceMonitor1);
} } }


if (opcDeviceName.equals("P_IZP_KTJZ_ID0004")){
for (MonitorDevice monitorDevice1 : monitorDevices) { String opcDeviceName1 = monitorDevice1.getOpcDeviceName()
;
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0008")){ JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor()
;
monitorDevice.setDeviceMonitors(deviceMonitor1);
} } }


if (opcDeviceName.equals("P_IZP_KTJZ_ID0005")){
for (MonitorDevice monitorDevice1 : monitorDevices) { String opcDeviceName1 = monitorDevice1.getOpcDeviceName()
;
if (opcDeviceName1.equals("P_IZP_KTJZ_ID0008")){ JSONObject deviceMonitor1 = monitorDevice1.getDeviceMonitor()
;
monitorDevice.setDeviceMonitors(deviceMonitor1);
} } } } List<MonitorDevice> monitorDevices1 =



new ArrayList<>();
for (MonitorDevice monitorDevices2: monitorDevices) { String opcDeviceName = monitorDevices2.getOpcDeviceName()
;
if (opcDeviceName.equals("P_IZP_KTJZ_ID0001")){ monitorDevices1.add(monitorDevices2)
;
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0002")){ monitorDevices1.add(monitorDevices2)
;
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0004")){ monitorDevices1.add(monitorDevices2)
;
}
if (opcDeviceName.equals("P_IZP_KTJZ_ID0005")){ monitorDevices1.add(monitorDevices2)
;
} }

return monitorDevices1;
}

/**
* 潜污泵重新生成返回的list
* gdh
*/
private List<Map<String,Object>> saveQWBlist(List<MonitorDevice> findDrainage){ List<Map<String
,Object>> list =new ArrayList<>();
for (int i = 0; i <findDrainage.size() ; i++) { MonitorDevice monitorDevice = findDrainage.get(i)
;
JSONObject jsonObject = monitorDevice.getDeviceMonitor();
Set<String> strings = jsonObject.keySet();
Map<String,Object> map2 =new HashMap<>();
for (String string : strings) { String value = jsonObject.getString(string)
;
map2.put(string,value);
}
if (map2.containsKey("1#QWBGZZT")){
if (map2.get("1#QWBGZZT").equals("true")||map2.get("2#QWBGZZT").equals("true")||map2.get("3#QWBGZZT").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if(map2.get("1#QWBYXZT").equals("true")||map2.get("2#QWBYXZT").equals("true")||map2.get("3#QWBYXZT").equals("true")){ map.put(
"QWBYXZT","true");
}else { map.put(
"QWBYXZT","false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("QWBSZDZT"));
map.put("sid",-1);
list.add(map);
}else if (map2.get("1#QWBGZZT").equals("false")&&map2.get("2#QWBGZZT").equals("false")&&map2.get("3#QWBGZZT").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if(map2.get("1#QWBYXZT").equals("true")||map2.get("2#QWBYXZT").equals("true")||map2.get("3#QWBYXZT").equals("true")){ map.put(
"QWBYXZT","true");
}else { map.put(
"QWBYXZT","false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("QWBSZDZT"));
map.put("sid",-1);
list.add(map);
} }

if (map2.containsKey("QWB1GZZT")){
if (map2.get("QWB1GZZT").equals("true")||map2.get("QWB2GZZT").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if (map2.get("QWB1YXZT").equals("true")||map2.get("QWB2YXZT").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("QWBSZDZT"));
map.put("sid",-1);
list.add(map);
}
if (map2.get("QWB1GZZT").equals("false")&&map2.get("QWB2GZZT").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if (map2.get("QWB1YXZT").equals("true")||map2.get("QWB2YXZT").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("QWBSZDZT"));
map.put("sid",-1);
list.add(map);
} }

if (map2.containsKey("QWBGZZT")){
if (map2.get("QWBGZZT").equals("false")||map2.get("QWBGZZT").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT",map2.get("QWBGZZT"));
map.put("QWBYXZT",map2.get("QWBYXZT"));
map.put("GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("QWBSZDZT"));
map.put("sid",-1);
list.add(map);
} }

// 张家口站
// 主目录
if (map2.containsKey("GZ")){
if (map2.get("GZ").equals("false")||map2.get("GZ").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT",map2.get("GZ"));
map.put("QWBYXZT",map2.get("YX"));
map.put("GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("SZD"));
map.put("sid",-1);
list.add(map);
} }

if (map2.containsKey("BIGZ")){
if (map2.get("BIGZ").equals("true")||map2.get("BIIGZ").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if (map2.get("BIYX").equals("true")||map2.get("BIIYX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("SZD"));
map.put("sid",-1);
list.add(map);
}
if (map2.get("BIGZ").equals("false")&&map2.get("BIIGZ").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if (map2.get("BIYX").equals("true")||map2.get("BIIYX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("SZD"));
map.put("sid",-1);
list.add(map);
} }

// 昌平站主目录
if (map2.containsKey("1#GZ")){
if (map2.get("1#GZ").equals("true")||map2.get("2#GZ").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if (map2.get("1#YX").equals("true")||map2.get("2#YX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("SZD"));
map.put("sid",-1);
list.add(map);
}
if (map2.get("1#GZ").equals("false")&&map2.get("2#GZ").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if (map2.get("1#YX").equals("true")||map2.get("2#YX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("GYW"));
map.put("QWBSZDZT",map2.get("SZD"));
map.put("sid",-1);
list.add(map);
} }

// 清河站主目录
if (map2.containsKey("AL1")){
if (map2.get("AL1").equals("true")||map2.get("AL2").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if (map2.get("ST1").equals("true")||map2.get("ST2").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("HI"));
map.put("QWBSZDZT",map2.get("AUT"));
map.put("sid",-1);
list.add(map);
}
if (map2.get("AL1").equals("false")&&map2.get("AL2").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if (map2.get("ST1").equals("true")||map2.get("ST2").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("HI"));
map.put("QWBSZDZT",map2.get("AUT"));
map.put("sid",-1);
list.add(map);
} }

//八达岭站主目录
if (map2.containsKey("B1GZ")){
if (map2.get("B1GZ").equals("true")||map2.get("B2GZ").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if (map2.get("B1YX").equals("true")||map2.get("B2YX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("FQCG"));
map.put("sid",-1);
list.add(map);
}
if (map2.get("B1GZ").equals("false")&&map2.get("B2GZ").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if (map2.get("B1YX").equals("true")||map2.get("B2YX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("FQCG"));
map.put("sid",-1);
list.add(map);
} }

//八达岭站主目录
if (map2.containsKey("B1GZ")){
if (map2.get("B1GZ").equals("true")||map2.get("B2GZ").equals("true")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","true");
if (map2.get("B1YX").equals("true")||map2.get("B2YX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("FQCG"));
map.put("sid",-1);
list.add(map);
}
if (map2.get("B1GZ").equals("false")&&map2.get("B2GZ").equals("false")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT","false");
if (map2.get("B1YX").equals("true")||map2.get("B2YX").equals("true")) { map.put(
"QWBYXZT", "true");
}else { map.put(
"QWBYXZT", "false");
} map.put(
"GYW",map2.get("FQCG"));
map.put("sid",-1);
list.add(map);
} }


//下花园北站主目录
if (map2.containsKey("alarm")){ Map<String
,Object> map =new HashMap<>();
map.put("id",i);
map.put("deviceName",monitorDevice.getNewName());
map.put("deviceAddress",monitorDevice.getDeviceAddress());
map.put("QWBGZZT",map2.get("alarm"));
map.put("QWBYXZT", map2.get("run"));
map.put("QWBSZDZT",map2.get("auto"));
map.put("sid",-1);
list.add(map);
}



for (String string : strings) {
// 太子城站
if (string.equals("1#QWBGZZT")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+1000);
map1.put("deviceName","1号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("1#QWBGZZT"));
map1.put("QWBYXZT",map2.get("1#QWBYXZT"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("QWBSZDZT"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("2#QWBGZZT")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+2000);
map1.put("deviceName","2号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("2#QWBGZZT"));
map1.put("QWBYXZT",map2.get("2#QWBYXZT"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("QWBSZDZT"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("3#QWBGZZT")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+3000);
map1.put("deviceName","3号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("3#QWBGZZT"));
map1.put("QWBYXZT",map2.get("3#QWBYXZT"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("QWBSZDZT"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("QWB1GZZT")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","1号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("QWB1GZZT"));
map1.put("QWBYXZT",map2.get("QWB1YXZT"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("QWBSZDZT"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("QWB2GZZT")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+5000);
map1.put("deviceName","2号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("QWB2GZZT"));
map1.put("QWBYXZT",map2.get("QWB2YXZT"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("QWBSZDZT"));
map1.put("sid",i);
list.add(map1);
}
// 张家口站
if (string.equals("BIGZ")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","1号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("BIGZ"));
map1.put("QWBYXZT",map2.get("BIYX"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("BISZD"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("BIIGZ")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","2号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("BIIGZ"));
map1.put("QWBYXZT",map2.get("BIIYX"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("BISZD"));
map1.put("sid",i);
list.add(map1);
}
// 昌平站
if (string.equals("1#GZ")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","1号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("1#GZ"));
map1.put("QWBYXZT",map2.get("1#YX"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("SZD"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("2#GZ")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","2号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("2#GZ"));
map1.put("QWBYXZT",map2.get("2#YX"));
map1.put("GYW",map2.get("GYW"));
map1.put("QWBSZDZT",map2.get("SZD"));
map1.put("sid",i);
list.add(map1);
}
// 清河站
if (string.equals("AL1")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","1号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("AL1"));
map1.put("QWBYXZT",map2.get("ST1"));
map1.put("GYW",map2.get("HI"));
map1.put("QWBSZDZT",map2.get("AUT"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("AL2")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","2号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("AL2"));
map1.put("QWBYXZT",map2.get("ST2"));
map1.put("GYW",map2.get("HI"));
map1.put("QWBSZDZT",map2.get("AUT"));
map1.put("sid",i);
list.add(map1);
}
// 八达岭站
if (string.equals("B1GZ")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","1号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("B1GZ"));
map1.put("QWBYXZT",map2.get("B1YX"));
map1.put("GYW",map2.get("FQCG"));
map1.put("sid",i);
list.add(map1);
}
if (string.equals("B2GZ")){ Map<String
,Object> map1 =new HashMap<>();
map1.put("id",100+i+4000);
map1.put("deviceName","2号泵");
map1.put("deviceAddress",monitorDevice.getDeviceAddress());
map1.put("QWBGZZT",map2.get("B2GZ"));
map1.put("QWBYXZT",map2.get("B2YX"));
map1.put("GYW",map2.get("FQCG"));
map1.put("sid",i);
list.add(map1);
} } }



return list;
} }





 
package com.cars.ict.rbpsems.inventory.dao.record;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cars.ict.rbpsems.base.BaseDao;
import com.cars.ict.rbpsems.entity.record.MonitorDevice;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* 可监测设备表Dao
*
* @author artisan867
* @date 2020-09-18 14:34
*/
public interface MonitorDeviceDao extends BaseDao<MonitorDevice, String> {

@Query("select m from MonitorDevice m where m.deviceId =:deviceId ")
MonitorDevice findDistinctFirstByDeviceId(@Param("deviceId") String deviceId);

@Query("select m from MonitorDevice m where m.deviceId is null")
Page<MonitorDevice> findAll(Pageable pageable);

@Query("select m from MonitorDevice m where m.deviceId is null and m.deviceName like CONCAT('%',:deviceName,'%')")
Page<MonitorDevice> findAllByDeviceName(@Param("deviceName") String deviceName, Pageable pageable);

@Query("select m from MonitorDevice m where m.deviceId is null and m.deviceCategoryCode like CONCAT('%',:deviceCategoryCode,'%')")
Page<MonitorDevice> findAllByDeviceCategoryCode(@Param("deviceCategoryCode") String deviceCategoryCode, Pageable pageable);

@Query("select m from MonitorDevice m where m.deviceId is null and (m.deviceCategoryCode like CONCAT('%',:deviceCategoryCode,'%') and m.deviceName like CONCAT('%',:deviceName,'%'))")
Page<MonitorDevice> findAllByDeviceCategoryCodeAndDeviceName(@Param("deviceCategoryCode") String deviceCategoryCode, @Param("deviceName") String deviceName, Pageable pageable);

MonitorDevice findByOpcDeviceName(String opcDeviceName);

@Query("select m from MonitorDevice m where m.stationCode IN (:stationCodeList) AND m.sourceType = :sourceType ")
List<MonitorDevice> findByStationIdInAndAndSourceType(@Param("stationCodeList") Set<String> stationCodeList, @Param("sourceType") String sourceType);

@Query("select m from MonitorDevice m where m.id IN (:stationCodeList) ")
MonitorDevice findDistinctFirstById(@Param("stationCodeList")String deviceId);

@Query("select m from MonitorDevice m where m.deviceUnique IN (:stationCodeList) ")
MonitorDevice finddevice(@Param("stationCodeList") String deviceId);

@Query("select m.deviceUnique from MonitorDevice m where m.id IN (:id) ")
String findcode(@Param("id") String deviceId);

MonitorDevice findByDeviceUnique(String deviceUnique);

@Query("from MonitorDevice m where m.id IN (:deviceIdList) ")
List<MonitorDevice> findByIdIn(@Param("deviceIdList") Set<String> deviceIdList);


@Query("SELECT new map(m.id,m.deviceMonitor) FROM MonitorDevice m WHERE m.id IN (:deviceIdList)")
List<Map<String, Object>> findMapByDeviceIdIn(@Param("deviceIdList") Set<String> deviceIdList);


/**
* 潜污泵
* gdh
* @return
*/
@Query(value="select m.* from rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique where m.station_code = :StationCode and (m.device_category_code ='0816' OR m.device_category_code ='0859' OR m.device_category_code ='0822' OR m.device_category_code ='0855')",nativeQuery = true)
List<MonitorDevice> findDrainage1(@Param("StationCode") String StationCode);



@Query(value="select m.* from rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique where m.station_code =:StationCode and (m.device_category_code ='0816' OR m.device_category_code ='0859' OR m.device_category_code ='0822' OR m.device_category_code ='0855') and m.device_name like CONCAT('%',:deviceName,'%')",nativeQuery = true )
List<MonitorDevice> findDrainageByName(@Param("StationCode") String StationCode,@Param("deviceName") String deviceName);

@Query(value="SELECT m.* FROM rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique WHERE m.station_code= :StationCode AND (m.device_category_code ='0816' OR m.device_category_code ='0859' OR m.device_category_code ='0822' OR m.device_category_code ='0855') and (device_monitor->'$.QWBGZZT' = :type or device_monitor ->'$.\"1#QWBGZZT\"' = :type or device_monitor ->'$.\"2#QWBGZZT\"' = :type or device_monitor ->'$.\"3#QWBGZZT\"' = :type " +
"or device_monitor ->'$.\"QWB1GZZT\"' = :type or device_monitor ->'$.\"QWB2GZZT\"' = :type or device_monitor ->'$.\"GZ\"' = :type " +
"or device_monitor ->'$.\"BIGZ\"' = :type or device_monitor ->'$.\"BIIGZ\"' = :type " +
"or device_monitor ->'$.\"B1GZ\"' = :type or device_monitor ->'$.\"B2GZ\"' = :type or device_monitor ->'$.\"FQCG\"' = :type " +
"or device_monitor ->'$.\"1#GZ\"' = :type or device_monitor ->'$.\"2#GZ\"' = :type or device_monitor ->'$.\"HI\"' = :type " +
"or device_monitor ->'$.\"AL1\"' = :type or device_monitor ->'$.\"AL2\"' = :type" +
" or device_monitor ->'$.\"alarm\"' = :type )",nativeQuery = true)
List<MonitorDevice> findDrainageByType(@Param("StationCode") String StationCode,@Param("type") String type);

@Query(value="select m.* from rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique where m.station_code= :StationCode AND m.device_name like CONCAT('%',:deviceName,'%') and (device_monitor->'$.QWBGZZT' = :type or device_monitor ->'$.\"1#QWBGZZT\"' = :type or device_monitor ->'$.\"2#QWBGZZT\"' = :type or device_monitor ->'$.\"3#QWBGZZT\"' = :type " +
"or device_monitor ->'$.\"QWB1GZZT\"' = :type or device_monitor ->'$.\"QWB2GZZT\"' = :type or device_monitor ->'$.\"GZ\"' = :type " +
"or device_monitor ->'$.\"BIGZ\"' = :type or device_monitor ->'$.\"BIIGZ\"' = :type " +
"or device_monitor ->'$.\"B1GZ\"' = :type or device_monitor ->'$.\"B2GZ\"' = :type " +
"or device_monitor ->'$.\"1#GZ\"' = :type or device_monitor ->'$.\"2#GZ\"' = :type or device_monitor ->'$.\"HI\"' = :type " +
"or device_monitor ->'$.\"AL1\"' = :type or device_monitor ->'$.\"AL2\"' = :type" +
" or device_monitor ->'$.\"alarm\"' = :type )",nativeQuery = true)
List<MonitorDevice> findDrainageByTypeName(@Param("StationCode") String StationCode,@Param("deviceName") String deviceName,@Param("type") String type);

/**
* getAllVents
* zyl
* @return
*/
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND (device_category_code=:inWindCode OR device_category_code=:outWindCode OR IF(:addition1 <> '',device_category_code=:addition1,0=1))",nativeQuery = true)
Page<MonitorDevice> getAllVents(@Param("stationCode") String stationCode,@Param("inWindCode") String inWindCode,@Param("outWindCode") String outWindCode, @Param("addition1") String addition1,Pageable pageable);
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE" +
" station_code = :stationCode AND (device_category_code=:inWindCode OR device_category_code=:outWindCode OR IF(:addition1 <> '',device_category_code=:addition1,0=1)) AND device_name LIKE :name",nativeQuery = true)
Page<MonitorDevice> findDeviceByName(@Param("stationCode") String stationCode,@Param("name") String name, @Param("inWindCode") String inWindCode,@Param("outWindCode") String outWindCode,@Param("addition1") String addition1,Pageable pageable);
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND (device_category_code=:inWindCode OR device_category_code=:outWindCode OR IF(:addition1 <> '',device_category_code=:addition1,0=1)) AND (device_monitor->'$.GZ' = :statusFlag OR device_monitor->'$.AL' = :statusFlag OR device_monitor->'$.XH103' = :statusFlag OR device_monitor->'$.XH203' = :statusFlag OR device_monitor->'$.XH303' = :statusFlag OR device_monitor->'$.XH403' = :statusFlag OR device_monitor->'$.XH503' = :statusFlag OR device_monitor->'$.XH603' = :statusFlag OR device_monitor->'$.alarm' = :statusFlag)",nativeQuery = true)
Page<MonitorDevice> findDeviceByStatus(@Param("stationCode") String stationCode,@Param("statusFlag") String statusFlag, @Param("inWindCode") String inWindCode,@Param("outWindCode") String outWindCode,@Param("addition1") String addition1,Pageable pageable);
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND (device_category_code=:inWindCode OR device_category_code=:outWindCode OR IF(:addition1 <> '',device_category_code=:addition1,0=1)) AND (device_monitor->'$.GZ' = :statusFlag OR device_monitor->'$.AL' = :statusFlag OR device_monitor->'$.XH103' = :statusFlag OR device_monitor->'$.XH203' = :statusFlag OR device_monitor->'$.XH303' = :statusFlag OR device_monitor->'$.XH403' = :statusFlag OR device_monitor->'$.XH503' = :statusFlag OR device_monitor->'$.XH603' = :statusFlag OR device_monitor->'$.alarm' = :statusFlag) AND device_name LIKE :name",nativeQuery = true)
Page<MonitorDevice> findDevByNameAndSts(@Param("stationCode") String stationCode,@Param("name") String name, @Param("statusFlag") String statusFlag, @Param("inWindCode") String inWindCode,@Param("outWindCode") String outWindCode,@Param("addition1") String addition1,Pageable pageable);

/* ---1108 .ver 改动前----

@Query("select m from Device d left join MonitorDevice m on m.deviceUnique=d.deviceUnique where m.stationCode = :stationCode and " +
"(m.deviceCategoryCode='0819' or m.deviceCategoryCode='0821')")
Page<MonitorDevice> getAllVents(@Param("stationCode") String stationCode,Pageable pageable);
@Query("select m from Device d left join MonitorDevice m on m.deviceUnique=d.deviceUnique where m.stationCode = :stationCode and " +
"(m.deviceCategoryCode='0819' or m.deviceCategoryCode='0821') and m.deviceName LIKE CONCAT('%',:name,'%')")
Page<MonitorDevice> findDeviceByName(@Param("stationCode") String stationCode,@Param("name") String name, Pageable pageable);
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND (device_category_code=\"0821\" OR device_category_code=\"0819\") AND device_monitor->'$.GZ' = :statusFlag",nativeQuery = true)
Page<MonitorDevice> findDeviceByStatus(@Param("stationCode") String stationCode,@Param("statusFlag") String statusFlag, Pageable pageable);
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND (device_category_code=\"0821\" OR device_category_code=\"0819\") AND device_monitor->'$.GZ' = :statusFlag AND device_name LIKE :name",nativeQuery = true)
Page<MonitorDevice> findDevByNameAndSts(@Param("stationCode") String stationCode,@Param("name") String name, @Param("statusFlag") String statusFlag, Pageable pageable);

----1108 .ver 改动前----*/

/**
* 末端空调
* gs
* @return
*/
@Query(value = "SELECT * FROM rec_monitor_device m where m.station_code = :stationCode and (m.device_category_code='0817' or m.device_category_code='0803' or m.device_category_code='0830' or m.device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857')",nativeQuery = true)
// @Query(value = "SELECT m.* FROM rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique where m.station_code = :stationCode and (m.device_category_code='0817' or m.device_category_code='0803' or m.device_category_code='0830' or m.device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857')",nativeQuery = true)
List<MonitorDevice> ConditioningQuery(@Param("stationCode") String stationCode, Pageable pageable);

@Query(value = "SELECT * FROM rec_monitor_device m where m.station_code = :stationCode and (m.device_category_code='0817' or m.device_category_code='0803' or m.device_category_code='0830' or m.device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857') and m.device_name like CONCAT('%',:deviceName,'%')",nativeQuery = true)
//@Query(value = "SELECT m.* FROM rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique where m.station_code = :stationCode and (m.device_category_code='0817' or m.device_category_code='0803' or m.device_category_code='0830' or m.device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857') and m.device_name like CONCAT('%',:deviceName,'%')",nativeQuery = true)
List<MonitorDevice> findByDeviceName(@Param("stationCode") String stationCode, @Param("deviceName") String deviceName, Pageable pageable);

@Query(value = "SELECT * FROM rec_monitor_device m WHERE m.station_code = :stationCode and (device_category_code='0817' or device_category_code='0803' or device_category_code='0830' or device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857') and (device_monitor->'$.JZGZ' = :serviceStatus or device_monitor->'$.JZBPGZ' = :serviceStatus or device_monitor->'$.AL' = :serviceStatus or device_monitor->'$.REMOTE_RESET' = :serviceStatus or device_monitor->'$.QGZZS' = :serviceStatus or device_monitor->'$.GZFW' = :serviceStatus or device_monitor->'$.Alarm' = :serviceStatus or opc_device_name='P_IZP_KTJZ_ID0007' or opc_device_name='P_IZP_KTJZ_ID0008')",nativeQuery = true)
//@Query(value = "SELECT m.* FROM rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique WHERE m.station_code = :stationCode and (device_category_code='0817' or device_category_code='0803' or device_category_code='0830' or device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857') and (device_monitor->'$.JZGZ' = :serviceStatus or device_monitor->'$.JZBPGZ' = :serviceStatus or device_monitor->'$.AL' = :serviceStatus or device_monitor->'$.REMOTE_RESET' = :serviceStatus or device_monitor->'$.QGZZS' = :serviceStatus or device_monitor->'$.GZFW' = :serviceStatus or device_monitor->'$.Alarm' = :serviceStatus or opc_device_name='P_IZP_KTJZ_ID0007' or opc_device_name='P_IZP_KTJZ_ID0008')",nativeQuery = true)
List<MonitorDevice> findByServiceStatus(@Param("stationCode") String stationCode, @Param("serviceStatus") String serviceStatus, Pageable pageable);

@Query(value = "SELECT * FROM rec_monitor_device m WHERE m.station_code = :stationCode and (device_category_code='0817' or device_category_code='0803' or device_category_code='0830' or device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857') and (device_monitor->'$.JZGZ' = :serviceStatus or device_monitor->'$.JZBPGZ' = :serviceStatus or device_monitor->'$.AL' = :serviceStatus or device_monitor->'$.REMOTE_RESET' = :serviceStatus or device_monitor->'$.QGZZS' = :serviceStatus or device_monitor->'$.GZFW' = :serviceStatus or device_monitor->'$.Alarm' = :serviceStatus and device_name LIKE :deviceName or opc_device_name='P_IZP_KTJZ_ID0007' or opc_device_name='P_IZP_KTJZ_ID0008')",nativeQuery = true)
//@Query(value = "SELECT m.* FROM rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique WHERE m.station_code = :stationCode and (device_category_code='0817' or device_category_code='0803' or device_category_code='0830' or device_category_code='0860' or m.device_category_code='0827' or m.device_category_code='0810' or m.device_category_code='0857') and (device_monitor->'$.JZGZ' = :serviceStatus or device_monitor->'$.JZBPGZ' = :serviceStatus or device_monitor->'$.AL' = :serviceStatus or device_monitor->'$.REMOTE_RESET' = :serviceStatus or device_monitor->'$.QGZZS' = :serviceStatus or device_monitor->'$.GZFW' = :serviceStatus or device_monitor->'$.Alarm' = :serviceStatus and device_name LIKE :deviceName or opc_device_name='P_IZP_KTJZ_ID0007' or opc_device_name='P_IZP_KTJZ_ID0008')",nativeQuery = true)
List<MonitorDevice> findByNameAndStatus(@Param("stationCode") String stationCode, @Param("deviceName") String deviceName, @Param("serviceStatus") String serviceStatus, Pageable pageable);

/**
* getAllElectricHeating
* zyl
* @return
*/
//@Query("select m from MonitorDevice m where m.stationCode = :stationCode and m.deviceCategoryCode='0853'")
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" ORDER BY (MD.device_monitor->'$.TXZT')",nativeQuery = true) Page<MonitorDevice>
getAllElectricHeating(@Param("stationCode") String stationCode,Pageable pageable);
//@Query("select m from MonitorDevice m where m.stationCode = :stationCode and " +
// "m.deviceCategoryCode='0853' and m.deviceName LIKE CONCAT('%',:name,'%')")
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_name LIKE :name ORDER BY (MD.device_monitor->'$.TXZT')",nativeQuery = true) Page<MonitorDevice>
findHeatingByName(@Param("stationCode") String stationCode, @Param("name") String name, Pageable pageable);
//@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" AND IF(:statusFlag =\"true\",MD.device_monitor->'$.XXBJ' = \"true\" OR MD.device_monitor->'$.LDAL' = \"1\" OR MD.device_monitor->'$.SXBJ' = \"true\" OR MD.device_monitor->'$.HIAL' = \"1\",(MD.device_monitor->'$.XXBJ' = \"false\" OR MD.device_monitor->'$.LDAL' = \"0\") AND (MD.device_monitor->'$.SXBJ' = \"false\" OR MD.device_monitor->'$.HIAL' = \"0\")) ORDER BY (MD.device_monitor->'$.TXZT')",nativeQuery = true)
//@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" AND IF(:statusFlag =\"true\",MD.device_monitor->'$.XXBJ' = \"true\" OR MD.device_monitor->'$.LDAL' = \"1\" OR MD.device_monitor->'$.SXBJ' = \"true\" OR MD.device_monitor->'$.HIAL' = \"1\",(MD.device_monitor->'$.XXBJ' = \"false\" OR MD.device_monitor->'$.LDAL' = \"0\") OR (MD.device_monitor->'$.SXBJ' = \"false\" OR MD.device_monitor->'$.HIAL' = \"0\")) ORDER BY (MD.device_monitor->'$.TXZT')",nativeQuery = true)
//--下面是not condition
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" AND IF(:statusFlag =\"true\",MD.device_monitor->'$.XXBJ' = \"true\" OR MD.device_monitor->'$.LDAL' = \"1\" OR MD.device_monitor->'$.SXBJ' = \"true\" OR MD.device_monitor->'$.HIAL' = \"1\",IF(JSON_CONTAINS_PATH(MD.device_monitor, 'all', '$.SXBJ','$.XXBJ') OR JSON_CONTAINS_PATH(MD.device_monitor, 'all', '$.LDAL','$.HIAL'),(MD.device_monitor -> '$.XXBJ' <> \"true\" AND MD.device_monitor -> '$.SXBJ' <> \"true\") OR (MD.device_monitor -> '$.LDAL' <> \"1\" AND MD.device_monitor -> '$.HIAL' <> \"1\"),MD.device_monitor -> '$.XXBJ' <> \"true\" OR MD.device_monitor -> '$.SXBJ' <> \"true\" OR MD.device_monitor -> '$.LDAL' <> \"1\" OR MD.device_monitor -> '$.HIAL' <> \"1\")) ORDER BY (MD.device_monitor->'$.TXZT')",nativeQuery = true) Page<MonitorDevice>
findHeatingByStatus(@Param("stationCode") String stationCode,@Param("statusFlag") String statusFlag, Pageable pageable);
//@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" AND MD.device_name LIKE :name AND IF(:statusFlag =\"true\",MD.device_monitor->'$.XXBJ' = \"true\" OR MD.device_monitor->'$.LDAL' = \"1\" OR MD.device_monitor->'$.SXBJ' = \"true\" OR MD.device_monitor->'$.HIAL' = \"1\",(MD.device_monitor->'$.XXBJ' = \"false\" OR MD.device_monitor->'$.LDAL' = \"0\") AND (MD.device_monitor->'$.SXBJ' = \"false\" OR MD.device_monitor->'$.HIAL' = \"0\")) ORDER BY (device_monitor->'$.TXZT')",nativeQuery = true)
//@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" AND MD.device_name LIKE :name AND IF(:statusFlag =\"true\",MD.device_monitor->'$.XXBJ' = \"true\" OR MD.device_monitor->'$.LDAL' = \"1\" OR MD.device_monitor->'$.SXBJ' = \"true\" OR MD.device_monitor->'$.HIAL' = \"1\",(MD.device_monitor->'$.XXBJ' = \"false\" OR MD.device_monitor->'$.LDAL' = \"0\") OR (MD.device_monitor->'$.SXBJ' = \"false\" OR MD.device_monitor->'$.HIAL' = \"0\")) ORDER BY (device_monitor->'$.TXZT')",nativeQuery = true)
//--下面是not condition
@Query(value = "SELECT MD.* FROM rec_device D LEFT JOIN rec_monitor_device MD ON MD.device_unique = D.s_device_unique WHERE station_code = :stationCode AND MD.device_category_code = \"0853\" AND MD.device_name LIKE :name AND IF(:statusFlag =\"true\",MD.device_monitor->'$.XXBJ' = \"true\" OR MD.device_monitor->'$.LDAL' = \"1\" OR MD.device_monitor->'$.SXBJ' = \"true\" OR MD.device_monitor->'$.HIAL' = \"1\",IF(JSON_CONTAINS_PATH(MD.device_monitor, 'all', '$.SXBJ','$.XXBJ') OR JSON_CONTAINS_PATH(MD.device_monitor, 'all', '$.LDAL','$.HIAL'),(MD.device_monitor -> '$.XXBJ' <> \"true\" AND MD.device_monitor -> '$.SXBJ' <> \"true\") OR (MD.device_monitor -> '$.LDAL' <> \"1\" AND MD.device_monitor -> '$.HIAL' <> \"1\"),MD.device_monitor -> '$.XXBJ' <> \"true\" OR MD.device_monitor -> '$.SXBJ' <> \"true\" OR MD.device_monitor -> '$.LDAL' <> \"1\" OR MD.device_monitor -> '$.HIAL' <> \"1\")) ORDER BY (device_monitor->'$.TXZT')",nativeQuery = true) Page<MonitorDevice>
findHeatingByNameAndSts(@Param("stationCode") String stationCode,@Param("name") String name, @Param("statusFlag") String statusFlag, Pageable pageable);

/**
*lx查看是否删除
* gdh
* @return
*/
@Query(value="select m.* from rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique WHERE m.station_code= :Code AND m.device_unique= :deviceUnique and \n" +
"(device_monitor->'$.QWBGZZT' = \"true\" \n" +
"or device_monitor ->'$.\"1#QWBGZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"2#QWBGZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"3#QWBGZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"QWB1GZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"QWB2GZZT\"' = \"true\" \n" +
"or device_monitor ->'$.XXBJ' = \"true\" \n" +
"or device_monitor ->'$.SXBJ' = \"true\"\n" +
"or device_monitor ->'$.JZGZ' = \"true\"\n" +
"or device_monitor ->'$.JZFJGLQZDBJ' = \"true\"\n" +
"or device_monitor ->'$.GZ' = \"true\"\n" +
"or device_monitor ->'$.BIGZ' = \"true\"\n" +
"or device_monitor ->'$.BIIGZ' = \"true\"\n" +
"or device_monitor ->'$.TXZT' = \"true\"\n" +
"or device_monitor ->'$.GYW' = \"true\"\n" +
"or device_monitor ->'$.JZBPGZ' = \"true\"\n" +
"or device_monitor ->'$.\"1#GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"2#GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"AL1\"' = \"true\"\n" +
"or device_monitor ->'$.\"AL2\"' = \"true\"\n" +
"or device_monitor ->'$.\"HI\"' = \"true\"\n" +
"or device_monitor ->'$.AL' = \"true\"\n" +
"or device_monitor ->'$.\"XH103\"' = \"true\"\n" +
"or device_monitor ->'$.\"XH403\"' = \"true\"\n" +
"or device_monitor ->'$.\"XH503\"' = \"true\"\n" +
"or device_monitor ->'$.\"HIAL\"' = \"1\"\n" +
"or device_monitor ->'$.\"LDAL\"' = \"1\"\n" +
"or device_monitor ->'$.\"B1GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"B2GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"FQCG\"' = \"true\"\n" +
"or device_monitor ->'$.\"alarm\"' = \"true\"\n" +
"or device_monitor ->'$.\"REMOTE_RESET\"' = \"true\"\n" +
"or device_monitor ->'$.\"QGZZS\"' = \"true\"\n" +
"or device_monitor ->'$.\"GZFW\"' = \"true\"\n" +
"or device_monitor ->'$.\"Alarm\"' = \"true\"\n" +
"or device_monitor ->'$.\"ZFGZ\"' = \"true\"\n" +
")",nativeQuery = true) List<MonitorDevice>
findDeviceUnique(@Param("deviceUnique") String deviceUnique,@Param("Code") String Code);

@Query(value="select m.* from rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique WHERE m.station_code= :Code AND m.device_unique= :deviceUnique and \n" +
"(device_monitor->'$.COM' = \"false\" \n" +
"or device_monitor ->'$.AL' = \"true\"\n" +
"or device_monitor ->'$.\"XH103\"' = \"true\"\n" +
"or device_monitor ->'$.\"XH403\"' = \"true\"\n" +
"or device_monitor ->'$.\"XH503\"' = \"true\"\n" +
"or device_monitor ->'$.\"AL1\"' = \"true\"\n" +
"or device_monitor ->'$.\"AL2\"' = \"true\"\n" +
"or device_monitor ->'$.\"HI\"' = \"true\"\n" +
"or device_monitor ->'$.\"HIAL\"' = \"1\"\n" +
"or device_monitor ->'$.\"LDAL\"' = \"1\"\n" +
")",nativeQuery = true) List<MonitorDevice>
findDeviceUnique1(@Param("deviceUnique") String deviceUnique,@Param("Code") String Code);



@Query(value="select m.* from rec_monitor_device m right join rec_device d on m.device_unique=d.s_device_unique WHERE m.station_code= :Code and \n" +
"(device_monitor->'$.QWBGZZT' = \"true\" \n" +
"or device_monitor ->'$.\"1#QWBGZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"2#QWBGZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"3#QWBGZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"QWB1GZZT\"' = \"true\" \n" +
"or device_monitor ->'$.\"QWB2GZZT\"' = \"true\" \n" +
"or device_monitor ->'$.XXBJ' = \"true\" \n" +
"or device_monitor ->'$.SXBJ' = \"true\"\n" +
"or device_monitor ->'$.JZGZ' = \"true\"\n" +
"or device_monitor ->'$.JZFJGLQZDBJ' = \"true\"\n" +
"or device_monitor ->'$.GZ' = \"true\"\n" +
"or device_monitor ->'$.BIGZ' = \"true\"\n" +
"or device_monitor ->'$.BIIGZ' = \"true\"\n" +
"or device_monitor ->'$.TXZT' = \"true\"\n" +
"or device_monitor ->'$.GYW' = \"true\"\n" +
"or device_monitor ->'$.JZBPGZ' = \"true\"\n" +
"or device_monitor ->'$.\"1#GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"2#GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"AL1\"' = \"true\"\n" +
"or device_monitor ->'$.\"AL2\"' = \"true\"\n" +
"or device_monitor ->'$.\"HI\"' = \"true\"\n" +
"or device_monitor ->'$.AL' = \"true\"\n" +
"or device_monitor ->'$.\"XH103\"' = \"true\"\n" +
"or device_monitor ->'$.\"XH403\"' = \"true\"\n" +
"or device_monitor ->'$.\"XH503\"' = \"true\"\n" +
"or device_monitor ->'$.\"COM\"' = \"true\"\n" +
"or device_monitor ->'$.\"COM\"' = \"false\"\n" +
"or device_monitor ->'$.\"HIAL\"' = \"1\"\n" +
"or device_monitor ->'$.\"LDAL\"' = \"1\"\n" +
"or device_monitor ->'$.\"B1GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"B2GZ\"' = \"true\"\n" +
"or device_monitor ->'$.\"FQCG\"' = \"true\"\n" +
"or device_monitor ->'$.\"alarm\"' = \"true\"\n" +
"or device_monitor ->'$.\"REMOTE_RESET\"' = \"true\"\n" +
"or device_monitor ->'$.\"QGZZS\"' = \"true\"\n" +
"or device_monitor ->'$.\"GZFW\"' = \"true\"\n" +
"or device_monitor ->'$.\"Alarm\"' = \"true\"\n" +
"or device_monitor ->'$.\"ZFGZ\"' = \"true\"\n" +
")",nativeQuery = true) List<MonitorDevice>
findAllByCode(@Param("Code") String Code);



}



5.

package com.cars.ict.rbpsems.entity.record;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
* 可监测设备表
*
* @author artisan867
* @date 2020-09-18 14:05
*/

@Getter
@Setter
@Entity
@Table(name = "rec_monitor_device")
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class MonitorDevice implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 自动创建id
*/
@Id
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
@Column(length = 32)
private String id;

/**
* 创建时间
*/
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;

/**
* 更新时间
*/
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;

/**
* 设备id(来源设备台账)
*/
@Column(length = 32)
private String deviceId;

/**
* 设备类型编码
*/
@Column(length = 32)
private String deviceCategoryCode;

/**
* 设备状态(json
*/
@Type(type = "json")
private JSONObject deviceMonitor;

/**
* 设备唯一标识
*/
@Column(length = 50)
private String deviceUnique;

/**
* 名称
*/
@Column(length = 50)
private String deviceName;

/**
* 车站id
*/
@Column(length = 32)
private String stationId;

/**
* 车站code
*/
@Column(length = 32)
private String stationCode;

/**
* 地址
*/
@Column(columnDefinition = "text")
private String deviceAddress;

/**
* opc设备名
*/
@Column(length = 50)
private String opcDeviceName;

/**
* opc应用名
*/
@Column(length = 50)
private String opcApplicationName;

/**
* 售票处号
*/
@Column(length = 20)
private String officeNo;

/**
* 窗口号
*/
@Column(length = 20)
private String terminalId;

/**
* IP地址
*/
@Column(length = 20)
private String networkAddress;

/**
* 状态编码
*/
@Column(length = 50)
private String serviceStatus;

/**
* 故障码
*/
@Column(length = 20)
private String malfunctionCode;

/**
* 状态描述
*/
@Column(columnDefinition = "text")
private String description;

/**
* 数据来源(tvm/afc/opc)
*/
@Column(length = 20)
private String sourceType;
/**
* 通讯状态
* 应用场景:新加名称字段
* authorzyl
* time211014
*/
@Column(length = 50)
private String newName;
/**
* 通讯状态
* 应用场景:用于电伴热的通讯状态显示,属于实体类中的临时属性,不进行持久化。
* authorzyl
* time211014
*/
@Transient
private String commStatus;

/**
* 温度显示
* 应用场景:用于将温度值返回给前台。
* authorgdh
* time211015
*/
@Transient
@Type(type = "json")
private JSONObject deviceMonitors;
}




posted @   sensen~||^_^|||&  阅读(45)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示