feat(fire-check): 添加消防设备检查标准验证功能

dev_change_0818
zhaokai 2026-08-28 08:42:20 +08:00
parent 500c10c9c4
commit d7f3ae71eb
1 changed files with 56 additions and 0 deletions

View File

@ -15,8 +15,13 @@ import com.zcloud.fire.check.domain.model.FireCheckListE;
import com.zcloud.fire.check.domain.model.FireCheckListItemE;
import com.zcloud.fire.check.domain.model.FireCheckListUserE;
import com.zcloud.fire.check.dto.FireCheckListAddCmd;
import com.zcloud.fire.check.dto.FireCheckListItemAddCmd;
import com.zcloud.fire.check.persistence.dataobject.FireCheckStandardDO;
import com.zcloud.fire.check.persistence.dataobject.FireDeviceDO;
import com.zcloud.fire.check.persistence.dataobject.UserDO;
import com.zcloud.fire.check.persistence.repository.FireCheckListRepository;
import com.zcloud.fire.check.persistence.repository.FireCheckStandardRepository;
import com.zcloud.fire.check.persistence.repository.FireDeviceRepository;
import com.zcloud.fire.check.persistence.repository.UserRepository;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddBatchEvent;
@ -31,8 +36,10 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@ -52,11 +59,14 @@ public class FireCheckListAddExe {
private final FireCheckListUserGateway fireCheckListUserGateway;
private final TodoListEventPusherUtil todoListEventPusherUtil;
private final UserRepository userRepository;
private final FireDeviceRepository fireDeviceRepository;
private final FireCheckStandardRepository fireCheckStandardRepository;
@DubboReference
private MessageFacade messageFacade;
private MessageConfig messageConfig;
@Transactional(rollbackFor = Exception.class)
public boolean execute(FireCheckListAddCmd cmd) {
checkFireDeviceStandard(cmd.getFireCheckListItemAddCmdList());
//可以是多个负责人
FireCheckListE fireCheckListE = new FireCheckListE();
BeanUtils.copyProperties(cmd, fireCheckListE);
@ -125,5 +135,51 @@ public class FireCheckListAddExe {
}
return true;
}
private void checkFireDeviceStandard(List<FireCheckListItemAddCmd> itemList) {
if (itemList == null || itemList.isEmpty()) {
return;
}
List<String> fireDeviceIdList = itemList.stream()
.map(FireCheckListItemAddCmd::getFireDeviceId)
.filter(id -> id != null && !id.trim().isEmpty())
.distinct()
.collect(Collectors.toList());
if (fireDeviceIdList.isEmpty()) {
return;
}
Map<String, Object> params = new HashMap<>();
params.put("fireDeviceIdList", fireDeviceIdList);
List<FireDeviceDO> fireDeviceList = fireDeviceRepository.getAllList(params);
Map<String, String> fireDeviceTypeNameMap = new LinkedHashMap<>();
fireDeviceList.forEach(fireDevice -> {
String fireDeviceType = fireDevice.getFireDeviceType();
if (fireDeviceType != null && !fireDeviceType.trim().isEmpty()) {
String fireDeviceTypeName = fireDevice.getFireDeviceTypeName();
fireDeviceTypeNameMap.putIfAbsent(fireDeviceType,
fireDeviceTypeName == null || fireDeviceTypeName.trim().isEmpty()
? fireDeviceType : fireDeviceTypeName);
}
});
if (fireDeviceTypeNameMap.isEmpty()) {
return;
}
List<FireCheckStandardDO> fireCheckStandardList = fireCheckStandardRepository
.getCheckStandardList(new ArrayList<>(fireDeviceTypeNameMap.keySet()));
Set<String> standardTypeSet = fireCheckStandardList.stream()
.map(FireCheckStandardDO::getFireDeviceType)
.collect(Collectors.toSet());
List<String> missingTypeNameList = fireDeviceTypeNameMap.entrySet().stream()
.filter(entry -> !standardTypeSet.contains(entry.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList());
if (!missingTypeNameList.isEmpty()) {
throw new BizException(String.join("、", missingTypeNameList) + "无检查标准,不允许新增");
}
}
}