删除上传文件后触发项目重新打标

This commit is contained in:
wkc
2026-03-19 16:05:40 +08:00
parent 199dbb1d9d
commit 627886f711
11 changed files with 341 additions and 5 deletions

View File

@@ -14,6 +14,9 @@ public enum TriggerType {
/** 自动参数变更 */
AUTO_PARAM_CHANGE,
/** 自动文件删除 */
AUTO_FILE_DELETE,
/** 手动触发 */
MANUAL
}

View File

@@ -241,8 +241,13 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
CcdiFileUploadRecord update = new CcdiFileUploadRecord();
update.setId(record.getId());
update.setFileStatus("deleted");
recordMapper.updateById(update);
return "删除成功";
int updatedRows = recordMapper.updateById(update);
if (updatedRows <= 0) {
throw new RuntimeException("更新上传记录状态失败");
}
bankTagService.submitAutoRebuild(record.getProjectId(), TriggerType.AUTO_FILE_DELETE);
return "删除成功,已开始项目重新打标";
}
@Override

View File

@@ -74,6 +74,13 @@ class CcdiBankTagServiceImplTest {
verify(coordinator).submitAuto(40L, TriggerType.AUTO_PARAM_CHANGE);
}
@Test
void submitAutoRebuild_shouldKeepAutoFileDeleteTriggerType() {
service.submitAutoRebuild(40L, TriggerType.AUTO_FILE_DELETE);
verify(coordinator).submitAuto(40L, TriggerType.AUTO_FILE_DELETE);
}
@Test
void rebuildProject_shouldDeleteOldResultsBeforeSubmittingRuleTasks() {
ReflectionTestUtils.setField(service, "tagRuleExecutor", (Executor) Runnable::run);

View File

@@ -376,10 +376,11 @@ class CcdiFileUploadServiceImplTest {
when(lsfxClient.deleteFiles(any())).thenReturn(buildDeleteFilesResponse());
when(projectMapper.selectById(PROJECT_ID)).thenReturn(project);
when(bankStatementMapper.selectObjs(any())).thenReturn(List.of("110101199001018888", "110101199001019999"));
when(recordMapper.updateById(any(CcdiFileUploadRecord.class))).thenReturn(1);
String result = service.deleteFileUploadRecord(RECORD_ID, 9527L);
assertEquals("删除成功", result);
assertEquals("删除成功已开始项目重新打标", result);
verify(lsfxClient).deleteFiles(argThat(request ->
request.getGroupId().equals(LSFX_PROJECT_ID)
&& request.getUserId().equals(9527)
@@ -390,6 +391,7 @@ class CcdiFileUploadServiceImplTest {
verify(recordMapper).updateById(org.mockito.ArgumentMatchers.<CcdiFileUploadRecord>argThat(item ->
RECORD_ID.equals(item.getId()) && "deleted".equals(item.getFileStatus())
));
verify(bankTagService).submitAutoRebuild(PROJECT_ID, TriggerType.AUTO_FILE_DELETE);
verify(projectMapper).updateById(org.mockito.ArgumentMatchers.<CcdiProject>argThat(item ->
PROJECT_ID.equals(item.getProjectId()) && Integer.valueOf(2).equals(item.getTargetCount())
));
@@ -419,6 +421,7 @@ class CcdiFileUploadServiceImplTest {
assertThrows(RuntimeException.class, () -> service.deleteFileUploadRecord(RECORD_ID, 9527L));
verify(bankStatementMapper, never()).deleteByProjectIdAndBatchId(any(), any());
verify(bankTagService, never()).submitAutoRebuild(any(), any());
verify(recordMapper, never()).updateById(org.mockito.ArgumentMatchers.<CcdiFileUploadRecord>argThat(item ->
"deleted".equals(item.getFileStatus())
));