|
|
|
|
@ -64,10 +64,6 @@ public class DataModelServiceImpl {
|
|
|
|
|
// 获取画板数据
|
|
|
|
|
CanvasCfgDO canvasCfgDO = canvasCfgService.getOne(queryWrapper);
|
|
|
|
|
|
|
|
|
|
// CanvasCfgDO canvasCfgDO = canvasCfgService.getOne(new QueryWrapper<CanvasCfgDO>()
|
|
|
|
|
// .eq(CanvasCfgDO.USER_ID, que.getUserId())
|
|
|
|
|
// .last("limit 1")
|
|
|
|
|
// );
|
|
|
|
|
if (ObjectUtil.isEmpty(canvasCfgDO)) {
|
|
|
|
|
canvasCfgDO = initCanvasCfg();
|
|
|
|
|
canvasCfgService.saveOrUpdate(canvasCfgDO);
|
|
|
|
|
@ -79,10 +75,6 @@ public class DataModelServiceImpl {
|
|
|
|
|
.eq(GridCfgDO.USER_ID, que.getUserId())
|
|
|
|
|
.limit(1)
|
|
|
|
|
);
|
|
|
|
|
// GridCfgDO gridCfgDO = gridCfgService.getOne(new QueryWrapper<GridCfgDO>()
|
|
|
|
|
// .eq(GridCfgDO.USER_ID, userId)
|
|
|
|
|
// .last("limit 1")
|
|
|
|
|
// );
|
|
|
|
|
if (ObjectUtil.isEmpty(gridCfgDO)) {
|
|
|
|
|
gridCfgDO = initGridCfg();
|
|
|
|
|
gridCfgService.saveOrUpdate(gridCfgDO);
|
|
|
|
|
@ -94,13 +86,8 @@ public class DataModelServiceImpl {
|
|
|
|
|
.eq(UserModelContentDO.USER_ID, userId)
|
|
|
|
|
.eq(UserModelContentDO.MENU_TYPE, que.getMenuType())
|
|
|
|
|
);
|
|
|
|
|
// List<UserModelContentDO> userModelList = userModelContentService.list(new QueryWrapper<UserModelContentDO>()
|
|
|
|
|
// .eq(UserModelContentDO.USER_ID, userId)
|
|
|
|
|
// .eq(UserModelContentDO.MENU_TYPE, que.getMenuType())
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
|
ArrayList<ModelContentDTO> objects = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(userModelList)) {
|
|
|
|
|
DataModelDTO build = DataModelDTO.builder()
|
|
|
|
|
.canvasCfg(CanvasCfgDO.doConvertDTO(canvasCfgDO))
|
|
|
|
|
@ -110,17 +97,17 @@ public class DataModelServiceImpl {
|
|
|
|
|
return ApiResult.success(build);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<String> collect = userModelList.stream()
|
|
|
|
|
.map(item -> item.getModelContentId())
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
// List<String> collect = userModelList.stream()
|
|
|
|
|
// .map(item -> item.getModelContentId())
|
|
|
|
|
// .collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
List<ModelContentDO> modelContentDOS = modelContentService.list(QueryWrapper.create()
|
|
|
|
|
.from(ModelContentDO.class)
|
|
|
|
|
.in(ModelContentDO.ID, collect)
|
|
|
|
|
.eq(ModelContentDO::getRoomId, que.getRoomId())
|
|
|
|
|
// .in(ModelContentDO.ID, collect)
|
|
|
|
|
.orderBy(ModelContentDO.MODEL_INDEX, true)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// List<ModelContentDO> modelContentDOS = modelContentService.listByIds(collect);
|
|
|
|
|
for (ModelContentDO modelContentDO : modelContentDOS) {
|
|
|
|
|
objects.add(ModelContentDO.doConvertDTO(modelContentDO));
|
|
|
|
|
}
|
|
|
|
|
@ -185,83 +172,19 @@ public class DataModelServiceImpl {
|
|
|
|
|
for (int i = 0; i < dataModelDTO.getJson().size(); i++) {
|
|
|
|
|
ModelContentDTO modelContentDTO = dataModelDTO.getJson().get(i);
|
|
|
|
|
modelContentDTO.setModelIndex(i);
|
|
|
|
|
modelContentDTO.setSubstationId(dataModelDTO.getSubstationId());
|
|
|
|
|
modelContentDTO.setRoomId(dataModelDTO.getRoomId());
|
|
|
|
|
json.add(modelContentDTO);
|
|
|
|
|
}
|
|
|
|
|
//保存、更新面板
|
|
|
|
|
canvasCfg.setUserId(userId);
|
|
|
|
|
canvasCfgService.saveOrUpdateCanvas(canvasCfg);
|
|
|
|
|
|
|
|
|
|
//保存、更新网格
|
|
|
|
|
gridCfg.setUserId(userId);
|
|
|
|
|
gridCfgService.saveOrUpdateGrid(gridCfg);
|
|
|
|
|
|
|
|
|
|
//保存数据模型
|
|
|
|
|
HashMap<String, List<String>> map = modelContentService.saveOrUpdateModel(json, dataModelDTO.getMenuType());
|
|
|
|
|
|
|
|
|
|
//获取中间表
|
|
|
|
|
List<UserModelContentDO> list = userModelContentService.list(QueryWrapper.create()
|
|
|
|
|
.from(UserModelContentDO.class)
|
|
|
|
|
.eq(UserModelContentDO.USER_ID, userId) //先写死
|
|
|
|
|
.eq(UserModelContentDO.MENU_TYPE, dataModelDTO.getMenuType())
|
|
|
|
|
);
|
|
|
|
|
// List<UserModelContentDO> list = userModelContentService.list(new QueryWrapper<UserModelContentDO>()
|
|
|
|
|
// .eq(UserModelContentDO.USER_ID, userId) //先写死
|
|
|
|
|
// .eq(UserModelContentDO.MENU_TYPE, dataModelDTO.getMenuType())
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(map)) {
|
|
|
|
|
List<String> modelIds = list.stream()
|
|
|
|
|
.map(item -> item.getModelContentId())
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
modelContentService.removeByIds(modelIds);
|
|
|
|
|
|
|
|
|
|
userModelContentService.remove(QueryWrapper.create()
|
|
|
|
|
.from(UserModelContentDO.class)
|
|
|
|
|
.eq(UserModelContentDO.USER_ID, userId)
|
|
|
|
|
.eq(UserModelContentDO.MENU_TYPE, dataModelDTO.getMenuType()));
|
|
|
|
|
return ApiResult.success();
|
|
|
|
|
}
|
|
|
|
|
modelContentService.saveOrUpdateModel(json, dataModelDTO.getMenuType());
|
|
|
|
|
|
|
|
|
|
//增加的id集合
|
|
|
|
|
List<String> addIdModels = map.get("addIdModels");
|
|
|
|
|
//跟新的id集合
|
|
|
|
|
List<String> updateIdModels = map.get("updateIdModels");
|
|
|
|
|
if (CollectionUtil.isEmpty(addIdModels))
|
|
|
|
|
return ApiResult.success();
|
|
|
|
|
|
|
|
|
|
//中间表没有数据,直接添加
|
|
|
|
|
if (CollectionUtil.isEmpty(list)) {
|
|
|
|
|
List<String> allModelIds = Stream.concat(addIdModels.stream(), updateIdModels.stream())
|
|
|
|
|
.distinct()
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
for (String modelId : allModelIds) {
|
|
|
|
|
UserModelContentDO build = UserModelContentDO.builder()
|
|
|
|
|
.userId(userId)
|
|
|
|
|
.menuType(dataModelDTO.getMenuType())
|
|
|
|
|
.modelContentId(modelId)
|
|
|
|
|
.build();
|
|
|
|
|
userModelContentService.save(build);
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success();
|
|
|
|
|
} else { //中间表有数据
|
|
|
|
|
List<String> collect = list.stream().map(UserModelContentDO::getModelContentId).collect(Collectors.toList());
|
|
|
|
|
collect.removeAll(updateIdModels);
|
|
|
|
|
modelContentService.removeByIds(collect);
|
|
|
|
|
List<String> targetCollect = list.stream()
|
|
|
|
|
.filter(item -> collect.contains(item.getModelContentId()))
|
|
|
|
|
.map(UserModelContentDO::getId)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
userModelContentService.removeByIds(targetCollect);
|
|
|
|
|
for (String addIdModel : addIdModels) {
|
|
|
|
|
UserModelContentDO build = UserModelContentDO.builder()
|
|
|
|
|
.userId(userId)
|
|
|
|
|
.menuType(dataModelDTO.getMenuType())
|
|
|
|
|
.modelContentId(addIdModel)
|
|
|
|
|
.build();
|
|
|
|
|
userModelContentService.save(build);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ApiResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|