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.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 RmAutoReportLastMapper rmAutoReportLastMapperDao ;//控制器最新上报数据DAO @Autowired private RmAutoReportHistoryMapper rmAutoReportHistoryMapperDao ;//控制器历史上报数据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 //@Lazy //private DbSv sv ; ///////////////////////////////////////////////// // // 基础功能 // //////////////////////////////////////////////// /** * 通过控制器地址从数据库表中查询控制器 * @param rtuAddr 控制器地址 * @return 控制器 */ public PrController getControllersByRtuAddrAndIntakeNotNull(String rtuAddr){ List 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 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 rtuAddr * @return */ public RmAlarmStateLast getRmAlarmStateLast(String rtuAddr){ List 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 rtuAddr * @return */ public RmAutoReportLast getRmAutoReportLast(String rtuAddr){ List list = rmAutoReportLastMapperDao.selectByRtuAddr(rtuAddr) ; if(list != null && list.size() > 0){ return list.get(0) ; } return null ; } /** * 保存控制器上报数据最新记录 * @param po */ @Transactional(rollbackFor = Exception.class) public void saveRmAutoReportLast(RmAutoReportLast po){ this.rmAutoReportLastMapperDao.insert(po) ; } /** * 保存控制器上报数据最新记录 * @param po */ @Transactional(rollbackFor = Exception.class) public void updateRmAutoReportLast(RmAutoReportLast po){ this.rmAutoReportLastMapperDao.updateByPrimaryKeySelective(po) ; } /** * 保存控制器上报数据历史记录 * @param po */ @Transactional(rollbackFor = Exception.class) public void saveRmAutoReportHistory(RmAutoReportHistory po){ this.rmAutoReportHistoryMapperDao.insert(po) ; } ///////////////////////////////////////////////// // // 开关阀上报数据功能 // //////////////////////////////////////////////// /** * 得到控制器开关阀上报数据最新记录 * @param rtuAddr * @return */ public RmOpenCloseValveLast getRmOpenCloseValveLast(String rtuAddr){ List 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) ; } ///////////////////////////////////////////////// // // 工作报数据功能 // //////////////////////////////////////////////// /** * 得到控制器上报数据最新记录 * @param rtuAddr * @return */ public RmWorkReportLast getRmWorkReportLast(String rtuAddr){ List 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 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 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 list = rmLossHistoryMapperDao.selectByDate(dt) ; if(list != null && list.size() > 0){ return list.get(0) ; } return null ; } }