feat(fire-check): 添加点检记录权限控制和菜单路径过滤功能
parent
4adca5f634
commit
0391e712a0
|
|
@ -69,5 +69,10 @@ public class FireCheckRecordController {
|
||||||
public PageResponse<FireCheckRecordCO> getCheckRecordPageH5(@Validated @RequestBody FireCheckRecordPagePointQry qry) {
|
public PageResponse<FireCheckRecordCO> getCheckRecordPageH5(@Validated @RequestBody FireCheckRecordPagePointQry qry) {
|
||||||
return fireCheckRecordService.getCheckRecordPageH5(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.FireBackCheckRecordCO;
|
||||||
import com.zcloud.fire.check.dto.clientobject.FireCheckRecordCO;
|
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.dto.clientobject.FireCheckRecordUserCO;
|
||||||
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO;
|
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO;
|
||||||
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordUserDO;
|
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordUserDO;
|
||||||
|
|
@ -26,5 +27,6 @@ public interface FireCheckRecordCoConvertor {
|
||||||
|
|
||||||
List<FireBackCheckRecordCO> converDOsToBackRecordCOs(List<FireCheckRecordDO> data);
|
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.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -183,23 +181,110 @@ public class FireCheckRecordQueryExe {
|
||||||
if(CollUtil.isEmpty(examCenterCOS)){
|
if(CollUtil.isEmpty(examCenterCOS)){
|
||||||
return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
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()
|
|
||||||
.collect(Collectors.toMap(
|
|
||||||
FireCheckRecordPointDO::getFireRecordId,
|
|
||||||
Function.identity(),
|
|
||||||
(existing, replacement) -> existing // 保留第一个值,丢弃后续重复项
|
|
||||||
));
|
|
||||||
|
|
||||||
examCenterCOS.forEach(info -> {
|
|
||||||
info.setFirePointNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFirePointName());
|
|
||||||
info.setFireRegionNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFireRegionName());
|
|
||||||
|
|
||||||
});*/
|
|
||||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
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(
|
||||||
|
FireCheckRecordHiddenDO::getFireRecordDeviceId,
|
||||||
|
Function.identity(),
|
||||||
|
(existing, replacement) -> existing // 处理重复key的情况
|
||||||
|
));
|
||||||
|
|
||||||
|
// 为每个记录设置设备检查信息和对应隐患
|
||||||
|
resultCOList.forEach(recordCO -> {
|
||||||
|
List<FireCheckRecordDeviceDO> deviceDOList = deviceGroupMap.get(recordCO.getFireRecordId());
|
||||||
|
if (CollUtil.isNotEmpty(deviceDOList)) {
|
||||||
|
List<FireCheckRecordDeviceCO> deviceCOList = fireCheckRecordDeviceCoConvertor.converDOsToCOs(deviceDOList);
|
||||||
|
|
||||||
|
// 为每个设备设置对应的隐患信息
|
||||||
|
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) {
|
public PageResponse<FireCheckRecordCO> getCheckRecordPageH5(FireCheckRecordPagePointQry qry) {
|
||||||
return fireCheckRecordQueryExe.getCheckRecordPageH5(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<FireCheckRecordCO> getCheckRecordPageH5(FireCheckRecordPagePointQry qry);
|
||||||
|
|
||||||
|
PageResponse<FireCheckRecordInfoCO> getCheckRecordPageH5New(FireCheckRecordPagePointQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,5 +29,6 @@ public interface FireCheckRecordMapper extends BaseMapper<FireCheckRecordDO> {
|
||||||
|
|
||||||
FireCheckRecordDO getCheckRecordInfo(String fireRecordId);
|
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);
|
List<FireCheckRecordDeviceDO> getCheckRecordDeviceList(String fireRecordId);
|
||||||
|
|
||||||
void updateNormalNull(Long id);
|
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> getHiddenList(@NotEmpty(message = "检查记录信息不能为空") String fireRecordId);
|
||||||
|
|
||||||
List<FireCheckRecordHiddenDO> getByOtherCheckRecordId(@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);
|
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) {
|
public void updateNormalNull(Long id) {
|
||||||
fireCheckRecordDeviceMapper.updateNormalNull(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);
|
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
|
@Override
|
||||||
public FireCheckRecordHiddenDO listByFireCheckRecordDeviceId(String fireRecordDeviceId) {
|
public FireCheckRecordHiddenDO listByFireCheckRecordDeviceId(String fireRecordDeviceId) {
|
||||||
QueryWrapper<FireCheckRecordHiddenDO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<FireCheckRecordHiddenDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,13 @@ public class FireCheckRecordRepositoryImpl extends BaseRepositoryImpl<FireCheckR
|
||||||
return PageHelper.pageToResponse(result, result.getRecords());
|
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
|
@Override
|
||||||
public FireCheckRecordDO getCheckRecordInfoByFireRecordId(String fireRecordId) {
|
public FireCheckRecordDO getCheckRecordInfoByFireRecordId(String fireRecordId) {
|
||||||
QueryWrapper<FireCheckRecordDO> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<FireCheckRecordDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,23 @@
|
||||||
order by cr.create_time desc
|
order by cr.create_time desc
|
||||||
</select>
|
</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 id="getCheckRecordInfo" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO">
|
||||||
select cr.*,
|
select cr.*,
|
||||||
GROUP_CONCAT(DISTINCT u.name) AS userNameList,
|
GROUP_CONCAT(DISTINCT u.name) AS userNameList,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue