Browse Source

移动端接口对接调整

2024年8月16日16:41:13
thing_master
lishuai 1 year ago
parent
commit
572d8812bb
  1. 2
      modules/alarm/src/main/java/com/thing/alarm/alarm/controller/AlarmDisposeLogController.java
  2. 16
      modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmDisposeLogServiceImpl.java
  3. 32
      modules/thing/src/main/java/com/thing/device/analysisdata/controller/AnalysisDataController.java
  4. 2
      modules/thing/src/main/java/com/thing/device/analysisdata/service/impl/AnalysisDataServiceImpl.java
  5. 3
      modules/thing/src/main/java/com/thing/device/source/service/impl/IotThingSourceServiceImpl.java
  6. 4
      modules/thing/src/main/java/com/thing/thing/api/service/impl/IotThingApiServiceImpl.java
  7. 2
      modules/thing/src/main/java/com/thing/thing/relation/detail/dto/IotThingRelationDetailDTO.java
  8. 12
      modules/thing/src/main/java/com/thing/thing/relation/detail/service/impl/IotThingRelationDetailServiceImpl.java
  9. 5
      modules/thing/src/main/resources/mapper/device/IotThingSourceMapper.xml

2
modules/alarm/src/main/java/com/thing/alarm/alarm/controller/AlarmDisposeLogController.java

@ -77,9 +77,7 @@ public class AlarmDisposeLogController {
public Result save(@RequestBody AlarmDisposeLogDTO dto) { public Result save(@RequestBody AlarmDisposeLogDTO dto) {
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
alarmDisposeLogService.addAlarmDisposeLog(dto); alarmDisposeLogService.addAlarmDisposeLog(dto);
return new Result(); return new Result();
} }

16
modules/alarm/src/main/java/com/thing/alarm/alarm/service/impl/AlarmDisposeLogServiceImpl.java

@ -63,8 +63,10 @@ public class AlarmDisposeLogServiceImpl extends BaseServiceImpl<AlarmDisposeLogM
@Transactional(rollbackFor = SysException.class) @Transactional(rollbackFor = SysException.class)
public void addAlarmDisposeLog(AlarmDisposeLogDTO dto) { public void addAlarmDisposeLog(AlarmDisposeLogDTO dto) {
convertUrl(dto); convertUrl(dto);
saveDto(dto);
Long ruleId = alarmRuleLogService.updateStatus(dto.getAlarmLogId(), dto.getStatus(), dto.getCreator(), dto.getCreateDate());
// saveDto(dto);
AlarmDisposeLogEntity alarmDisposeLogEntity = ConvertUtils.sourceToTarget(dto, AlarmDisposeLogEntity.class);
mapper.insert(alarmDisposeLogEntity);
Long ruleId = alarmRuleLogService.updateStatus(alarmDisposeLogEntity.getAlarmLogId(), alarmDisposeLogEntity.getStatus(), alarmDisposeLogEntity.getCreator(), alarmDisposeLogEntity.getCreateDate());
// 处理完成更新状态 // 处理完成更新状态
if (StringUtils.equals(dto.getStatus(), AlarmStatus.PROCESSED.getStatus())) { if (StringUtils.equals(dto.getStatus(), AlarmStatus.PROCESSED.getStatus())) {
alarmRuleService.completed(ruleId); alarmRuleService.completed(ruleId);
@ -75,8 +77,14 @@ public class AlarmDisposeLogServiceImpl extends BaseServiceImpl<AlarmDisposeLogM
@Transactional(rollbackFor = SysException.class) @Transactional(rollbackFor = SysException.class)
public void updateAlarmDisposeLog(AlarmDisposeLogDTO dto) { public void updateAlarmDisposeLog(AlarmDisposeLogDTO dto) {
convertUrl(dto); convertUrl(dto);
updateDto(dto);
Long ruleId = alarmRuleLogService.updateStatus(dto.getAlarmLogId(), dto.getStatus(), dto.getUpdater(), dto.getUpdateDate());
AlarmDisposeLogEntity alarmDisposeLogEntity = mapper.selectOneById(dto.getId());
alarmDisposeLogEntity.setAlarmLogId(dto.getAlarmLogId());
alarmDisposeLogEntity.setDisposeResult(dto.getDisposeResult());
alarmDisposeLogEntity.setDescribe(dto.getDescribe());
alarmDisposeLogEntity.setStatus(dto.getStatus());
alarmDisposeLogEntity.setImages(dto.getImages());
mapper.update(alarmDisposeLogEntity);
Long ruleId = alarmRuleLogService.updateStatus(alarmDisposeLogEntity.getAlarmLogId(), alarmDisposeLogEntity.getStatus(), alarmDisposeLogEntity.getUpdater(), alarmDisposeLogEntity.getUpdateDate());
// 处理完成更新状态 // 处理完成更新状态
if (StringUtils.equals(dto.getStatus(), AlarmStatus.PROCESSED.getStatus())) { if (StringUtils.equals(dto.getStatus(), AlarmStatus.PROCESSED.getStatus())) {
alarmRuleService.completed(ruleId); alarmRuleService.completed(ruleId);

32
modules/thing/src/main/java/com/thing/device/analysisdata/controller/AnalysisDataController.java

@ -71,43 +71,25 @@ public class AnalysisDataController {
analysisDataRespMap.put("min",null); analysisDataRespMap.put("min",null);
analysisDataRespMap.put("average",null); analysisDataRespMap.put("average",null);
List<Map<String,Object>> list = MapUtil.get(analysisDataRespMap, "result", List.class);
List<TsKvDTO> list = MapUtil.get(analysisDataRespMap, "result", List.class);
if (CollectionUtil.isNotEmpty(list)){ if (CollectionUtil.isNotEmpty(list)){
DecimalFormat decimalFormat = new DecimalFormat("#.##"); DecimalFormat decimalFormat = new DecimalFormat("#.##");
// 计算最大值 // 计算最大值
OptionalDouble maxVal = list.stream() OptionalDouble maxVal = list.stream()
.filter(m -> m.get("val") != null) // 过滤掉 "val" 为空的元素
.mapToDouble(m -> {
if(m.get("val") instanceof Number){
return ((Number)m.get("val")).doubleValue();
}else{
return Double.parseDouble(m.get("val").toString());
}
}).max();
.filter(m -> m.getVal() != null) // 过滤掉 "val" 为空的元素
.mapToDouble(m -> Double.parseDouble(m.getVal())).max();
String formattedMax = decimalFormat.format(maxVal.getAsDouble()); String formattedMax = decimalFormat.format(maxVal.getAsDouble());
analysisDataRespMap.put("max",formattedMax); analysisDataRespMap.put("max",formattedMax);
// 计算最小值 // 计算最小值
OptionalDouble minVal = list.stream() OptionalDouble minVal = list.stream()
.filter(m -> m.get("val") != null) // 过滤掉 "val" 为空的元素
.mapToDouble(m -> {
if(m.get("val") instanceof Number){
return ((Number)m.get("val")).doubleValue();
}else{
return Double.parseDouble(m.get("val").toString());
}
}).min();
.filter(m -> m.getVal() != null) // 过滤掉 "val" 为空的元素
.mapToDouble(m -> Double.parseDouble(m.getVal())).min();
String formattedMin = decimalFormat.format(minVal.getAsDouble()); String formattedMin = decimalFormat.format(minVal.getAsDouble());
analysisDataRespMap.put("min",formattedMin); analysisDataRespMap.put("min",formattedMin);
// 计算平均值 // 计算平均值
Double averageVal = list.stream() Double averageVal = list.stream()
.filter(m -> m.get("val") != null) // 过滤掉 "val" 为空的元素
.mapToDouble(m -> {
if(m.get("val") instanceof Number){
return ((Number)m.get("val")).doubleValue();
}else{
return Double.parseDouble(m.get("val").toString());
}
}).average().orElse(0D);
.filter(m -> m.getVal() != null) // 过滤掉 "val" 为空的元素
.mapToDouble(m -> Double.parseDouble(m.getVal())).average().orElse(0D);
String formattedAverage = decimalFormat.format(averageVal); String formattedAverage = decimalFormat.format(averageVal);
analysisDataRespMap.put("average",formattedAverage); analysisDataRespMap.put("average",formattedAverage);

2
modules/thing/src/main/java/com/thing/device/analysisdata/service/impl/AnalysisDataServiceImpl.java

@ -831,7 +831,7 @@ public class AnalysisDataServiceImpl implements AnalysisDataService {
* @return list * @return list
*/ */
private List<TsKvDTO> getCacheTsKvDTO(AnalysisDataReqDTO analysisDataReqDTO, List<IotThingSourcePidDTO> iotThingSourceList, List<IotThingSourcePidDTO> childList) { private List<TsKvDTO> getCacheTsKvDTO(AnalysisDataReqDTO analysisDataReqDTO, List<IotThingSourcePidDTO> iotThingSourceList, List<IotThingSourcePidDTO> childList) {
List<ThingAttrDTO> thingAttrList = iotThingSourceList.parallelStream()
List<ThingAttrDTO> thingAttrList = iotThingSourceList.stream()
.filter(item -> childList.stream().noneMatch(child -> Objects.equals(child.getPid(), item.getId()))) .filter(item -> childList.stream().noneMatch(child -> Objects.equals(child.getPid(), item.getId())))
.map(item -> new ThingAttrDTO(item.getThingTenantId(), item.getThingCode(), Lists.newArrayList(item.getThingAttrCode()))) .map(item -> new ThingAttrDTO(item.getThingTenantId(), item.getThingCode(), Lists.newArrayList(item.getThingAttrCode())))
.collect(Collectors.toList()); .collect(Collectors.toList());

3
modules/thing/src/main/java/com/thing/device/source/service/impl/IotThingSourceServiceImpl.java

@ -480,7 +480,8 @@ public class IotThingSourceServiceImpl extends BaseServiceImpl<IotThingSourceMap
return null; return null;
} }
List<IotThingSourceAttrRespDTO> iotThingSourceAttrList = ConvertUtils.sourceToTarget(iotThingSourceList, IotThingSourceAttrRespDTO.class); List<IotThingSourceAttrRespDTO> iotThingSourceAttrList = ConvertUtils.sourceToTarget(iotThingSourceList, IotThingSourceAttrRespDTO.class);
return iotThingSourceAttrList.stream().filter(distinctByKey(IotThingSourceAttrRespDTO::getThingAttrCode)).sorted(Comparator.comparing(IotThingSourceAttrRespDTO::getSort)).collect(Collectors.toList());
return iotThingSourceAttrList.stream().filter(distinctByKey(IotThingSourceAttrRespDTO::getThingAttrCode)).sorted(Comparator.comparing(IotThingSourceAttrRespDTO::getSort,
Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList());
} }
@Override @Override

4
modules/thing/src/main/java/com/thing/thing/api/service/impl/IotThingApiServiceImpl.java

@ -838,9 +838,9 @@ public class IotThingApiServiceImpl extends BaseServiceImpl<IotThingApiMapper, I
map.put("times", JSON.parseObject(timeCondition)); map.put("times", JSON.parseObject(timeCondition));
apiLogDTO.setCallEntity(JSON.toJSONString(map)); apiLogDTO.setCallEntity(JSON.toJSONString(map));
apiLogDTO.setCreator(UserContext.getUserId()); apiLogDTO.setCreator(UserContext.getUserId());
apiLogDTO.setCreateDate(DateTimeUtils.getCurrentTime() / 1000);
apiLogDTO.setCreateDate(DateTimeUtils.getCurrentTime());
apiLogDTO.setUpdater(UserContext.getUserId()); apiLogDTO.setUpdater(UserContext.getUserId());
apiLogDTO.setUpdateDate(DateTimeUtils.getCurrentTime() / 1000);
apiLogDTO.setUpdateDate(DateTimeUtils.getCurrentTime());
//调用IP //调用IP
HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
apiLogDTO.setIp(IpUtils.getIpAddr(request)); apiLogDTO.setIp(IpUtils.getIpAddr(request));

2
modules/thing/src/main/java/com/thing/thing/relation/detail/dto/IotThingRelationDetailDTO.java

@ -54,5 +54,7 @@ public class IotThingRelationDetailDTO implements Serializable {
private Long rootThingId; private Long rootThingId;
@Schema(description = "标签") @Schema(description = "标签")
private String tag; private String tag;
@Schema(description = "在线离线状态,0离线 1在线 2错误 3未接入")
private String thingStatus;
} }

12
modules/thing/src/main/java/com/thing/thing/relation/detail/service/impl/IotThingRelationDetailServiceImpl.java

@ -26,6 +26,7 @@ import com.thing.thing.cache.service.CacheInit;
import com.thing.thing.cache.service.ThingCache; import com.thing.thing.cache.service.ThingCache;
import com.thing.thing.entity.dto.IotThingEntityDTO; import com.thing.thing.entity.dto.IotThingEntityDTO;
import com.thing.thing.entity.service.IotThingEntityService; import com.thing.thing.entity.service.IotThingEntityService;
import com.thing.thing.model.service.IotThingModelService;
import com.thing.thing.relation.detail.dto.IotThingRelationDetailDTO; import com.thing.thing.relation.detail.dto.IotThingRelationDetailDTO;
import com.thing.thing.relation.detail.dto.RelationDetailBatchSaveDTO; import com.thing.thing.relation.detail.dto.RelationDetailBatchSaveDTO;
import com.thing.thing.relation.detail.dto.ThingRelationDTO; import com.thing.thing.relation.detail.dto.ThingRelationDTO;
@ -63,6 +64,9 @@ public class IotThingRelationDetailServiceImpl extends BaseServiceImpl<IotThingR
@Resource @Resource
private IotThingEntityService thingEntitiesService; private IotThingEntityService thingEntitiesService;
@Resource
private IotThingModelService thingModelService;
@Autowired @Autowired
private ApplicationEventPublisher eventPublisher; private ApplicationEventPublisher eventPublisher;
@ -140,6 +144,14 @@ public class IotThingRelationDetailServiceImpl extends BaseServiceImpl<IotThingR
List<ObjectNode> relationDetaillist = cache.getTopicMap(CacheNameEnum.THING_DETAIL_RELATION); List<ObjectNode> relationDetaillist = cache.getTopicMap(CacheNameEnum.THING_DETAIL_RELATION);
if (CollectionUtils.isEmpty(relationDetaillist)) { if (CollectionUtils.isEmpty(relationDetaillist)) {
List<IotThingRelationDetailDTO> list = mapper.selectListByQueryAs(getWrapper(orderField, order, null, null), IotThingRelationDetailDTO.class); List<IotThingRelationDetailDTO> list = mapper.selectListByQueryAs(getWrapper(orderField, order, null, null), IotThingRelationDetailDTO.class);
if(CollectionUtils.isNotEmpty(list)){
list.forEach(s->{
String toCode = s.getToCode();
thingModelService.findByCode(toCode).ifPresent(thingModelEntity -> {
s.setThingStatus(thingModelEntity.getStatus());
});
});
}
relationDetaillist = JsonConverter.convertToJsonObjectListObjectNode(list); relationDetaillist = JsonConverter.convertToJsonObjectListObjectNode(list);
if (CollectionUtils.isEmpty(relationDetaillist)) { if (CollectionUtils.isEmpty(relationDetaillist)) {
return new ArrayList<>(); return new ArrayList<>();

5
modules/thing/src/main/resources/mapper/device/IotThingSourceMapper.xml

@ -38,7 +38,7 @@
its.thing_attr_code, its.thing_attr_code,
its.thing_attr_name, its.thing_attr_name,
its.thing_attr_code_type, its.thing_attr_code_type,
its.data_rule,
its.data_deal_config as data_rule,
its.thing_serial, its.thing_serial,
its.thing_icon, its.thing_icon,
its.thing_attr_unit, its.thing_attr_unit,
@ -51,7 +51,8 @@
iot_thing_source its iot_thing_source its
INNER JOIN iot_thing_entity itt ON its.thing_id = itt.id INNER JOIN iot_thing_entity itt ON its.thing_id = itt.id
<where> <where>
its.pid is null
-- its.pid is null
1=1
<if test="thingIdList != null"> <if test="thingIdList != null">
and its.thing_id in and its.thing_id in
<foreach item="thingId" collection="thingIdList" open="(" separator="," close=")"> <foreach item="thingId" collection="thingIdList" open="(" separator="," close=")">

Loading…
Cancel
Save