Browse Source

Merge remote-tracking branch 'origin/prod'

# Conflicts:
#	hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerUnitVo.java
#	hzims-service-api/middle-api/src/main/java/com/hnac/hzims/middle/process/constant/TicketProcessConstant.java
#	hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AbnormalAlarmServiceImpl.java
#	hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyEmergencyServiceImpl.java
zhongwei
yang_shj 1 year ago
parent
commit
00f369472d
  1. 4
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/constants/AbnormalAlarmConstant.java
  2. 7
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/ecology/vo/DeviceVo.java
  3. 8
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/ecology/vo/StationVo.java
  4. 3
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/ecology/vo/WaterVo.java
  5. 33
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/entity/UserDeptEntity.java
  6. 2
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerUnitVo.java
  7. 1
      hzims-service/operational/pom.xml
  8. 166
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AbnormalAlarmServiceImpl.java
  9. 7
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyEmergencyServiceImpl.java
  10. 38
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/ecology/service/impl/EcologyFlowStationServiceImpl.java
  11. 11
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/mapper/UserDeptMapper.java
  12. 5
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/mapper/UserDeptMapper.xml
  13. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/ISideHustleService.java
  14. 11
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/UserDeptService.java
  15. 21
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/AreaServiceImpl.java
  16. 26
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java
  17. 85
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java
  18. 18
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/UserDeptServiceImpl.java

4
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/constants/AbnormalAlarmConstant.java

@ -8,11 +8,13 @@ import java.util.List;
*/ */
public interface AbnormalAlarmConstant { public interface AbnormalAlarmConstant {
List<String> INTERRUPT_LIST = Arrays.asList("13","14");
List<String> TYPE_LIST = Arrays.asList("3","2","5","10","13","14"); List<String> TYPE_LIST = Arrays.asList("3","2","5","10","13","14");
List<Long> LONG_TYPE_LIST = Arrays.asList(3L,2L,5L,10L,13L,14L); List<Long> LONG_TYPE_LIST = Arrays.asList(3L,2L,5L,10L,13L,14L);
List<String> SEND_MESSSAGE_TYPE_LIST = Arrays.asList("2","13","14"); List<String> SEND_MESSSAGE_TYPE_LIST = Arrays.asList("3","13","14");
String LEVEL_TYPE_LIST = "3,2,5,10,13,14"; String LEVEL_TYPE_LIST = "3,2,5,10,13,14";

7
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/ecology/vo/DeviceVo.java

@ -19,6 +19,9 @@ public class DeviceVo {
@ApiModelProperty(value = "设备状态") @ApiModelProperty(value = "设备状态")
private Boolean state; private Boolean state;
@ApiModelProperty(value = "容量")
private Double capacity;
@ApiModelProperty(value = "有功功率") @ApiModelProperty(value = "有功功率")
private Double active; private Double active;
@ -31,8 +34,8 @@ public class DeviceVo {
@ApiModelProperty(value = "下泄流量") @ApiModelProperty(value = "下泄流量")
private Double discharge; private Double discharge;
@ApiModelProperty(value = "发电流量") @ApiModelProperty(value = "发电效率")
private Double generate; private Double generateRate;
@ApiModelProperty(value = "建议有功调整") @ApiModelProperty(value = "建议有功调整")
private Double adjust; private Double adjust;

8
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/ecology/vo/StationVo.java

@ -27,9 +27,15 @@ public class StationVo {
@ApiModelProperty(value = "下泄流量") @ApiModelProperty(value = "下泄流量")
private Double dischargeFlow; private Double dischargeFlow;
@ApiModelProperty(value = "平均效率")
private Double generateRate;
@ApiModelProperty(value = "设备集合") @ApiModelProperty(value = "设备集合")
private List<DeviceVo> devices; private List<DeviceVo> devices;
@ApiModelProperty(value = "设备集合") @ApiModelProperty(value = "水位曲线集合")
private List<WaterVo> waters; private List<WaterVo> waters;
@ApiModelProperty(value = "下泄流量集合")
List<WaterVo> discharges;
} }

3
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/ecology/vo/WaterVo.java

@ -15,4 +15,7 @@ public class WaterVo {
@ApiModelProperty(value = "水位") @ApiModelProperty(value = "水位")
private Double water; private Double water;
@ApiModelProperty(value = "下泄流量")
private Double discharge;
} }

33
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/entity/UserDeptEntity.java

@ -0,0 +1,33 @@
package com.hnac.hzims.operational.main.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.support.QueryField;
import org.springblade.core.mp.support.SqlCondition;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serializable;
/**
* @author ysj
*/
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("hzims_user_dept")
public class UserDeptEntity extends TenantEntity implements Serializable {
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("用户ID")
private Long userId;
@ApiModelProperty("机构Id")
private Long deptId;
}

2
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerUnitVo.java

@ -17,7 +17,7 @@ public class HydropowerUnitVo {
@ApiModelProperty(value = "水电站机组名称") @ApiModelProperty(value = "水电站机组名称")
private String deivceName; private String deivceName;
@ApiModelProperty(value = "排序") @ApiModelProperty(value = "水电站机组名称")
private Integer ord; private Integer ord;
@ApiModelProperty(value = "水电站机组实时数据") @ApiModelProperty(value = "水电站机组实时数据")

1
hzims-service/operational/pom.xml

@ -139,6 +139,7 @@
<dependency> <dependency>
<groupId>org.springblade</groupId> <groupId>org.springblade</groupId>
<artifactId>blade-user-api</artifactId> <artifactId>blade-user-api</artifactId>
<version>5.0.1.RELEASE</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 --> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
<dependency> <dependency>

166
hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AbnormalAlarmServiceImpl.java

@ -1,7 +1,8 @@
package com.hnac.hzims.operational.alert.service.impl; package com.hnac.hzims.operational.alert.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hnac.hzims.message.MessageConstants; import com.hnac.hzims.message.MessageConstants;
import com.hnac.hzims.message.dto.MessagePushRecordDto; import com.hnac.hzims.message.dto.BusinessMessageDTO;
import com.hnac.hzims.message.fegin.IMessageClient; import com.hnac.hzims.message.fegin.IMessageClient;
import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant;
import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity;
@ -24,6 +25,7 @@ import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.entity.Dept;
import org.springblade.system.feign.ISysClient; import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient; import org.springblade.system.user.feign.IUserClient;
@ -31,8 +33,6 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -57,39 +57,57 @@ public class AbnormalAlarmServiceImpl extends BaseServiceImpl<AbnormalAlarmMappe
private final IMessageClient messageClient; private final IMessageClient messageClient;
/** /**
* 数据中断数据异常告警 * 故障中断异常告警数据处理
* @param param * @param param
*/ */
@Override @Override
public void alarmDataHandle(String param) { public void alarmDataHandle(String param) {
// 查询代运维站点 // 查询站点站点
List<StationEntity> stations = stationService.list(); List<StationEntity> stations = stationService.list();
if(CollectionUtil.isEmpty(stations)){ if(CollectionUtil.isEmpty(stations)){
return; return;
} }
// 查询告警数据: 间隔3分钟
SoeQueryConditionByStation query = new SoeQueryConditionByStation(); SoeQueryConditionByStation query = new SoeQueryConditionByStation();
query.setTypes(AbnormalAlarmConstant.SEND_MESSSAGE_TYPE_LIST); query.setTypes(AbnormalAlarmConstant.SEND_MESSSAGE_TYPE_LIST);
query.setStationIds(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); query.setStationIds(stations.stream().map(StationEntity::getCode).collect(Collectors.toList()));
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
query.setEndTime(LocalDateTime.parse(DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER)); query.setEndTime(LocalDateTime.parse(DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER));
calendar.add(Calendar.MINUTE,-2); calendar.add(Calendar.MINUTE,-3);
query.setBeginTime(LocalDateTime.parse(DateUtil.format(calendar.getTime() , DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER)); query.setBeginTime(LocalDateTime.parse(DateUtil.format(calendar.getTime() , DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER));
query.setNeedPage(false); query.setNeedPage(false);
log.error("alarm_data_handle_param : {}",query); query.setPage(1);
query.setLimit(100000);
Result<HzPage<SoeData>> result = soeClient.getByStationsAndTime(query); Result<HzPage<SoeData>> result = soeClient.getByStationsAndTime(query);
// 未查询到告警信息 // 未查询到告警信息
if(!result.isSuccess() || ObjectUtil.isEmpty(result.getData().getRecords())){ if(!result.isSuccess() || ObjectUtil.isEmpty(result.getData()) || CollectionUtil.isEmpty(result.getData().getRecords())) {
return; 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()) result.getData().getRecords().forEach(item -> {
.collect(Collectors.toMap(o -> o.getStation() + o.getSoeType(), Function.identity(), (o1, o2) -> o1)).values()); if(!AbnormalAlarmConstant.INTERRUPT_LIST.contains(item.getSoeType())){
log.error("alarm_data_handle_end_result : {}",list); return;
list.forEach(item -> { }
this.interrupt(stations,item);
});
// 历史数据处理
this.saveHistoryAlarm(stations,result.getData().getRecords());
}
/**
* 中断异常数据处理
* @param stations
* @param item
*/
private void interrupt(List<StationEntity> stations,SoeData item) {
// 查询中断数据
AbnormalAlarmEntity queryEntity = this.baseMapper.getAbnormalAlarm(item.getStation(),item.getSoeType()); AbnormalAlarmEntity queryEntity = this.baseMapper.getAbnormalAlarm(item.getStation(),item.getSoeType());
// 是否为中断恢复
boolean flag = AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType()); 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); 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)){ if(ObjectUtil.isEmpty(queryEntity)){
AbnormalAlarmEntity entity = new AbnormalAlarmEntity(); AbnormalAlarmEntity entity = new AbnormalAlarmEntity();
entity.setStationId(item.getStation()); entity.setStationId(item.getStation());
@ -107,11 +125,9 @@ public class AbnormalAlarmServiceImpl extends BaseServiceImpl<AbnormalAlarmMappe
} }
// 保存告警信息 // 保存告警信息
this.save(entity); this.save(entity);
return; // 存在记录进行修改
} }else{
queryEntity.setSoeExplain(item.getSoeExplain()); queryEntity.setSoeExplain(item.getSoeExplain());
queryEntity.setStationName(stationName);
queryEntity.setType(item.getSoeType());
queryEntity.setStartTime(queryEntity.getStartTime()); queryEntity.setStartTime(queryEntity.getStartTime());
queryEntity.setUpdateTime(new Date()); queryEntity.setUpdateTime(new Date());
queryEntity.setEndTime(null); queryEntity.setEndTime(null);
@ -121,60 +137,46 @@ public class AbnormalAlarmServiceImpl extends BaseServiceImpl<AbnormalAlarmMappe
queryEntity.setStatus(1); queryEntity.setStatus(1);
} }
this.updateById(queryEntity); this.updateById(queryEntity);
});
// 异步保存历史告警
CompletableFuture.supplyAsync(()-> this.saveHistoryAlarm(result.getData().getRecords(),stations));
}
/**
* 查询实时告警数据
* @return
*/
@Override
public List<String> getAbnormalAlarmList() {
List<String> alarmList = this.baseMapper.getAbnormalAlarmList();
if(CollectionUtil.isEmpty(alarmList)){
return new ArrayList<>();
} }
return alarmList;
} }
/** /**
* 保存告警历史信息 * 历史数据处理
*
* @param stations
* @param list * @param list
* @return
*/ */
private String saveHistoryAlarm(List<SoeData> list,List<StationEntity> stations) { private void saveHistoryAlarm(List<StationEntity> stations, List<SoeData> list) {
List<HistoryAbnormalAlarmEntity> historys = historyAbnormalAlarmService.list(Wrappers.<HistoryAbnormalAlarmEntity>lambdaQuery()
.in(HistoryAbnormalAlarmEntity::getAlarmId,list.stream().map(SoeData::getId).collect(Collectors.toList()))
);
Set<String> explainSet = new HashSet<>();
list.forEach(item->{ list.forEach(item->{
Date ts = DateUtil.parse(DateUtil.format(item.getTs(),DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMAT); if(CollectionUtil.isNotEmpty(historys) && historys.stream().map(HistoryAbnormalAlarmEntity::getAlarmId).collect(Collectors.toList()).contains(item.getId())){
// 历史数据异常查询 return;
HistoryAbnormalAlarmEntity queryEntity = this.historyAbnormalAlarmService.getAbnormalAlarm(item.getStation(),item.getSoeType()); }
// 数据中断恢复 if(explainSet.contains(item.getSoeExplain())){
boolean flag = AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType()); return;
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(); HistoryAbnormalAlarmEntity entity = new HistoryAbnormalAlarmEntity();
String stationName = Optional.ofNullable(stations.stream().filter(o-> o.getCode().equals(item.getStation())).collect(Collectors.toList())).map(o->o.get(0).getName()).orElse(null);
entity.setAlarmId(item.getId()); entity.setAlarmId(item.getId());
entity.setStationId(item.getStation()); entity.setStationId(item.getStation());
entity.setStationName(stationName); entity.setStationName(stationName);
entity.setRealId(item.getRealId()); entity.setRealId(item.getRealId());
entity.setSoeExplain(item.getSoeExplain()); entity.setSoeExplain(item.getSoeExplain());
entity.setType(item.getSoeType()); entity.setType(item.getSoeType());
entity.setStartTime(ts); entity.setStartTime(item.getTs());
entity.setStatus(0); if(AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType())){
entity.setStatus(1);
}else{
entity.setStatus(1);
}
this.historyAbnormalAlarmService.save(entity); this.historyAbnormalAlarmService.save(entity);
// 消息推送 // 相同告警只允许添加一次,发送一次消息
explainSet.add(item.getSoeExplain());
this.sendAlarmMessage(Collections.singletonList(entity),stations); 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";
} }
/** /**
@ -199,34 +201,62 @@ public class AbnormalAlarmServiceImpl extends BaseServiceImpl<AbnormalAlarmMappe
if(CollectionUtil.isEmpty(depts)){ if(CollectionUtil.isEmpty(depts)){
return; return;
} }
// 获取站点用户 List<User> users = this.parentAuthUser(depts.get(0));
R<List<User>> result = userClient.userListByDeptId(depts.get(0)); if(CollectionUtil.isEmpty(users)){
if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ log.error("alarmmessagestation {} user is null",entity.getStationId());
return; return;
} }
MessagePushRecordDto message = new MessagePushRecordDto(); BusinessMessageDTO message = new BusinessMessageDTO();
message.setDeptId(depts.get(0));
message.setBusinessClassify("warning"); message.setBusinessClassify("warning");
message.setUserIds(users.stream().map(o->String.valueOf(o.getId())).distinct().collect(Collectors.joining(",")));
message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey());
message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription()); message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription());
message.setTaskId(entity.getId()); message.setTaskId(entity.getId());
message.setTenantId("200000"); message.setTenantId("200000");
message.setContent(entity.getSoeExplain()); message.setContent(entity.getSoeExplain());
message.setTypes(Arrays.asList(MessageConstants.APP_PUSH, MessageConstants.WS_PUSH));
message.setPushType(MessageConstants.IMMEDIATELY);
message.setDeptId(depts.get(0));
message.setCreateDept(depts.get(0));
R<String> deptName = sysClient.getDeptName(depts.get(0)); R<String> deptName = sysClient.getDeptName(depts.get(0));
if (deptName.isSuccess()) { if (deptName.isSuccess()) {
message.setDeptName(deptName.getData()); message.setDeptName(deptName.getData());
} }
User admin = userClient.userByAccount("200000", "admin").getData(); User admin = userClient.userByAccount("200000", "admin").getData();
message.setCreateUser(admin.getId()); message.setCreateUser(admin.getId());
result.getData().forEach(user->{ messageClient.sendAppAndWsMsgByUsers(message);
message.setPusher(String.valueOf(user.getId()));
message.setPusherName(user.getName());
message.setAccount(String.valueOf(user.getId()));
messageClient.sendMessage(message);
});
}); });
} }
/**
* 获取本级机构或者上级机构用户
* @param deptId
* @return
*/
private List<User> parentAuthUser(Long deptId) {
List<User> users = new ArrayList<>();
R<List<User>> selfs = userClient.userListByDeptId(deptId);
if(selfs.isSuccess() && CollectionUtil.isNotEmpty(selfs.getData())){
users.addAll(selfs.getData());
}
R<Dept> dept = sysClient.getDept(deptId);
if(dept.isSuccess() && ObjectUtil.isNotEmpty(dept.getData())){
R<List<User>> parents = userClient.userByDeptId("200000",deptId);
if(parents.isSuccess() && CollectionUtil.isNotEmpty(parents.getData())){
users.addAll(parents.getData());
}
}
return users;
}
/**
* 查询实时告警数据
* @return
*/
@Override
public List<String> getAbnormalAlarmList() {
List<String> alarmList = this.baseMapper.getAbnormalAlarmList();
if(CollectionUtil.isEmpty(alarmList)){
return new ArrayList<>();
}
return alarmList;
}
} }

7
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyEmergencyServiceImpl.java

@ -80,12 +80,13 @@ public class ImsDutyEmergencyServiceImpl extends BaseServiceImpl<ImsDutyEmergenc
if (CollectionUtils.isNotEmpty(records)){ if (CollectionUtils.isNotEmpty(records)){
collect= records.stream().map(sig -> { collect= records.stream().map(sig -> {
R<User> user = userClient.userInfoById(sig.getRegistrant()); R<User> user = userClient.userInfoById(sig.getRegistrant());
if (!user.isSuccess()&&ObjectUtils.isNotEmpty(user)){ if (user.isSuccess()&&ObjectUtils.isNotEmpty(user.getData())){
}
sig.setRegistrantName(user.getData().getName()); sig.setRegistrantName(user.getData().getName());
}
R<User> userR = userClient.userInfoById(sig.getChargePerson()); R<User> userR = userClient.userInfoById(sig.getChargePerson());
if (userR.isSuccess()&&ObjectUtils.isNotEmpty(userR.getData())){
sig.setChargePersonName(userR.getData().getName()); sig.setChargePersonName(userR.getData().getName());
}
ImsDutyClassEntity classEntity = imsDutyClassService.getById(sig.getDutyClass()); ImsDutyClassEntity classEntity = imsDutyClassService.getById(sig.getDutyClass());
sig.setDutyClassName(classEntity.getClassName()); sig.setDutyClassName(classEntity.getClassName());
return sig; return sig;

38
hzims-service/operational/src/main/java/com/hnac/hzims/operational/ecology/service/impl/EcologyFlowStationServiceImpl.java

@ -204,19 +204,43 @@ public class EcologyFlowStationServiceImpl extends BaseServiceImpl<EcologyFlowSt
// 实时水位 // 实时水位
this.handleWaterLeve(item.getCode(),station); this.handleWaterLeve(item.getCode(),station);
station.setDevices(this.devices(item,station.getDischargeFlow(),realList,targetList)); station.setDevices(this.devices(item,station.getDischargeFlow(),realList,targetList));
// 站点平均效率
this.generateRate(station);
// 查询站点模型列表 // 查询站点模型列表
HzimsAnalyzeModelStationEntity model = modelStationService.getOne(new LambdaQueryWrapper<HzimsAnalyzeModelStationEntity>() {{ HzimsAnalyzeModelStationEntity model = modelStationService.getOne(new LambdaQueryWrapper<HzimsAnalyzeModelStationEntity>() {{
eq(HzimsAnalyzeModelStationEntity::getStationId, item.getCode()); eq(HzimsAnalyzeModelStationEntity::getStationId, item.getCode());
}}); }});
// 水位曲线 // 水位曲线
if(ObjectUtil.isNotEmpty(model)){ if(ObjectUtil.isNotEmpty(model)){
station.setWaters(this.water(model.getInstanceCode())); List<WaterVo> waters = this.water(model.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL);
List<WaterVo> discharges = this.water(model.getInstanceCode(),HomePageConstant.DISCHARGE_FLOW);
station.setWaters(waters.stream().peek(water->{
water.setDischarge(0.0);
List<WaterVo> filter = discharges.stream().filter(discharge->water.getTime().equals(discharge.getTime())).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(filter)){
water.setDischarge(filter.get(0).getWater());
}
}).collect(Collectors.toList()));
station.setDischarges(discharges);
} }
return station; return station;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
/** /**
* 站点平均发电效率
*/
private void generateRate(StationVo station) {
double capacitySum = station.getDevices().stream().mapToDouble(DeviceVo::getCapacity).sum();
double activeSum = station.getDevices().stream().mapToDouble(DeviceVo::getActive).sum();
if(Math.abs(capacitySum) <=0 || Math.abs(activeSum) <= 0){
station.setGenerateRate(0.0);
}else{
station.setGenerateRate(BigDecimal.valueOf(activeSum / capacitySum * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
}
/**
* 获取站点设备信息 * 获取站点设备信息
* @param station * @param station
* @return * @return
@ -233,6 +257,7 @@ public class EcologyFlowStationServiceImpl extends BaseServiceImpl<EcologyFlowSt
for(HydropowerUnitRealVo real : validRealList){ for(HydropowerUnitRealVo real : validRealList){
DeviceVo device= new DeviceVo(); DeviceVo device= new DeviceVo();
// 设备编号 // 设备编号
device.setCapacity(real.getInstalledCapacity());
device.setDeviceCode(real.getDeviceCode()); device.setDeviceCode(real.getDeviceCode());
device.setDeviceName(real.getDeviceName()); device.setDeviceName(real.getDeviceName());
device.setOrd(real.getOrd()); device.setOrd(real.getOrd());
@ -242,7 +267,11 @@ public class EcologyFlowStationServiceImpl extends BaseServiceImpl<EcologyFlowSt
device.setDischarge(dischargeFlow); device.setDischarge(dischargeFlow);
device.setEcology(0.0); device.setEcology(0.0);
device.setAdjust(0.0); device.setAdjust(0.0);
device.setGenerate(0.0); if(Math.abs(device.getActive()) <=0 || Math.abs(device.getCapacity()) <= 0){
device.setGenerateRate(0.0);
}else{
device.setGenerateRate(BigDecimal.valueOf(device.getActive() / device.getCapacity() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
list.add(device); list.add(device);
} }
return list.stream().sorted(Comparator.comparing(DeviceVo::getOrd)).collect(Collectors.toList()); return list.stream().sorted(Comparator.comparing(DeviceVo::getOrd)).collect(Collectors.toList());
@ -275,7 +304,7 @@ public class EcologyFlowStationServiceImpl extends BaseServiceImpl<EcologyFlowSt
* @param code * @param code
* @return * @return
*/ */
private List<WaterVo> water(String code) { private List<WaterVo> water(String code,String signages) {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH,-7); calendar.add(Calendar.DAY_OF_MONTH,-7);
calendar.add(Calendar.HOUR_OF_DAY, -calendar.get(Calendar.HOUR_OF_DAY)); calendar.add(Calendar.HOUR_OF_DAY, -calendar.get(Calendar.HOUR_OF_DAY));
@ -283,8 +312,7 @@ public class EcologyFlowStationServiceImpl extends BaseServiceImpl<EcologyFlowSt
calendar.add(Calendar.SECOND, -calendar.get(Calendar.SECOND)); calendar.add(Calendar.SECOND, -calendar.get(Calendar.SECOND));
String start = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME); String start = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME);
String end = DateUtil.format(new Date(), DateUtil.PATTERN_DATETIME); String end = DateUtil.format(new Date(), DateUtil.PATTERN_DATETIME);
List<AnalyseDataTaosVO> records = analyseDataService.periodTargetData(start,end,3,3,code,HomePageConstant.FRONT_WATER_LEVEL); List<AnalyseDataTaosVO> records = analyseDataService.periodTargetData(start,end,3,3,code,signages);
Random random = new Random();
if(CollectionUtil.isEmpty(records)){ if(CollectionUtil.isEmpty(records)){
return new ArrayList<>(); return new ArrayList<>();
} }

11
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/mapper/UserDeptMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.operational.main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
/**
* @author ysj
*/
public interface UserDeptMapper extends BaseMapper<UserDeptEntity> {
}

5
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/mapper/UserDeptMapper.xml

@ -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.operational.main.mapper.UserDeptMapper">
</mapper>

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/ISideHustleService.java

@ -29,6 +29,4 @@ public interface ISideHustleService {
List<MapMarkerVo> getMapMarker(Long deptId,List<Integer> types); List<MapMarkerVo> getMapMarker(Long deptId,List<Integer> types);
List<PlanGenerationEntity> getStaionPlanPower(Map<Dept, List<StationEntity>> map); List<PlanGenerationEntity> getStaionPlanPower(Map<Dept, List<StationEntity>> map);
Map<Dept, List<StationEntity>> getAreaOrStaion(Long deptId, List<Integer> types);
} }

11
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/UserDeptService.java

@ -0,0 +1,11 @@
package com.hnac.hzims.operational.main.service;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
import org.springblade.core.mp.base.BaseService;
/**
* @author ysj
*/
public interface UserDeptService extends BaseService<UserDeptEntity> {
}

21
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/AreaServiceImpl.java

@ -1,10 +1,14 @@
package com.hnac.hzims.operational.main.service.impl; package com.hnac.hzims.operational.main.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
import com.hnac.hzims.operational.main.service.AreaService; import com.hnac.hzims.operational.main.service.AreaService;
import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.constant.HomePageConstant;
import com.hnac.hzims.operational.main.service.UserDeptService;
import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.entity.StationEntity;
import com.hnac.hzims.operational.station.service.IStationService; import com.hnac.hzims.operational.station.service.IStationService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.ObjectUtil;
@ -25,7 +29,10 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AreaServiceImpl implements AreaService { public class AreaServiceImpl implements AreaService {
private final UserDeptService userDeptService;
private final IStationService stationService; private final IStationService stationService;
private final ISysClient sysClient; private final ISysClient sysClient;
/** /**
@ -97,7 +104,19 @@ public class AreaServiceImpl implements AreaService {
if (!R.isSuccess() || CollectionUtil.isEmpty(R.getData())) { if (!R.isSuccess() || CollectionUtil.isEmpty(R.getData())) {
return null; return null;
} }
if(ObjectUtil.isNotEmpty(deptId)){ List<UserDeptEntity> configs = userDeptService.list(new LambdaQueryWrapper<UserDeptEntity>(){{
eq(UserDeptEntity::getUserId, AuthUtil.getUserId());
}});
if(CollectionUtil.isNotEmpty(configs)){
List<StationEntity> stations =stationService.list(new LambdaQueryWrapper<StationEntity>(){{
eq(StationEntity::getType,HomePageConstant.HYDROPOWER);
eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE);
}});
if(CollectionUtil.isEmpty(stations)){
return new HashMap<>();
}
return stations.stream().collect(Collectors.toMap(m->R.getData().stream().filter(dept->m.getRefDept().equals(dept.getId())).collect(Collectors.toList()).get(0), Collections::singletonList));
}else if(ObjectUtil.isNotEmpty(deptId)){
List<Dept> list = R.getData().stream().filter(o->deptId.equals(o.getId())).collect(Collectors.toList()); List<Dept> list = R.getData().stream().filter(o->deptId.equals(o.getId())).collect(Collectors.toList());
if(CollectionUtil.isEmpty(list)){ if(CollectionUtil.isEmpty(list)){
return null; return null;

26
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java

@ -23,6 +23,7 @@ import com.hnac.hzims.operational.duty.vo.DutyMainInfoVo;
import com.hnac.hzims.operational.fill.service.GenerateService; import com.hnac.hzims.operational.fill.service.GenerateService;
import com.hnac.hzims.operational.fill.service.PowerService; import com.hnac.hzims.operational.fill.service.PowerService;
import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.constant.HomePageConstant;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
import com.hnac.hzims.operational.main.service.*; import com.hnac.hzims.operational.main.service.*;
import com.hnac.hzims.operational.main.vo.*; import com.hnac.hzims.operational.main.vo.*;
import com.hnac.hzims.operational.maintenance.constants.MaintenanceConstant; import com.hnac.hzims.operational.maintenance.constants.MaintenanceConstant;
@ -42,6 +43,7 @@ import com.hnac.hzinfo.sdk.core.response.Result;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
@ -82,6 +84,8 @@ public class HydropowerServiceImpl implements HydropowerService {
private final GenerateService generateService; private final GenerateService generateService;
private final UserDeptService userDeptService;
private final PowerService photovoltaicService; private final PowerService photovoltaicService;
private final IImsDutyMainService dutyMainService; private final IImsDutyMainService dutyMainService;
@ -1000,7 +1004,7 @@ public class HydropowerServiceImpl implements HydropowerService {
@Override @Override
public HydropowerScoreVo KPIs(Long deptId) { public HydropowerScoreVo KPIs(Long deptId) {
// 查询水电站站点 // 查询水电站站点
List<StationEntity> stations = stationService.getHomeStationList(deptId, Collections.singletonList(HomePageConstant.HYDROPOWER), HomePageConstant.HYDROPOWER_SERVETYPE); List<StationEntity> stations = this.getStations(deptId);
if (CollectionUtil.isEmpty(stations)) { if (CollectionUtil.isEmpty(stations)) {
return new HydropowerScoreVo(); return new HydropowerScoreVo();
} }
@ -1161,6 +1165,24 @@ public class HydropowerServiceImpl implements HydropowerService {
/** /**
* 获取站点
* @param deptId
* @return
*/
private List<StationEntity> getStations(Long deptId) {
List<UserDeptEntity> configs = userDeptService.list(new LambdaQueryWrapper<UserDeptEntity>(){{
eq(UserDeptEntity::getUserId, AuthUtil.getUserId());
}});
if(CollectionUtil.isNotEmpty(configs)){
return stationService.list(new LambdaQueryWrapper<StationEntity>(){{
eq(StationEntity::getType,HomePageConstant.HYDROPOWER);
eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE);
}});
}
return stationService.getHomeStationList(deptId, Collections.singletonList(HomePageConstant.HYDROPOWER), HomePageConstant.HYDROPOWER_SERVETYPE);
}
/**
* 区域天气 * 区域天气
* @param scale * @param scale
* @param nowWeather * @param nowWeather
@ -1510,7 +1532,7 @@ public class HydropowerServiceImpl implements HydropowerService {
@Override @Override
public List<AppHydropowerStationVo> area(Long deptId) { public List<AppHydropowerStationVo> area(Long deptId) {
// 查询水电站站点 // 查询水电站站点
List<StationEntity> stations = stationService.getHomeStationList(deptId, Collections.singletonList(HomePageConstant.HYDROPOWER), HomePageConstant.HYDROPOWER_SERVETYPE); List<StationEntity> stations = stationService.getHomeStationList(deptId, Collections.singletonList(HomePageConstant.HYDROPOWER), null);
if (CollectionUtil.isEmpty(stations)) { if (CollectionUtil.isEmpty(stations)) {
return new ArrayList<>(); return new ArrayList<>();
} }

85
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/SideHustleServiceImpl.java

@ -3,6 +3,7 @@ package com.hnac.hzims.operational.main.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hnac.hzims.EquipmentConstants; import com.hnac.hzims.EquipmentConstants;
import com.hnac.hzims.equipment.entity.EmInfoEntity; import com.hnac.hzims.equipment.entity.EmInfoEntity;
@ -24,6 +25,7 @@ import com.hnac.hzims.operational.duty.vo.DutyInfoVo;
import com.hnac.hzims.operational.duty.vo.DutyTaskVo; import com.hnac.hzims.operational.duty.vo.DutyTaskVo;
import com.hnac.hzims.operational.duty.vo.NextDutyInfoVo; import com.hnac.hzims.operational.duty.vo.NextDutyInfoVo;
import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.constant.HomePageConstant;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
import com.hnac.hzims.operational.main.service.*; import com.hnac.hzims.operational.main.service.*;
import com.hnac.hzims.operational.main.vo.*; import com.hnac.hzims.operational.main.vo.*;
import com.hnac.hzims.operational.maintenance.constants.MaintenanceConstant; import com.hnac.hzims.operational.maintenance.constants.MaintenanceConstant;
@ -43,6 +45,7 @@ import com.xxl.job.core.log.XxlJobLogger;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.*; import org.springblade.core.tool.utils.*;
import org.springblade.system.entity.Dept; import org.springblade.system.entity.Dept;
@ -66,6 +69,8 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.springblade.system.user.UserConstants.UserDataScopeTypeEnum.dept;
/** /**
* @author ysj * @author ysj
*/ */
@ -81,6 +86,8 @@ public class SideHustleServiceImpl implements ISideHustleService {
@NotNull @NotNull
private final IStationService stationService; private final IStationService stationService;
@NotNull @NotNull
private final UserDeptService userDeptService;
@NotNull
private final IPlanGenertionClient planGenertionClient; private final IPlanGenertionClient planGenertionClient;
@NotNull @NotNull
private final IOperPhenomenonService operPhenomenonService; private final IOperPhenomenonService operPhenomenonService;
@ -838,7 +845,7 @@ public class SideHustleServiceImpl implements ISideHustleService {
@Override @Override
public List<AreaPowerScaleVo> areaPowerScale(Long deptId) { public List<AreaPowerScaleVo> areaPowerScale(Long deptId) {
// 获取区域或者站点map结构 // 获取区域或者站点map结构
Map<Dept,List<StationEntity>> map = this.getAreaOrStaion(deptId,Collections.singletonList(HomePageConstant.HYDROPOWER)); Map<Dept,List<StationEntity>> map = areaService.areaOrStaion(deptId,Collections.singletonList(HomePageConstant.HYDROPOWER));
if(MapUtils.isEmpty(map)){ if(MapUtils.isEmpty(map)){
return null; return null;
} }
@ -872,7 +879,7 @@ public class SideHustleServiceImpl implements ISideHustleService {
@Override @Override
public List<OldAreaScaleVo> areaScale(Long deptId) { public List<OldAreaScaleVo> areaScale(Long deptId) {
// 获取区域或者站点map结构 // 获取区域或者站点map结构
Map<Dept,List<StationEntity>> map = this.getAreaOrStaion(deptId,Collections.singletonList(HomePageConstant.HYDROPOWER)); Map<Dept,List<StationEntity>> map = areaService.areaOrStaion(deptId,Collections.singletonList(HomePageConstant.HYDROPOWER));
if(MapUtils.isEmpty(map)){ if(MapUtils.isEmpty(map)){
return null; return null;
} }
@ -941,7 +948,7 @@ public class SideHustleServiceImpl implements ISideHustleService {
types = Collections.singletonList(HomePageConstant.HYDROPOWER); types = Collections.singletonList(HomePageConstant.HYDROPOWER);
} }
// 获取集团/区域map结构数据 // 获取集团/区域map结构数据
Map<Dept, List<StationEntity>> deptMap = this.getAreaOrStaion(deptId,types); Map<Dept, List<StationEntity>> deptMap = areaService.areaOrStaion(deptId,types);
if (MapUtils.isEmpty(deptMap)) { if (MapUtils.isEmpty(deptMap)) {
return null; return null;
} }
@ -1193,7 +1200,7 @@ public class SideHustleServiceImpl implements ISideHustleService {
List<String> runtList = deviceClassifyMap.get(HomePageConstant.RUN); List<String> runtList = deviceClassifyMap.get(HomePageConstant.RUN);
// 获取部门 // 获取部门
Map<Dept, List<StationEntity>> deptMap = this.getAreaOrStaion(deptId,Collections.singletonList(HomePageConstant.HYDROPOWER)); Map<Dept, List<StationEntity>> deptMap = areaService.areaOrStaion(deptId,Collections.singletonList(HomePageConstant.HYDROPOWER));
if (MapUtils.isEmpty(deptMap)) { if (MapUtils.isEmpty(deptMap)) {
return null; return null;
} }
@ -1282,45 +1289,6 @@ public class SideHustleServiceImpl implements ISideHustleService {
} }
/**
* 获取区域或者站点map结构
* @param deptId
* @return
*/
@Override
public Map<Dept, List<StationEntity>> getAreaOrStaion(Long deptId,List<Integer> types) {
//根据用户权限获取机构
R<List<Dept>> R = sysClient.getDeptByCurrentUser();
if (!R.isSuccess() || CollectionUtil.isEmpty(R.getData())) {
return null;
}
if(ObjectUtil.isNotEmpty(deptId)){
List<Dept> list = R.getData().stream().filter(o->deptId.equals(o.getId())).collect(Collectors.toList());
if(CollectionUtil.isEmpty(list)){
return null;
}
Dept dept = list.get(0);
// 机构为站点 key-站点机构 value-站点
if(HomePageConstant.AREA.equals(dept.getDeptCategory())){
List<StationEntity> stationList = stationService.getStationList(R.getData(),dept.getId(),types,HomePageConstant.HYDROPOWER_SERVETYPE);
if(CollectionUtil.isEmpty(stationList)){
return null;
}
Map<Dept, List<StationEntity>> map = new HashMap<>();
stationList.forEach(item->{
List<Dept> stationDeptList = R.getData().stream().filter(o->o.getId().equals(item.getRefDept())).collect(Collectors.toList());
if(CollectionUtil.isEmpty(stationDeptList)){
return;
}
// 站点机构
Dept station = stationDeptList.get(0);
map.put(station,Collections.singletonList(item));
});
return map;
}
}
return areaService.getAuthArea(R.getData(),deptId,types,HomePageConstant.HYDROPOWER_SERVETYPE);
}
/** /**
* 设备信息设置 * 设备信息设置
@ -1544,7 +1512,6 @@ public class SideHustleServiceImpl implements ISideHustleService {
*/ */
@Override @Override
public PowerFinishVo powerFinishMonth(Long deptId) { public PowerFinishVo powerFinishMonth(Long deptId) {
// 获取用户权限机构
R<List<Dept>> R = sysClient.getDeptByCurrentUser(); R<List<Dept>> R = sysClient.getDeptByCurrentUser();
if (!R.isSuccess() || CollectionUtil.isEmpty(R.getData())) { if (!R.isSuccess() || CollectionUtil.isEmpty(R.getData())) {
return null; return null;
@ -1555,8 +1522,32 @@ public class SideHustleServiceImpl implements ISideHustleService {
return null; return null;
} }
Dept area = list.get(0); Dept area = list.get(0);
// 获取用户权限机构
List<StationEntity> stations = this.getPowerStation(R.getData(),area,deptId);
if(CollectionUtil.isEmpty(stations)){
return null;
}
List<String> dayList = this.getCurrentDayList();
// 获取区域月发电数据
return this.getPowerMonth(area,dayList,stations);
}
/**
* 智能生产-水电站获取
* @param deptId
*/
private List<StationEntity> getPowerStation(List<Dept> depts,Dept area,Long deptId) {
List<UserDeptEntity> configs = userDeptService.list(new LambdaQueryWrapper<UserDeptEntity>(){{
eq(UserDeptEntity::getUserId, AuthUtil.getUserId());
}});
if(CollectionUtil.isNotEmpty(configs)){
return stationService.list(new LambdaQueryWrapper<StationEntity>(){{
eq(StationEntity::getType,HomePageConstant.HYDROPOWER);
eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE);
}});
}
// 获取区域下站点级机构集合 // 获取区域下站点级机构集合
List<Long> stationDeprList = homePageService.getChildDept(R.getData(), area.getId(), new ArrayList<>()); List<Long> stationDeprList = homePageService.getChildDept(depts, area.getId(), new ArrayList<>());
if (CollectionUtil.isEmpty(stationDeprList)) { if (CollectionUtil.isEmpty(stationDeprList)) {
return null; return null;
} }
@ -1565,9 +1556,7 @@ public class SideHustleServiceImpl implements ISideHustleService {
if(CollectionUtil.isEmpty(stationList)){ if(CollectionUtil.isEmpty(stationList)){
return null; return null;
} }
List<String> dayList = this.getCurrentDayList(); return stationList;
// 获取区域月发电数据
return this.getPowerMonth(area,dayList,stationList);
} }
/** /**

18
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/UserDeptServiceImpl.java

@ -0,0 +1,18 @@
package com.hnac.hzims.operational.main.service.impl;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
import com.hnac.hzims.operational.main.mapper.UserDeptMapper;
import com.hnac.hzims.operational.main.service.UserDeptService;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author Lch
*/
@Service
@Slf4j
public class UserDeptServiceImpl extends BaseServiceImpl<UserDeptMapper, UserDeptEntity> implements UserDeptService {
}
Loading…
Cancel
Save