feat(fire-check): 添加点检记录权限控制和菜单路径过滤功能
parent
4adca5f634
commit
0391e712a0
|
|
@ -69,5 +69,10 @@ public class FireCheckRecordController {
|
|||
public PageResponse<FireCheckRecordCO> getCheckRecordPageH5(@Validated @RequestBody FireCheckRecordPagePointQry qry) {
|
||||
return fireCheckRecordService.getCheckRecordPageH5(qry);
|
||||
}
|
||||
@ApiOperation("和H5扫码点位显示检查记录)")
|
||||
@PostMapping("/getCheckRecordPageH5New")
|
||||
public PageResponse<FireCheckRecordInfoCO> getCheckRecordPageH5New(@Validated @RequestBody FireCheckRecordPagePointQry qry) {
|
||||
return fireCheckRecordService.getCheckRecordPageH5New(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.zcloud.fire.check.command.convertor;
|
|||
|
||||
import com.zcloud.fire.check.dto.clientobject.FireBackCheckRecordCO;
|
||||
import com.zcloud.fire.check.dto.clientobject.FireCheckRecordCO;
|
||||
import com.zcloud.fire.check.dto.clientobject.FireCheckRecordInfoCO;
|
||||
import com.zcloud.fire.check.dto.clientobject.FireCheckRecordUserCO;
|
||||
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO;
|
||||
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordUserDO;
|
||||
|
|
@ -26,5 +27,6 @@ public interface FireCheckRecordCoConvertor {
|
|||
|
||||
List<FireBackCheckRecordCO> converDOsToBackRecordCOs(List<FireCheckRecordDO> data);
|
||||
|
||||
List<FireCheckRecordInfoCO> converDOsToBackRecordInfoCOs(List<FireCheckRecordDO> data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,9 +19,7 @@ import lombok.AllArgsConstructor;
|
|||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -183,23 +181,110 @@ public class FireCheckRecordQueryExe {
|
|||
if(CollUtil.isEmpty(examCenterCOS)){
|
||||
return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
/* //组装点位名称 和区域名称
|
||||
List<String> fireCheckRecordIdList = examCenterCOS.stream().map(FireCheckRecordCO::getFireRecordId).collect(Collectors.toList());
|
||||
List<FireCheckRecordPointDO> fireCheckRecordPointDOList =fireCheckRecordPointRepository.getCheckRecordPointListByCheckRecordIds(fireCheckRecordIdList);
|
||||
//按照fireRecordId进行分组
|
||||
Map<String, FireCheckRecordPointDO> fireCheckRecordPointDOMap = fireCheckRecordPointDOList.stream()
|
||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public PageResponse<FireCheckRecordInfoCO> getCheckRecordPageH5New(FireCheckRecordPagePointQry qry) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
PageResponse<FireCheckRecordDO> pageResponse = fireCheckRecordRepository.getCheckRecordPageH5New(params);
|
||||
|
||||
List<FireCheckRecordInfoCO> resultCOList = fireCheckRecordCoConvertor.converDOsToBackRecordInfoCOs(pageResponse.getData());
|
||||
if(CollUtil.isEmpty(resultCOList)){
|
||||
return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
// 提取所有记录ID用于批量查询
|
||||
List<String> fireRecordIdList = resultCOList.stream()
|
||||
.map(FireCheckRecordInfoCO::getFireRecordId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 批量查询其他隐患信息
|
||||
batchQueryAndSetOtherHiddenInfo(resultCOList, fireRecordIdList);
|
||||
|
||||
// 批量查询设备检查信息及对应隐患
|
||||
batchQueryAndSetDeviceInfo(resultCOList, fireRecordIdList);
|
||||
|
||||
return PageResponse.of(resultCOList, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
/**
|
||||
* 批量查询并设置其他隐患信息
|
||||
*/
|
||||
private void batchQueryAndSetOtherHiddenInfo(List<FireCheckRecordInfoCO> resultCOList, List<String> fireRecordIdList) {
|
||||
if (CollUtil.isEmpty(fireRecordIdList)) {
|
||||
return;
|
||||
}
|
||||
List<FireCheckRecordHiddenDO> otherHiddenList = fireCheckRecordHiddenRepository
|
||||
.getChecKRecordHiddenListByRecordIdList(fireRecordIdList, HiddenCheckTypeEnum.OTHER_HIDDEN.getCode());
|
||||
|
||||
if (CollUtil.isEmpty(otherHiddenList)) {
|
||||
return;
|
||||
}
|
||||
// 按记录ID分组其他隐患信息
|
||||
Map<String, List<FireCheckRecordHiddenDO>> otherHiddenGroupMap = otherHiddenList.stream()
|
||||
.collect(Collectors.groupingBy(FireCheckRecordHiddenDO::getFireRecordId));
|
||||
// 设置每个记录的其他隐患信息
|
||||
resultCOList.forEach(recordCO -> {
|
||||
List<FireCheckRecordHiddenDO> hiddenList = otherHiddenGroupMap.get(recordCO.getFireRecordId());
|
||||
if (CollUtil.isNotEmpty(hiddenList)) {
|
||||
recordCO.setFireCheckRecordHiddenList(fireCheckRecordHiddenCoConvertor.converDOsToCOs(hiddenList));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询并设置设备检查信息及对应隐患
|
||||
*/
|
||||
private void batchQueryAndSetDeviceInfo(List<FireCheckRecordInfoCO> resultCOList, List<String> fireRecordIdList) {
|
||||
if (CollUtil.isEmpty(fireRecordIdList)) {
|
||||
return;
|
||||
}
|
||||
// 批量查询所有设备检查记录
|
||||
List<FireCheckRecordDeviceDO> deviceRecordList = fireCheckRecordDeviceRepository
|
||||
.getCheckRecordDeviceListByRecordIdList(fireRecordIdList);
|
||||
|
||||
if (CollUtil.isEmpty(deviceRecordList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 按记录ID分组设备检查信息
|
||||
Map<String, List<FireCheckRecordDeviceDO>> deviceGroupMap = deviceRecordList.stream()
|
||||
.collect(Collectors.groupingBy(FireCheckRecordDeviceDO::getFireRecordId));
|
||||
|
||||
// 提取所有设备记录ID用于查询设备隐患
|
||||
List<String> deviceIdList = deviceRecordList.stream()
|
||||
.map(FireCheckRecordDeviceDO::getFireRecordDeviceId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 查询设备相关的隐患信息
|
||||
List<FireCheckRecordHiddenDO> deviceHiddenList = CollUtil.isNotEmpty(deviceIdList) ?
|
||||
fireCheckRecordHiddenRepository.getChecKRecordDeviceList(deviceIdList) : Collections.emptyList();
|
||||
|
||||
// 按设备ID分组隐患信息
|
||||
Map<String, FireCheckRecordHiddenDO> deviceHiddenMap = deviceHiddenList.stream()
|
||||
.collect(Collectors.toMap(
|
||||
FireCheckRecordPointDO::getFireRecordId,
|
||||
FireCheckRecordHiddenDO::getFireRecordDeviceId,
|
||||
Function.identity(),
|
||||
(existing, replacement) -> existing // 保留第一个值,丢弃后续重复项
|
||||
(existing, replacement) -> existing // 处理重复key的情况
|
||||
));
|
||||
|
||||
examCenterCOS.forEach(info -> {
|
||||
info.setFirePointNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFirePointName());
|
||||
info.setFireRegionNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFireRegionName());
|
||||
// 为每个记录设置设备检查信息和对应隐患
|
||||
resultCOList.forEach(recordCO -> {
|
||||
List<FireCheckRecordDeviceDO> deviceDOList = deviceGroupMap.get(recordCO.getFireRecordId());
|
||||
if (CollUtil.isNotEmpty(deviceDOList)) {
|
||||
List<FireCheckRecordDeviceCO> deviceCOList = fireCheckRecordDeviceCoConvertor.converDOsToCOs(deviceDOList);
|
||||
|
||||
});*/
|
||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
// 为每个设备设置对应的隐患信息
|
||||
deviceCOList.forEach(deviceCO -> {
|
||||
FireCheckRecordHiddenDO hiddenDO = deviceHiddenMap.get(deviceCO.getFireRecordDeviceId());
|
||||
if (hiddenDO != null) {
|
||||
deviceCO.setFireCheckRecordHiddenCO(fireCheckRecordHiddenCoConvertor.convertToCO(hiddenDO));
|
||||
}
|
||||
});
|
||||
|
||||
recordCO.setFireCheckRecordDeviceList(deviceCOList);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,5 +80,10 @@ public class FireCheckRecordServiceImpl implements FireCheckRecordServiceI {
|
|||
public PageResponse<FireCheckRecordCO> getCheckRecordPageH5(FireCheckRecordPagePointQry qry) {
|
||||
return fireCheckRecordQueryExe.getCheckRecordPageH5(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<FireCheckRecordInfoCO> getCheckRecordPageH5New(FireCheckRecordPagePointQry qry) {
|
||||
return fireCheckRecordQueryExe.getCheckRecordPageH5New(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,5 +33,6 @@ public interface FireCheckRecordServiceI {
|
|||
|
||||
PageResponse<FireCheckRecordCO> getCheckRecordPageH5(FireCheckRecordPagePointQry qry);
|
||||
|
||||
PageResponse<FireCheckRecordInfoCO> getCheckRecordPageH5New(FireCheckRecordPagePointQry qry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,5 +29,6 @@ public interface FireCheckRecordMapper extends BaseMapper<FireCheckRecordDO> {
|
|||
|
||||
FireCheckRecordDO getCheckRecordInfo(String fireRecordId);
|
||||
|
||||
IPage<FireCheckRecordDO> getCheckRecordPageH5New(IPage<FireCheckRecordDO> iPage, Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,5 +21,7 @@ public interface FireCheckRecordDeviceRepository extends BaseRepository<FireChec
|
|||
List<FireCheckRecordDeviceDO> getCheckRecordDeviceList(String fireRecordId);
|
||||
|
||||
void updateNormalNull(Long id);
|
||||
|
||||
List<FireCheckRecordDeviceDO> getCheckRecordDeviceListByRecordIdList(List<String> fireRecordIdList);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,5 +40,7 @@ public interface FireCheckRecordHiddenRepository extends BaseRepository<FireChec
|
|||
List<FireCheckRecordHiddenDO> getHiddenList(@NotEmpty(message = "检查记录信息不能为空") String fireRecordId);
|
||||
|
||||
List<FireCheckRecordHiddenDO> getByOtherCheckRecordId(@NotEmpty(message = "检查记录信息不能为空") String fireRecordId);
|
||||
|
||||
List<FireCheckRecordHiddenDO> getChecKRecordHiddenListByRecordIdList(List<String> fireRecordIdList, Integer hiddenCheckType);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,5 +32,6 @@ public interface FireCheckRecordRepository extends BaseRepository<FireCheckRecor
|
|||
|
||||
FireCheckRecordDO getCheckRecordInfoByFireRecordId(String fireRecordId);
|
||||
|
||||
PageResponse<FireCheckRecordDO> getCheckRecordPageH5New(Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,5 +61,13 @@ public class FireCheckRecordDeviceRepositoryImpl extends BaseRepositoryImpl<Fire
|
|||
public void updateNormalNull(Long id) {
|
||||
fireCheckRecordDeviceMapper.updateNormalNull(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FireCheckRecordDeviceDO> getCheckRecordDeviceListByRecordIdList(List<String> fireRecordIdList) {
|
||||
QueryWrapper<FireCheckRecordDeviceDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("fire_record_id", fireRecordIdList);
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
return fireCheckRecordDeviceMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,16 @@ public class FireCheckRecordHiddenRepositoryImpl extends BaseRepositoryImpl<Fire
|
|||
return fireCheckRecordHiddenMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FireCheckRecordHiddenDO> getChecKRecordHiddenListByRecordIdList(List<String> fireRecordIdList, Integer hiddenCheckType) {
|
||||
QueryWrapper<FireCheckRecordHiddenDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("fire_record_id", fireRecordIdList);
|
||||
if(hiddenCheckType != null){
|
||||
queryWrapper.eq("hidden_check_type", hiddenCheckType);
|
||||
}
|
||||
return fireCheckRecordHiddenMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FireCheckRecordHiddenDO listByFireCheckRecordDeviceId(String fireRecordDeviceId) {
|
||||
QueryWrapper<FireCheckRecordHiddenDO> queryWrapper = new QueryWrapper<>();
|
||||
|
|
|
|||
|
|
@ -101,6 +101,13 @@ public class FireCheckRecordRepositoryImpl extends BaseRepositoryImpl<FireCheckR
|
|||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<FireCheckRecordDO> getCheckRecordPageH5New(Map<String, Object> params) {
|
||||
IPage<FireCheckRecordDO> iPage = new Query<FireCheckRecordDO>().getPage(params);
|
||||
IPage<FireCheckRecordDO> result = fireCheckRecordMapper.getCheckRecordPageH5New(iPage, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public FireCheckRecordDO getCheckRecordInfoByFireRecordId(String fireRecordId) {
|
||||
QueryWrapper<FireCheckRecordDO> queryWrapper = new QueryWrapper<>();
|
||||
|
|
|
|||
|
|
@ -81,6 +81,23 @@
|
|||
order by cr.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getCheckRecordPageH5New" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO">
|
||||
select cr.*,
|
||||
GROUP_CONCAT(DISTINCT u.name) AS userNameList,
|
||||
GROUP_CONCAT(DISTINCT d.name) AS departmentName
|
||||
from fire_check_record cr
|
||||
left join fire_check_record_user cru on cr.fire_record_id = cru.fire_record_id and cru.delete_enum = 'FALSE'
|
||||
left join user u on cru.user_id = u.id
|
||||
left join department d on cru.department_id = d.id
|
||||
left join fire_check_record_point cfp on cr.fire_record_id = cfp.fire_record_id and cfp.delete_enum = 'FALSE'
|
||||
|
||||
where cr.delete_enum = 'FALSE'
|
||||
and cr.finished_flag = 1
|
||||
and cfp.fire_point_id=#{params.firePointId}
|
||||
group by cr.fire_record_id
|
||||
order by cr.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getCheckRecordInfo" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO">
|
||||
select cr.*,
|
||||
GROUP_CONCAT(DISTINCT u.name) AS userNameList,
|
||||
|
|
|
|||
Loading…
Reference in New Issue