feat: 重构标准 Skill 管理与发布链路

- 统一标准 ZIP 导入导出与通用资源模型

- 收口分类范围权限和创建人查询

- 完善发布快照、审批幂等与数据库清理迁移
This commit is contained in:
2026-08-14 18:53:26 +08:00
parent 9be9bd7665
commit 77d66e1b42
91 changed files with 1660 additions and 10957 deletions

View File

@@ -61,4 +61,14 @@ public interface ApprovalInstanceService {
* @return 审批实例
*/
ApprovalInstance getById(BigInteger instanceId);
/**
* 判断给定实例是否仍是资源最近创建的审批实例。
*
* @param instanceId 审批实例 ID
* @param resourceType 资源类型
* @param resourceId 资源 ID
* @return 没有更新实例时返回 {@code true}
*/
boolean isLatestResourceInstance(BigInteger instanceId, String resourceType, BigInteger resourceId);
}

View File

@@ -274,6 +274,20 @@ public class ApprovalInstanceServiceImpl implements ApprovalInstanceService {
.eq(ApprovalInstance::getTenantId, requireCurrentTenantId()));
}
/**
* {@inheritDoc}
*/
@Override
public boolean isLatestResourceInstance(BigInteger instanceId,
String resourceType,
BigInteger resourceId) {
return approvalInstanceMapper.selectCountByQuery(QueryWrapper.create()
.eq(ApprovalInstance::getTenantId, requireCurrentTenantId())
.eq(ApprovalInstance::getResourceType, resourceType)
.eq(ApprovalInstance::getResourceId, resourceId)
.gt(ApprovalInstance::getId, instanceId)) == 0;
}
private Map<String, Object> buildInstanceSnapshot(ApprovalSubmitRequest request, ApprovalFlowDetailVo flow,
List<ApprovalFlowStepVo> steps, SysDept applicantDept) {
Map<String, Object> snapshot = new LinkedHashMap<>();