refactor(fire-check): 优化消防检查模块代码结构和消息发送逻辑

dev_workchange
zhaokai 2026-06-23 09:45:41 +08:00
parent f32954afe7
commit 40b2707990
1 changed files with 42 additions and 34 deletions

View File

@ -33,8 +33,8 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@DubboService
@AllArgsConstructor
@ -59,11 +59,11 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
QueryWrapper<FireCheckListUserDO> listUserQueryWrapper = new QueryWrapper<>();
listUserQueryWrapper.eq("user_id", fireCheckQry.getUserId());
listUserQueryWrapper.eq("corpinfo_id", fireCheckQry.getCorpinfoId());
List<FireCheckListUserDO> fireCheckListUserDOList = fireCheckListUserMapper.selectList(listUserQueryWrapper);
if (CollUtil.isEmpty(fireCheckListUserDOList)) {
List<FireCheckListUserDO> fireCheckListUserList = fireCheckListUserMapper.selectList(listUserQueryWrapper);
if (CollUtil.isEmpty(fireCheckListUserList)) {
return MultiResponse.of(Collections.emptyList());
}
Set<String> fireCheckIdSet = fireCheckListUserDOList.stream()
Set<String> fireCheckIdSet = fireCheckListUserList.stream()
.map(FireCheckListUserDO::getFireCheckId)
.filter(StringUtils::isNotEmpty)
.collect(Collectors.toSet());
@ -73,11 +73,11 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
QueryWrapper<FireCheckListDO> listQueryWrapper = new QueryWrapper<>();
listQueryWrapper.in("fire_check_id", fireCheckIdSet);
listQueryWrapper.eq("corpinfo_id", fireCheckQry.getCorpinfoId());
List<FireCheckListDO> fireCheckListDOList = fireCheckListMapper.selectList(listQueryWrapper);
if (CollUtil.isEmpty(fireCheckListDOList)) {
List<FireCheckListDO> fireCheckListList = fireCheckListMapper.selectList(listQueryWrapper);
if (CollUtil.isEmpty(fireCheckListList)) {
return MultiResponse.of(Collections.emptyList());
}
List<FireCheckListByUserCO> result = fireCheckListDOList.stream()
List<FireCheckListByUserCO> result = fireCheckListList.stream()
.map(this::buildFireCheckListByUserCO)
.collect(Collectors.toList());
return MultiResponse.of(result);
@ -95,8 +95,8 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
QueryWrapper<FireCheckListUserDO> listUserQueryWrapper = new QueryWrapper<>();
listUserQueryWrapper.eq("fire_check_id", fireCheckWorkChangeCmd.getFireCheckId());
listUserQueryWrapper.eq("user_id", fireCheckWorkChangeCmd.getOldUserId());
List<FireCheckListUserDO> fireCheckListUserDOList = fireCheckListUserMapper.selectList(listUserQueryWrapper);
if (CollUtil.isEmpty(fireCheckListUserDOList)) {
List<FireCheckListUserDO> fireCheckListUserList = fireCheckListUserMapper.selectList(listUserQueryWrapper);
if (CollUtil.isEmpty(fireCheckListUserList)) {
return SingleResponse.buildFailure("DATA_NOT_FOUND", "未查询到待交接的消防检查工作");
}
QueryWrapper<FireCheckListUserDO> existsQueryWrapper = new QueryWrapper<>();
@ -106,27 +106,32 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
if (existsCount != null && existsCount > 0) {
return SingleResponse.buildFailure("DATA_EXISTS", "新责任人已存在于该消防检查工作中");
}
UserDO newUser = getNewUser(fireCheckWorkChangeCmd);
for (FireCheckListUserDO fireCheckListUserDO : fireCheckListUserDOList) {
UserDO newUser = getNewUser(fireCheckWorkChangeCmd.getUserId());
for (FireCheckListUserDO fireCheckListUserDO : fireCheckListUserList) {
fireCheckListUserDO.setUserId(fireCheckWorkChangeCmd.getUserId());
fireCheckListUserDO.setDepartmentId(resolveDepartmentId(fireCheckWorkChangeCmd, newUser));
fireCheckListUserDO.setCorpinfoId(resolveCorpinfoId(fireCheckWorkChangeCmd, newUser));
fireCheckListUserMapper.updateById(fireCheckListUserDO);
}
FireCheckListDO fireCheckListDO = getFireCheckList(fireCheckWorkChangeCmd.getFireCheckId());
sendWorkChangeMessage(fireCheckWorkChangeCmd, fireCheckListDO);
return SingleResponse.buildSuccess();
}
private FireCheckListByUserCO buildFireCheckListByUserCO(FireCheckListDO fireCheckListDO) {
FireCheckListByUserCO fireCheckListByUserCO = new FireCheckListByUserCO();
fireCheckListByUserCO.setFireCheckId(fireCheckListDO.getFireCheckId());
fireCheckListByUserCO.setWorkProject("消防检查");
fireCheckListByUserCO.setWorkContent(buildWorkContent(fireCheckListDO));
return fireCheckListByUserCO;
FireCheckListByUserCO result = new FireCheckListByUserCO();
result.setFireCheckId(fireCheckListDO.getFireCheckId());
result.setWorkProject("消防检查");
result.setWorkContent(buildWorkContent(fireCheckListDO));
return result;
}
private String buildWorkContent(FireCheckListDO fireCheckListDO) {
if (fireCheckListDO == null) {
return "";
}
if (StringUtils.isNotEmpty(fireCheckListDO.getFireCheckName())
&& StringUtils.isNotEmpty(fireCheckListDO.getFireCheckTypeName())) {
return fireCheckListDO.getFireCheckName() + "" + fireCheckListDO.getFireCheckTypeName() + "";
@ -137,12 +142,12 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
return StringUtils.defaultString(fireCheckListDO.getFireCheckTypeName());
}
private UserDO getNewUser(FireCheckWorkChangeCmd fireCheckWorkChangeCmd) {
List<UserDO> userDOList = userRepository.getListById(Collections.singletonList(fireCheckWorkChangeCmd.getUserId()));
if (CollUtil.isEmpty(userDOList)) {
private UserDO getNewUser(Long userId) {
List<UserDO> userList = userRepository.getListById(Collections.singletonList(userId));
if (CollUtil.isEmpty(userList)) {
return null;
}
return userDOList.get(0);
return userList.get(0);
}
private Long resolveDepartmentId(FireCheckWorkChangeCmd fireCheckWorkChangeCmd, UserDO newUser) {
@ -180,10 +185,13 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
messageSendCmd.setTargetCmd(messageTargetCmd);
messageSendCmd.setSourceCode(messageConfig.getFireCheckPending());
messageSendCmd.setNeedTokenEnum(false);
Map<String, Object> sendParams = buildSendParams(fireCheckWorkChangeCmd, fireCheckListDO);
messageSendCmd.setParams(sendParams);
messageSendCmd.setParams(buildSendParams(fireCheckWorkChangeCmd, fireCheckListDO));
log.info("消防检查工作交接发送消息参数:{}", JSONUtil.toJsonStr(messageSendCmd));
messageFacade.send(messageSendCmd);
SingleResponse<Boolean> response = messageFacade.send(messageSendCmd);
log.info("消防检查工作交接发送消息结果:{}", JSONUtil.toJsonStr(response));
if (response == null || !response.isSuccess() || !Boolean.TRUE.equals(response.getData())) {
log.warn("消防检查工作交接消息发送未成功, fireCheckId:{}, userId:{}", fireCheckWorkChangeCmd.getFireCheckId(), fireCheckWorkChangeCmd.getUserId());
}
} catch (Exception e) {
log.error("消防检查工作交接发送消息失败", e);
}
@ -192,16 +200,16 @@ public class ZcloudFireCheckFacadeImpl implements ZcloudFireCheckFacade {
private Map<String, Object> buildSendParams(FireCheckWorkChangeCmd fireCheckWorkChangeCmd, FireCheckListDO fireCheckListDO) {
String fireCheckName = fireCheckListDO == null ? "" : StringUtils.defaultString(fireCheckListDO.getFireCheckName());
String fireCheckTypeName = fireCheckListDO == null ? "" : StringUtils.defaultString(fireCheckListDO.getFireCheckTypeName());
return Collections.unmodifiableMap(
java.util.stream.Stream.of(
new Object[]{"FirefightinglistName", fireCheckName},
new Object[]{"checkPeriod", fireCheckTypeName},
new Object[]{"oldUserId", fireCheckWorkChangeCmd.getOldUserId()},
new Object[]{"newUserId", fireCheckWorkChangeCmd.getUserId()},
new Object[]{"newUserName", StringUtils.defaultString(fireCheckWorkChangeCmd.getUserName())}
)
.filter(item -> Objects.nonNull(item[1]))
.collect(Collectors.toMap(item -> String.valueOf(item[0]), item -> item[1], (left, right) -> right))
);
return Stream.of(
new Object[]{"FirefightinglistName", fireCheckName},
new Object[]{"checkPeriod", fireCheckTypeName},
new Object[]{"oldUserId", fireCheckWorkChangeCmd.getOldUserId()},
new Object[]{"newUserId", fireCheckWorkChangeCmd.getUserId()},
new Object[]{"newUserName", StringUtils.defaultString(fireCheckWorkChangeCmd.getUserName())},
new Object[]{"workProject", "消防检查"},
new Object[]{"workContent", buildWorkContent(fireCheckListDO)}
)
.filter(item -> Objects.nonNull(item[1]))
.collect(Collectors.toMap(item -> String.valueOf(item[0]), item -> item[1], (left, right) -> right));
}
}