package com.dy.rtuMw.server.rtuData.dbSv;
|
|
import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
|
import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper;
|
import com.dy.pipIrrGlobal.daoRm.*;
|
import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
|
import com.dy.pipIrrGlobal.pojoPr.PrController;
|
import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
|
import com.dy.pipIrrGlobal.pojoRm.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @Author liurunyu
|
* @Date 2024/1/13 10:57
|
* @LastEditTime 2024/1/13 10:57
|
* @Description
|
*/
|
@Service()
|
public class DbSv {
|
@Autowired
|
private PrControllerTrampMapper prControllerTrampMapperDao;//流浪控制器DAO
|
@Autowired
|
private PrControllerMapper prControllerMapperDao ;//控制器DAO
|
@Autowired
|
private RmAlarmStateLastMapper rmAlarmStateLastMapperDao ;//控制器最新报警和状态DAO
|
@Autowired
|
private RmAlarmStateHistoryMapper rmAlarmStateHistoryMapperDao ;//控制器历史报警和状态DAO
|
@Autowired
|
private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapperDao ;//控制器最新开关阀上报数据DAO
|
@Autowired
|
private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapperDao ;//控制器历史开关阀上报数据DAO
|
@Autowired
|
private RmWorkReportLastMapper rmWorkReportLastMapperDao ;//控制器最新工作报数据DAO
|
@Autowired
|
private RmWorkReportHistoryMapper rmWorkReportHistoryMapperDao ;//控制器历史工作报数据DAO
|
@Autowired
|
private RmLossLastMapper rmLossLastMapperDao ;//控制器漏损水量统计最新数据DAO
|
@Autowired
|
private RmLossHistoryMapper rmLossHistoryMapperDao ;//控制器漏损水量统计历史数据DAO
|
@Autowired
|
private RmCommandHistoryMapper rmCommandHistoryDao ;//远程命令日志相关
|
@Autowired
|
private SeVirtualCardMapper seVirtualCardDao ;//虚拟卡相关
|
|
@Autowired
|
private RmTimingReportHistoryMapper rmTimingReportHistoryDao; // 定点上报历史数据DAO
|
@Autowired
|
private RmTimingReportLastMapper rmTimingReportLastDao; // 定点上报最新数据DAO
|
|
@Autowired
|
private RmOpenCloseHistoryMapper rmOpenCloseHistoryDao;
|
@Autowired
|
private RmOpenCloseLastMapper rmOpenCloseLastDao;
|
|
//@Autowired
|
//@Lazy
|
//private DbSv sv ;
|
|
/////////////////////////////////////////////////
|
//
|
// 基础功能
|
//
|
////////////////////////////////////////////////
|
/**
|
* 通过控制器地址从数据库表中查询控制器
|
* @param rtuAddr 控制器地址
|
* @return 控制器
|
*/
|
public PrController getControllersByRtuAddrAndIntakeNotNull(String rtuAddr){
|
List<PrController> list = this.prControllerMapperDao.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
/**
|
* 通过控制器地址从数据库表中查询流浪控制器
|
* @param rtuAddr 控制器地址
|
* @return 流浪控制器
|
*/
|
public PrControllerTramp getPrControllerTrampByRtuAddr(String rtuAddr){
|
List<PrControllerTramp> list = this.prControllerTrampMapperDao.getPrControllerTrampByRtuAddr(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
/**
|
* 保存流浪控制器
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void savePrConctrollerTramp(PrControllerTramp po){
|
this.prControllerTrampMapperDao.insert(po) ;
|
}
|
/**
|
* 保存流浪控制器
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updatePrConctrollerTramp(PrControllerTramp po){
|
this.prControllerTrampMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
|
|
/////////////////////////////////////////////////
|
//
|
// 报警及状态功能
|
//
|
////////////////////////////////////////////////
|
/**
|
* 得到控制器报警与状态最新记录
|
* @param rtuAddr
|
* @return
|
*/
|
public RmAlarmStateLast getRmAlarmStateLast(String rtuAddr){
|
List<RmAlarmStateLast> list = rmAlarmStateLastMapperDao.selectByRtuAddr(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
/**
|
* 保存控制器报警与状态最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmAlarmStateLast(RmAlarmStateLast po){
|
this.rmAlarmStateLastMapperDao.insert(po) ;
|
}
|
/**
|
* 保存控制器报警与状态最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmAlarmStateLast(RmAlarmStateLast po){
|
this.rmAlarmStateLastMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
/**
|
* 保存控制器报警与状态历史记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmAlarmStateHistory(RmAlarmStateHistory po){
|
this.rmAlarmStateHistoryMapperDao.insert(po) ;
|
}
|
|
/**
|
* 变更虚拟卡占用状态
|
* @param intakeId
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateVirCardNoUseState(Long intakeId){
|
this.seVirtualCardDao.updateVcCardNoUseStateByIntakeId(intakeId); ;
|
}
|
|
|
/////////////////////////////////////////////////
|
//
|
// 定点报数据功能
|
//
|
////////////////////////////////////////////////
|
|
/**
|
* 保存控制器定点上报历史数据
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmTimingReportHistory(RmTimingReportHistory po){
|
this.rmTimingReportHistoryDao.insert(po);
|
}
|
|
/**
|
* 根据阀控器地址获取定点上报最新数据
|
* @param rtuAddr
|
* @return
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public RmTimingReportLast getRmTimingReportLast(String rtuAddr) {
|
List<RmTimingReportLast> list = this.rmTimingReportLastDao.getRmTimingReportLast(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
|
/**
|
* 保存控制器定点上报最新数据
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmTimingReportLast(RmTimingReportLast po) {
|
this.rmTimingReportLastDao.insert(po);
|
}
|
|
/**
|
* 保存控制器定点上报罪行数据
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmTimingReportLast(RmTimingReportLast po) {
|
this.rmTimingReportLastDao.updateByPrimaryKeySelective(po);
|
}
|
|
|
/////////////////////////////////////////////////
|
//
|
// 开关阀上报数据功能
|
//
|
////////////////////////////////////////////////
|
/**
|
* 得到控制器开关阀上报数据最新记录
|
* @param rtuAddr
|
* @return
|
*/
|
public RmOpenCloseValveLast getRmOpenCloseValveLast(String rtuAddr){
|
List<RmOpenCloseValveLast> list = rmOpenCloseValveLastMapperDao.selectByRtuAddr(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
/**
|
* 保存控制器开关阀上报数据最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmOpenCloseValveLast(RmOpenCloseValveLast po){
|
this.rmOpenCloseValveLastMapperDao.insert(po) ;
|
}
|
/**
|
* 保存控制器开关阀上报数据最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmOpenCloseValveLast(RmOpenCloseValveLast po){
|
this.rmOpenCloseValveLastMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
/**
|
* 得到控制器开关阀上报数据历史数据中的最新记录
|
* @param id
|
* @return
|
*/
|
public RmOpenCloseValveHistory getRmOpenCloseValveHistory(Long id){
|
return rmOpenCloseValveHistoryMapperDao.selectByPrimaryKey(id) ;
|
}
|
|
/**
|
* 保存控制器开关阀上报数据历史记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmOpenCloseValveHistory(RmOpenCloseValveHistory po){
|
this.rmOpenCloseValveHistoryMapperDao.insert(po) ;
|
}
|
|
/**
|
* 保存控制器开关阀上报数据历史记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmOpenCloseValveHistory(RmOpenCloseValveHistory po){
|
this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
|
/**
|
* 保存控制器开关阀上报数据最新记录(202404)
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmOpenCloseLast(RmOpenCloseLast po){
|
this.rmOpenCloseLastDao.insert(po) ;
|
}
|
|
/**
|
* 保存控制器开关阀上报数据历史记录(202404)
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmOpenCloseHistory(RmOpenCloseHistory po){
|
this.rmOpenCloseHistoryDao.insert(po) ;
|
}
|
|
/**
|
* 得到控制器开关阀上报数据最新记录(202404)
|
* @param rtuAddr
|
* @return
|
*/
|
public RmOpenCloseLast getRmOpenCloseLast(String rtuAddr){
|
List<RmOpenCloseLast> list = rmOpenCloseLastDao.getRmOpenCloseReportLast(rtuAddr);
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
|
/**
|
* 保存控制器开关阀上报数据最新记录(202404)
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmOpenCloseLast(RmOpenCloseLast po){
|
this.rmOpenCloseLastDao.updateByPrimaryKeySelective(po);
|
}
|
|
/////////////////////////////////////////////////
|
//
|
// 工作报数据功能
|
//
|
////////////////////////////////////////////////
|
/**
|
* 得到控制器上报数据最新记录
|
* @param rtuAddr
|
* @return
|
*/
|
public RmWorkReportLast getRmWorkReportLast(String rtuAddr){
|
List<RmWorkReportLast> list = rmWorkReportLastMapperDao.selectByRtuAddr(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
/**
|
* 保存控制器上报数据最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmWorkReportLast(RmWorkReportLast po){
|
this.rmWorkReportLastMapperDao.insert(po) ;
|
}
|
/**
|
* 保存控制器上报数据最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmWorkReportLast(RmWorkReportLast po){
|
this.rmWorkReportLastMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
/**
|
* 保存控制器上报数据历史记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmWorkReportHistory(RmWorkReportHistory po){
|
this.rmWorkReportHistoryMapperDao.insert(po) ;
|
}
|
|
|
/////////////////////////////////////////////////
|
//
|
// 漏损水量统计功能
|
//
|
////////////////////////////////////////////////
|
/**
|
* 得到控制器漏损水量统计最新记录
|
* @param rtuAddr
|
* @return
|
*/
|
public RmLossLast getRmLossLast(String rtuAddr){
|
List<RmLossLast> list = rmLossLastMapperDao.selectByRtuAddr(rtuAddr) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
/**
|
* 保存控制器漏损水量统计最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmLossLast(RmLossLast po){
|
this.rmLossLastMapperDao.insert(po) ;
|
}
|
/**
|
* 保存控制器漏损水量统计最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void saveRmLossHistory(RmLossHistory po){
|
this.rmLossHistoryMapperDao.insert(po) ;
|
}
|
/**
|
* 保存控制器漏损水量统计最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmLossLast(RmLossLast po){
|
this.rmLossLastMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
/**
|
* 保存控制器漏损水量统计最新记录
|
* @param po
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void updateRmLossHistory(RmLossHistory po){
|
this.rmLossHistoryMapperDao.updateByPrimaryKeySelective(po) ;
|
}
|
|
/**
|
* 得到控制器漏损水量统计历史记录中的最新记录
|
* @param id
|
* @return
|
*/
|
public RmLossHistory getRmLossHistory(Long id){
|
return rmLossHistoryMapperDao.selectByPrimaryKey(id) ;
|
}
|
|
|
/**
|
* 得到控制器漏损水量统计最新记录
|
* @param dt
|
* @return
|
*/
|
public RmLossLast getRmLossLastByDate(Date dt){
|
List<RmLossLast> list = rmLossLastMapperDao.selectByDate(dt) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
|
/**
|
* 得到控制器漏损水量统计历史记录中的某日记录
|
* @param dt
|
* @return
|
*/
|
public RmLossHistory getRmLossHistoryByDate(Date dt){
|
List<RmLossHistory> list = rmLossHistoryMapperDao.selectByDate(dt) ;
|
if(list != null && list.size() > 0){
|
return list.get(0) ;
|
}
|
return null ;
|
}
|
|
//////////////////////////////////////////////////////
|
//
|
// 命令日志相关
|
//
|
//////////////////////////////////////////////////////
|
public RmCommandHistory getCommandLog(String commandId){
|
return rmCommandHistoryDao.selectByPrimaryKey(Long.parseLong(commandId)) ;
|
}
|
public void updateCommandLog(RmCommandHistory po){
|
rmCommandHistoryDao.updateByPrimaryKeySelective(po) ;
|
}
|
|
|
}
|