|
|
@@ -7,9 +7,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.zksy.base.domain.EquipmentBase;
|
|
|
import com.zksy.base.mapper.EquipmentBaseMapper;
|
|
|
import com.zksy.base.warning.domain.*;
|
|
|
+import com.zksy.base.warning.domain.vo.MobileWarningParticipantVO;
|
|
|
+import com.zksy.base.warning.dto.MobileWarningQuery;
|
|
|
import com.zksy.base.warning.mapper.*;
|
|
|
import com.zksy.base.warning.service.EarlyWarningService;
|
|
|
import com.zksy.base.warning.service.WarningSupervisionNotifier;
|
|
|
+import com.zksy.base.warning.service.WarningProcessAttachmentService;
|
|
|
+import com.zksy.base.warning.service.WarningAccessService;
|
|
|
+import com.zksy.base.warning.service.WarningParticipantService;
|
|
|
import com.zksy.common.core.domain.entity.SysDictData;
|
|
|
import com.zksy.common.core.domain.entity.SysUser;
|
|
|
import com.zksy.system.mapper.SysUserMapper;
|
|
|
@@ -63,23 +68,31 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
private MinioFileStorageService minioFileStorageService;
|
|
|
@Autowired
|
|
|
private SysUserMapper sysUserMapper;
|
|
|
+ @Autowired private WarningAccessService warningAccess;
|
|
|
+ @Autowired private WarningParticipantService participants;
|
|
|
@Autowired
|
|
|
private ObjectProvider<SmsTemplate> smsTemplateProvider;
|
|
|
@Autowired
|
|
|
private SmsProperties smsProperties;
|
|
|
@Autowired
|
|
|
private WarningSupervisionNotifier supervisionNotifier;
|
|
|
+ @Autowired
|
|
|
+ private WarningProcessAttachmentService processAttachmentService;
|
|
|
|
|
|
@Override
|
|
|
public IPage<Map<String, Object>> getWarningList(Page<?> page, String warningNo, String warningType, String warningLevel, String status) {
|
|
|
reference.validateStatus(status);
|
|
|
- return earlyWarningMapper.selectWarningList(page, warningNo, warningType, warningLevel, status);
|
|
|
+ IPage<Map<String, Object>> result = earlyWarningMapper.selectWarningList(page, warningNo, warningType, warningLevel, status, warningAccess.current());
|
|
|
+ result.getRecords().forEach(this::addWorkflowActions);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<Map<String, Object>> searchWarnings(Page<?> page, String warningNo, String warningType, String warningLevel, String status, String publisher, String ownershipUnit, LocalDateTime startTime, LocalDateTime endTime, String excludePublisher, String deviceCode, String deviceName, boolean releaseOrder) {
|
|
|
reference.validateStatus(status);
|
|
|
- return earlyWarningMapper.searchWarnings(page, warningNo, warningType, warningLevel, status, publisher, ownershipUnit, startTime, endTime, excludePublisher, deviceCode, deviceName, releaseOrder);
|
|
|
+ IPage<Map<String, Object>> result = earlyWarningMapper.searchWarnings(page, warningNo, warningType, warningLevel, status, publisher, ownershipUnit, startTime, endTime, excludePublisher, deviceCode, deviceName, releaseOrder, warningAccess.current());
|
|
|
+ result.getRecords().forEach(this::addWorkflowActions);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -98,13 +111,14 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
throw new ServiceException("待办类型只能为 TODO、DONE 或 NOTICE");
|
|
|
}
|
|
|
IPage<Map<String, Object>> result = earlyWarningMapper.selectMyTasks(page, currentUser(),
|
|
|
- String.valueOf(SecurityUtils.getUserId()), filters);
|
|
|
+ String.valueOf(SecurityUtils.getUserId()), filters, warningAccess.current());
|
|
|
result.getRecords().forEach(this::addWorkflowActions);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Object> getWarningFullDetail(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
Map<String, Object> basicInfo = earlyWarningMapper.selectWarningDetail(warningId);
|
|
|
if (basicInfo == null) {
|
|
|
@@ -124,6 +138,60 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public IPage<Map<String, Object>> getMobileWarningPage(MobileWarningQuery query, boolean pendingOnly) {
|
|
|
+ MobileWarningQuery safeQuery = query == null ? new MobileWarningQuery() : query;
|
|
|
+ if (!isBlank(safeQuery.getStatus()) && EarlyWarningStatusEnum.of(safeQuery.getStatus()) == null) {
|
|
|
+ throw new ServiceException("预警状态不正确");
|
|
|
+ }
|
|
|
+ Page<Map<String, Object>> page = new Page<>(safeQuery.getPageNum(), safeQuery.getPageSize());
|
|
|
+ IPage<Map<String, Object>> result = earlyWarningMapper.selectMobileWarnings(page, warningAccess.current(),
|
|
|
+ trimToNull(safeQuery.getKeyword()), trimToNull(safeQuery.getStatus()),
|
|
|
+ trimToNull(safeQuery.getWarningType()), trimToNull(safeQuery.getWarningLevel()), pendingOnly);
|
|
|
+ result.getRecords().forEach(this::addMobileWorkflowActions);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getMobileWarningDetail(String warningId) {
|
|
|
+ requireMobileWarningVisible(warningId);
|
|
|
+ Map<String, Object> detail = getWarningFullDetail(warningId);
|
|
|
+ if (detail == null) throw new ServiceException("预警不存在");
|
|
|
+ Object basic = detail.get("basicInfo");
|
|
|
+ if (basic instanceof Map) {
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ Map<String, Object> basicInfo = (Map<String, Object>) basic;
|
|
|
+ addMobileWorkflowActions(basicInfo);
|
|
|
+ }
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void requireMobileWarningVisible(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<MobileWarningParticipantVO> getMobileWarningParticipants(String warningId, String role) {
|
|
|
+ return participants.candidates(warningId, role, null, null).stream()
|
|
|
+ .map(user -> new MobileWarningParticipantVO(user.getUserId(), user.getUserName(),
|
|
|
+ isBlank(user.getNickName()) ? user.getUserName() : user.getNickName(), user.getDeptId(),
|
|
|
+ user.getDeptName()))
|
|
|
+ .collect(java.util.stream.Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addMobileWorkflowActions(Map<String, Object> row) {
|
|
|
+ addWorkflowActions(row);
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ List<String> actions = new ArrayList<>((List<String>) row.get("availableActions"));
|
|
|
+ actions.retainAll(Arrays.asList("PUBLISH", "RECEIVE", "START", "HANDLE", "CLEAR", "RETURN"));
|
|
|
+ row.put("availableActions", actions);
|
|
|
+ }
|
|
|
+
|
|
|
+ private String trimToNull(String value) {
|
|
|
+ return isBlank(value) ? null : value.trim();
|
|
|
+ }
|
|
|
+
|
|
|
private Map<String, Object> getGisLocation(Map<String, Object> warningInfo) {
|
|
|
Map<String, Object> gis = new HashMap<>();
|
|
|
|
|
|
@@ -274,6 +342,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean updateWarning(EarlyWarning warning, List<String> alarmIds, List<MultipartFile> files) {
|
|
|
+ warningAccess.requireVisible(warning.getWarningId());
|
|
|
EarlyWarning existing = earlyWarningMapper.selectForUpdate(warning.getWarningId());
|
|
|
WarningWorkflow.requireState(existing, "修改草稿", WarningWorkflow.DRAFT);
|
|
|
reference.validateType(warning.getWarningType());
|
|
|
@@ -314,6 +383,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
throw new ServiceException("关联设备不存在,请重新选择");
|
|
|
}
|
|
|
reference.validateEquipmentType(warning.getWarningType(), equipment.getEquipmentTypeId());
|
|
|
+ warningAccess.requireDeviceVisible(equipment.getEquipmentCode());
|
|
|
warning.setDeviceCode(equipment.getEquipmentCode());
|
|
|
warning.setDeviceName(equipment.getEquipmentName());
|
|
|
// 位置已从预警业务移除,兼容旧客户端时也不再写入。
|
|
|
@@ -323,6 +393,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean deleteWarning(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
WarningWorkflow.requireState(earlyWarningMapper.selectForUpdate(warningId), "删除", WarningWorkflow.DRAFT);
|
|
|
// 先查询附件列表,删除物理文件
|
|
|
List<WarningAttachment> attachments = warningAttachmentMapper.selectList(
|
|
|
@@ -390,16 +461,17 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean publishWarning(String warningId, String requestedHandler, String requestedReviewer) {
|
|
|
+ warningAccess.requirePublisher(warningId);
|
|
|
EarlyWarning warning = earlyWarningMapper.selectForUpdate(warningId);
|
|
|
WarningWorkflow.requireState(warning, "发布", WarningWorkflow.DRAFT);
|
|
|
|
|
|
String assignee = isBlank(requestedHandler) ? warning.getHandler() : requestedHandler.trim();
|
|
|
// 发布不能再自动指派当前登录用户,处置人必须由发布人明确选择或提前保存。
|
|
|
- requireActiveUser(assignee, "处置人");
|
|
|
+ participants.requireCandidate(warningId, "handler", assignee);
|
|
|
String reviewer = isBlank(requestedReviewer)
|
|
|
? (isBlank(warning.getReviewer()) ? currentUser() : warning.getReviewer().trim())
|
|
|
: requestedReviewer.trim();
|
|
|
- requireActiveUser(reviewer, "核查人");
|
|
|
+ participants.requireCandidate(warningId, "reviewer", reviewer);
|
|
|
warning.setReviewer(reviewer);
|
|
|
|
|
|
itemBinding.bind(warning);
|
|
|
@@ -523,6 +595,44 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean submitMobileWarningProcess(String warningId, String processContent, List<String> attachmentTokens,
|
|
|
+ List<String> reasonIds) {
|
|
|
+ List<WarningProcessAttachmentService.UploadInfo> uploads =
|
|
|
+ processAttachmentService.resolve(warningId, attachmentTokens);
|
|
|
+ boolean success = submitWarningProcess(warningId, processContent, Collections.emptyList(), reasonIds);
|
|
|
+ if (!success) return false;
|
|
|
+
|
|
|
+ WarningDisposal disposal = warningDisposalMapper.selectOne(new LambdaQueryWrapper<WarningDisposal>()
|
|
|
+ .eq(WarningDisposal::getWarningId, warningId)
|
|
|
+ .eq(WarningDisposal::getDisposalType, "HANDLE")
|
|
|
+ .orderByDesc(WarningDisposal::getCreateTime)
|
|
|
+ .last("LIMIT 1"));
|
|
|
+ for (WarningProcessAttachmentService.UploadInfo upload : uploads) {
|
|
|
+ WarningAttachment attachment = new WarningAttachment();
|
|
|
+ attachment.setWarningId(warningId);
|
|
|
+ attachment.setDisposalId(disposal == null ? null : disposal.getDisposalId());
|
|
|
+ attachment.setAttachmentStage("PROCESS");
|
|
|
+ attachment.setAttachmentName("[处理反馈] " + (isBlank(upload.getName()) ? "现场图片" : upload.getName()));
|
|
|
+ attachment.setAttachmentUrl(upload.getPath());
|
|
|
+ attachment.setAttachmentType(truncateAttachmentType(upload.getContentType()));
|
|
|
+ attachment.setAttachmentSize(upload.getSize());
|
|
|
+ attachment.setCreateBy(currentUser());
|
|
|
+ attachment.setCreateTime(LocalDateTime.now());
|
|
|
+ warningAttachmentMapper.insert(attachment);
|
|
|
+ }
|
|
|
+ if (!uploads.isEmpty() && TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
|
+ List<String> tokens = new ArrayList<>(attachmentTokens);
|
|
|
+ TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
|
|
+ @Override public void afterCommit() {
|
|
|
+ processAttachmentService.removeTokens(warningId, tokens);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean clearWarning(String warningId, String clearRemark) {
|
|
|
@@ -559,6 +669,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
}
|
|
|
|
|
|
private void requireHandler(EarlyWarning warning) {
|
|
|
+ warningAccess.requireVisible(warning.getWarningId());
|
|
|
if (!SecurityUtils.hasPermi("warning:warning:handle")) {
|
|
|
throw new ServiceException("没有预警处置权限");
|
|
|
}
|
|
|
@@ -572,6 +683,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
}
|
|
|
|
|
|
private void requireReviewer(EarlyWarning warning) {
|
|
|
+ warningAccess.requireVisible(warning.getWarningId());
|
|
|
if (!SecurityUtils.hasPermi("warning:warning:audit")) {
|
|
|
throw new ServiceException("没有预警核验权限");
|
|
|
}
|
|
|
@@ -603,6 +715,12 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
actions.removeAll(Arrays.asList("RECEIVE", "START", "HANDLE"));
|
|
|
}
|
|
|
if (!SecurityUtils.hasPermi("warning:warning:audit")) actions.removeAll(Arrays.asList("CLEAR", "RETURN"));
|
|
|
+ if (!SecurityUtils.hasPermi("warning:warning:publish")) actions.remove("PUBLISH");
|
|
|
+ if (!SecurityUtils.hasPermi("warning:warning:edit")) actions.remove("EDIT");
|
|
|
+ if (!SecurityUtils.hasPermi("warning:warning:remove")) actions.remove("DELETE");
|
|
|
+ if (!SecurityUtils.hasPermi("warning:warning:handle")) actions.remove("UPGRADE");
|
|
|
+ if (!SecurityUtils.hasPermi("warning:warning:supervision")) actions.remove("SUPERVISION");
|
|
|
+ if (!SecurityUtils.hasPermi("warning:warning:instruction")) actions.remove("INSTRUCTION");
|
|
|
if ("DONE".equals(row.get("todo_type"))) actions.clear();
|
|
|
row.put("availableActions", actions);
|
|
|
row.put("statusLabel", WarningWorkflow.label(state));
|
|
|
@@ -612,6 +730,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean uploadReport(String warningId, List<MultipartFile> files) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
EarlyWarning warning = earlyWarningMapper.selectForUpdate(warningId);
|
|
|
WarningWorkflow.requireState(warning, "上传报告", WarningWorkflow.DRAFT, WarningWorkflow.PENDING,
|
|
|
WarningWorkflow.RECEIVED, WarningWorkflow.PROCESSING, WarningWorkflow.HANDLED);
|
|
|
@@ -624,6 +743,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean upgradeWarning(String warningId, String newLevel, String disposalContent) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
EarlyWarning warning = earlyWarningMapper.selectForUpdate(warningId);
|
|
|
WarningWorkflow.requireState(warning, "升级", WarningWorkflow.PENDING, WarningWorkflow.RECEIVED,
|
|
|
WarningWorkflow.PROCESSING, WarningWorkflow.HANDLED);
|
|
|
@@ -676,6 +796,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public WarningSupervision supervisionWarning(String warningId, String supervisionUser, String supervisionContent, String notificationType, String notificationContent, MultipartFile attachment) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
EarlyWarning warning = earlyWarningMapper.selectForUpdate(warningId);
|
|
|
WarningWorkflow.requireState(warning, "督办",
|
|
|
WarningWorkflow.PENDING, WarningWorkflow.RECEIVED, WarningWorkflow.PROCESSING, WarningWorkflow.HANDLED);
|
|
|
@@ -747,6 +868,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean addLeaderInstruction(String warningId, String leaderName, String instructionContent, String smsReceivers) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
WarningWorkflow.requireState(earlyWarningMapper.selectForUpdate(warningId), "添加领导批示",
|
|
|
WarningWorkflow.PENDING, WarningWorkflow.RECEIVED, WarningWorkflow.PROCESSING, WarningWorkflow.HANDLED);
|
|
|
if (isBlank(leaderName) || isBlank(instructionContent)) throw new ServiceException("请填写批示领导和批示内容");
|
|
|
@@ -763,6 +885,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean linkAlarms(String warningId, List<String> alarmIds) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
WarningWorkflow.requireState(earlyWarningMapper.selectForUpdate(warningId), "关联报警",
|
|
|
WarningWorkflow.DRAFT, WarningWorkflow.PENDING, WarningWorkflow.RECEIVED, WarningWorkflow.PROCESSING, WarningWorkflow.HANDLED);
|
|
|
LambdaQueryWrapper<AlarmWarningRel> wrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -784,31 +907,35 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public List<Map<String, Object>> getLinkedAlarms(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
return alarmWarningRelMapper.selectAlarmListByWarningId(warningId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<Map<String, Object>> getDisposalList(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
return warningDisposalMapper.selectDisposalList(warningId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<Map<String, Object>> getDisposalHistory(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
return warningDisposalMapper.selectDisposalList(warningId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<Map<String, Object>> getProcessingWarnings(Page<?> page, String warningType, String warningLevel) {
|
|
|
- return earlyWarningMapper.selectProcessingWarnings(page, warningType, warningLevel);
|
|
|
+ return earlyWarningMapper.selectProcessingWarnings(page, warningType, warningLevel, warningAccess.current());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<Map<String, Object>> getCompletedWarnings(Page<?> page, String warningType, String warningLevel, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
- return earlyWarningMapper.selectCompletedWarnings(page, warningType, warningLevel, startTime, endTime);
|
|
|
+ return earlyWarningMapper.selectCompletedWarnings(page, warningType, warningLevel, startTime, endTime, warningAccess.current());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<Map<String, Object>> getAttachments(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
return getAttachmentList(warningId);
|
|
|
}
|
|
|
|
|
|
@@ -934,7 +1061,9 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public WarningAttachment getAttachment(String attachmentId) {
|
|
|
- return warningAttachmentMapper.selectById(attachmentId);
|
|
|
+ WarningAttachment attachment = warningAttachmentMapper.selectById(attachmentId);
|
|
|
+ if (attachment != null) warningAccess.requireVisible(attachment.getWarningId());
|
|
|
+ return attachment;
|
|
|
}
|
|
|
|
|
|
private void createTodo(String warningId, String userId, String taskName, String todoType, String actionType) {
|
|
|
@@ -953,6 +1082,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public List<WarningSupervision> getSupervisionList(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
return warningSupervisionMapper.selectByWarningId(warningId);
|
|
|
}
|
|
|
|
|
|
@@ -972,6 +1102,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public WarningArchive getArchiveByWarningId(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
LambdaQueryWrapper<WarningArchive> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(WarningArchive::getWarningId, warningId);
|
|
|
return warningArchiveMapper.selectOne(wrapper);
|
|
|
@@ -979,26 +1110,8 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public IPage<WarningArchive> getArchiveList(Page<WarningArchive> page, String warningNo, String warningType, String warningLevel, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
- LambdaQueryWrapper<WarningArchive> wrapper = new LambdaQueryWrapper<>();
|
|
|
-
|
|
|
- if (warningNo != null && !warningNo.isEmpty()) {
|
|
|
- wrapper.like(WarningArchive::getWarningNo, warningNo);
|
|
|
- }
|
|
|
- if (warningType != null && !warningType.isEmpty()) {
|
|
|
- wrapper.eq(WarningArchive::getWarningType, warningType);
|
|
|
- }
|
|
|
- if (warningLevel != null && !warningLevel.isEmpty()) {
|
|
|
- wrapper.eq(WarningArchive::getWarningLevel, warningLevel);
|
|
|
- }
|
|
|
- if (startTime != null) {
|
|
|
- wrapper.ge(WarningArchive::getCreateTime, startTime);
|
|
|
- }
|
|
|
- if (endTime != null) {
|
|
|
- wrapper.le(WarningArchive::getCreateTime, endTime);
|
|
|
- }
|
|
|
-
|
|
|
- wrapper.orderByDesc(WarningArchive::getCreateTime);
|
|
|
- return warningArchiveMapper.selectPage(page, wrapper);
|
|
|
+ return earlyWarningMapper.selectVisibleArchives(page, warningNo, warningType, warningLevel,
|
|
|
+ startTime, endTime, warningAccess.current());
|
|
|
}
|
|
|
|
|
|
private static final Map<String, String> DISPOSAL_TYPE_MAP = new HashMap<>();
|
|
|
@@ -1019,6 +1132,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public List<WarningDisposal> getDisposalProcess(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
LambdaQueryWrapper<WarningDisposal> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(WarningDisposal::getWarningId, warningId);
|
|
|
wrapper.orderByAsc(WarningDisposal::getCreateTime);
|
|
|
@@ -1027,6 +1141,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Object> getProcessDiagram(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
List<Map<String, Object>> nodes = new ArrayList<>();
|
|
|
List<Map<String, Object>> edges = new ArrayList<>();
|
|
|
@@ -1124,6 +1239,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
if (disposal == null) {
|
|
|
return null;
|
|
|
}
|
|
|
+ warningAccess.requireVisible(disposal.getWarningId());
|
|
|
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
result.put("disposalId", disposal.getDisposalId());
|
|
|
@@ -1147,6 +1263,7 @@ public class EarlyWarningServiceImpl extends ServiceImpl<EarlyWarningMapper, Ear
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Object> getProcessStatistics(String warningId) {
|
|
|
+ warningAccess.requireVisible(warningId);
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
|
|
|
List<WarningDisposal> disposals = getDisposalProcess(warningId);
|