Merge branch 'hotfix/20250416' into 'master'

Hotfix/20250416

See merge request universal/infrastructure/backend/nanopart!136
This commit is contained in:
谭杰 2025-04-17 08:44:58 +00:00
commit 7a4f05aca4

View File

@ -62,40 +62,41 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl<GuideTena
return Collections.emptyList();
}
// 将租户操作步骤数量与模板操作步骤数量进行对比如果模板操作步骤数量大于租户操作步骤数量则根据模板为租户初始化新步骤点
if (templateList.size() > procedureStatusList.size()) {
// 将该租户未初始化的步骤点进行初始化
List<Long> procedureStatusIdList = procedureStatusList.stream().map(GuideTenantProcedureStatus::getProcedureId).collect(Collectors.toList());
respList.addAll(templateList.stream()
.filter(t -> !procedureStatusIdList.contains(t.getId()))
.map(t -> {
GuideTenantProcedureStatusCreateReq createReq = new GuideTenantProcedureStatusCreateReq();
createReq.setWorkspaceId(req.getWorkspaceId());
createReq.setCategoryCode(t.getCategoryCode());
createReq.setProcedureId(t.getId());
createReq.setProcedureName(t.getName());
createReq.setStatus(GuideProcedureStatus.TODO);
create(createReq);
return BeanUtil.copyProperties(createReq, GuideTenantProcedureStatusListResp.class);
})
.collect(Collectors.toList()));
} else if (templateList.size() < procedureStatusList.size()) {
log.warn("操作步骤模板:{},租户&分类:{},租户操作步骤状态:{}", JSONUtil.toJsonStr(templateList), JSONUtil.toJsonStr(req), JSONUtil.toJsonStr(procedureStatusList));
throw new ServiceException("数据异常,操作步骤不存在,请联系管理人员");
// 将租户操作步骤数量与模板操作步骤数量进行对比是否需要根据模板为租户初始化新步骤点
// 将该租户未初始化的步骤点进行初始化
List<Long> procedureStatusIdList = procedureStatusList.stream().map(GuideTenantProcedureStatus::getProcedureId).distinct().collect(Collectors.toList());
List<GuideTenantProcedureStatusListResp> newInitProcedures = templateList.stream()
.filter(t -> !procedureStatusIdList.contains(t.getId()))
.map(t -> {
GuideTenantProcedureStatusCreateReq createReq = new GuideTenantProcedureStatusCreateReq();
createReq.setWorkspaceId(req.getWorkspaceId());
createReq.setCategoryCode(t.getCategoryCode());
createReq.setProcedureId(t.getId());
createReq.setProcedureName(t.getName());
createReq.setStatus(GuideProcedureStatus.TODO);
create(createReq);
return BeanUtil.copyProperties(createReq, GuideTenantProcedureStatusListResp.class);
})
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(newInitProcedures)) {
respList.addAll(newInitProcedures);
}
// 对租户操作步骤的权限码和跳转链接进行补充
Map<Long, GuideProcedureTemplateResp> templateMap = templateList.stream().collect(Collectors.toMap(GuideProcedureTemplateResp::getId, Function.identity(), (v1, v2) -> v1));
respList.forEach(r -> {
GuideProcedureTemplateResp t = templateMap.get(r.getProcedureId());
r.setDescription(t.getDescription());
r.setIsMust(t.getIsMust());
r.setAuthCode(t.getAuthCode());
r.setJumpUrl(t.getJumpUrl());
r.setJumpReport(t.getJumpReport());
r.setSort(t.getSort());
});
return respList;
return respList.stream()
.collect(Collectors.toMap(r -> r.getWorkspaceId() + "_" + r.getProcedureId(), Function.identity(), (v1, v2) -> v1))
.values().stream()
.peek(r -> {
GuideProcedureTemplateResp t = templateMap.get(r.getProcedureId());
r.setDescription(t.getDescription());
r.setIsMust(t.getIsMust());
r.setAuthCode(t.getAuthCode());
r.setJumpUrl(t.getJumpUrl());
r.setJumpReport(t.getJumpReport());
r.setSort(t.getSort());
})
.collect(Collectors.toList());
}
@Override
@ -127,12 +128,15 @@ public class GuideTenantProcedureStatusServiceImpl extends ServiceImpl<GuideTena
log.info("步骤已完成无需重复操作workspaceId: {}, procedureId{}", req.getWorkspaceId(), req.getProcedureId());
return;
}
tenantProcedure.setStatus(req.getStatus());
updateById(tenantProcedure);
lambdaUpdate()
.eq(GuideTenantProcedureStatus::getWorkspaceId, req.getWorkspaceId())
.eq(GuideTenantProcedureStatus::getProcedureId, req.getProcedureId())
.set(GuideTenantProcedureStatus::getStatus, req.getStatus())
.update();
}
@Override
public Long create(GuideTenantProcedureStatusCreateReq req) {
public synchronized Long create(GuideTenantProcedureStatusCreateReq req) {
// 若操作所属分类或操作名称为空则从对应模板获取
if (Objects.isNull(req.getCategoryCode()) || CharSequenceUtil.isBlank(req.getProcedureName())) {
GuideProcedureTemplateResp byProcedureId = procedureTemplateService.getByProcedureId(req.getProcedureId());