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 io.swagger.annotations.ApiModelProperty; |
||||||
import lombok.Data; |
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.annotations.ApiModelProperty; |
||||||
import lombok.Data; |
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.annotations.ApiModelProperty; |
||||||
import io.swagger.models.auth.In; |
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; |
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; |
package com.hnac.hzims.scheduled.mapper.operation; |
||||||
|
|
||||||
import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; |
import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; |
||||||
import org.apache.ibatis.annotations.Param; |
|
||||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
||||||
/** |
/** |
||||||
* @Author WL |
* @author ysj |
||||||
* @Version v1.0 |
|
||||||
* @Serial 1.0 |
|
||||||
* @Date 2023/5/19 10:30 |
|
||||||
*/ |
*/ |
||||||
public interface AbnormalAlarmMapper extends UserDataScopeBaseMapper<AbnormalAlarmEntity> { |
public interface AbnormalAlarmMapper extends UserDataScopeBaseMapper<AbnormalAlarmEntity> { |
||||||
|
|
||||||
AbnormalAlarmEntity getAbnormalAlarm(@Param("stationId") String stationId, @Param("type") String type); |
List<String> abnormalAlarms(); |
||||||
|
|
||||||
List<String> getAbnormalAlarmList(); |
|
||||||
} |
} |
||||||
|
@ -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; |
package com.hnac.hzims.scheduled.mapper.operation; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
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.entity.StAlarmRecordEntity; |
||||||
|
import com.hnac.hzims.operational.config.vo.StAlarmRecordVo; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
/** |
/** |
||||||
* @Author WL |
* @author ysj |
||||||
* @Version v1.0 |
|
||||||
* @Serial 1.0 |
|
||||||
* @Date 2023/5/19 15:47 |
|
||||||
*/ |
*/ |
||||||
public interface StAlarmRecordMapper extends BaseMapper<StAlarmRecordEntity> { |
public interface RecordMapper extends BaseMapper<StAlarmRecordEntity> { |
||||||
|
|
||||||
Long insertReturnId(StAlarmRecordEntity record); |
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; |
package com.hnac.hzims.scheduled.mapper.operation; |
||||||
|
|
||||||
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
import com.hnac.hzims.operational.station.entity.StationAttributeEntity; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
/** |
/** |
||||||
* @Author WL |
* @author hx |
||||||
* @Version v1.0 |
|
||||||
* @Serial 1.0 |
|
||||||
* @Date 2023/5/19 11:39 |
|
||||||
*/ |
*/ |
||||||
|
@Mapper |
||||||
public interface StationAttributeMapper extends UserDataScopeBaseMapper<StationAttributeEntity> { |
public interface StationAttributeMapper extends UserDataScopeBaseMapper<StationAttributeEntity> { |
||||||
|
|
||||||
|
List<StationAttributeEntity> PointUnit(); |
||||||
} |
} |
||||||
|
@ -1,21 +1,12 @@ |
|||||||
package com.hnac.hzims.scheduled.mapper.operation; |
package com.hnac.hzims.scheduled.mapper.operation; |
||||||
|
|
||||||
|
|
||||||
import com.hnac.hzims.operational.station.entity.StationEntity; |
import com.hnac.hzims.operational.station.entity.StationEntity; |
||||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
/** |
/** |
||||||
* @Author WL |
* @author ysj |
||||||
* @Version v1.0 |
|
||||||
* @Serial 1.0 |
|
||||||
* @Date 2023/5/19 10:36 |
|
||||||
*/ |
*/ |
||||||
public interface StationMapper extends UserDataScopeBaseMapper<StationEntity> { |
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