Browse Source

Merge remote-tracking branch 'origin/master'

zhongwei
yang_shj 1 year ago
parent
commit
522c15ccbb
  1. 4
      hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IQuestionClient.java
  2. 5
      hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/QuestionClientFallback.java
  3. 13
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java
  4. 4
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmInfoService.java
  5. 31
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java
  6. 6
      hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/config/FdpUrlConfiguration.java
  7. 6
      hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/feign/QuestionClient.java
  8. 14
      hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpQuestionService.java
  9. 42
      hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpQuestionServiceImpl.java
  10. 8
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationAttributeController.java
  11. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationAttributeService.java
  12. 70
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationAttributeServiceImpl.java
  13. 11
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java
  14. 2
      pom.xml

4
hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IQuestionClient.java

@ -19,6 +19,7 @@ public interface IQuestionClient {
String API_PREFIX = "/feign/fdp/question";
String SUBMIT_STATION_INFO = API_PREFIX + "/submitStationInfo";
String DELETE_STATION_INFO = API_PREFIX + "/deleteStationInfo";
String DELETE_STATION_ANSWER = API_PREFIX + "/deleteStationAnswer";
/**
* 提交站点信息
@ -31,4 +32,7 @@ public interface IQuestionClient {
@DeleteMapping(DELETE_STATION_INFO)
R<Boolean> deleteStationInfo(@RequestParam String stationId);
@DeleteMapping(DELETE_STATION_INFO)
R<Boolean> deleteStationAnswer(@RequestParam String stationId);
}

5
hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/QuestionClientFallback.java

@ -22,4 +22,9 @@ public class QuestionClientFallback implements IQuestionClient {
public R<Boolean> deleteStationInfo(String stationId) {
return R.fail("智能诊断删除站点失败!");
}
@Override
public R<Boolean> deleteStationAnswer(String stationId) {
return R.fail("智能诊断删除站点答案失败!");
}
}

13
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java

@ -159,18 +159,7 @@ public class EmInfoController extends BladeController {
@ApiOperationSupport(order = 9)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
String[] split = ids.split(",");
for (String id : split) {
List<EmInfoEntity> gpids = em_infoService.list(new QueryWrapper<EmInfoEntity>() {{
eq("GPID", id);
}});
if (CollectionUtil.isNotEmpty(gpids)) {
return R.fail("请先删除子设备信息");
}
}
boolean b = em_infoService.deleteLogic(Func.toLongList(ids));
em_infoService.getStationCodeStoreRedis();
return R.status(b);
return R.status(em_infoService.remove(ids));
}

4
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmInfoService.java

@ -2,9 +2,11 @@ package com.hnac.hzims.equipment.service;
import com.hnac.hzims.equipment.entity.EmInfoEntity;
import com.hnac.hzims.equipment.vo.*;
import io.swagger.annotations.ApiParam;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.system.vo.CreateTableVO;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
import java.util.List;
@ -61,4 +63,6 @@ public interface IEmInfoService extends BaseService<EmInfoEntity> {
List<CreateTableVO> getEmCreateTable(List<String> tableNames);
List<DeviceVO> listByTenantId(String tenantId);
Boolean remove(String ids);
}

31
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java

@ -14,6 +14,7 @@ import com.hnac.hzims.equipment.mapper.EmInfoMapper;
import com.hnac.hzims.equipment.mapper.EmInfoNoScopeMapper;
import com.hnac.hzims.equipment.service.*;
import com.hnac.hzims.equipment.vo.*;
import com.hnac.hzims.fdp.service.IFdpQuestionService;
import com.hnac.hzims.operational.main.constant.HomePageConstant;
import com.hnac.hzims.operational.station.entity.StationEntity;
import com.hnac.hzims.operational.station.feign.IStationClient;
@ -28,6 +29,8 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.*;
import org.springblade.system.entity.Dept;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.vo.CreateTableVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -39,6 +42,7 @@ import org.springframework.util.Assert;
import javax.validation.Valid;
import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -72,6 +76,12 @@ public class EmInfoServiceImpl extends BaseServiceImpl<EmInfoMapper, EmInfoEntit
@Autowired
private DeviceClient deviceClient;
@Autowired
private ISysClient sysClient;
@Autowired
private IFdpQuestionService questionService;
@Value("${hzims.equipment.emInfo.code}")
public String deviceCodePath;
@ -420,6 +430,27 @@ public class EmInfoServiceImpl extends BaseServiceImpl<EmInfoMapper, EmInfoEntit
return this.baseMapper.listByTenantId(tenantId);
}
@Override
public Boolean remove(String ids) {
List<Long> idList = Func.toLongList(",",ids);
// 判断是否存在子设备
List<EmInfoEntity> childEmList = this.list(Wrappers.<EmInfoEntity>lambdaQuery().in(EmInfoEntity::getGpid, idList));
Assert.isTrue(CollectionUtil.isEmpty(childEmList),() -> {
throw new ServiceException("请先删除子设备信息");
});
// 删除FDP答题记录
Consumer<Long> removeFdpEmInfo = id -> {
EmInfoEntity infoEntity = this.getById(id);
R<Dept> deptResult = sysClient.getDept(infoEntity.getDepartment());
if(ObjectUtil.isNotEmpty(infoEntity) && Func.isNotEmpty(infoEntity.getEmIndex()) && deptResult.isSuccess()
&& Func.isNotEmpty(deptResult.getData()) && Func.isNotEmpty(deptResult.getData().getStationId())) {
questionService.deleteDevsetAnswer(deptResult.getData().getStationId(), infoEntity.getEmIndex());
}
};
idList.forEach(removeFdpEmInfo);
return this.deleteLogic(Func.toLongList(",", ids));
}
/**
* 设备信息缓存(ctptinstalledCapacity监测点位)

6
hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/config/FdpUrlConfiguration.java

@ -48,5 +48,11 @@ public class FdpUrlConfiguration {
/**按物模型实例编号删除问题答案**/
private String deleteInstanceAnswer;
/**删除站点问题的答案**/
private String deleteStationAnswer;
/**删除机组问题答案**/
private String deleteDevsetAnswer;
}

6
hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/feign/QuestionClient.java

@ -32,4 +32,10 @@ public class QuestionClient implements IQuestionClient {
return R.status(fdpQuestionService.deleteStationInfo(stationId));
}
@DeleteMapping(DELETE_STATION_ANSWER)
@Override
public R<Boolean> deleteStationAnswer(String stationId) {
return R.status(fdpQuestionService.deleteStationAnswer(stationId));
}
}

14
hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpQuestionService.java

@ -74,4 +74,18 @@ public interface IFdpQuestionService {
*/
List<JSONObject> getInstanceAnswer(String instanceId);
/**
* 提交机组问题的答案提交前会删除该物模型实例编号下的所有原答案
* @param stationId 站点编码
* @param index 设备序号
* @return
*/
Boolean deleteDevsetAnswer(String stationId, int index);
/**
* 删除站点问题的答案也会删除站点的所有机组问题答案
* @param stationId 站点ID
* @return
*/
Boolean deleteStationAnswer(String stationId);
}

42
hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpQuestionServiceImpl.java

@ -193,6 +193,48 @@ public class FdpQuestionServiceImpl implements IFdpQuestionService {
return Lists.newArrayList();
}
@Override
public Boolean deleteDevsetAnswer(String stationId, int index) {
HttpResponse httpResponse = HttpRequest.post(fdpUrlConfiguration.getDeleteDevsetAnswer()).body(
JSON.toJSONString(
new HashMap<String,Object>(2){{
put("stationId",stationId);
put("index",index);
}}
)
).execute();
JSONObject responseObject = JSONObject.parseObject(httpResponse.body());
if(httpResponse.getStatus() == HttpServletResponse.SC_OK &&
"1".equals(responseObject.getString("success"))) {
logger.info("FdpQuestion:deleteDevsetAnswer","FDP设备删除成功!站点ID为:"+stationId+",设备编号为:"+index);
return JSONObject.parseObject(responseObject.getString("data"),Boolean.class);
}
else {
logger.error("FdpQuestion:deleteDevsetAnswer","FDP设备删除失败!站点ID为:"+stationId+",设备编号为:"+index);
}
return false;
}
@Override
public Boolean deleteStationAnswer(String stationId) {
HttpResponse httpResponse = HttpRequest.post(fdpUrlConfiguration.getDeleteStationAnswer()).body(
JSON.toJSONString(
new HashMap<String,Object>(1){{
put("stationId",stationId);
}}
)
).execute();
JSONObject responseObject = JSONObject.parseObject(httpResponse.body());
if(httpResponse.getStatus() == HttpServletResponse.SC_OK &&
"1".equals(responseObject.getString("success"))) {
return JSONObject.parseObject(responseObject.getString("data"),Boolean.class);
}
else {
logger.error("FdpQuestion:deleteDevsetAnswer","FDP设备站点问题的答案失败!站点ID为:"+stationId);
}
return false;
}
/**
* 根据站点类型获取Fdp的站点类型
* @param stationType 站点管理站点类型

8
hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationAttributeController.java

@ -91,10 +91,12 @@ public class StationAttributeController extends BladeController {
return R.status(stationAttributeService.deleteLogic(Func.toLongList(ids)));
}
@PutMapping("/bandingMonitor/{emCode}")
@PutMapping("/bandingMonitor")
@ApiOperation("根据设备编码更新集中监控监测点绑定")
@ApiOperationSupport(order = 4)
public R<List<StationAttributeVo>> bandingMonitor(@PathVariable @ApiParam(value = "设备编码",required = true) String emCode) {
return R.data(stationAttributeService.bandingMonitor(emCode));
public R<List<StationAttributeVo>> bandingMonitor(@ApiParam(value = "设备编码",required = true) String emCode,
@ApiParam(value = "站点类型",required = true) String stationType,
@ApiParam(value = "设备类型",required = true) String emType) {
return R.data(stationAttributeService.bandingMonitor(emCode,stationType,emType));
}
}

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

@ -45,5 +45,5 @@ public interface IStationAttributeService extends BaseService<StationAttributeEn
*/
void removeByStationCode(String stationCode);
List<StationAttributeVo> bandingMonitor(String emCode);
List<StationAttributeVo> bandingMonitor(String emCode,String stationType,String emType);
}

70
hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationAttributeServiceImpl.java

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.hnac.hzims.common.service.UserAuthDataService;
import com.hnac.hzims.fdp.vo.FdpFaultStatusVo;
import com.hnac.hzims.operational.config.entity.FocusAttributeEntity;
import com.hnac.hzims.operational.config.service.IFocusAttributeService;
import com.hnac.hzims.operational.station.entity.StationAttrConfigEntity;
import com.hnac.hzims.operational.station.entity.StationAttributeEntity;
import com.hnac.hzims.operational.station.entity.StationEntity;
@ -14,7 +16,10 @@ import com.hnac.hzims.operational.station.service.IStationAttrConfigService;
import com.hnac.hzims.operational.station.service.IStationAttributeService;
import com.hnac.hzims.operational.station.service.IStationService;
import com.hnac.hzims.operational.station.vo.StationAttributeVo;
import com.hnac.hzinfo.sdk.core.response.Result;
import com.hnac.hzinfo.sdk.v5.device.client.DeviceClient;
import com.hnac.hzinfo.sdk.v5.device.dto.DeviceChildrenDTO;
import com.hnac.hzinfo.sdk.v5.device.vo.DeviceChildrenVO;
import com.hnac.hzinfo.sdk.v5.device.vo.DeviceInstanceAttrVO;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
@ -25,19 +30,14 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.core.tool.utils.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -50,6 +50,7 @@ public class StationAttributeServiceImpl extends BaseServiceImpl<StationAttribut
private final UserAuthDataService userAuthDataService;
private final IStationAttrConfigService stationAttrConfigService;
private final IFocusAttributeService attributeService;
private final RedisTemplate redisTemplate;
private final DeviceClient deviceClient;
@ -208,30 +209,35 @@ public class StationAttributeServiceImpl extends BaseServiceImpl<StationAttribut
* @return
*/
@Override
public List<StationAttributeVo> bandingMonitor(String emCode) {
List<StationAttributeVo> result = new ArrayList<>();
LambdaQueryWrapper<StationAttributeEntity> wq = Wrappers.<StationAttributeEntity>lambdaQuery().eq(StationAttributeEntity::getEmCode, emCode);
List<StationAttributeEntity> attributeEntities = this.list(wq);
if(CollectionUtil.isEmpty(attributeEntities)) {
return Lists.newArrayList();
}
// 获取设备实例物模型绑定数据
R<List<DeviceInstanceAttrVO>> onlineAttrR= deviceClient.getOnlineAttr(emCode);
Assert.isTrue(onlineAttrR.isSuccess(),() -> {
throw new ServiceException(onlineAttrR.getMsg());
});
if(CollectionUtil.isNotEmpty(onlineAttrR.getData())) {
Map<String, List<DeviceInstanceAttrVO>> stringListMap = onlineAttrR.getData().stream().collect(Collectors.groupingBy(DeviceInstanceAttrVO::getSignage));
result = attributeEntities.stream().map(attributeEntity -> {
StationAttributeVo attributeVo = BeanUtil.copy(attributeEntity, StationAttributeVo.class);
List<DeviceInstanceAttrVO> deviceInstanceAttrVOS = stringListMap.get(attributeEntity.getSignage());
if(CollectionUtil.isNotEmpty(deviceInstanceAttrVOS)) {
attributeVo.setMonitorId(deviceInstanceAttrVOS.get(0).getFacDeviceAttrId());
attributeVo.setMonitorName(deviceInstanceAttrVOS.get(0).getFacDeviceAttrName());
}
return attributeVo;
}).collect(Collectors.toList());
}
public List<StationAttributeVo> bandingMonitor(String emCode,String stationType,String emType) {
List<StationAttributeVo> result;
// 获取集中监控属性配置
List<FocusAttributeEntity> attributes = attributeService.list(Wrappers.<FocusAttributeEntity>lambdaQuery()
.eq(FocusAttributeEntity::getDomainId, stationType)
.eq(FocusAttributeEntity::getGroupId, emType)
.eq(FocusAttributeEntity::getStatus, 0)
);
// 标识
List<String> signages = attributes.stream().map(FocusAttributeEntity::getSignage).filter(Func::isNotEmpty).collect(Collectors.toList());
// 根据设备实例查询采集点
DeviceChildrenDTO deviceChildrenDTO = new DeviceChildrenDTO();
deviceChildrenDTO.setSignages(signages);
deviceChildrenDTO.setDeviceCode(emCode);
deviceChildrenDTO.setType("attr");
Result<List<DeviceChildrenVO>> deviceChildrenListResult = deviceClient.getRealId(deviceChildrenDTO);
boolean facAttrFlag = deviceChildrenListResult.isSuccess() && CollectionUtil.isNotEmpty(deviceChildrenListResult.getData());
// 根据集中监控属性配置获取站点集中监控属性配置
Function<FocusAttributeEntity,StationAttributeVo> convert = focusAttr -> {
StationAttributeVo vo = BeanUtil.copy(focusAttr,StationAttributeVo.class);
if(facAttrFlag) {
List<DeviceChildrenVO> data = deviceChildrenListResult.getData();
Optional<DeviceChildrenVO> facAttrOptional = data.stream().filter(attr -> focusAttr.getSignage().equals(attr.getSignage())).findAny();
vo.setMonitorId(facAttrOptional.map(DeviceChildrenVO::getRealId).orElse(null));
vo.setMonitorName(facAttrOptional.map(DeviceChildrenVO::getName).orElse(null));
}
return vo;
};
result = attributes.stream().map(convert).collect(Collectors.toList());
return result;
}
}

11
hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java

@ -1,4 +1,4 @@
package com.hnac.hzims.operational.station.service.impl;
package com.hnac.hzims.operational.station.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -142,11 +142,16 @@ public class StationServiceImpl extends BaseServiceImpl<StationMapper, StationEn
logger.info("hzims-operational:station:removeStation", stationEntity.getRefDept() + "所属机构删除失败,报错信息为:" + projectResult.getMsg());
}
}
// 删除智能诊断站点
questionClient.deleteStationInfo(stationEntity.getCode());
// 清空
}
new Thread(()-> {
// 删除站点下集中监控属性配置
stationAttributeService.removeByStationCode(stationEntity.getCode());
// 删除智能诊断站点
questionClient.deleteStationInfo(stationEntity.getCode());
// 删除智能诊断实例图信息
questionClient.deleteStationAnswer(stationEntity.getCode());
},"删除站点集中监控属性").start();
return saveFlag;
}

2
pom.xml

@ -18,7 +18,7 @@
<maven.plugin.version>3.8.1</maven.plugin.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<hzinfo.data.version>4.6.1-SNAPSHOT</hzinfo.data.version>
<hzinfo.data.version>5.0.1-SNAPSHOT</hzinfo.data.version>
<!-- <hzinfo.data.api.version>4.5.3-SNAPSHOT</hzinfo.data.api.version>-->
<!-- <hzinfo.data.sdk.version>4.5.4-RELEASE</hzinfo.data.sdk.version>-->

Loading…
Cancel
Save