|
|
@@ -187,4 +187,50 @@ public class CostSurveyFdTemplateVersionController extends BaseController<CostSu
|
|
|
return CommonResult.<String>ok().message("版本切换成功");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 批量删除历史版本和草稿版本
|
|
|
+ * @param versionIds 版本ID列表
|
|
|
+ * @return 删除结果
|
|
|
+ */
|
|
|
+ @PostMapping(value="/batchDelete")
|
|
|
+ @ApiOperation(value = "批量删除历史版本和草稿版本", httpMethod = "POST", notes = "批量删除历史版本和草稿版本")
|
|
|
+ public CommonResult<String> batchDelete(
|
|
|
+ @ApiParam(name="versionIds",value="版本ID列表", required = true)
|
|
|
+ @RequestBody List<String> versionIds) throws Exception {
|
|
|
+
|
|
|
+ // 检查是否有版本ID传入
|
|
|
+ if (versionIds == null || versionIds.isEmpty()) {
|
|
|
+ return CommonResult.<String>error().message("请选择要删除的版本");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询所有要删除的版本
|
|
|
+ List<CostSurveyFdTemplateVersion> versions = baseService.listByIds(versionIds);
|
|
|
+
|
|
|
+ // 过滤出可删除的版本(草稿状态-1 或 历史状态1)
|
|
|
+ List<String> deleteIds = versions.stream()
|
|
|
+ .filter(version -> "-1".equals(version.getStatus()) || "1".equals(version.getStatus()))
|
|
|
+ .map(CostSurveyFdTemplateVersion::getId)
|
|
|
+ .collect(java.util.stream.Collectors.toList());
|
|
|
+
|
|
|
+ // 检查是否有可删除的版本
|
|
|
+ if (deleteIds.isEmpty()) {
|
|
|
+ return CommonResult.<String>error().message("没有可删除的草稿或历史版本");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查是否尝试删除现行版本
|
|
|
+ long currentVersionCount = versions.stream()
|
|
|
+ .filter(version -> "0".equals(version.getStatus()))
|
|
|
+ .count();
|
|
|
+
|
|
|
+ // 执行批量删除操作
|
|
|
+ baseService.removeByIds(deleteIds);
|
|
|
+
|
|
|
+ String message = "成功删除" + deleteIds.size() + "个版本";
|
|
|
+ if (currentVersionCount > 0) {
|
|
|
+ message += "(已过滤掉" + currentVersionCount + "个现行版本)";
|
|
|
+ }
|
|
|
+
|
|
|
+ return CommonResult.<String>ok().message(message);
|
|
|
+ }
|
|
|
+
|
|
|
}
|