feat(fire-check): 添加消防设备检查标准验证功能
parent
500c10c9c4
commit
d7f3ae71eb
|
|
@ -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) + "无检查标准,不允许新增");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue