haungxing
2 years ago
133 changed files with 4780 additions and 2953 deletions
@ -1,4 +1,4 @@
|
||||
package com.hnac.hzims.operational.station.vo; |
||||
package com.hnac.hzims.operational.main.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
@ -1,4 +1,4 @@
|
||||
package com.hnac.hzims.operational.station.vo; |
||||
package com.hnac.hzims.operational.main.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
@ -1,4 +1,4 @@
|
||||
package com.hnac.hzims.operational.station.vo; |
||||
package com.hnac.hzims.operational.main.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import io.swagger.models.auth.In; |
@ -1,4 +1,4 @@
|
||||
package com.hnac.hzims.operational.station.vo; |
||||
package com.hnac.hzims.operational.main.vo; |
||||
|
||||
import lombok.Data; |
||||
|
@ -1,59 +0,0 @@
|
||||
// package com.hnac.hzims.scheduled.config;
|
||||
//
|
||||
// import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||
// import lombok.extern.slf4j.Slf4j;
|
||||
// import org.springframework.beans.factory.annotation.Value;
|
||||
// import org.springframework.context.annotation.Bean;
|
||||
// import org.springframework.context.annotation.ComponentScan;
|
||||
// import org.springframework.context.annotation.Configuration;
|
||||
//
|
||||
// /**
|
||||
// * @Author WL
|
||||
// * @Version v1.0
|
||||
// * @Serial 1.0
|
||||
// * @Date 2022/1/8 10:23
|
||||
// */
|
||||
// @Slf4j
|
||||
// @Configuration
|
||||
// //指定任务Handler所在包路径
|
||||
// public class XxlJobConfig {
|
||||
//
|
||||
//
|
||||
// @Value("${xxl.job.admin.addresses}")
|
||||
// private String adminAddresses;
|
||||
//
|
||||
// @Value("${xxl.job.executor.appname}")
|
||||
// private String appName;
|
||||
//
|
||||
// @Value("${xxl.job.executor.ip}")
|
||||
// private String ip;
|
||||
//
|
||||
// @Value("${xxl.job.executor.port}")
|
||||
// private int port;
|
||||
//
|
||||
// @Value("${xxl.job.accessToken}")
|
||||
// private String accessToken;
|
||||
//
|
||||
// @Value("${xxl.job.executor.logpath}")
|
||||
// private String logPath;
|
||||
//
|
||||
// @Value("${xxl.job.executor.logretentiondays}")
|
||||
// private int logRetentionDays;
|
||||
//
|
||||
//
|
||||
// @Bean(initMethod = "start", destroyMethod = "destroy")
|
||||
// public XxlJobSpringExecutor xxlJobExecutor() {
|
||||
// log.info("====xxl-job config init====");
|
||||
// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||
// xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
||||
// xxlJobSpringExecutor.setAppName(appName);
|
||||
// xxlJobSpringExecutor.setIp(ip);
|
||||
// xxlJobSpringExecutor.setPort(port);
|
||||
// xxlJobSpringExecutor.setAccessToken(accessToken);
|
||||
// xxlJobSpringExecutor.setLogPath(logPath);
|
||||
// xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
|
||||
// return xxlJobSpringExecutor;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
@ -0,0 +1,10 @@
|
||||
package com.hnac.hzims.scheduled.mapper.equipment; |
||||
|
||||
import com.hnac.hzims.equipment.entity.WorkshopInfoEntity; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface WorkshopInfoMapper extends UserDataScopeBaseMapper<WorkshopInfoEntity> { |
||||
} |
@ -1,20 +1,14 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; |
||||
import org.apache.ibatis.annotations.Param; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:30 |
||||
* @author ysj |
||||
*/ |
||||
public interface AbnormalAlarmMapper extends UserDataScopeBaseMapper<AbnormalAlarmEntity> { |
||||
|
||||
AbnormalAlarmEntity getAbnormalAlarm(@Param("stationId") String stationId, @Param("type") String type); |
||||
|
||||
List<String> getAbnormalAlarmList(); |
||||
List<String> abnormalAlarms(); |
||||
} |
||||
|
@ -0,0 +1,17 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.hnac.hzims.operational.fill.entity.GenerateEntity; |
||||
import org.apache.ibatis.annotations.Param; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author ysj |
||||
* @date 2023/04/10 11:22:14 |
||||
* @version 4.0.0 |
||||
*/ |
||||
public interface GenerateMapper extends UserDataScopeBaseMapper<GenerateEntity> { |
||||
|
||||
List<GenerateEntity> records(@Param("date") String date,@Param("station") String station); |
||||
} |
@ -1,21 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; |
||||
import org.apache.ibatis.annotations.Param; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:12 |
||||
*/ |
||||
public interface HistoryAbnormalAlarmMapper extends UserDataScopeBaseMapper<HistoryAbnormalAlarmEntity> { |
||||
|
||||
List<HistoryAbnormalAlarmEntity> getHistoryAbnormalAlarm(@Param("stationId") String stationId, @Param("type") String type); |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,11 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.hnac.hzims.operational.fill.entity.PowerEntity; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface PowerMapper extends UserDataScopeBaseMapper<PowerEntity> { |
||||
|
||||
} |
@ -1,14 +1,17 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; |
||||
import com.hnac.hzims.operational.config.vo.StAlarmRecordVo; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 15:47 |
||||
* @author ysj |
||||
*/ |
||||
public interface StAlarmRecordMapper extends BaseMapper<StAlarmRecordEntity> { |
||||
public interface RecordMapper extends BaseMapper<StAlarmRecordEntity> { |
||||
|
||||
Long insertReturnId(StAlarmRecordEntity record); |
||||
} |
@ -1,13 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.hnac.hzims.operational.config.entity.StFocusPropertiesEntity; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:28 |
||||
*/ |
||||
public interface StFocusPropertiesMapper extends BaseMapper<StFocusPropertiesEntity> { |
||||
} |
@ -1,13 +1,16 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:39 |
||||
* @author hx |
||||
*/ |
||||
@Mapper |
||||
public interface StationAttributeMapper extends UserDataScopeBaseMapper<StationAttributeEntity> { |
||||
|
||||
List<StationAttributeEntity> PointUnit(); |
||||
} |
||||
|
@ -1,21 +1,12 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:36 |
||||
* @author ysj |
||||
*/ |
||||
public interface StationMapper extends UserDataScopeBaseMapper<StationEntity> { |
||||
|
||||
List<StationEntity> selectStationByType(Integer stationType, Integer serveType); |
||||
|
||||
List<StationEntity> selectAll(); |
||||
|
||||
List<StationEntity> selectStationByInCode(List<String> codes); |
||||
} |
||||
|
@ -0,0 +1,13 @@
|
||||
package com.hnac.hzims.scheduled.mapper.operation; |
||||
|
||||
import com.hnac.hzims.operational.fill.entity.UseEntity; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
/** |
||||
* @author ysj |
||||
* @date 2023/04/10 11:22:14 |
||||
* @version 4.0.0 |
||||
*/ |
||||
public interface UseMapper extends UserDataScopeBaseMapper<UseEntity> { |
||||
|
||||
} |
@ -0,0 +1,65 @@
|
||||
package com.hnac.hzims.scheduled.scheduled; |
||||
|
||||
import com.hnac.hzims.scheduled.service.operation.MonitorService; |
||||
import com.xxl.job.core.biz.model.ReturnT; |
||||
import com.xxl.job.core.handler.annotation.XxlJob; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Date; |
||||
|
||||
import static com.hnac.hzims.operational.main.constant.MainConstants.*; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class MonitorScheduledTask { |
||||
|
||||
@Autowired |
||||
private MonitorService service; |
||||
|
||||
/** |
||||
* realId刷新 |
||||
*/ |
||||
@XxlJob(REAL_ID_DATA) |
||||
public ReturnT<String> loadRealId(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadRealId(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 实时数据刷新 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(REAL_TIME_DATA) |
||||
//@Scheduled(cron = "0/40 * * * * ? ")
|
||||
public ReturnT<String> loadRealData(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadRealData(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 集中监控数据处理 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(CENTRALIZED_MONITORING) |
||||
public ReturnT<String> loadMonitoring(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadMonitoring(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
} |
@ -0,0 +1,126 @@
|
||||
package com.hnac.hzims.scheduled.scheduled; |
||||
|
||||
import com.hnac.hzims.operational.main.constant.HomePageConstant; |
||||
import com.hnac.hzims.scheduled.service.operation.RealTargetService; |
||||
import com.xxl.job.core.biz.model.ReturnT; |
||||
import com.xxl.job.core.handler.annotation.XxlJob; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.Date; |
||||
|
||||
import static com.hnac.hzims.operational.main.constant.MainConstants.*; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class RealTargetScheduledTask { |
||||
|
||||
@Autowired |
||||
private RealTargetService service; |
||||
|
||||
|
||||
/** |
||||
* 水电站-机组实时加载 |
||||
*/ |
||||
@XxlJob(LOAD_HYDROPOWER_UNIT_REAL) |
||||
public ReturnT<String> loadHydropowerReal(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadHydropowerReal(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 水电站-机组指标加载 |
||||
*/ |
||||
@XxlJob(LOAD_HYDROPOWER_UNIT_TARGET) |
||||
public ReturnT<String> loadHydropowerTarget(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadHydropowerTarget(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 水利-泵组实时加载 |
||||
*/ |
||||
@XxlJob(LOAD_WATER_PUMP_REAL) |
||||
public ReturnT<String> loadWaterPumpReal(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadWaterPumpReal(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 水利-泵组指标加载 |
||||
*/ |
||||
@XxlJob(LOAD_WATER_PUMP_TARGET) |
||||
public ReturnT<String> loadWaterPumpTarget(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadWaterPumpTarget(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 水利-站点水位数据 |
||||
*/ |
||||
@XxlJob(LOAD_WATER_LEVEL) |
||||
public ReturnT<String> loadWaterLevel(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadWaterLevel(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 光伏站-逆变器实时加载 |
||||
*/ |
||||
@XxlJob(LOAD_PHOTOVOLTAIC_REAL) |
||||
public ReturnT<String> loadPhotovoltaicReal(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadPhotovoltaicReal(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 光伏站-逆变器指标加载 |
||||
*/ |
||||
@XxlJob(LOAD_PHOTOVOLTAIC_TARGET) |
||||
public ReturnT<String> loadPhotovoltaicTarget(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadPhotovoltaicTarget(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 获取站点近3年发电量数据 |
||||
*/ |
||||
@XxlJob(ELECTRICITY_GENERATION_RECENT_YEAR) |
||||
public ReturnT<String> loadPowerData(String param) { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
service.loadPowerData(param, Arrays.asList(HomePageConstant.HYDROPOWER,HomePageConstant.PHOTOVOLTAIC),2,3); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.scheduled.scheduled; |
||||
|
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class ReportScheduledTask { |
||||
|
||||
} |
@ -1,54 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.scheduled; |
||||
|
||||
import com.hnac.hzims.scheduled.service.IWaterService; |
||||
import com.xxl.job.core.biz.model.ReturnT; |
||||
import com.xxl.job.core.handler.annotation.XxlJob; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Date; |
||||
|
||||
import static com.hnac.hzims.operational.main.constant.MainConstants.LOAD_WATER_LEVEL; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/22 11:21 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class ScheduledCreateTask { |
||||
|
||||
@Autowired |
||||
private IWaterService waterService; |
||||
|
||||
/** |
||||
* 水利-站点水位数据 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(LOAD_WATER_LEVEL) |
||||
public ReturnT<String> loadWaterLevel(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
waterService.loadWaterLevel(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* 水利-站点水位数据 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob("cheshi") |
||||
public ReturnT<String> cheshi(String param) throws Exception { |
||||
System.out.println("执行呢方法"); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.scheduled.scheduled; |
||||
|
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class ShowScheduledTask { |
||||
|
||||
} |
@ -1,101 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.scheduled; |
||||
|
||||
import com.hnac.hzims.scheduled.service.AbnormalAlarmService; |
||||
import com.hnac.hzims.scheduled.service.IRealMonitorService; |
||||
import com.hnac.hzims.scheduled.service.StFocusPropertiesService; |
||||
import com.xxl.job.core.biz.model.ReturnT; |
||||
import com.xxl.job.core.handler.annotation.XxlJob; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Date; |
||||
|
||||
import static com.hnac.hzims.operational.main.constant.MainConstants.*; |
||||
|
||||
/** |
||||
* 集中监控 |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:17 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class StAlamRecordTask { |
||||
|
||||
@Value("${hzims.operation.comprehensiveD}") |
||||
public String path; |
||||
|
||||
// @Autowired
|
||||
private IRealMonitorService monitorService; |
||||
|
||||
@Autowired |
||||
private AbnormalAlarmService abnormalAlarmService; |
||||
|
||||
@Autowired |
||||
private StFocusPropertiesService stFocusPropertiesService; |
||||
|
||||
/** |
||||
* 数据中断告警 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(ALARM_DATA_HANDLE) |
||||
public ReturnT<String> alarmDataHandle(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
abnormalAlarmService.alarmDataHandle(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* realId获取 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(REAL_ID_DATA) |
||||
public ReturnT<String> realIdData(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
stFocusPropertiesService.getStationRealIds(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
/** |
||||
* 站点实时数据 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(REAL_TIME_DATA) |
||||
//@Scheduled(cron = "0/40 * * * * ? ")
|
||||
public ReturnT<String> realTimeData(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
monitorService.realTimeData(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* 集中监控数据处理 |
||||
* @return ReturnT<String> |
||||
*/ |
||||
@XxlJob(CENTRALIZED_MONITORING) |
||||
//@Scheduled(cron = "0/40 * * * * ? ")
|
||||
public ReturnT<String> centralizedMonitoring(String param) throws Exception { |
||||
if (Func.isBlank(param)) { |
||||
param = DateUtil.format(new Date(), "yyyy-MM"); |
||||
} |
||||
monitorService.centralizedMonitoring(param); |
||||
return new ReturnT<>("SUCCESS"); |
||||
} |
||||
|
||||
|
||||
} |
@ -1,16 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:09 |
||||
*/ |
||||
public interface HistoryAbnormalAlarmService extends BaseService<HistoryAbnormalAlarmEntity> { |
||||
|
||||
|
||||
HistoryAbnormalAlarmEntity getAbnormalAlarm(String station, String soeType); |
||||
} |
@ -1,17 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/22 11:31 |
||||
*/ |
||||
public interface IHzimsAnalyzeModelStationService extends BaseService<HzimsAnalyzeModelStationEntity> { |
||||
|
||||
} |
@ -1,16 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 14:00 |
||||
*/ |
||||
public interface IMainSystemMonitoringService { |
||||
|
||||
List<EminfoAndEmParamVo> getEmInfoList(); |
||||
} |
@ -1,13 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:20 |
||||
*/ |
||||
public interface IRealMonitorService { |
||||
void realTimeData(String param); |
||||
|
||||
void centralizedMonitoring(String param); |
||||
} |
@ -1,16 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttrConfigEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 16:06 |
||||
*/ |
||||
public interface IStationAttrConfigService extends BaseService<StationAttrConfigEntity> { |
||||
List<String> getHideList(); |
||||
} |
@ -1,13 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:34 |
||||
*/ |
||||
public interface IStationAttributeService extends BaseService<StationAttributeEntity> { |
||||
} |
@ -1,27 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:33 |
||||
*/ |
||||
public interface IStationService extends BaseService<StationEntity> { |
||||
|
||||
List<StationEntity> getStationByType(Integer stationType, Integer serveType); |
||||
|
||||
List<StationEntity> getAll(); |
||||
|
||||
List<StationEntity> getStationByInCode(List<String> strings); |
||||
|
||||
|
||||
List<StationEntity> getStationType(Integer serveType,List<Integer> typeList,List<Long> departIdList); |
||||
|
||||
|
||||
} |
@ -1,11 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/22 11:22 |
||||
*/ |
||||
public interface IWaterService { |
||||
void loadWaterLevel(String param); |
||||
} |
@ -1,14 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 15:41 |
||||
*/ |
||||
public interface StAlamRecordService extends BaseService<StAlarmRecordEntity> { |
||||
Long insertAlert(String stationId, String monitorId); |
||||
} |
@ -1,14 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service; |
||||
|
||||
import com.hnac.hzims.operational.config.entity.StFocusPropertiesEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:21 |
||||
*/ |
||||
public interface StFocusPropertiesService extends BaseService<StFocusPropertiesEntity> { |
||||
void getStationRealIds(String param); |
||||
} |
@ -0,0 +1,12 @@
|
||||
package com.hnac.hzims.scheduled.service.equipment; |
||||
|
||||
import com.hnac.hzims.equipment.entity.WorkshopInfoEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
|
||||
/** |
||||
* @author hx |
||||
*/ |
||||
public interface WorkshopInfoService extends BaseService<WorkshopInfoEntity> { |
||||
|
||||
} |
@ -0,0 +1,20 @@
|
||||
package com.hnac.hzims.scheduled.service.equipment.impl; |
||||
|
||||
import com.hnac.hzims.equipment.entity.WorkshopInfoEntity; |
||||
import com.hnac.hzims.scheduled.mapper.equipment.WorkshopInfoMapper; |
||||
import com.hnac.hzims.scheduled.service.equipment.WorkshopInfoService; |
||||
import groovy.util.logging.Slf4j; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @author hx |
||||
*/ |
||||
@Service |
||||
@AllArgsConstructor |
||||
@Slf4j |
||||
public class WorkshopInfoServiceImpl extends BaseServiceImpl<WorkshopInfoMapper, WorkshopInfoEntity> implements WorkshopInfoService { |
||||
|
||||
|
||||
} |
@ -1,242 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.hnac.hzims.message.MessageConstants; |
||||
import com.hnac.hzims.message.dto.MessagePushRecordDto; |
||||
import com.hnac.hzims.message.fegin.IMessageClient; |
||||
import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; |
||||
import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; |
||||
import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; |
||||
import com.hnac.hzims.operational.main.constant.HomePageConstant; |
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.AbnormalAlarmMapper; |
||||
import com.hnac.hzims.scheduled.service.AbnormalAlarmService; |
||||
import com.hnac.hzims.scheduled.service.HistoryAbnormalAlarmService; |
||||
import com.hnac.hzims.scheduled.service.IStationService; |
||||
import com.hnac.hzinfo.datasearch.soe.ISoeClient; |
||||
import com.hnac.hzinfo.datasearch.soe.domian.SoeData; |
||||
import com.hnac.hzinfo.datasearch.soe.domian.SoeQueryConditionByStation; |
||||
import com.hnac.hzinfo.sdk.core.response.HzPage; |
||||
import com.hnac.hzinfo.sdk.core.response.Result; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.ObjectUtil; |
||||
import org.springblade.core.tool.utils.StringUtil; |
||||
import org.springblade.system.feign.ISysClient; |
||||
import org.springblade.system.user.entity.User; |
||||
import org.springblade.system.user.feign.IUserClient; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.*; |
||||
import java.util.concurrent.CompletableFuture; |
||||
import java.util.function.Function; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:29 |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
public class AbnormalAlarmServiceImpl extends BaseServiceImpl<AbnormalAlarmMapper, AbnormalAlarmEntity> implements AbnormalAlarmService { |
||||
|
||||
|
||||
private final IStationService stationService; |
||||
|
||||
|
||||
private final HistoryAbnormalAlarmService historyAbnormalAlarmService; |
||||
|
||||
private final ISysClient sysClient; |
||||
|
||||
private final ISoeClient soeClient; |
||||
|
||||
private final IUserClient userClient; |
||||
|
||||
private final IMessageClient messageClient; |
||||
|
||||
|
||||
/** |
||||
* 数据中断、数据异常告警 |
||||
* @param param |
||||
*/ |
||||
@Override |
||||
public void alarmDataHandle(String param) { |
||||
// 查询代运维站点
|
||||
List<StationEntity> stations = stationService.getStationByType(null, HomePageConstant.HYDROPOWER_SERVETYPE); |
||||
if(CollectionUtil.isEmpty(stations)){ |
||||
return; |
||||
} |
||||
SoeQueryConditionByStation query = new SoeQueryConditionByStation(); |
||||
query.setTypes(AbnormalAlarmConstant.SEND_MESSSAGE_TYPE_LIST); |
||||
query.setStationIds(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); |
||||
Calendar calendar = Calendar.getInstance(); |
||||
query.setEndTime(LocalDateTime.parse(DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER)); |
||||
calendar.add(Calendar.MINUTE,-2); |
||||
query.setBeginTime(LocalDateTime.parse(DateUtil.format(calendar.getTime() , DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER)); |
||||
query.setNeedPage(false); |
||||
log.error("alarm_data_handle_param : {}",query); |
||||
Result<HzPage<SoeData>> result = soeClient.getByStationsAndTime(query); |
||||
// 未查询到告警信息
|
||||
if(!result.isSuccess() || ObjectUtil.isEmpty(result.getData().getRecords())){ |
||||
return; |
||||
} |
||||
log.error("alarm_data_handle_begin_result : {}",result.getData().getRecords()); |
||||
// 遍历告警信息
|
||||
List<SoeData> list = new ArrayList<>(result.getData().getRecords().stream().sorted(Comparator.comparing(SoeData::getTs).reversed()) |
||||
.collect(Collectors.toMap(o -> o.getStation() + o.getSoeType(), Function.identity(), (o1, o2) -> o1)).values()); |
||||
log.error("alarm_data_handle_end_result : {}",list); |
||||
list.forEach(item -> { |
||||
AbnormalAlarmEntity queryEntity = this.baseMapper.getAbnormalAlarm(item.getStation(),item.getSoeType()); |
||||
boolean flag = AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType()); |
||||
String stationName = Optional.ofNullable(stations.stream().filter(o-> o.getCode().equals(item.getStation())).collect(Collectors.toList())).map(o->o.get(0).getName()).orElse(null); |
||||
if(ObjectUtil.isEmpty(queryEntity)){ |
||||
AbnormalAlarmEntity entity = new AbnormalAlarmEntity(); |
||||
entity.setStationId(item.getStation()); |
||||
entity.setStationName(stationName); |
||||
entity.setRealId(item.getRealId()); |
||||
entity.setSoeExplain(item.getSoeExplain()); |
||||
entity.setType(item.getSoeType()); |
||||
entity.setStartTime(item.getTs()); |
||||
entity.setEndTime(null); |
||||
entity.setStatus(0); |
||||
if(flag){ |
||||
entity.setStartTime(null); |
||||
entity.setEndTime(item.getTs()); |
||||
entity.setStatus(1); |
||||
} |
||||
// 保存告警信息
|
||||
this.save(entity); |
||||
return; |
||||
} |
||||
queryEntity.setSoeExplain(item.getSoeExplain()); |
||||
queryEntity.setStationName(stationName); |
||||
queryEntity.setType(item.getSoeType()); |
||||
queryEntity.setStartTime(queryEntity.getStartTime()); |
||||
queryEntity.setUpdateTime(new Date()); |
||||
queryEntity.setEndTime(null); |
||||
queryEntity.setStatus(0); |
||||
if(flag){ |
||||
queryEntity.setEndTime(item.getTs()); |
||||
queryEntity.setStatus(1); |
||||
} |
||||
this.updateById(queryEntity); |
||||
}); |
||||
|
||||
// 异步保存历史告警
|
||||
CompletableFuture.supplyAsync(()-> this.saveHistoryAlarm(result.getData().getRecords(),stations)); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 保存告警历史信息 |
||||
* @param list |
||||
* @return |
||||
*/ |
||||
private String saveHistoryAlarm(List<SoeData> list,List<StationEntity> stations) { |
||||
list.forEach(item -> { |
||||
Date ts = DateUtil.parse(DateUtil.format(item.getTs(),DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMAT); |
||||
// 历史数据异常查询
|
||||
HistoryAbnormalAlarmEntity queryEntity = this.historyAbnormalAlarmService.getAbnormalAlarm(item.getStation(),item.getSoeType()); |
||||
// 数据中断恢复
|
||||
boolean flag = AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType()); |
||||
String stationName = Optional.ofNullable(stations.stream().filter(o-> o.getCode().equals(item.getStation())).collect(Collectors.toList())).map(o->o.get(0).getName()).orElse(null); |
||||
if(ObjectUtil.isEmpty(queryEntity) || !flag){ |
||||
HistoryAbnormalAlarmEntity entity = new HistoryAbnormalAlarmEntity(); |
||||
entity.setAlarmId(item.getId()); |
||||
entity.setStationId(item.getStation()); |
||||
entity.setStationName(stationName); |
||||
entity.setRealId(item.getRealId()); |
||||
entity.setSoeExplain(item.getSoeExplain()); |
||||
entity.setType(item.getSoeType()); |
||||
entity.setStartTime(ts); |
||||
entity.setStatus(0); |
||||
this.historyAbnormalAlarmService.save(entity); |
||||
// 消息推送
|
||||
this.sendAlarmMessage(Collections.singletonList(entity),stations); |
||||
return; |
||||
} |
||||
queryEntity.setSoeExplain(item.getSoeExplain()); |
||||
queryEntity.setUpdateTime(new Date()); |
||||
queryEntity.setEndTime(ts); |
||||
queryEntity.setStatus(1); |
||||
this.historyAbnormalAlarmService.updateById(queryEntity); |
||||
}); |
||||
return "success"; |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* 告警消息推送 |
||||
* @param entitys |
||||
*/ |
||||
private void sendAlarmMessage(List<HistoryAbnormalAlarmEntity> entitys,List<StationEntity> stations) { |
||||
if(CollectionUtil.isEmpty(entitys)){ |
||||
return; |
||||
} |
||||
// 告警等级 :事故、数据中断
|
||||
List<HistoryAbnormalAlarmEntity> alarms = entitys.stream().filter(entity -> AbnormalAlarmConstant.SEND_MESSSAGE_TYPE_LIST.contains(entity.getType())).collect(Collectors.toList()); |
||||
if(CollectionUtil.isEmpty(alarms)){ |
||||
return; |
||||
} |
||||
// 查询站点用户
|
||||
entitys.forEach(entity->{ |
||||
if(StringUtil.isEmpty(entity.getStationId())){ |
||||
return; |
||||
} |
||||
List<Long> depts = stations.stream().filter(station -> station.getCode().equals(entity.getStationId())).map(StationEntity::getRefDept).collect(Collectors.toList()); |
||||
if(CollectionUtil.isEmpty(depts)){ |
||||
return; |
||||
} |
||||
// 获取站点用户
|
||||
R<List<User>> result = userClient.userListByDeptId(depts.get(0)); |
||||
if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ |
||||
return; |
||||
} |
||||
MessagePushRecordDto message = new MessagePushRecordDto(); |
||||
message.setBusinessClassify("warning"); |
||||
message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); |
||||
message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription()); |
||||
message.setTaskId(entity.getId()); |
||||
message.setTenantId("200000"); |
||||
message.setContent(entity.getSoeExplain()); |
||||
message.setTypes(Arrays.asList(MessageConstants.APP_PUSH, MessageConstants.WS_PUSH)); |
||||
message.setPushType(MessageConstants.IMMEDIATELY); |
||||
message.setDeptId(depts.get(0)); |
||||
R<String> deptName = sysClient.getDeptName(depts.get(0)); |
||||
if (deptName.isSuccess()) { |
||||
message.setDeptName(deptName.getData()); |
||||
} |
||||
User admin = userClient.userByAccount("200000", "admin").getData(); |
||||
message.setCreateDept(admin.getCreateDept()); |
||||
message.setCreateUser(admin.getCreateUser()); |
||||
result.getData().forEach(user->{ |
||||
message.setPusher(String.valueOf(user.getId())); |
||||
message.setPusherName(user.getName()); |
||||
message.setAccount(String.valueOf(user.getId())); |
||||
messageClient.sendMessage(message); |
||||
}); |
||||
}); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 查询实时告警数据 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<String> getAbnormalAlarmList() { |
||||
List<String> alarmList = this.baseMapper.getAbnormalAlarmList(); |
||||
if(CollectionUtil.isEmpty(alarmList)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
return alarmList; |
||||
} |
||||
} |
@ -1,41 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.HistoryAbnormalAlarmMapper; |
||||
import com.hnac.hzims.scheduled.service.HistoryAbnormalAlarmService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.Comparator; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:12 |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
public class HistoryAbnormalAlarmServiceImpl extends BaseServiceImpl<HistoryAbnormalAlarmMapper, HistoryAbnormalAlarmEntity> implements HistoryAbnormalAlarmService { |
||||
/** |
||||
* 查询单条历史告警 |
||||
* |
||||
* @param station |
||||
* @param soeType |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public HistoryAbnormalAlarmEntity getAbnormalAlarm(String station, String soeType) { |
||||
List<HistoryAbnormalAlarmEntity> alarms = this.baseMapper.getHistoryAbnormalAlarm(station, soeType); |
||||
if(CollectionUtil.isEmpty(alarms)){ |
||||
return null; |
||||
} |
||||
return alarms.stream().sorted(Comparator.comparing(HistoryAbnormalAlarmEntity::getStartTime)).collect(Collectors.toList()).get(0); |
||||
} |
||||
} |
@ -1,17 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.HzimsAnalyzeModelStationMapper; |
||||
import com.hnac.hzims.scheduled.service.IHzimsAnalyzeModelStationService; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/22 11:42 |
||||
*/ |
||||
@Service |
||||
public class HzimsAnalyzeModelStationServiceImpl extends BaseServiceImpl<HzimsAnalyzeModelStationMapper, HzimsAnalyzeModelStationEntity> implements IHzimsAnalyzeModelStationService { |
||||
} |
@ -1,51 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.alibaba.fastjson.TypeReference; |
||||
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; |
||||
import com.hnac.hzims.scheduled.service.IMainSystemMonitoringService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.utils.ObjectUtil; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.data.redis.core.RedisTemplate; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 14:01 |
||||
*/ |
||||
@Service |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class MainSystemMonitoringServiceImpl implements IMainSystemMonitoringService { |
||||
|
||||
|
||||
private final RedisTemplate redisTemplate; |
||||
|
||||
|
||||
@Value("${hzims.equipment.emInfo.emInfoList}") |
||||
public String emInfoListPath; |
||||
|
||||
/** |
||||
* 从Redis获取设备信息 |
||||
* |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<EminfoAndEmParamVo> getEmInfoList() { |
||||
List<EminfoAndEmParamVo> list = new ArrayList<>(); |
||||
Object json = redisTemplate.opsForValue().get(emInfoListPath); |
||||
if (ObjectUtil.isNotEmpty(json)) { |
||||
list = JSONObject.parseObject(json.toString(), new TypeReference<List<EminfoAndEmParamVo>>() { |
||||
}); |
||||
} |
||||
return list; |
||||
} |
||||
|
||||
} |
@ -1,164 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.alibaba.fastjson.TypeReference; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.google.common.collect.Lists; |
||||
import com.hnac.hzims.equipment.entity.WorkshopInfoEntity; |
||||
import com.hnac.hzims.equipment.feign.IEmInfoClient; |
||||
import com.hnac.hzims.equipment.feign.IWorkshopInfoClient; |
||||
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; |
||||
import com.hnac.hzims.operational.config.entity.StFocusPropertiesEntity; |
||||
import com.hnac.hzims.operational.main.constant.HomePageConstant; |
||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.StFocusPropertiesMapper; |
||||
import com.hnac.hzims.scheduled.service.IStationAttributeService; |
||||
import com.hnac.hzims.scheduled.service.IStationService; |
||||
import com.hnac.hzims.scheduled.service.StFocusPropertiesService; |
||||
import com.hnac.hzims.scheduled.vo.StationRealVo; |
||||
import com.hnac.hzinfo.datasearch.analyse.IAnalyseDataSearchClient; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeCodeBySignagesVO; |
||||
import com.hnac.hzinfo.sdk.analyse.po.MultiAnalyzeCodePO; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springblade.core.log.logger.BladeLogger; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springblade.core.tool.utils.ObjectUtil; |
||||
import org.springblade.core.tool.utils.StringUtil; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.data.redis.core.RedisTemplate; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Optional; |
||||
import java.util.function.Function; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:27 |
||||
*/ |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
public class StFocusPropertiesServiceImpl extends BaseServiceImpl<StFocusPropertiesMapper, StFocusPropertiesEntity> implements StFocusPropertiesService { |
||||
|
||||
|
||||
private final IStationService stationService; |
||||
|
||||
private final IStationAttributeService attbtService; |
||||
|
||||
private final IEmInfoClient emInfoClient; |
||||
|
||||
private final IAnalyseDataSearchClient analyseDataSearchClient; |
||||
|
||||
private final IWorkshopInfoClient workshopInfoClient; |
||||
|
||||
private final RedisTemplate redisTemplate; |
||||
|
||||
private final BladeLogger logger; |
||||
|
||||
@Value("${hzims.operation.monitor.realId}") |
||||
public String moniter_realId_key; |
||||
|
||||
@Value("${hzims.equipment.emInfo.emInfoList}") |
||||
public String em_info_list_path; |
||||
|
||||
@Override |
||||
public void getStationRealIds(String param) { |
||||
// 所有站点
|
||||
List<StationEntity> stationList = stationService.getAll(); |
||||
if(CollectionUtil.isEmpty(stationList)){ |
||||
return; |
||||
} |
||||
// 设备监测点list
|
||||
Object json = redisTemplate.opsForValue().get(em_info_list_path); |
||||
List<EminfoAndEmParamVo> eminfoAndEmParams = JSONObject.parseObject(json.toString(), new TypeReference<List<EminfoAndEmParamVo>>() {}); |
||||
// 厂房监测点list
|
||||
List<AnalyzeCodeBySignagesVO> wsMonitorList = this.getRealIdByWsCodeAndSign(); |
||||
// 实时监控监测点list
|
||||
List<StationAttributeEntity> timeList = attbtService.list(new LambdaQueryWrapper<StationAttributeEntity>() {{ |
||||
eq(StationAttributeEntity::getIsDeleted, "0"); |
||||
isNotNull(StationAttributeEntity::getMonitorId); |
||||
orderByAsc(StationAttributeEntity::getSort); |
||||
}}); |
||||
// 监测点存储list
|
||||
List<StationRealVo> list = new ArrayList<>(); |
||||
stationList.forEach(station->{ |
||||
StationRealVo stationRealVo = new StationRealVo(); |
||||
stationRealVo.setStation(station.getCode()); |
||||
List<String> realDeviceList = this.getRealDeviceList(station.getRefDept(),eminfoAndEmParams); |
||||
// 厂站匹配站点监测点集合
|
||||
List<String> realWsList = wsMonitorList.stream().filter( |
||||
o -> Func.isNotEmpty(o.getStation()) && o.getStation().equals(station.getCode()) |
||||
).map(AnalyzeCodeBySignagesVO::getRealId).collect(Collectors.toList()); |
||||
// 实时监控匹配站点监测点集合
|
||||
List<String> realTimeList = timeList.stream().filter(o -> null != o.getStationId() && o.getStationId().equals(station.getCode())).map(StationAttributeEntity::getMonitorId).collect(Collectors.toList()); |
||||
if(CollectionUtil.isNotEmpty(realTimeList)){ |
||||
realDeviceList.addAll(realTimeList); |
||||
} |
||||
if(CollectionUtil.isNotEmpty(realWsList)) { |
||||
realDeviceList.addAll(realWsList); |
||||
} |
||||
if(CollectionUtil.isEmpty(realDeviceList)){ |
||||
return; |
||||
} |
||||
List<String> realList = realDeviceList.stream().distinct().collect(Collectors.toList()); |
||||
String[] realArr = StringUtil.join(realList,",").split(","); |
||||
stationRealVo.setRealId(realArr); |
||||
list.add(stationRealVo); |
||||
}); |
||||
redisTemplate.opsForValue().set(moniter_realId_key,list); |
||||
} |
||||
|
||||
|
||||
|
||||
private List<AnalyzeCodeBySignagesVO> getRealIdByWsCodeAndSign() { |
||||
R<List<WorkshopInfoEntity>> wsInfoListR = workshopInfoClient.getAllWorkshop(); |
||||
List<WorkshopInfoEntity> wsInfoList = Optional.ofNullable(wsInfoListR).filter(r -> r.isSuccess() && CollectionUtil.isNotEmpty(wsInfoListR.getData())) |
||||
.map(R::getData).orElse(null); |
||||
if(CollectionUtil.isEmpty(wsInfoList)) { |
||||
return Lists.newArrayList(); |
||||
} |
||||
Function<String, MultiAnalyzeCodePO> getAnalyzeCodePO = wsCode -> { |
||||
MultiAnalyzeCodePO multiAnalyzeCodePO = new MultiAnalyzeCodePO(); |
||||
multiAnalyzeCodePO.setDeviceCode(wsCode); |
||||
multiAnalyzeCodePO.setSignages(Lists.newArrayList(HomePageConstant.PV_JOINT_RELAY,HomePageConstant.PV_REACTIVE_POWER,HomePageConstant.PV_GENERATION_CAPACITY)); |
||||
return multiAnalyzeCodePO; |
||||
}; |
||||
List<MultiAnalyzeCodePO> analyzeCodePOList = wsInfoList.stream().map(WorkshopInfoEntity::getNumber).map(getAnalyzeCodePO).collect(Collectors.toList()); |
||||
R<List<AnalyzeCodeBySignagesVO>> analyzeCodeBySignages = analyseDataSearchClient.getAnalyzeCodeBySignages(analyzeCodePOList); |
||||
return Optional.ofNullable(analyzeCodeBySignages).filter(r -> r.isSuccess()).map(R::getData).orElse(Lists.newArrayList()); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* 获取站点realId |
||||
* @param refDept |
||||
* @param eminfoAndEmParams |
||||
* @return |
||||
*/ |
||||
private List<String> getRealDeviceList(Long refDept, List<EminfoAndEmParamVo> eminfoAndEmParams) { |
||||
// 参数检查
|
||||
if(CollectionUtil.isEmpty(eminfoAndEmParams) || ObjectUtil.isEmpty(refDept)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
// 有效设备
|
||||
List<EminfoAndEmParamVo> filters = eminfoAndEmParams.stream().filter(o-> o.getCreateDept().equals(refDept)).collect(Collectors.toList()); |
||||
if(CollectionUtil.isEmpty(filters)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
// 遍历设备
|
||||
List<String> result = new ArrayList<>(); |
||||
for(EminfoAndEmParamVo device : filters){ |
||||
result.addAll(device.getPoint().values()); |
||||
} |
||||
return result; |
||||
} |
||||
} |
@ -1,22 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.StationAttributeMapper; |
||||
import com.hnac.hzims.scheduled.service.IStationAttributeService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:39 |
||||
*/ |
||||
@Service |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class StationAttributeServiceImpl extends BaseServiceImpl<StationAttributeMapper, StationAttributeEntity> implements IStationAttributeService { |
||||
|
||||
} |
@ -1,60 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.StationMapper; |
||||
import com.hnac.hzims.scheduled.service.IStationService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.ObjectUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 10:36 |
||||
*/ |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
@Slf4j |
||||
public class StationServiceImpl extends BaseServiceImpl<StationMapper, StationEntity> implements IStationService { |
||||
|
||||
@Override |
||||
public List<StationEntity> getStationByType(Integer stationType, Integer serveType) { |
||||
return this.baseMapper.selectStationByType(stationType, serveType); |
||||
} |
||||
|
||||
@Override |
||||
public List<StationEntity> getAll() { |
||||
return this.baseMapper.selectAll(); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public List<StationEntity> getStationByInCode(List<String> codes) { |
||||
return this.baseMapper.selectStationByInCode(codes); |
||||
} |
||||
|
||||
|
||||
|
||||
@Override |
||||
public List<StationEntity> getStationType(Integer serveType, List<Integer> typeList, List<Long> departIdList) { |
||||
return this.list(new LambdaQueryWrapper<StationEntity>() {{ |
||||
eq(StationEntity::getIsDeleted, 0); |
||||
if (ObjectUtil.isNotEmpty(serveType)) { |
||||
eq(StationEntity::getServeType, serveType); |
||||
} |
||||
if (CollectionUtil.isNotEmpty(typeList)) { |
||||
in(StationEntity::getType, typeList); |
||||
} |
||||
if (CollectionUtil.isNotEmpty(departIdList)) { |
||||
in(StationEntity::getRefDept, departIdList); |
||||
} |
||||
}}); |
||||
} |
||||
} |
@ -1,201 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.hnac.hzims.EquipmentConstants; |
||||
import com.hnac.hzims.operational.main.constant.HomePageConstant; |
||||
import com.hnac.hzims.operational.main.vo.WaterLevelVo; |
||||
import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity; |
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import com.hnac.hzims.scheduled.service.IHzimsAnalyzeModelStationService; |
||||
import com.hnac.hzims.scheduled.service.IStationService; |
||||
import com.hnac.hzims.scheduled.service.IWaterService; |
||||
import com.hnac.hzinfo.datasearch.analyse.IAnalyseDataSearchClient; |
||||
import com.hnac.hzinfo.datasearch.analyse.domain.FieldsData; |
||||
import com.hnac.hzinfo.datasearch.analyse.po.AnalyseCodeByAnalyseDataPO; |
||||
import com.hnac.hzinfo.datasearch.analyse.po.AnalyzeDataConditionPO; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeCodeBySignagesVO; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeDataConditionVO; |
||||
import com.hnac.hzinfo.datasearch.real.po.RealDataSearchPO; |
||||
import com.hnac.hzinfo.sdk.analyse.po.MultiAnalyzeCodePO; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.StringUtil; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.data.redis.core.RedisTemplate; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.*; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/22 11:23 |
||||
*/ |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
@Slf4j |
||||
public class WaterServiceImpl implements IWaterService { |
||||
|
||||
|
||||
private final IStationService stationService; |
||||
|
||||
|
||||
private final IHzimsAnalyzeModelStationService modelStationService; |
||||
|
||||
|
||||
|
||||
private final IAnalyseDataSearchClient analyseDataSearchClient; |
||||
|
||||
|
||||
|
||||
private final RedisTemplate redisTemplate; |
||||
|
||||
|
||||
|
||||
private final static String loadwater_level_key = "hzims:operation:loadwater:level:key"; |
||||
/** |
||||
* 水利-站点水位数据 |
||||
* @param param |
||||
*/ |
||||
@Override |
||||
public void loadWaterLevel(String param) { |
||||
// 有效站点模型
|
||||
List<HzimsAnalyzeModelStationEntity> modelList = getModelStationList(); |
||||
if(CollectionUtil.isEmpty(modelList)){ |
||||
return; |
||||
} |
||||
List<WaterLevelVo> list = new ArrayList<>(); |
||||
modelList.forEach(item -> { |
||||
List<MultiAnalyzeCodePO> multiAnalyzeCodePOList = new ArrayList<>(); |
||||
MultiAnalyzeCodePO multiAnalyzeCodePO = new MultiAnalyzeCodePO(); |
||||
multiAnalyzeCodePO.setDeviceCode(item.getInstanceCode()); |
||||
multiAnalyzeCodePO.setSignages(Collections.singletonList(HomePageConstant.FRONT_WATER_LEVEL)); |
||||
multiAnalyzeCodePOList.add(multiAnalyzeCodePO); |
||||
R<List<AnalyzeCodeBySignagesVO>> result = analyseDataSearchClient.getAnalyzeCodeBySignages(multiAnalyzeCodePOList); |
||||
if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ |
||||
return; |
||||
} |
||||
WaterLevelVo waterLevelVo = new WaterLevelVo(); |
||||
waterLevelVo.setStationCode(item.getStationId()); |
||||
// 前水位
|
||||
double frontWaterLevel = this.getWaterLevel(item.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL); |
||||
waterLevelVo.setFrontWaterLevel(frontWaterLevel); |
||||
// 后水位
|
||||
double rearWaterLevel = this.getWaterLevel(item.getInstanceCode(),HomePageConstant.REAR_WATER_LEVEL); |
||||
waterLevelVo.setRearWaterLevel(rearWaterLevel); |
||||
// 前水位当日曲线
|
||||
Map<Integer,String> frontCurveMap = this.getWaterLevelMap(item.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL); |
||||
waterLevelVo.setFrontCurveMap(frontCurveMap); |
||||
// 后水位当日曲线
|
||||
Map<Integer,String> rearCurveMap = this.getWaterLevelMap(item.getInstanceCode(),HomePageConstant.REAR_WATER_LEVEL); |
||||
waterLevelVo.setRearCurveMap(rearCurveMap); |
||||
list.add(waterLevelVo); |
||||
}); |
||||
redisTemplate.opsForValue().set(loadwater_level_key,list); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 获取水位实时数据 |
||||
* @param instanceCode |
||||
* @param signage |
||||
* @return |
||||
*/ |
||||
private double getWaterLevel(String instanceCode, String signage) { |
||||
RealDataSearchPO realData = new RealDataSearchPO(); |
||||
realData.setAnalyzeCode(instanceCode); |
||||
List<String> signages = Collections.singletonList(signage); |
||||
realData.setSignages(signages); |
||||
// 调用fegin接口查询实时数据
|
||||
R<List<FieldsData>> R = analyseDataSearchClient.getRealDataByAnalyzeCode(realData); |
||||
if(!R.isSuccess() || CollectionUtil.isEmpty(R.getData())){ |
||||
return 0.0; |
||||
} |
||||
// 时间限制
|
||||
String time = R.getData().get(0).getTime(); |
||||
if(StringUtil.isEmpty(time) || "-".equals(time)){ |
||||
return 0.0; |
||||
} |
||||
Date date = DateUtil.parse(time, "yyyy-MM-dd HH:mm:ss.sss"); |
||||
if(System.currentTimeMillis() - date.getTime() > 30 * 60 * 1000L){ |
||||
return 0.0; |
||||
} |
||||
return Double.parseDouble(R.getData().get(0).getValue()); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* 获取水位当年数据 |
||||
* @param instanceCode |
||||
* @param signage |
||||
* @return |
||||
*/ |
||||
private Map<Integer, String> getWaterLevelMap(String instanceCode, String signage) { |
||||
LocalDateTime beginTime = LocalDateTime.parse(DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00"), DateUtil.DATETIME_FORMATTER); |
||||
LocalDateTime endTime = LocalDateTime.now(); |
||||
AnalyseCodeByAnalyseDataPO po = new AnalyseCodeByAnalyseDataPO(); |
||||
List<AnalyzeDataConditionPO> signboardConditions = new ArrayList<>(); |
||||
AnalyzeDataConditionPO analyzeDataConditionPO = new AnalyzeDataConditionPO(); |
||||
analyzeDataConditionPO.setFull(1); |
||||
analyzeDataConditionPO.setSignages(signage); |
||||
// 取数规则: 0=(整点值/最早值)、1=最大值、2=最小值、3=平均值、4=(累计值/和值)、5=(变化值/差值) 6=最新值
|
||||
analyzeDataConditionPO.setAccessRules(EquipmentConstants.AccessRulesEnum.FINAL_CYCLE.getType()); |
||||
// 周期类型: 0-> s(秒) 1->、m(分)、2->h(小时)3->、d(天)4->、w(周)5->、n(自然月)、6->y(自然年)
|
||||
analyzeDataConditionPO.setSaveTimeType(2); |
||||
// 间隔
|
||||
analyzeDataConditionPO.setTimeInterval(1); |
||||
analyzeDataConditionPO.setBeginTime(beginTime); |
||||
analyzeDataConditionPO.setEndTime(endTime); |
||||
signboardConditions.add(analyzeDataConditionPO); |
||||
po.setDeviceCode(instanceCode); |
||||
po.setSignboardConditions(signboardConditions); |
||||
R<List<AnalyzeDataConditionVO>> R = analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); |
||||
if(!R.isSuccess() || CollectionUtil.isEmpty(R.getData())){ |
||||
return null; |
||||
} |
||||
if(CollectionUtil.isEmpty(R.getData().get(0).getList())){ |
||||
return null; |
||||
} |
||||
return R.getData().get(0).getList().stream().collect(Collectors.toMap(key-> { |
||||
Date dateTime = DateUtil.parse(key.getTs(), "yyyy-MM-dd HH:mm:ss.s"); |
||||
return dateTime.getHours(); |
||||
}, value -> { |
||||
if(StringUtil.isBlank(value.getVal())){ |
||||
return "0"; |
||||
} |
||||
return value.getVal(); |
||||
})); |
||||
} |
||||
|
||||
/** |
||||
* 获取有效站点模型 |
||||
* @return |
||||
*/ |
||||
private List<HzimsAnalyzeModelStationEntity> getModelStationList() { |
||||
// 水利站点(All)
|
||||
List<StationEntity> stationList = stationService.getStationType(HomePageConstant.HYDROPOWER_SERVETYPE, null, null); |
||||
if(CollectionUtil.isEmpty(stationList)){ |
||||
return null; |
||||
} |
||||
// 站点code集合
|
||||
List<String> codes = stationList.stream().map(StationEntity::getCode).collect(Collectors.toList()); |
||||
if(CollectionUtil.isEmpty(codes)){ |
||||
return null; |
||||
} |
||||
// 查询站点模型列表
|
||||
List<HzimsAnalyzeModelStationEntity> list = modelStationService.list(new LambdaQueryWrapper<HzimsAnalyzeModelStationEntity>() {{ |
||||
in(HzimsAnalyzeModelStationEntity::getStationId, codes); |
||||
}}); |
||||
if(CollectionUtil.isEmpty(list)){ |
||||
return null; |
||||
} |
||||
return list; |
||||
} |
||||
} |
@ -0,0 +1,22 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyseDataTaosVO; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeCodeBySignagesVO; |
||||
import com.hnac.hzinfo.sdk.analyse.po.MultiAnalyzeCodePO; |
||||
|
||||
import java.util.List; |
||||
import java.util.function.Function; |
||||
|
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface AnalyseDataService { |
||||
|
||||
<T> List<AnalyzeCodeBySignagesVO> getAnalyzeCodeBySignages(Function<T, MultiAnalyzeCodePO> convert, T resource); |
||||
|
||||
|
||||
List<AnalyseDataTaosVO> periodTargetData(String startTime, String endTime, Integer accessRules, Integer cycleType, String deviceCode, String signages); |
||||
|
||||
Float periodTargetFloat(String startTime, String endTime, Integer accessRules, Integer cycleType, String deviceCode, Integer ride ,String signages); |
||||
} |
@ -0,0 +1,25 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.hnac.hzims.operational.fill.entity.GenerateEntity; |
||||
import com.hnac.hzims.operational.main.vo.GenerationPowerVo; |
||||
import com.hnac.hzims.operational.main.vo.PowerMonthVo; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author ysj |
||||
* @date 2023/04/10 11:16:07 |
||||
* @version 4.0.0 |
||||
*/ |
||||
public interface GenerateService extends BaseService<GenerateEntity> { |
||||
|
||||
// 查询填报用电量
|
||||
Float generate(String date,String station); |
||||
|
||||
// 查询30天填报用电量
|
||||
List<GenerationPowerVo> generate30Day(String day, String station); |
||||
|
||||
// 获取站点填报发电量
|
||||
List<PowerMonthVo> generateThreeYear(String start, String end, String station); |
||||
} |
@ -0,0 +1,12 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
|
||||
import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface ModelStationService extends BaseService<HzimsAnalyzeModelStationEntity> { |
||||
|
||||
} |
@ -0,0 +1,16 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
/** |
||||
* WEB水电站首页接口 |
||||
* @author ysj |
||||
*/ |
||||
public interface MonitorService { |
||||
|
||||
// realId刷新
|
||||
void loadRealId(String param); |
||||
|
||||
// 集中监控数据处理
|
||||
void loadMonitoring(String param); |
||||
|
||||
void loadRealData(String param); |
||||
} |
@ -0,0 +1,17 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.hnac.hzims.operational.fill.entity.PowerEntity; |
||||
import com.hnac.hzims.operational.main.vo.PowerMonthVo; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface PowerService extends BaseService<PowerEntity> { |
||||
|
||||
Double generate(String date,Long station); |
||||
|
||||
List<PowerMonthVo> generateThreeYear(String start,String end,Long station); |
||||
} |
@ -0,0 +1,34 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* WEB水电站首页接口 |
||||
* @author ysj |
||||
*/ |
||||
public interface RealTargetService { |
||||
|
||||
// 水电站实时数据加载
|
||||
void loadHydropowerReal(String param); |
||||
|
||||
// 水电站指标数据加载
|
||||
void loadHydropowerTarget(String param); |
||||
|
||||
// 泵站实时数据加载
|
||||
void loadWaterPumpReal(String param); |
||||
|
||||
// 泵站指标数据加载
|
||||
void loadWaterPumpTarget(String param); |
||||
|
||||
// 站点水位指标数据
|
||||
void loadWaterLevel(String param); |
||||
|
||||
// 光伏站实时数据加载
|
||||
void loadPhotovoltaicReal(String param); |
||||
|
||||
// 光伏站指标数据加载
|
||||
void loadPhotovoltaicTarget(String param); |
||||
|
||||
// 光伏、水电站近3年发电量
|
||||
void loadPowerData(String param, List<Integer> types, Integer serveType, int year); |
||||
} |
@ -0,0 +1,13 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
|
||||
import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface RecordService extends BaseService<StAlarmRecordEntity> { |
||||
|
||||
Long insertAlert(String stationId, String monitorId); |
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttrConfigEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface StationAttrConfigService extends BaseService<StationAttrConfigEntity> { |
||||
|
||||
List<String> getHideList(); |
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author hx |
||||
*/ |
||||
public interface StationAttributeService extends BaseService<StationAttributeEntity> { |
||||
|
||||
Map<String,String> PointUnit(); |
||||
} |
@ -0,0 +1,12 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
public interface StationService extends BaseService<StationEntity> { |
||||
|
||||
|
||||
} |
@ -0,0 +1,29 @@
|
||||
package com.hnac.hzims.scheduled.service.operation; |
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.hnac.hzims.operational.fill.entity.UseEntity; |
||||
import com.hnac.hzims.operational.fill.vo.QueryVo; |
||||
import com.hnac.hzims.operational.fill.vo.UseVo; |
||||
import com.hnac.hzims.operational.main.vo.UsrPowerVo; |
||||
import org.springblade.core.mp.base.BaseService; |
||||
import org.springblade.core.mp.support.Query; |
||||
import org.springblade.core.tool.api.R; |
||||
|
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author ysj |
||||
* @date 2023/04/10 11:16:07 |
||||
* @version 4.0.0 |
||||
*/ |
||||
public interface UseService extends BaseService<UseEntity> { |
||||
|
||||
// 查询填报用电量
|
||||
Float use(String date,String station); |
||||
|
||||
// 查询30天填报用电量
|
||||
List<UsrPowerVo> use30Day(String day, String station); |
||||
|
||||
Map<String, Float> generateThreeYear(String start, String end, String station); |
||||
} |
@ -0,0 +1,33 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.AbnormalAlarmMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.AbnormalAlarmService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 告警实现类 |
||||
* @author ysj |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
public class AbnormalAlarmServiceImpl extends BaseServiceImpl<AbnormalAlarmMapper, AbnormalAlarmEntity> implements AbnormalAlarmService { |
||||
|
||||
|
||||
@Override |
||||
public List<String> abnormalAlarms() { |
||||
List<String> alarmList = this.baseMapper.abnormalAlarms(); |
||||
if(CollectionUtil.isEmpty(alarmList)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
return alarmList; |
||||
} |
||||
} |
@ -0,0 +1,139 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.google.common.collect.Lists; |
||||
import com.hnac.hzims.scheduled.service.operation.AnalyseDataService; |
||||
import com.hnac.hzinfo.datasearch.analyse.IAnalyseDataSearchClient; |
||||
import com.hnac.hzinfo.datasearch.analyse.po.AnalyseCodeByAnalyseDataPO; |
||||
import com.hnac.hzinfo.datasearch.analyse.po.AnalyzeDataConditionPO; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyseDataTaosVO; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeCodeBySignagesVO; |
||||
import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeDataConditionVO; |
||||
import com.hnac.hzinfo.sdk.analyse.po.MultiAnalyzeCodePO; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.ObjectUtil; |
||||
import org.springblade.core.tool.utils.StringUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.time.format.DateTimeFormatter; |
||||
import java.util.ArrayList; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
import java.util.Optional; |
||||
import java.util.function.Function; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author hx |
||||
*/ |
||||
@Service |
||||
@AllArgsConstructor |
||||
@Slf4j |
||||
public class AnalyseDataServiceImpl implements AnalyseDataService { |
||||
|
||||
private final IAnalyseDataSearchClient analyseDataSearchClient; |
||||
|
||||
@Override |
||||
public <T> List<AnalyzeCodeBySignagesVO> getAnalyzeCodeBySignages(Function<T, MultiAnalyzeCodePO> convert, T resource) { |
||||
List<AnalyzeCodeBySignagesVO> result = Lists.newArrayList(); |
||||
List<MultiAnalyzeCodePO> multiAnalyzeCodePOList = Lists.newArrayList(resource).stream().map(convert).collect(Collectors.toList()); |
||||
R<List<AnalyzeCodeBySignagesVO>> analyzeCodeBySignResult = analyseDataSearchClient.getAnalyzeCodeBySignages(multiAnalyzeCodePOList); |
||||
if(analyzeCodeBySignResult.isSuccess() && CollectionUtil.isNotEmpty(analyzeCodeBySignResult.getData())) { |
||||
result = analyzeCodeBySignResult.getData(); |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
/*** |
||||
* 指标数据列表查询 |
||||
* @param startTime 开始时间 |
||||
* @param endTime 结束时间 |
||||
* @param accessRules 取数规则 : 0=最早值 1=最大值 2=最小值 3=平均值 4=和值 5=差值 6=最新值 |
||||
* @param cycleType 间隔周期 : 0-> 秒 1-> 分 2-> 小时 3->天 4-> 周 5-> 月 6-> 年 |
||||
* @param deviceCode 设备编号 |
||||
* @param signages 指标 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<AnalyseDataTaosVO> periodTargetData(String startTime, String endTime, Integer accessRules, Integer cycleType, String deviceCode, String signages) { |
||||
AnalyseCodeByAnalyseDataPO po = new AnalyseCodeByAnalyseDataPO(); |
||||
List<AnalyzeDataConditionPO> signboardConditions = new ArrayList<>(); |
||||
AnalyzeDataConditionPO analyzeDataConditionPO = new AnalyzeDataConditionPO(); |
||||
analyzeDataConditionPO.setFull(1); |
||||
po.setDeviceCode(deviceCode); |
||||
analyzeDataConditionPO.setSignages(signages); |
||||
analyzeDataConditionPO.setKeepFigures(2); |
||||
analyzeDataConditionPO.setAccessRules(accessRules); |
||||
analyzeDataConditionPO.setSaveTimeType(cycleType); |
||||
// 间隔
|
||||
analyzeDataConditionPO.setTimeInterval(1); |
||||
analyzeDataConditionPO.setBeginTime(LocalDateTime.parse(DateUtil.format(new Date(), startTime), DateTimeFormatter.ofPattern(DateUtil.PATTERN_DATETIME))); |
||||
analyzeDataConditionPO.setEndTime(LocalDateTime.parse(DateUtil.format(new Date(), endTime), DateTimeFormatter.ofPattern(DateUtil.PATTERN_DATETIME))); |
||||
signboardConditions.add(analyzeDataConditionPO); |
||||
po.setSignboardConditions(signboardConditions); |
||||
log.error("period_target_data_request {}",po); |
||||
R<List<AnalyzeDataConditionVO>> result = analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); |
||||
if (!result.isSuccess() || CollectionUtil.isEmpty(result.getData())) { |
||||
return new ArrayList<>(); |
||||
} |
||||
log.error("period_target_data_resp {}",result); |
||||
return result.getData().get(0).getList(); |
||||
} |
||||
|
||||
/*** |
||||
* 指标数据列表查询 |
||||
* @param startTime 开始时间 |
||||
* @param endTime 结束时间 |
||||
* @param accessRules 取数规则 : 0=最早值 1=最大值 2=最小值 3=平均值 4=和值 5=差值 6=最新值 |
||||
* @param cycleType 间隔周期 : 0-> 秒 1-> 分 2-> 小时 3->天 4-> 周 5-> 月 6-> 年 |
||||
* @param deviceCode 设备编号 |
||||
* @param ride 配电比 |
||||
* @param signages 指标 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Float periodTargetFloat(String startTime, String endTime, Integer accessRules, Integer cycleType, String deviceCode,Integer ride,String signages) { |
||||
AnalyseCodeByAnalyseDataPO po = new AnalyseCodeByAnalyseDataPO(); |
||||
List<AnalyzeDataConditionPO> signboardConditions = new ArrayList<>(); |
||||
AnalyzeDataConditionPO analyzeDataConditionPO = new AnalyzeDataConditionPO(); |
||||
analyzeDataConditionPO.setFull(1); |
||||
po.setDeviceCode(deviceCode); |
||||
analyzeDataConditionPO.setSignages(signages); |
||||
analyzeDataConditionPO.setKeepFigures(2); |
||||
analyzeDataConditionPO.setAccessRules(accessRules); |
||||
analyzeDataConditionPO.setSaveTimeType(cycleType); |
||||
// 间隔
|
||||
analyzeDataConditionPO.setTimeInterval(1); |
||||
analyzeDataConditionPO.setBeginTime(LocalDateTime.parse(DateUtil.format(new Date(), startTime), DateTimeFormatter.ofPattern(DateUtil.PATTERN_DATETIME))); |
||||
analyzeDataConditionPO.setEndTime(LocalDateTime.parse(DateUtil.format(new Date(), endTime), DateTimeFormatter.ofPattern(DateUtil.PATTERN_DATETIME))); |
||||
signboardConditions.add(analyzeDataConditionPO); |
||||
po.setSignboardConditions(signboardConditions); |
||||
R<List<AnalyzeDataConditionVO>> result = analyseDataSearchClient.getAnalyzeDataByAnalyzeCodeAndSignages(po); |
||||
if (!result.isSuccess() || CollectionUtil.isEmpty(result.getData())) { |
||||
return 0f; |
||||
} |
||||
List<AnalyzeDataConditionVO> records = result.getData(); |
||||
if(CollectionUtil.isEmpty(records)){ |
||||
return 0f; |
||||
} |
||||
AnalyzeDataConditionVO analyzeDataConditionVO = records.get(0); |
||||
if (ObjectUtil.isEmpty(analyzeDataConditionVO)) { |
||||
return 0f; |
||||
} |
||||
List<AnalyseDataTaosVO> analyseDataTaosVOList = analyzeDataConditionVO.getList(); |
||||
if (CollectionUtil.isEmpty(analyseDataTaosVOList)) { |
||||
return 0f; |
||||
} |
||||
AnalyseDataTaosVO analyseDataTaosVO = analyzeDataConditionVO.getList().get(0); |
||||
if (ObjectUtil.isEmpty(analyseDataTaosVO) || StringUtil.isBlank(analyseDataTaosVO.getVal())) { |
||||
return 0f; |
||||
} |
||||
return Float.parseFloat(Optional.ofNullable(analyseDataTaosVO.getVal()).orElse("0")) * ride; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,112 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import com.hnac.hzims.operational.fill.entity.GenerateEntity; |
||||
import com.hnac.hzims.operational.main.vo.GenerationPowerVo; |
||||
import com.hnac.hzims.operational.main.vo.PowerMonthVo; |
||||
import com.hnac.hzims.scheduled.mapper.operation.GenerateMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.GenerateService; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Calendar; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author ysj |
||||
* @date 2023/04/10 11:16:07 |
||||
* @version 4.0.0 |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@AllArgsConstructor |
||||
public class GenerateServiceImpl extends BaseServiceImpl<GenerateMapper, GenerateEntity> implements GenerateService { |
||||
|
||||
/** |
||||
* 根据时间、机构查询用电量 |
||||
* @param date 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd |
||||
* @param station 所属机构 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Float generate(String date, String station) { |
||||
List<GenerateEntity> powers = this.list(Wrappers.<GenerateEntity>lambdaQuery() |
||||
.likeRight(GenerateEntity::getFillDate,date) |
||||
.eq(GenerateEntity::getStationCode,station) |
||||
); |
||||
if(CollectionUtil.isEmpty(powers)){ |
||||
return 0f; |
||||
} |
||||
return (float) powers.stream().mapToDouble(GenerateEntity::getGenerate).sum(); |
||||
} |
||||
|
||||
/** |
||||
* 查询30天填报用电量 |
||||
* @param day : 结束日期 yyyy-MM-dd |
||||
* @param station 站点编码 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<GenerationPowerVo> generate30Day(String day, String station) { |
||||
Calendar calendar = Calendar.getInstance(); |
||||
calendar.setTime(DateUtil.parse(day,DateUtil.PATTERN_DATE)); |
||||
String end = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); |
||||
calendar.add(Calendar.DAY_OF_MONTH,-29); |
||||
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); |
||||
List<GenerateEntity> records = this.list(Wrappers.<GenerateEntity>lambdaQuery() |
||||
.between(GenerateEntity::getFillDate,start,end) |
||||
.eq(GenerateEntity::getStationCode,station) |
||||
); |
||||
if(CollectionUtil.isEmpty(records)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
return records.stream().map(record->{ |
||||
GenerationPowerVo generate = new GenerationPowerVo(); |
||||
generate.setDate(record.getFillDate()); |
||||
if(Math.abs(record.getGenerate()) <= 0){ |
||||
generate.setGenerate(0f); |
||||
}else{ |
||||
generate.setGenerate(Float.parseFloat(record.getGenerate().toString())); |
||||
} |
||||
return generate; |
||||
}).collect(Collectors.toList()); |
||||
} |
||||
|
||||
/** |
||||
* |
||||
* @param start 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd |
||||
* @param end 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd |
||||
* @param station 站点编码 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<PowerMonthVo> generateThreeYear(String start, String end, String station) { |
||||
List<GenerateEntity> records = this.list(Wrappers.<GenerateEntity>lambdaQuery() |
||||
.eq(GenerateEntity::getStationCode,station) |
||||
.between(GenerateEntity::getFillDate,start,end) |
||||
); |
||||
if(CollectionUtil.isEmpty(records)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
// 返回结果
|
||||
return records.stream().peek( |
||||
record-> record.setFillDate(DateUtil.format(DateUtil.parse(record.getFillDate(),"yyyy-MM"),"yyyy-MM") + "-01") |
||||
).collect(Collectors.toMap(GenerateEntity::getFillDate,GenerateEntity::getGenerate,Double::sum)). |
||||
entrySet().stream().map(entry->{ |
||||
PowerMonthVo mon = new PowerMonthVo(); |
||||
mon.setStrMonth(entry.getKey()); |
||||
if(Math.abs(entry.getValue()) <= 0){ |
||||
mon.setPower(0f); |
||||
}else{ |
||||
mon.setPower(Float.parseFloat(entry.getValue().toString())); |
||||
} |
||||
return mon; |
||||
}).collect(Collectors.toList()); |
||||
} |
||||
} |
@ -0,0 +1,16 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
|
||||
import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.ModelStationMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.ModelStationService; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @author ysj |
||||
*/ |
||||
@Service |
||||
public class ModelStationServiceImpl extends BaseServiceImpl<ModelStationMapper, HzimsAnalyzeModelStationEntity> implements ModelStationService { |
||||
|
||||
} |
@ -0,0 +1,77 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import com.hnac.hzims.operational.fill.entity.PowerEntity; |
||||
import com.hnac.hzims.operational.main.vo.PowerMonthVo; |
||||
import com.hnac.hzims.scheduled.mapper.operation.PowerMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.PowerService; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
|
||||
@Slf4j |
||||
@Service |
||||
@AllArgsConstructor |
||||
public class PowerServiceImpl extends BaseServiceImpl<PowerMapper, PowerEntity> implements PowerService { |
||||
|
||||
|
||||
/** |
||||
* 根据时间、机构查询发电量 |
||||
* @param date 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd |
||||
* @param station 所属机构 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Double generate(String date, Long station) { |
||||
List<PowerEntity> powers = this.list(Wrappers.<PowerEntity>lambdaQuery() |
||||
.likeRight(PowerEntity::getMon,date) |
||||
.eq(PowerEntity::getCreateDept,station) |
||||
// 类型: 光伏
|
||||
.eq(PowerEntity::getType,1) |
||||
); |
||||
if(CollectionUtil.isEmpty(powers)){ |
||||
return 0.0; |
||||
} |
||||
return powers.stream().mapToDouble(PowerEntity::getPowerMon).sum(); |
||||
} |
||||
|
||||
/** |
||||
* |
||||
* @param start 开始时间 : yyyy-mm |
||||
* @param end 结束时间 : yyyy-mm |
||||
* @param station 所属机构 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<PowerMonthVo> generateThreeYear(String start, String end, Long station) { |
||||
List<PowerEntity> fills = this.list(Wrappers.<PowerEntity>lambdaQuery() |
||||
.between(PowerEntity::getMon,start,end) |
||||
.eq(PowerEntity::getCreateDept,station) |
||||
// 类型: 光伏
|
||||
.eq(PowerEntity::getType,1) |
||||
); |
||||
if(CollectionUtil.isEmpty(fills)){ |
||||
return new ArrayList<>(); |
||||
|
||||
} |
||||
return fills.stream().map(fill->{ |
||||
PowerMonthVo mon = new PowerMonthVo(); |
||||
mon.setStrMonth(DateUtil.format(DateUtil.parse(fill.getMon(),"yyyy-MM"),DateUtil.PATTERN_DATE)); |
||||
if(Math.abs(fill.getPowerMon()) <= 0){ |
||||
mon.setPower(0f); |
||||
}else{ |
||||
mon.setPower(Float.parseFloat(fill.getPowerMon().toString())); |
||||
} |
||||
return mon; |
||||
}).collect(Collectors.toList()); |
||||
} |
||||
|
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,36 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.StationAttributeMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.StationAttributeService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author hx |
||||
*/ |
||||
@Service |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class StationAttributeServiceImpl extends BaseServiceImpl<StationAttributeMapper, StationAttributeEntity> implements StationAttributeService { |
||||
|
||||
/** |
||||
* 获取集中监控监测点单位 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Map<String, String> PointUnit() { |
||||
List<StationAttributeEntity> list = this.baseMapper.PointUnit(); |
||||
if(CollectionUtil.isEmpty(list)){ |
||||
return null; |
||||
} |
||||
return list.stream().collect(Collectors.toMap(StationAttributeEntity::getAttributes, StationAttributeEntity::getUnit)); |
||||
} |
||||
} |
@ -0,0 +1,19 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||
import com.hnac.hzims.scheduled.mapper.operation.StationMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.StationService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* @author hx |
||||
*/ |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
@Slf4j |
||||
public class StationServiceImpl extends BaseServiceImpl<StationMapper, StationEntity> implements StationService { |
||||
|
||||
} |
@ -0,0 +1,99 @@
|
||||
package com.hnac.hzims.scheduled.service.operation.impl; |
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
import com.hnac.hzims.operational.fill.entity.UseEntity; |
||||
import com.hnac.hzims.operational.main.vo.UsrPowerVo; |
||||
import com.hnac.hzims.scheduled.mapper.operation.UseMapper; |
||||
import com.hnac.hzims.scheduled.service.operation.UseService; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springblade.core.mp.base.BaseServiceImpl; |
||||
import org.springblade.core.tool.utils.CollectionUtil; |
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.*; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @author ysj |
||||
* @date 2023/04/10 11:16:07 |
||||
* @version 4.0.0 |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@AllArgsConstructor |
||||
public class UseServiceImpl extends BaseServiceImpl<UseMapper, UseEntity> implements UseService { |
||||
|
||||
/** |
||||
* 根据时间、机构查询用电量 |
||||
* @param date 时间: 年 - yyyy/月 yyyy-mm/日 yyyy-mm-dd |
||||
* @param station 所属机构 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Float use(String date, String station) { |
||||
List<UseEntity> powers = this.list(Wrappers.<UseEntity>lambdaQuery() |
||||
.likeRight(UseEntity::getFillDate,date) |
||||
.eq(UseEntity::getStationCode,station) |
||||
); |
||||
if(CollectionUtil.isEmpty(powers)){ |
||||
return 0f; |
||||
} |
||||
return (float) powers.stream().mapToDouble(UseEntity::getEmploy).sum(); |
||||
} |
||||
|
||||
/** |
||||
* 查询30天填报用电量 |
||||
* @param day : 结束日期 yyyy-MM-dd |
||||
* @param station 站点编码 |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public List<UsrPowerVo> use30Day(String day, String station) { |
||||
Calendar calendar = Calendar.getInstance(); |
||||
calendar.setTime(DateUtil.parse(day,DateUtil.PATTERN_DATE)); |
||||
String end = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); |
||||
calendar.add(Calendar.DAY_OF_MONTH,-29); |
||||
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE); |
||||
List<UseEntity> records = this.list(Wrappers.<UseEntity>lambdaQuery() |
||||
.between(UseEntity::getFillDate,start,end) |
||||
.eq(UseEntity::getStationCode,station) |
||||
); |
||||
if(CollectionUtil.isEmpty(records)){ |
||||
return new ArrayList<>(); |
||||
} |
||||
return records.stream().map(record->{ |
||||
UsrPowerVo use = new UsrPowerVo(); |
||||
use.setDate(record.getFillDate()); |
||||
if(Math.abs(record.getEmploy()) <= 0){ |
||||
use.setUsrPower(0f); |
||||
}else{ |
||||
use.setUsrPower(Float.parseFloat(record.getEmploy().toString())); |
||||
} |
||||
return use; |
||||
}).collect(Collectors.toList()); |
||||
} |
||||
|
||||
/** |
||||
* 查询近3年的填报用电量 |
||||
* @param start |
||||
* @param end |
||||
* @param station |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Map<String, Float> generateThreeYear(String start, String end, String station) { |
||||
List<UseEntity> records = this.list(Wrappers.<UseEntity>lambdaQuery() |
||||
.between(UseEntity::getFillDate,start,end) |
||||
.eq(UseEntity::getStationCode,station) |
||||
); |
||||
if(CollectionUtil.isEmpty(records)){ |
||||
return new HashMap<>(); |
||||
|
||||
} |
||||
return records.stream().peek(record-> record.setFillDate(DateUtil.format(DateUtil.parse(record.getFillDate(),"yyyy-MM"),"yyyy-MM") + "-01")). |
||||
collect(Collectors.toMap(UseEntity::getFillDate, value->Float.parseFloat(value.getEmploy().toString()),Float::sum)); |
||||
} |
||||
|
||||
} |
@ -1,52 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 15:27 |
||||
*/ |
||||
@Data |
||||
public class RealAttributeVo implements Serializable { |
||||
|
||||
@ApiModelProperty("属性名称") |
||||
private String name; |
||||
|
||||
@ApiModelProperty("属性数值") |
||||
private String value; |
||||
|
||||
@ApiModelProperty("属性单位") |
||||
private String unit; |
||||
|
||||
@ApiModelProperty("属性类型:1-遥信 2-遥测") |
||||
private Integer type; |
||||
|
||||
@ApiModelProperty("属性实时数据Id") |
||||
private String realId; |
||||
|
||||
@ApiModelProperty("告警Id") |
||||
private Long id; |
||||
|
||||
@ApiModelProperty("属性状态:0:正常、1:预警、2:告警、3:空值、4:黄色、5:橙色") |
||||
private int status; |
||||
|
||||
@ApiModelProperty("属性质量") |
||||
private int quality; |
||||
|
||||
@ApiModelProperty("属性时间") |
||||
private String time; |
||||
|
||||
@ApiModelProperty("属性故障ID") |
||||
private String fdpFaultId; |
||||
|
||||
@ApiModelProperty("监测点") |
||||
private String fdpMonitorId; |
||||
|
||||
@ApiModelProperty("属性故障值") |
||||
private Double fdpRate; |
||||
} |
@ -1,33 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 15:26 |
||||
*/ |
||||
@Data |
||||
public class RealDeviceVo implements Serializable { |
||||
|
||||
@ApiModelProperty("设备编号") |
||||
private String deviceCode; |
||||
|
||||
@ApiModelProperty("设备名称") |
||||
private String deviceName; |
||||
|
||||
@ApiModelProperty("设备状态") |
||||
private Integer state; |
||||
|
||||
@ApiModelProperty("排序字段") |
||||
private Integer sort; |
||||
|
||||
@ApiModelProperty("设备属性集合") |
||||
private List<RealAttributeVo> attbtList; |
||||
} |
||||
|
@ -1,54 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.vo; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 15:24 |
||||
*/ |
||||
@Data |
||||
public class RealStationVo implements Serializable { |
||||
|
||||
@ApiModelProperty("站点Id") |
||||
private String stationCode; |
||||
|
||||
@ApiModelProperty("站点名称") |
||||
private String stationName; |
||||
|
||||
@ApiModelProperty("站点机构Id") |
||||
private Long stationDeptId; |
||||
|
||||
@ApiModelProperty("站点类型") |
||||
private String serverType; |
||||
|
||||
@ApiModelProperty("当前天气") |
||||
private WeatherVo nowWater; |
||||
|
||||
@ApiModelProperty("总有功率") |
||||
private Double powerSum; |
||||
|
||||
@ApiModelProperty("降水") |
||||
private String precipitation; |
||||
|
||||
@ApiModelProperty("最大前池水位") |
||||
private Double waterLevelMax; |
||||
|
||||
@ApiModelProperty("前池水位") |
||||
private Double waterLevel; |
||||
|
||||
@ApiModelProperty("设备集合") |
||||
private List<RealDeviceVo> deviceList; |
||||
|
||||
@ApiModelProperty("站点状态 : 0-正常 1-数据中断") |
||||
private Integer status; |
||||
|
||||
@ApiModelProperty("排序") |
||||
private Integer sort; |
||||
} |
||||
|
@ -1,17 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.vo; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 11:43 |
||||
*/ |
||||
@Data |
||||
public class StationRealVo { |
||||
|
||||
private String station; |
||||
|
||||
private String[] realId; |
||||
} |
@ -1,30 +0,0 @@
|
||||
package com.hnac.hzims.scheduled.vo; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/5/19 15:25 |
||||
*/ |
||||
@Data |
||||
public class WeatherVo implements Serializable { |
||||
|
||||
/**当前天气状况和图标的代码,图标可通过天气状况和图标下载; //100**/ |
||||
private String icon; |
||||
|
||||
/**实况温度,默认单位:摄氏度; //21**/ |
||||
private String temp; |
||||
|
||||
/**实况天气状况的文字描述,包括阴晴雨雪等天气状态的描述; //晴**/ |
||||
private String text; |
||||
|
||||
/**预报当天最高温度; //4**/ |
||||
private String tempMax; |
||||
|
||||
/**预报当天最低温度; //-5**/ |
||||
private String tempMin; |
||||
} |
@ -1,208 +0,0 @@
|
||||
#服务器端口 |
||||
server: |
||||
port: 8501 |
||||
|
||||
#数据源配置 |
||||
spring: |
||||
cloud: |
||||
nacos: |
||||
discovery: |
||||
server-addr: 175.6.40.67:10056 |
||||
config: |
||||
server-addr: 175.6.40.67:10056 |
||||
application: |
||||
name: hzims-scheduled |
||||
main: |
||||
allow-bean-definition-overriding: true |
||||
#排除DruidDataSourceAutoConfigure |
||||
autoconfigure: |
||||
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure |
||||
datasource: |
||||
dynamic: |
||||
primary: operational #设置默认的数据源或者数据源组,默认值即为master |
||||
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 |
||||
datasource: |
||||
operational: |
||||
url: jdbc:mysql://192.168.1.3:3576/dev_hzims_operation?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true |
||||
username: root |
||||
password: 123 |
||||
redis: |
||||
# redis数据库索引(默认为0),我们使用索引为0的数据库,避免和其他数据库冲突 |
||||
database: 0 |
||||
# redis服务器地址(默认为localhost) |
||||
host: 192.168.1.3 |
||||
# redis端口(默认为6379) |
||||
port: 3577 |
||||
# redis访问密码(默认为空) |
||||
password: 1qaz2WSX@redis |
||||
|
||||
#xxl: |
||||
# job: |
||||
# accessToken: '' |
||||
# admin: |
||||
# addresses: http://192.168.1.3:7009/xxl-job-admin |
||||
# executor: |
||||
# appname: hzims-operational |
||||
# ip: 192.168.1.3 |
||||
# logpath: /data/applogs/xxl-job/jobhandler |
||||
# logretentiondays: -1 |
||||
# port: 28501 |
||||
|
||||
xxl: |
||||
job: |
||||
accessToken: '' |
||||
admin: |
||||
addresses: http://192.168.5.128:9080/xxl-job-admin |
||||
executor: |
||||
appname: hzims-operational |
||||
ip: 192.168.18.232 |
||||
logpath: /data/applogs/xxl-job/jobhandler |
||||
logretentiondays: -1 |
||||
port: 28501 |
||||
|
||||
|
||||
#mybatis-plus配置 |
||||
mybatis-plus: |
||||
mapper-locations: classpath*:/mapper/**/*.xml |
||||
#实体扫描,多个package用逗号或者分号分隔 |
||||
# typeAliasesPackage: com.hnac.hzims.**.entity |
||||
configuration: |
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl |
||||
|
||||
#swagger扫描路径配置 |
||||
swagger: |
||||
base-packages: |
||||
- org.springbalde |
||||
- com.hnac |
||||
|
||||
hzims: |
||||
# 视频配置地址随机码 |
||||
video: |
||||
random-code: qnrld30yto85cji5 |
||||
# 视频配置秘钥属性 |
||||
videoProperties: |
||||
appKey: 21111042 |
||||
videoHost: 42.192.39.246:443 |
||||
appSecret: QXRevZ2AQeXtmlYZT6Rf |
||||
equipment: |
||||
emInfo: |
||||
code: hzims:equipment:emInfo:deviceCode.stationDeviceCode |
||||
emInfoList: hzims:equipment:emInfo:deviceCode.emInfoList |
||||
fdp: |
||||
redisData: hzims:equipment:fdp:fault.data.realIdAndValueList |
||||
greaterThan: 0.3 |
||||
lessThan: 0.9 |
||||
beEqualOrGreaterThan: 0.9 |
||||
alert: |
||||
# 接收告警的websocket url |
||||
ws-url: wss://175.6.40.67:9036/api/hzinfo-data-socket/websocket/soe |
||||
config: |
||||
#接收遥测或遥信实时数据的websocket url |
||||
ws-url: wss://175.6.40.67:9036/api/hzinfo-data-socket/websocket/data |
||||
level: |
||||
ws-url: wss://175.6.40.67:9036/api/hzinfo-data-socket/websocket/alarm |
||||
pdf: |
||||
# pdf文件存储路径,请配置绝对路径 |
||||
#file-path: /data/inspect/pdf/file |
||||
file-path: D:/data/hzinfo/file # windows |
||||
operation: |
||||
access: |
||||
task-key: hzims:operation:access:task |
||||
alert: |
||||
saveDefectIsOpen: true |
||||
save: |
||||
area: |
||||
url: http://49.234.126.72:8255/apiIntroduction/demo/saveHzimsArea |
||||
station: |
||||
url: http://49.234.126.72:8255/apiIntroduction/demo/saveHzimsStation |
||||
defect: |
||||
repair: /data/hzims/operational/defect/repair/应急抢修单.docx |
||||
area: |
||||
report: hzims.operation.area.report |
||||
monitor: |
||||
station: hzims:operation:monitor:station |
||||
realId : hzims:operation:monitor:realId |
||||
region: |
||||
areaDutyInfoKey: hzims:operation:region:areaDutyInfoKey |
||||
deviceClassifyKey: hzims.operation.region.deviceClassifyKey |
||||
projectDepartmentId: 200000000000101 |
||||
projectDepartmentName: 智能运维事业部 |
||||
notInDept: 2000000000001010048,2000000000001010049,2000000000001010050 |
||||
tenantId: 200000 |
||||
#工单返回记录(暂存) |
||||
workOrder: |
||||
access: hzims:operation:workOrder.access |
||||
defect: hzims:operation:workOrder.defect |
||||
task: |
||||
# 消息推送存入redis的key值 |
||||
templateCode: |
||||
maintenance: |
||||
taskDispose: hzinfo:operation:maintenance:task |
||||
# 消息推送code |
||||
jgPushCode: ops-push |
||||
comprehensiveD: hzims:operation:comprehensiveD:real.time |
||||
realIdKey: hzims:operation:comprehensiveD:realIdKey.realData |
||||
lastDayRealIdKey: hzims:operation:comprehensiveD:lastDayRealIdKey.realData |
||||
realIdKeyGather: hzims:operation:comprehensiveD:realIdKeyGather.realData |
||||
homePage: |
||||
charge: |
||||
url: https://www.hznychh.cn/api/charging-manage/manage/external/provide?secretKey=f5aee9fe24e4d1d80eb7564414392bc3 |
||||
activePowerKey: hzims:operation:homePage:activePowerKey |
||||
jointRelayKey: hzims:operation:homePage:jointRelayKey |
||||
systemMonitoring: |
||||
hydropowerStation: |
||||
hisData: hzims:operation:homePage:systemMonitoring:hydropowerStation:hisData:. |
||||
hisDataActivePower: hzims:operation:homePage:systemMonitoring:hydropowerStation:hisDataActivePower:. |
||||
theDayHydrograph: hzims:operation:homePage:systemMonitoring:hydropowerStation:theDayHydrograph:. |
||||
yearGeneration: hzims:operation:homePage:systemMonitoring:hydropowerStation:yearGeneration.data |
||||
hisDataNew: hzims:operation:homePage:systemMonitoring:hydropowerStation:hisDataNew |
||||
theDayHydrographNew: hzims:operation:homePage:systemMonitoring:hydropowerStation:theDayHydrographNew |
||||
alarm: |
||||
# "0-默认", "1-系统", "2-告警", "3-故障", "4-用户操作", "5-遥测越限", "6-遥信变位", "7-注册信息", "8-信息提示", "9-设备巡检", "10-遥控操作", "11-遥测越限恢复","12-未定义","13-通讯中断","14-数据异常" |
||||
types: 3,2,5,13,14 |
||||
|
||||
category: |
||||
id: 1384429129110360065 |
||||
|
||||
sanya: |
||||
one: 2000000000001010048 |
||||
tow: 2000000000001010049 |
||||
hoop: 2000000000001010050 |
||||
|
||||
defect: |
||||
# 超时自动甄别时间间隔:单位(小时) |
||||
discriminateDeadline: 1 |
||||
# 默认计划工时:单位(小时) |
||||
defaultPlanHoure: 8 |
||||
|
||||
blade: |
||||
data: |
||||
sdk: |
||||
enabled: true |
||||
url: http://175.6.40.67:37681/api/hzinfo-data-config |
||||
appId: '1635888805125099521' |
||||
appSecret: f4b6a4dc696b36445d2e5d38bbab2417 |
||||
redisIp: 192.168.1.13 |
||||
redisPort: 3577 |
||||
password: L_MM&h=+Nm&p)U9sk.uH |
||||
maxKeys: 1000 |
||||
data-scope: |
||||
enabled: false |
||||
lock: |
||||
enabled: true |
||||
address: redis://192.168.1.3:3577 |
||||
password: |
||||
database: 0 |
||||
ssl: false |
||||
|
||||
url: |
||||
video: |
||||
stationsPath: http://localhost:10001/stations |
||||
monitorsPath: http://localhost:10001/monitor |
||||
login: https://175.6.40.67:9300/hzApi/auth/mix/login?tenantId=200000&account=videoViewers&pwd=e10adc3949ba59abbe56e057f20f883e&grant_type=password&scope=all&type=account |
||||
water-out: |
||||
#工单受理 |
||||
orderCrtPackage: http://175.6.40.67:9021/api/water-out/orderCrt/package |
||||
orderCrtGrabPackage: http://175.6.40.67:9021/api/water-out/orderCrt/grabPackage |
||||
|
||||
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.equipment.WorkshopInfoMapper"> |
||||
|
||||
</mapper> |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.GenerateMapper"> |
||||
|
||||
</mapper> |
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.ModelStationMapper"> |
||||
|
||||
<!-- 通用查询映射结果 --> |
||||
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity"> |
||||
<id column="ID" property="id" /> |
||||
<result column="TENANT_ID" property="tenantId" /> |
||||
<result column="STATION_ID" property="stationId" /> |
||||
<result column="INSTANCE_CODE" property="instanceCode" /> |
||||
<result column="REMARK" property="remark" /> |
||||
<result column="CREATE_TIME" property="createTime" /> |
||||
<result column="UPDATE_TIME" property="updateTime" /> |
||||
<result column="CREATE_USER" property="createUser" /> |
||||
<result column="UPDATE_USER" property="updateUser" /> |
||||
<result column="IS_DELETED" property="isDeleted" /> |
||||
<result column="STATUS" property="status" /> |
||||
<result column="CREATE_DEPT" property="createDept" /> |
||||
</resultMap> |
||||
|
||||
</mapper> |
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.PowerMapper"> |
||||
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.fill.entity.PowerEntity"> |
||||
<id column="ID" property="id" jdbcType="BIGINT"/> |
||||
<result column="MON" property="mon" jdbcType="VARCHAR"/> |
||||
<result column="INSTALLED_CAPACITY" property="installedCapacity" jdbcType="DOUBLE"/> |
||||
<result column="PLANNED_POWER_YEAR" property="plannedPowerYear" jdbcType="DOUBLE"/> |
||||
<result column="PLANNED_POWER_MON" property="plannedPowerMon" jdbcType="DOUBLE"/> |
||||
<result column="POWER_MON" property="powerMon" jdbcType="DOUBLE"/> |
||||
<result column="POWER_RATE_MON" property="powerRateMon" jdbcType="VARCHAR"/> |
||||
<result column="POWER_YEAR" property="powerYear" jdbcType="DOUBLE"/> |
||||
<result column="POWER_RATE_YEAR" property="powerRateYear" jdbcType="DOUBLE"/> |
||||
<result column="DOUBLE_QUALIFY_RATE" property="doubleQualifyRate" jdbcType="VARCHAR"/> |
||||
<result column="TYPE" property="type" jdbcType="INTEGER"/> |
||||
<result column="TENANT_ID" property="tenantId" jdbcType="VARCHAR"/> |
||||
<result column="STATUS" property="status" jdbcType="TINYINT"/> |
||||
<result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP"/> |
||||
<result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP"/> |
||||
<result column="CREATE_USER" property="createUser" jdbcType="BIGINT"/> |
||||
<result column="UPDATE_USER" property="updateUser" jdbcType="BIGINT"/> |
||||
<result column="IS_DELETED" property="isDeleted" jdbcType="TINYINT"/> |
||||
<result column="CREATE_DEPT" property="createDept" jdbcType="BIGINT"/> |
||||
</resultMap> |
||||
|
||||
<sql id="Base_Column_List"> |
||||
ID, MON, INSTALLED_CAPACITY , PLANNED_POWER_YEAR , PLANNED_POWER_MON , POWER_MON , POWER_RATE_MON ,POWER_YEAR , |
||||
POWER_RATE_YEAR , DOUBLE_QUALIFY_RATE , TYPE , TENANT_ID, STATUS, CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, |
||||
IS_DELETED, CREATE_DEPT |
||||
</sql> |
||||
|
||||
</mapper> |
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.RecordMapper"> |
||||
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.config.entity.StAlarmRecordEntity"> |
||||
<id column="id" property="id" jdbcType="BIGINT"/> |
||||
<result column="station_id" property="stationId" jdbcType="VARCHAR"/> |
||||
<result column="real_id" property="realId" jdbcType="VARCHAR"/> |
||||
<result column="status" property="status" jdbcType="TINYINT"/> |
||||
<result column="phone_record" property="phoneRecord" jdbcType="VARCHAR"/> |
||||
<result column="process_desc" property="processDesc" jdbcType="VARCHAR"/> |
||||
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> |
||||
<result column="processor" property="processor" jdbcType="VARCHAR"/> |
||||
<result column="process_time" property="processTime" jdbcType="TIMESTAMP"/> |
||||
</resultMap> |
||||
|
||||
<insert id="insertReturnId" parameterType="com.hnac.hzims.operational.config.entity.StAlarmRecordEntity"> |
||||
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id"> |
||||
SELECT LAST_INSERT_ID() AS id |
||||
</selectKey> |
||||
insert into hy_st_alarm_record (id, station_id, real_id, |
||||
status, phone_record, process_desc, |
||||
create_time, processor, process_time |
||||
) |
||||
values (#{id,jdbcType=BIGINT}, #{stationId,jdbcType=VARCHAR}, #{realId,jdbcType=VARCHAR}, |
||||
#{status,jdbcType=TINYINT}, #{phoneRecord,jdbcType=VARCHAR}, #{processDesc,jdbcType=VARCHAR}, |
||||
#{createTime,jdbcType=TIMESTAMP}, #{processor,jdbcType=VARCHAR}, #{processTime,jdbcType=TIMESTAMP} |
||||
) |
||||
</insert> |
||||
</mapper> |
@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.StAlarmRecordMapper"> |
||||
|
||||
<insert id="insertReturnId" parameterType="com.hnac.hzims.operational.config.entity.StAlarmRecordEntity"> |
||||
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id"> |
||||
SELECT LAST_INSERT_ID() AS id |
||||
</selectKey> |
||||
insert into hy_st_alarm_record (id, station_id, real_id, |
||||
status, phone_record, process_desc, |
||||
create_time, processor, process_time |
||||
) |
||||
values (#{id,jdbcType=BIGINT}, #{stationId,jdbcType=VARCHAR}, #{realId,jdbcType=VARCHAR}, |
||||
#{status,jdbcType=TINYINT}, #{phoneRecord,jdbcType=VARCHAR}, #{processDesc,jdbcType=VARCHAR}, |
||||
#{createTime,jdbcType=TIMESTAMP}, #{processor,jdbcType=VARCHAR}, #{processTime,jdbcType=TIMESTAMP} |
||||
) |
||||
</insert> |
||||
|
||||
</mapper> |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.StationAttrConfigMapper"> |
||||
|
||||
</mapper> |
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.StationAttributeMapper"> |
||||
|
||||
<select id="PointUnit" resultType="com.hnac.hzims.operational.station.entity.StationAttributeEntity"> |
||||
select UPPER(CONCAT(EM_CODE,'-',ATTRIBUTES)) as ATTRIBUTES,unit |
||||
from hzims_station_attribute |
||||
where is_deleted = 0 |
||||
and attributes in ('p','ia','uab','q') |
||||
and EM_CODE is not null and EM_CODE != '' |
||||
and not monitor_id is null and monitor_id != '' |
||||
and not unit is null and unit != '' |
||||
</select> |
||||
|
||||
</mapper> |
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.StationMapper"> |
||||
|
||||
|
||||
</mapper> |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.UseMapper"> |
||||
</mapper> |
@ -0,0 +1,44 @@
|
||||
package com.hnac.hzims.ticket.processflow.controller; |
||||
|
||||
import com.hnac.hzims.ticket.processflow.entity.ProcessDict; |
||||
import com.hnac.hzims.ticket.processflow.service.ProcessDictService; |
||||
import groovy.util.logging.Slf4j; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/6/5 9:35 |
||||
*/ |
||||
|
||||
@Slf4j |
||||
@RequestMapping("/process-dict") |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
public class ProcessDictController { |
||||
|
||||
|
||||
private final ProcessDictService processDictService; |
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping("/test") |
||||
public void test(){ |
||||
ProcessDict processDict = new ProcessDict(); |
||||
processDict.setDictKey("networking"); |
||||
processDict.setDictSort(0); |
||||
processDict.setDictValue("workTicketFlow"); |
||||
processDict.setDictLabel("第一种工作票"); |
||||
processDict.setIsDefault("Y"); |
||||
processDict.setRemark("第一种工作票"); |
||||
processDict.setDictType("工作票"); |
||||
processDictService.save(processDict); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,115 @@
|
||||
package com.hnac.hzims.ticket.processflow.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import io.swagger.annotations.ApiModel; |
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.Data; |
||||
import lombok.experimental.Accessors; |
||||
import org.springblade.core.mp.base.BaseEntity; |
||||
import org.springblade.core.tenant.mp.TenantEntity; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 票据字典表 |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/6/5 8:33 |
||||
*/ |
||||
@Data |
||||
@ApiModel(value = "ProcessDict",description = "票据字典表") |
||||
@Accessors(chain = true) |
||||
@TableName("process_dict") |
||||
public class ProcessDict { |
||||
|
||||
|
||||
/** |
||||
* 票据编码 |
||||
*/ |
||||
@TableId(type = IdType.AUTO) |
||||
@ApiModelProperty("票据编码") |
||||
private Long dictCode; |
||||
|
||||
|
||||
/** |
||||
*票据排序 |
||||
*/ |
||||
@ApiModelProperty("票据排序") |
||||
private Integer dictSort; |
||||
|
||||
|
||||
/** |
||||
*票据字典码 |
||||
*/ |
||||
@ApiModelProperty("票据字典码") |
||||
private String dictKey; |
||||
|
||||
|
||||
/** |
||||
*票据流程标识 |
||||
*/ |
||||
@ApiModelProperty("票据流程标识") |
||||
private String dictValue; |
||||
|
||||
|
||||
|
||||
/** |
||||
*票据标签 |
||||
*/ |
||||
@ApiModelProperty("票据标签") |
||||
private String dictLabel; |
||||
|
||||
/** |
||||
*票据类型 |
||||
*/ |
||||
@ApiModelProperty("票据类型") |
||||
private String dictType; |
||||
|
||||
/** |
||||
*是否默认(Y是 N否) |
||||
*/ |
||||
@ApiModelProperty("是否默认(Y是 N否)") |
||||
private String isDefault; |
||||
|
||||
|
||||
/** |
||||
*状态(0正常 1停用) |
||||
*/ |
||||
@ApiModelProperty("状态(0正常 1停用)") |
||||
private Integer status; |
||||
|
||||
|
||||
|
||||
/** |
||||
* 所属机构 |
||||
*/ |
||||
@ApiModelProperty("所属机构") |
||||
private Long createDept; |
||||
|
||||
|
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
@ApiModelProperty("创建时间") |
||||
private LocalDateTime createTime; |
||||
|
||||
|
||||
/** |
||||
* 更新时间 |
||||
*/ |
||||
@ApiModelProperty("更新时间") |
||||
private LocalDateTime updateTime; |
||||
|
||||
|
||||
|
||||
/** |
||||
* 票据备注 |
||||
*/ |
||||
@ApiModelProperty("票据备注") |
||||
private String remark; |
||||
} |
@ -0,0 +1,14 @@
|
||||
package com.hnac.hzims.ticket.processflow.mapper; |
||||
|
||||
import com.hnac.hzims.ticket.processflow.entity.ProcessDict; |
||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||
|
||||
/** |
||||
* @Author WL |
||||
* @Version v1.0 |
||||
* @Serial 1.0 |
||||
* @Date 2023/6/5 8:49 |
||||
*/ |
||||
public interface ProcessDictMapper extends UserDataScopeBaseMapper<ProcessDict> { |
||||
|
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue