fix: remove sha256 duplicate check so re-upload always creates new version in group
This commit is contained in:
@@ -173,65 +173,65 @@ class DocumentServiceImpl(IDocumentService):
|
||||
else:
|
||||
versionGroupKey = uuid.uuid4().hex
|
||||
|
||||
document = await LeauditDocument.create_new(
|
||||
Session,
|
||||
document = await LeauditDocument.create_new(
|
||||
Session,
|
||||
bizDocumentId=internalDocumentNo,
|
||||
typeId=resolvedTypeId,
|
||||
groupId=resolvedGroupId,
|
||||
region=normalizedRegion,
|
||||
processingStatus="waiting",
|
||||
versionGroupKey=versionGroupKey,
|
||||
versionNo=versionNo,
|
||||
previousVersionId=previousVersionId,
|
||||
rootVersionId=rootVersionId,
|
||||
isLatestVersion=True,
|
||||
normalizedName=normalizedName,
|
||||
)
|
||||
if document.rootVersionId is None:
|
||||
document.rootVersionId = document.Id
|
||||
rootVersionId = document.Id
|
||||
else:
|
||||
rootVersionId = document.rootVersionId
|
||||
versionNo=versionNo,
|
||||
previousVersionId=previousVersionId,
|
||||
rootVersionId=rootVersionId,
|
||||
isLatestVersion=True,
|
||||
normalizedName=normalizedName,
|
||||
)
|
||||
if document.rootVersionId is None:
|
||||
document.rootVersionId = document.Id
|
||||
rootVersionId = document.Id
|
||||
else:
|
||||
rootVersionId = document.rootVersionId
|
||||
|
||||
versionLabel = f"v{document.versionNo}"
|
||||
objectKey = OssPathUtils.BuildBusinessDocKey(
|
||||
Region=normalizedRegion,
|
||||
TypeCode=resolvedTypeCode,
|
||||
DocumentId=document.Id,
|
||||
Version=versionLabel,
|
||||
FileRole=normalizedFileRole,
|
||||
FileName=FileName,
|
||||
Year=uploadedAt.year,
|
||||
Month=uploadedAt.month,
|
||||
)
|
||||
ossUrl = await self.OssService.UploadBytes(
|
||||
ObjectKey=objectKey,
|
||||
Content=FileContent,
|
||||
ContentType=mimeType,
|
||||
)
|
||||
versionLabel = f"v{document.versionNo}"
|
||||
objectKey = OssPathUtils.BuildBusinessDocKey(
|
||||
Region=normalizedRegion,
|
||||
TypeCode=resolvedTypeCode,
|
||||
DocumentId=document.Id,
|
||||
Version=versionLabel,
|
||||
FileRole=normalizedFileRole,
|
||||
FileName=FileName,
|
||||
Year=uploadedAt.year,
|
||||
Month=uploadedAt.month,
|
||||
)
|
||||
ossUrl = await self.OssService.UploadBytes(
|
||||
ObjectKey=objectKey,
|
||||
Content=FileContent,
|
||||
ContentType=mimeType,
|
||||
)
|
||||
|
||||
versionCount = await LeauditDocumentFile.count_by_document(Session, document.Id)
|
||||
_ = versionCount # single-version-per-document in current model; kept for future extension
|
||||
await LeauditDocumentFile.deactivate_active_by_document(Session, document.Id)
|
||||
documentFile = LeauditDocumentFile(
|
||||
documentId=document.Id,
|
||||
fileRole=normalizedFileRole,
|
||||
fileName=FileName,
|
||||
fileExt=fileExt,
|
||||
mimeType=mimeType,
|
||||
fileSize=fileSize,
|
||||
sha256=fileSha256,
|
||||
localPath=None,
|
||||
ossUrl=ossUrl,
|
||||
storageProvider="minio",
|
||||
isActive=True,
|
||||
createdBy=CreatedBy,
|
||||
)
|
||||
Session.add(documentFile)
|
||||
await Session.flush()
|
||||
await Session.commit()
|
||||
await Session.refresh(document)
|
||||
await Session.refresh(documentFile)
|
||||
versionCount = await LeauditDocumentFile.count_by_document(Session, document.Id)
|
||||
_ = versionCount # single-version-per-document in current model; kept for future extension
|
||||
await LeauditDocumentFile.deactivate_active_by_document(Session, document.Id)
|
||||
documentFile = LeauditDocumentFile(
|
||||
documentId=document.Id,
|
||||
fileRole=normalizedFileRole,
|
||||
fileName=FileName,
|
||||
fileExt=fileExt,
|
||||
mimeType=mimeType,
|
||||
fileSize=fileSize,
|
||||
sha256=fileSha256,
|
||||
localPath=None,
|
||||
ossUrl=ossUrl,
|
||||
storageProvider="minio",
|
||||
isActive=True,
|
||||
createdBy=CreatedBy,
|
||||
)
|
||||
Session.add(documentFile)
|
||||
await Session.flush()
|
||||
await Session.commit()
|
||||
await Session.refresh(document)
|
||||
await Session.refresh(documentFile)
|
||||
|
||||
if normalizedFileRole == "primary" and Attachments:
|
||||
await self._appendAttachmentFiles(
|
||||
|
||||
Reference in New Issue
Block a user