Merge branch 'dev_change_0818' into dev

dev
zhaokai 2026-08-28 08:42:58 +08:00
commit 5fad5ba273
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.FireCheckListItemE;
import com.zcloud.fire.check.domain.model.FireCheckListUserE; import com.zcloud.fire.check.domain.model.FireCheckListUserE;
import com.zcloud.fire.check.dto.FireCheckListAddCmd; 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.dataobject.UserDO;
import com.zcloud.fire.check.persistence.repository.FireCheckListRepository; 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.fire.check.persistence.repository.UserRepository;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil; import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddBatchEvent; import com.zcloud.gbscommon.todolistmq.event.TodoListAddBatchEvent;
@ -31,8 +36,10 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -52,11 +59,14 @@ public class FireCheckListAddExe {
private final FireCheckListUserGateway fireCheckListUserGateway; private final FireCheckListUserGateway fireCheckListUserGateway;
private final TodoListEventPusherUtil todoListEventPusherUtil; private final TodoListEventPusherUtil todoListEventPusherUtil;
private final UserRepository userRepository; private final UserRepository userRepository;
private final FireDeviceRepository fireDeviceRepository;
private final FireCheckStandardRepository fireCheckStandardRepository;
@DubboReference @DubboReference
private MessageFacade messageFacade; private MessageFacade messageFacade;
private MessageConfig messageConfig; private MessageConfig messageConfig;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(FireCheckListAddCmd cmd) { public boolean execute(FireCheckListAddCmd cmd) {
checkFireDeviceStandard(cmd.getFireCheckListItemAddCmdList());
//可以是多个负责人 //可以是多个负责人
FireCheckListE fireCheckListE = new FireCheckListE(); FireCheckListE fireCheckListE = new FireCheckListE();
BeanUtils.copyProperties(cmd, fireCheckListE); BeanUtils.copyProperties(cmd, fireCheckListE);
@ -125,5 +135,51 @@ public class FireCheckListAddExe {
} }
return true; 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) + "无检查标准,不允许新增");
}
}
} }