From 801854b46b8ad6b003fc767e0cf85367de8843eb Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 28 七月 2026 18:12:47 +0800
Subject: [PATCH] fix: 安全设施巡检修改
---
src/main/java/com/ruoyi/safe/service/impl/SafeHiddenServiceImpl.java | 108 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 86 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/ruoyi/safe/service/impl/SafeHiddenServiceImpl.java b/src/main/java/com/ruoyi/safe/service/impl/SafeHiddenServiceImpl.java
index 9e4aa57..0856823 100644
--- a/src/main/java/com/ruoyi/safe/service/impl/SafeHiddenServiceImpl.java
+++ b/src/main/java/com/ruoyi/safe/service/impl/SafeHiddenServiceImpl.java
@@ -3,23 +3,31 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.project.system.domain.SysNotice;
-import com.ruoyi.project.system.mapper.SysNoticeMapper;
-import com.ruoyi.project.system.service.ISysNoticeService;
-import com.ruoyi.project.system.service.impl.SysNoticeServiceImpl;
-import com.ruoyi.safe.dto.SafeHiddenDto;
-import com.ruoyi.safe.pojo.SafeHidden;
-import com.ruoyi.safe.mapper.SafeHiddenMapper;
-import com.ruoyi.safe.service.SafeHiddenService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.mapper.StorageAttachmentMapper;
+import com.ruoyi.basic.mapper.StorageBlobMapper;
+import com.ruoyi.basic.pojo.StorageAttachment;
+import com.ruoyi.project.system.domain.SysNotice;
+import com.ruoyi.project.system.service.ISysDictDataService;
+import com.ruoyi.project.system.service.ISysNoticeService;
+import com.ruoyi.safe.dto.SafeHiddenDto;
+import com.ruoyi.safe.mapper.SafeHiddenFileMapper;
+import com.ruoyi.safe.mapper.SafeHiddenMapper;
+import com.ruoyi.safe.pojo.SafeHidden;
+import com.ruoyi.safe.pojo.SafeHiddenFile;
+import com.ruoyi.safe.service.SafeHiddenService;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -31,13 +39,15 @@
*/
@Service
@Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
public class SafeHiddenServiceImpl extends ServiceImpl<SafeHiddenMapper, SafeHidden> implements SafeHiddenService {
- @Autowired
- private SafeHiddenMapper safeHiddenMapper;
- @Autowired
- private ISysNoticeService sysNoticeService;
-
+ private final SafeHiddenMapper safeHiddenMapper;
+ private final ISysNoticeService sysNoticeService;
+ private final ISysDictDataService sysDictDataService;
+ private final StorageAttachmentMapper storageAttachmentMapper;
+ private final StorageBlobMapper storageBlobMapper;
+ private final SafeHiddenFileMapper safeHiddenFileMapper;
@Override
public IPage<SafeHiddenDto> pageSafeHidden(Page page, SafeHiddenDto safeHiddenDto) {
@@ -47,17 +57,18 @@
@Override
public int add(SafeHidden safeHidden) {
safeHiddenMapper.insert(safeHidden);
- String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+ String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
String no = "YH" + String.format("%s%03d", datePrefix, safeHidden.getId());
safeHidden.setHiddenCode(no);
safeHiddenMapper.updateById(safeHidden);
- //娑堟伅閫氱煡
+
+ String type = sysDictDataService.selectDictLabel("hidden_danger_type", safeHidden.getType());
sysNoticeService.simpleNoticeByUser("闅愭偅鎺掓煡涓婃姤鏁存敼",
- "闅愭偅绫诲瀷锛�"+safeHidden.getType()+"\n"+
- "闅愭偅椋庨櫓绛夌骇锛�"+safeHidden.getRiskLevel()+"\n"+
- "闅愭偅鍏蜂綋浣嶇疆锛�"+safeHidden.getLocation()+"\n"+
- "闅愭偅鎻忚堪锛�"+safeHidden.getHiddenDesc()+"\n"+
- "鏁存敼瀹屾垚鏈熼檺(鏃ユ湡)锛�"+safeHidden.getRectifyTime(),
+ "闅愭偅绫诲瀷锛�" + type + "\t" +
+ "闅愭偅椋庨櫓绛夌骇锛�" + safeHidden.getRiskLevel() + "\t" +
+ "闅愭偅鍏蜂綋浣嶇疆锛�" + safeHidden.getLocation() + "\t" +
+ "闅愭偅鎻忚堪锛�" + safeHidden.getHiddenDesc() + "\t" +
+ "鏁存敼瀹屾垚鏈熼檺(鏃ユ湡)锛�" + safeHidden.getRectifyTime(),
Arrays.asList(Long.valueOf(safeHidden.getRectifyUserId())),
"/safeProduction/dangerInvestigation?id=" + safeHidden.getId());
return 0;
@@ -65,15 +76,68 @@
@Override
public int delSafeHidden(List<Integer> ids) {
+ if (ids == null || ids.isEmpty()) {
+ return 0;
+ }
+
List<SafeHidden> safeHiddens = safeHiddenMapper.selectBatchIds(ids);
+ List<String> rectifiedHiddenCodes = safeHiddens.stream()
+ .filter(this::isRectified)
+ .map(item -> StringUtils.hasText(item.getHiddenCode()) ? item.getHiddenCode() : String.valueOf(item.getId()))
+ .collect(Collectors.toList());
+ if (!rectifiedHiddenCodes.isEmpty()) {
+ throw new RuntimeException("宸叉暣鏀圭殑闅愭偅涓嶈兘鍒犻櫎锛�" + String.join("銆�", rectifiedHiddenCodes));
+ }
+
for (SafeHidden safeHidden : safeHiddens) {
- // 鍒犻櫎瀵瑰簲鐨勬秷鎭�氱煡
sysNoticeService.remove(new LambdaQueryWrapper<SysNotice>()
.eq(SysNotice::getNoticeTitle, "闅愭偅鎺掓煡涓婃姤鏁存敼")
.eq(SysNotice::getSenderId, safeHidden.getCreateUser())
.apply("CAST(notice_content AS CHAR) LIKE CONCAT('%', {0}, '%')", safeHidden.getId()));
}
+ deleteAttachments(ids);
safeHiddenMapper.deleteBatchIds(ids);
return 0;
}
+
+ private boolean isRectified(SafeHidden safeHidden) {
+ return safeHidden.getRectifyActualTime() != null
+ || StringUtils.hasText(safeHidden.getRectifyMeasures())
+ || safeHidden.getVerifyTime() != null
+ || StringUtils.hasText(safeHidden.getVerifyResult())
+ || StringUtils.hasText(safeHidden.getVerifyRemark());
+ }
+
+ private void deleteAttachments(List<Integer> ids) {
+ List<Long> recordIds = ids.stream()
+ .filter(Objects::nonNull)
+ .map(Integer::longValue)
+ .collect(Collectors.toList());
+ if (recordIds.isEmpty()) {
+ return;
+ }
+
+ List<StorageAttachment> storageAttachments = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
+ .eq(StorageAttachment::getRecordType, RecordTypeEnum.SAFE_HIDDEN.getType())
+ .in(StorageAttachment::getRecordId, recordIds));
+ if (!storageAttachments.isEmpty()) {
+ List<Long> storageAttachmentIds = storageAttachments.stream()
+ .map(StorageAttachment::getId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ List<Long> storageBlobIds = storageAttachments.stream()
+ .map(StorageAttachment::getStorageBlobId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (!storageAttachmentIds.isEmpty()) {
+ storageAttachmentMapper.deleteByIds(storageAttachmentIds);
+ }
+ if (!storageBlobIds.isEmpty()) {
+ storageBlobMapper.deleteByIds(storageBlobIds);
+ }
+ }
+
+ safeHiddenFileMapper.delete(new LambdaQueryWrapper<SafeHiddenFile>().in(SafeHiddenFile::getSafeHiddenId, ids));
+ }
}
--
Gitblit v1.9.3