|
@@ -8,10 +8,15 @@ import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
|
+import com.persagy.dmp.basic.dto.RequestData;
|
|
|
|
+import com.persagy.dmp.basic.model.CodeTableTypeEnum;
|
|
|
|
+import com.persagy.dmp.codetable.client.CodeTableDataFacade;
|
|
|
|
+import com.persagy.dmp.codetable.entity.CodeTableData;
|
|
import com.persagy.dmp.common.constant.CommonConstant;
|
|
import com.persagy.dmp.common.constant.CommonConstant;
|
|
import com.persagy.dmp.common.constant.ValidEnum;
|
|
import com.persagy.dmp.common.constant.ValidEnum;
|
|
import com.persagy.dmp.common.context.AppContext;
|
|
import com.persagy.dmp.common.context.AppContext;
|
|
@@ -24,7 +29,6 @@ import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
|
|
-import com.persagy.dmp.rwd.basic.dto.RequestData;
|
|
|
|
import com.persagy.dmp.rwd.basic.utils.DigitalCommonUtils;
|
|
import com.persagy.dmp.rwd.basic.utils.DigitalCommonUtils;
|
|
import com.persagy.dmp.rwd.basic.utils.DigitalMessageHelper;
|
|
import com.persagy.dmp.rwd.basic.utils.DigitalMessageHelper;
|
|
import com.persagy.dmp.rwd.define.service.IObjectInfoService;
|
|
import com.persagy.dmp.rwd.define.service.IObjectInfoService;
|
|
@@ -51,31 +55,30 @@ import java.util.stream.Collectors;
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
|
|
|
- private final ObjectDigitalMapper dao;
|
|
|
|
|
|
+ private final ObjectDigitalMapper objectDigitalMapper;
|
|
private final DigitalMessageHelper messageSender;
|
|
private final DigitalMessageHelper messageSender;
|
|
private final IObjectInfoService infoService;
|
|
private final IObjectInfoService infoService;
|
|
private final IObjectTypeService typeService;
|
|
private final IObjectTypeService typeService;
|
|
- private final ObjectDigitalMapper objectDigitalMapper;
|
|
|
|
private final ObjectRelationMapper objectRelationMapper;
|
|
private final ObjectRelationMapper objectRelationMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ObjectDigital load(String id) {
|
|
public ObjectDigital load(String id) {
|
|
- return dao.selectById(id);
|
|
|
|
|
|
+ return objectDigitalMapper.selectById(id);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<ObjectDigital> queryByCondition(Wrapper<ObjectDigital> queryWrapper) {
|
|
public List<ObjectDigital> queryByCondition(Wrapper<ObjectDigital> queryWrapper) {
|
|
- return dao.selectList(queryWrapper);
|
|
|
|
|
|
+ return objectDigitalMapper.selectList(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Integer queryCount(Wrapper<ObjectDigital> queryWrapper) {
|
|
public Integer queryCount(Wrapper<ObjectDigital> queryWrapper) {
|
|
- return dao.selectCount(queryWrapper);
|
|
|
|
|
|
+ return objectDigitalMapper.selectCount(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Page queryByCondition(Page page, Wrapper<ObjectDigital> queryWrapper) {
|
|
public Page queryByCondition(Page page, Wrapper<ObjectDigital> queryWrapper) {
|
|
- return dao.selectPage(page, queryWrapper);
|
|
|
|
|
|
+ return objectDigitalMapper.selectPage(page, queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -99,7 +102,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
vo.setObjType(typeMap.get(vo.getClassCode()));
|
|
vo.setObjType(typeMap.get(vo.getClassCode()));
|
|
vo.setValid(ValidEnum.TRUE.getType());
|
|
vo.setValid(ValidEnum.TRUE.getType());
|
|
// 新增
|
|
// 新增
|
|
- dao.insert(vo);
|
|
|
|
|
|
+ objectDigitalMapper.insert(vo);
|
|
// 新增后消息
|
|
// 新增后消息
|
|
messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_INSERT, null, vo, false);
|
|
messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_INSERT, null, vo, false);
|
|
});
|
|
});
|
|
@@ -118,7 +121,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
Set<String> fieldSet = ReflectUtil.getFieldMap(ObjectDigital.class).keySet();
|
|
Set<String> fieldSet = ReflectUtil.getFieldMap(ObjectDigital.class).keySet();
|
|
//查询数据库中存在的数据
|
|
//查询数据库中存在的数据
|
|
List<String> idList = CollUtil.getFieldValues(voList, BaseEntity.PROP_ID, String.class);
|
|
List<String> idList = CollUtil.getFieldValues(voList, BaseEntity.PROP_ID, String.class);
|
|
- List<ObjectDigital> dbList = dao.selectBatchIds(idList);
|
|
|
|
|
|
+ List<ObjectDigital> dbList = objectDigitalMapper.selectBatchIds(idList);
|
|
Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
|
|
Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
|
|
|
|
|
|
//填充classCode
|
|
//填充classCode
|
|
@@ -143,7 +146,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
remove(newDbVO,remove,fieldSet);
|
|
remove(newDbVO,remove,fieldSet);
|
|
|
|
|
|
// 修改
|
|
// 修改
|
|
- dao.updateById(newDbVO);
|
|
|
|
|
|
+ objectDigitalMapper.updateById(newDbVO);
|
|
resultList.add(newDbVO);
|
|
resultList.add(newDbVO);
|
|
// 修改后消息
|
|
// 修改后消息
|
|
messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_UPDATE, dbVO, newDbVO, false);
|
|
messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_UPDATE, dbVO, newDbVO, false);
|
|
@@ -156,7 +159,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
if(CollUtil.isEmpty(idList)) {
|
|
if(CollUtil.isEmpty(idList)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- List<ObjectDigital> dbList = dao.selectBatchIds(idList);
|
|
|
|
|
|
+ List<ObjectDigital> dbList = objectDigitalMapper.selectBatchIds(idList);
|
|
Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
|
|
Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
|
|
idList.forEach(id -> {
|
|
idList.forEach(id -> {
|
|
ObjectDigital dbVO = MapUtil.get(dbMap, id, ObjectDigital.class);
|
|
ObjectDigital dbVO = MapUtil.get(dbMap, id, ObjectDigital.class);
|
|
@@ -168,7 +171,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
ObjectDigital vo = new ObjectDigital();
|
|
ObjectDigital vo = new ObjectDigital();
|
|
vo.setId(id);
|
|
vo.setId(id);
|
|
vo.setValid(ValidEnum.FALSE.getType());
|
|
vo.setValid(ValidEnum.FALSE.getType());
|
|
- dao.updateById(vo);
|
|
|
|
|
|
+ objectDigitalMapper.updateById(vo);
|
|
// 删除后消息
|
|
// 删除后消息
|
|
dbVO.setValid(ValidEnum.FALSE.getType());
|
|
dbVO.setValid(ValidEnum.FALSE.getType());
|
|
messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_DELETE, null, dbVO, false);
|
|
messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_DELETE, null, dbVO, false);
|
|
@@ -224,10 +227,108 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
// 2.使用Fl2Sp关系查询楼层下的空间
|
|
// 2.使用Fl2Sp关系查询楼层下的空间
|
|
requestData.setRelCode(DigitalRelCode.FL_2_SP.getIndex());
|
|
requestData.setRelCode(DigitalRelCode.FL_2_SP.getIndex());
|
|
requestData.setObjType(DigitalObjectType.SPACE.getIndex());
|
|
requestData.setObjType(DigitalObjectType.SPACE.getIndex());
|
|
|
|
+ requestData.setRelId(requestData.getFloorId());
|
|
List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByFloorIdAndRoomFuncType(requestData);
|
|
List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByFloorIdAndRoomFuncType(requestData);
|
|
return commonAnalysisPageResult(dataResult);
|
|
return commonAnalysisPageResult(dataResult);
|
|
}
|
|
}
|
|
/***
|
|
/***
|
|
|
|
+ * Description:查询指定空间下所有指定对象类型的设备
|
|
|
|
+ * @param requestData : 请求参数
|
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/8/30 17:03
|
|
|
|
+ * Update By lijie 2021/8/30 17:03
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public CommonResult<List<ObjectDigital>> queryEquipListBySpaceIdAndClassCode(RequestData requestData) {
|
|
|
|
+ // 1.计算分页参数
|
|
|
|
+ computePageParam(requestData);
|
|
|
|
+ // 2.使用Eq2Sp关系查询楼层下的空间
|
|
|
|
+ requestData.setRelCode(DigitalRelCode.EQ_2_SP.getIndex());
|
|
|
|
+ requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
|
|
|
|
+ requestData.setRelId(requestData.getSpaceId());
|
|
|
|
+ List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByRelIdAndClassCode(requestData);
|
|
|
|
+ return commonAnalysisPageResult(dataResult);
|
|
|
|
+ }
|
|
|
|
+ /***
|
|
|
|
+ * Description: 按类型编码查询所有设备
|
|
|
|
+ * @param requestData : 请求参数
|
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/8/30 9:41
|
|
|
|
+ * Update By lijie 2021/8/30 9:41
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public CommonResult<List<ObjectDigital>> queryEquipListByClassCode(RequestData requestData) {
|
|
|
|
+ // 1.计算分页参数
|
|
|
|
+ computePageParam(requestData);
|
|
|
|
+ // 2.使用Fl2Sp关系查询楼层下的空间
|
|
|
|
+ requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
|
|
|
|
+ List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryEquipListByClassCode(requestData);
|
|
|
|
+ return commonAnalysisPageResult(dataResult);
|
|
|
|
+ }
|
|
|
|
+ /***
|
|
|
|
+ * Description: 按系统查询系统下所有设备
|
|
|
|
+ * @param requestData : 请求参数
|
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/8/30 9:41
|
|
|
|
+ * Update By lijie 2021/8/30 9:41
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public CommonResult<List<ObjectDigital>> queryEquipListBySystemId(RequestData requestData) {
|
|
|
|
+ // 1.计算分页参数
|
|
|
|
+ computePageParam(requestData);
|
|
|
|
+ // 2.使用Sy2Eq关系查询系统下的设备
|
|
|
|
+ requestData.setRelId(requestData.getSystemId());
|
|
|
|
+ requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
|
|
|
|
+ requestData.setRelCode(DigitalRelCode.SY_2_EQ.getIndex());
|
|
|
|
+ List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByRelIdAndClassCode(requestData);
|
|
|
|
+ return commonAnalysisPageResult(dataResult);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /***
|
|
|
|
+ * Description: 支持按指定空间功能类型查询此空间类型及其下级类型的所有空间列表
|
|
|
|
+ * @param requestData : 请求参数
|
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/8/30 9:41
|
|
|
|
+ * Update By lijie 2021/8/30 9:41
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public CommonResult<List<ObjectDigital>> querySpaceListByRoomFuncType(RequestData requestData) {
|
|
|
|
+ // 1.计算分页参数
|
|
|
|
+ computePageParam(requestData);
|
|
|
|
+ // 2.根据空间功能类型查询其下级空间功能类型
|
|
|
|
+ List<CodeTableData> codeTableDatas = CodeTableDataFacade
|
|
|
|
+ .queryCodeTableDatasByParentCode(AppContext.getContext().getGroupCode(),
|
|
|
|
+ AppContext.getContext().getProjectId(),
|
|
|
|
+ AppContext.getContext().getAppId(),
|
|
|
|
+ AppContext.getContext().getAccountId(),
|
|
|
|
+ RequestData.builder()
|
|
|
|
+ .typeCode(CodeTableTypeEnum.SPACE.getIndex())
|
|
|
|
+ .parentCode(requestData.getRoomFuncType())
|
|
|
|
+ .build());
|
|
|
|
+ if (CollUtil.isEmpty(codeTableDatas)){
|
|
|
|
+ return ResultHelper.multi(new ArrayList<>(),0L);
|
|
|
|
+ }
|
|
|
|
+ // 3.根据分页参数及空间功能类型code数组查询对象
|
|
|
|
+ Set<String> codes = codeTableDatas.stream()
|
|
|
|
+ .map(CodeTableData::getCode)
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
+ QueryWrapper<ObjectDigital> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(ObjectDigital.PROP_VALID,true);
|
|
|
|
+ queryWrapper.eq(StrUtil.toUnderlineCase(CommonConstant.QUERY_GROUPCODE),AppContext.getContext().getGroupCode());
|
|
|
|
+ if (StrUtil.isNotBlank(requestData.getProjectId())){
|
|
|
|
+ queryWrapper.eq(StrUtil.toUnderlineCase(CommonConstant.QUERY_PROJECTID),requestData.getProjectId());
|
|
|
|
+ }
|
|
|
|
+ queryWrapper.in("JSON_UNQUOTE(JSON_EXTRACT(infos,'$.roomFuncType'))",codes);
|
|
|
|
+ Page<ObjectDigital> page = new Page<>(requestData.getPage(), requestData.getSize(), true);
|
|
|
|
+ Page<ObjectDigital> digitalPage = objectDigitalMapper.selectPage(page, queryWrapper);
|
|
|
|
+ return ResultHelper.multi(digitalPage.getRecords(),digitalPage.getTotal());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /***
|
|
* Description: 通用处理分页数据方法
|
|
* Description: 通用处理分页数据方法
|
|
* @param dataResult : 分页数据
|
|
* @param dataResult : 分页数据
|
|
* @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
* @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
@@ -468,8 +569,8 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
String objType = objTypeMap.get(vo.getClassCode());
|
|
String objType = objTypeMap.get(vo.getClassCode());
|
|
//设置通用信息点
|
|
//设置通用信息点
|
|
if(!objType.equals(vo.getClassCode())){
|
|
if(!objType.equals(vo.getClassCode())){
|
|
- Map<String, ObjectInfoDefine> commonInfoDefineMap = allInfoMap.get(objType);
|
|
|
|
- if(commonInfoDefineMap!=null || commonInfoDefineMap.size()>0){
|
|
|
|
|
|
+ Map<String, ObjectInfoDefine> commonInfoDefineMap = allInfoMap.getOrDefault(objType,new HashMap<>());
|
|
|
|
+ if(null!=commonInfoDefineMap && commonInfoDefineMap.size()>0){
|
|
infoMap.putAll(commonInfoDefineMap);
|
|
infoMap.putAll(commonInfoDefineMap);
|
|
}
|
|
}
|
|
}
|
|
}
|