|
|
|
@ -46,6 +46,7 @@ import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
import java.util.concurrent.atomic.AtomicLong; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@ -153,17 +154,17 @@ public class IotThingDictRelationServiceImpl extends BaseServiceImpl<IotThingDic |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<ObjectNode> findList(String orderField,String order, |
|
|
|
String entityName,String groupName, String entityIds,String name, |
|
|
|
String templateMark,String dataType,Long tenantCode) |
|
|
|
String entityName,String groupName, String entityIds,String name, |
|
|
|
String templateMark,String dataType,Long tenantCode) |
|
|
|
{ |
|
|
|
List<ObjectNode> dictRelationList = cache.getTopicMap(CacheNameEnum.THING_DICT_RELATION); |
|
|
|
if(CollectionUtils.isEmpty(dictRelationList)){ |
|
|
|
List<IotThingDictRelationDTO> dictRelationDTOList = mapper.selectListByQueryAs(getWrapper(orderField,order,null,null,null,null, |
|
|
|
null,null,null), |
|
|
|
IotThingDictRelationDTO.class); |
|
|
|
if(CollectionUtils.isEmpty(dictRelationDTOList)) { |
|
|
|
return new ArrayList<>(); |
|
|
|
} |
|
|
|
List<IotThingDictRelationDTO> dictRelationDTOList = mapper.selectListByQueryAs(getWrapper(orderField,order,null,null,null,null, |
|
|
|
null,null,null), |
|
|
|
IotThingDictRelationDTO.class); |
|
|
|
if(CollectionUtils.isEmpty(dictRelationDTOList)) { |
|
|
|
return new ArrayList<>(); |
|
|
|
} |
|
|
|
dictRelationList = JsonConverter.convertToJsonObjectListObjectNode(dictRelationDTOList); |
|
|
|
//更新缓存 |
|
|
|
CacheInit.dictRelationMap(dictRelationList,cache); |
|
|
|
@ -536,10 +537,23 @@ public class IotThingDictRelationServiceImpl extends BaseServiceImpl<IotThingDic |
|
|
|
).toList(); |
|
|
|
dictService.saveBatch(dictEntities); |
|
|
|
} |
|
|
|
List<IotThingDictRelationEntity> iotThingDictRelationEntities = ConvertUtils.sourceToTarget(list, IotThingDictRelationEntity.class); |
|
|
|
mapper.insertBatch(iotThingDictRelationEntities); |
|
|
|
|
|
|
|
iotThingDictRelationEntities.forEach(entity -> cache.updateAccurateKeyEntity(CacheNameEnum.THING_DICT_RELATION, |
|
|
|
List<IotThingDictRelationEntity> iotThingDictRelationEntities = mapper.selectListByQuery(QueryWrapper.create().eq(IotThingDictRelationEntity::getEntityId, optional.get().getId()) |
|
|
|
.in(IotThingDictRelationEntity::getCode, codes)); |
|
|
|
Long maxSort = 0L; |
|
|
|
if(CollectionUtils.isNotEmpty(iotThingDictRelationEntities)){ |
|
|
|
list = list.stream().filter(e -> iotThingDictRelationEntities.stream().noneMatch(d -> StringUtils.equals(d.getCode(), e.getCode()))).toList(); |
|
|
|
maxSort = iotThingDictRelationEntities.stream().mapToLong(IotThingDictRelationEntity::getSort).max().getAsLong(); |
|
|
|
} |
|
|
|
AtomicLong sort = new AtomicLong(maxSort); |
|
|
|
List<IotThingDictRelationEntity> insertList = ConvertUtils.sourceToTarget(list, IotThingDictRelationEntity.class); |
|
|
|
insertList.forEach(e -> { |
|
|
|
e.setSort(sort.incrementAndGet()); |
|
|
|
e.setEntityId(optional.get().getId()); |
|
|
|
e.setTemplateMark(optional.get().getTemplateMark()); |
|
|
|
}); |
|
|
|
mapper.insertBatch(insertList); |
|
|
|
insertList.forEach(entity -> cache.updateAccurateKeyEntity(CacheNameEnum.THING_DICT_RELATION, |
|
|
|
entity.getTenantCode()+CacheInit.KEY+entity.getEntityCode()+CacheInit.KEY+entity.getCode()+CacheInit.KEY+entity.getId(),ConvertUtils.sourceToTarget(entity, IotThingDictRelationDTO.class))); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -573,7 +587,7 @@ public class IotThingDictRelationServiceImpl extends BaseServiceImpl<IotThingDic |
|
|
|
.setId(null); |
|
|
|
return iotThingDictRelationEntity; |
|
|
|
})).toList()); |
|
|
|
//同步 |
|
|
|
//同步 |
|
|
|
if(StringUtils.equals(SyncUpdateEnum.SYNC.getValue(),dto.getSyncOrUpdate())){ |
|
|
|
QueryWrapper in = QueryWrapper.create().in(IotThingDictRelationEntity::getEntityId, entityIds); |
|
|
|
List<IotThingDictRelationEntity> dictRelationEntities = mapper.selectListByQuery(in); |
|
|
|
@ -588,9 +602,9 @@ public class IotThingDictRelationServiceImpl extends BaseServiceImpl<IotThingDic |
|
|
|
if(CollectionUtils.isNotEmpty(relationDTOList)){ |
|
|
|
insertList. |
|
|
|
removeIf(s-> relationDTOList.stream().anyMatch(r-> |
|
|
|
StringUtils.equals(r.getCode(),s.getCode()) |
|
|
|
&& StringUtils.equals(r.getDataType(),s.getDataType()) |
|
|
|
&& Objects.equals(r.getEntityId(),s.getEntityId()) |
|
|
|
StringUtils.equals(r.getCode(),s.getCode()) |
|
|
|
&& StringUtils.equals(r.getDataType(),s.getDataType()) |
|
|
|
&& Objects.equals(r.getEntityId(),s.getEntityId()) |
|
|
|
)); |
|
|
|
} |
|
|
|
if(CollectionUtils.isNotEmpty(insertList)){ |
|
|
|
|