From 6bab142343375e744e46f2042aa3b0fedea70b06 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 19 五月 2026 23:32:55 +0800
Subject: [PATCH] fix: 设备巡检修改
---
src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java | 139 ++++++++++++++++++++++++----------------------
1 files changed, 73 insertions(+), 66 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
index f972841..bb18e52 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.basic.pojo.StorageAttachment;
import com.ruoyi.basic.pojo.StorageBlob;
import com.ruoyi.basic.service.StorageAttachmentService;
+import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.MinioUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
@@ -21,10 +22,15 @@
import com.ruoyi.inspectiontask.service.InspectionTaskService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.IOException;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
@@ -60,10 +66,19 @@
@Autowired
private SysUserMapper sysUserMapper;
+ @Autowired
+ private CommonFileMapper commonFileMapper;
+
+ @Autowired
+ private CommonFileServiceImpl commonFileService;
+
@Override
public IPage<InspectionTaskDto> selectInspectionTaskList(Page<InspectionTask> page, InspectionTaskDto inspectionTaskDto) {
LambdaQueryWrapper<InspectionTask> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByDesc(InspectionTask::getCreateTime);
+ if (StringUtils.isNotBlank(inspectionTaskDto.getTaskName())) {
+ queryWrapper.like(InspectionTask::getTaskName, inspectionTaskDto.getTaskName());
+ }
IPage<InspectionTask> entityPage = inspectionTaskMapper.selectPage(page, queryWrapper);
// 鏃犳暟鎹彁鍓嶈繑鍥�
@@ -82,9 +97,6 @@
} else {
sysUserMap = new HashMap<>();
}
- //宸℃浜篿ds
- List<String> inspectorIds = entityPage.getRecords().stream().map(InspectionTask::getInspectorId).collect(Collectors.toList());
-
//鑾峰彇鎵�鏈変笉閲嶅鐨勭敤鎴稩D
Set<Long> allUserIds = entityPage.getRecords().stream()
.map(InspectionTask::getInspectorId) // 鑾峰彇"2,3"杩欐牱鐨勫瓧绗︿覆
@@ -110,22 +122,14 @@
SysUser::getNickName,
(existing, replacement) -> existing));
- //澶勭悊闄勪欢
- Map<Long, List<StorageAttachment>> attachmentsMap = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>().in(StorageAttachment::getRecordId, ids)
- .eq(StorageAttachment::getRecordType, InspectionTasks.ordinal()))
- .stream()
- .collect(Collectors.groupingBy(StorageAttachment::getRecordId));
- // 鎵归噺鏌ヨ鎵�鏈夐渶瑕佺殑鏂囦欢鏁版嵁
- Set<Long> blobIds = attachmentsMap.values()
- .stream()
- .flatMap(List::stream)
- .map(StorageAttachment::getStorageBlobId)
- .collect(Collectors.toSet());
- Map<Long, StorageBlob> blobMap = blobIds.isEmpty()
- ? Collections.emptyMap()
- : storageBlobMapper.selectList(new LambdaQueryWrapper<StorageBlob>().in(StorageBlob::getId, blobIds))
- .stream()
- .collect(Collectors.toMap(StorageBlob::getId, Function.identity()));
+ //澶勭悊闄勪欢 - 鍙煡璇㈠贰妫�闄勪欢锛坱ype=20锛�
+ List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .in(CommonFile::getCommonId, ids)
+ .in(CommonFile::getType, Arrays.asList(FileNameType.INSPECTION.getValue())));
+ if(commonFiles == null){
+ commonFiles = new ArrayList<>();
+ }
+ List<CommonFile> finalCommonFiles = commonFiles;
List<InspectionTaskDto> dtoList = entityPage.getRecords().stream().map(inspectionTask -> {
InspectionTaskDto dto = new InspectionTaskDto();
@@ -154,37 +158,11 @@
dto.setDateStr(inspectionTask.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- // 鍒濆鍖栦笁涓檮浠跺垪琛�
- dto.setBeforeProduction(new ArrayList<>());
- dto.setAfterProduction(new ArrayList<>());
- dto.setProductionIssues(new ArrayList<>());
-
- // 澶勭悊闄勪欢鍒嗙被
- Optional.ofNullable(attachmentsMap.get(inspectionTask.getId()))
- .orElse(Collections.emptyList())
- .forEach(attachment -> {
- StorageBlob blob = blobMap.get(attachment.getStorageBlobId());
- if (blob != null) {
- // 鍒涘缓闄勪欢DTO
- StorageBlobDTO blobDto = createBlobDto(blob);
-
- // 鏍规嵁type鍒嗙被
- switch ((int) blob.getType().longValue()) {
- case 0:
- dto.getBeforeProduction().add(blobDto);
- break;
- case 1:
- dto.getAfterProduction().add(blobDto);
- break;
- case 2:
- dto.getProductionIssues().add(blobDto);
- break;
- default:
- // 鍙�夛細璁板綍鏈垎绫荤被鍨�
- break;
- }
- }
- });
+ // 璁剧疆闄勪欢鍒楄〃 - 缁熶竴浣跨敤 commonFileList
+ List<CommonFile> taskFiles = finalCommonFiles.stream()
+ .filter(commonFile -> Objects.equals(commonFile.getCommonId(), inspectionTask.getId()))
+ .collect(Collectors.toList());
+ dto.setCommonFileList(taskFiles);
return dto;
}).collect(Collectors.toList());
@@ -219,41 +197,70 @@
}
@Override
- public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) {
+ @Transactional(rollbackFor = Exception.class)
+ public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) throws IOException {
InspectionTask inspectionTask = new InspectionTask();
BeanUtils.copyProperties(inspectionTaskDto, inspectionTask);
inspectionTask.setRegistrantId(SecurityUtils.getLoginUser().getUserId());
inspectionTask.setRegistrant(SecurityUtils.getLoginUser().getUsername());
+
+ // 澶勭悊寮傚父鐘舵�佽浆鎹細hasException -> inspectionStatus
+ // hasException = null -> 0(鏈贰妫�), false -> 1(姝e父), true -> 2(寮傚父)
+ Boolean hasException = inspectionTaskDto.getHasException();
+ if (hasException != null) {
+ inspectionTask.setInspectionStatus(hasException ? 2 : 1);
+ // 濡傛灉鏈夊紓甯告弿杩帮紝璁剧疆寮傚父鎻忚堪
+ if (hasException && inspectionTaskDto.getInspectionRemark() != null) {
+ inspectionTask.setInspectionRemark(inspectionTaskDto.getInspectionRemark());
+ }
+ } else {
+ inspectionTask.setInspectionStatus(0);
+ }
+
+ // 閲嶆柊宸℃鏃讹紝閲嶇疆楠屾敹鐘舵��
+ inspectionTask.setAcceptStatus(0);
+ inspectionTask.setInspectionAcceptorId(null);
+ inspectionTask.setInspectionAcceptor(null);
+
int i;
if (Objects.isNull(inspectionTaskDto.getId())) {
i = inspectionTaskMapper.insert(inspectionTask);
} else {
i = inspectionTaskMapper.updateById(inspectionTask);
}
-
- if (inspectionTaskDto.getStorageBlobDTO() != null && !inspectionTaskDto.getStorageBlobDTO().isEmpty()) {
- List<StorageAttachment> attachments = new ArrayList<>();
-
- for (StorageBlobDTO storageBlobDTO : inspectionTaskDto.getStorageBlobDTO()) {
- StorageAttachment storageAttachment = new StorageAttachment(
- StorageAttachmentFile,
- (long) InspectionTasks.ordinal(),
- inspectionTask.getId()
- );
- storageAttachment.setStorageBlobDTO(storageBlobDTO);
- attachments.add(storageAttachment);
- }
- storageAttachmentService.saveStorageAttachment(attachments, inspectionTask.getId(), InspectionTasks, StorageAttachmentFile);
- }
+ commonFileService.migrateTempFilesToFormal(inspectionTask.getId(),inspectionTaskDto.getTempFileIds());
return i;
}
@Override
+ @Transactional(rollbackFor = Exception.class)
+ public int acceptInspectionTask(Long id, Integer acceptStatus) {
+ InspectionTask task = inspectionTaskMapper.selectById(id);
+ if (task == null) {
+ throw new RuntimeException("浠诲姟涓嶅瓨鍦�");
+ }
+ if (task.getInspectionStatus() == null || task.getInspectionStatus() == 0) {
+ throw new RuntimeException("璇ヤ换鍔″皻鏈贰妫�锛屾棤娉曢獙鏀�");
+ }
+ task.setInspectionAcceptorId(SecurityUtils.getLoginUser().getUserId());
+ task.setInspectionAcceptor(SecurityUtils.getLoginUser().getUser().getNickName());
+ task.setAcceptStatus(acceptStatus);
+
+ // 濡傛灉鏄��鍥�(2)锛岃�冭檻鍒板彲鑳芥槸閲嶆柊宸℃锛屽彲浠ヤ繚鐣欎箣鍓嶇殑宸℃璁板綍浣嗙姸鎬佸彉涓洪��鍥�
+ // APP绔細鏍规嵁 acceptStatus == 2 鏉ユ斁寮�宸℃鎸夐挳
+ return inspectionTaskMapper.updateById(task);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
public int delByIds(Long[] ids) {
// 妫�鏌ュ弬鏁�
if (ids == null || ids.length == 0) {
return 0;
}
+ commonFileService.deleteByBusinessIds(Arrays.asList(ids),FileNameType.INSPECTION.getValue());
+ commonFileService.deleteByBusinessIds(Arrays.asList(ids),FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue());
+ commonFileService.deleteByBusinessIds(Arrays.asList(ids),FileNameType.INSPECTION_PRODUCTION_AFTER.getValue());
return inspectionTaskMapper.deleteBatchIds(Arrays.asList(ids));
}
--
Gitblit v1.9.3