diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java index 509b016..d01ffbb 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java @@ -5,6 +5,7 @@ import com.zt.plat.module.base.controller.admin.templtp.vo.*; import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO; import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService; import com.zt.plat.module.infra.api.file.FileApi; +import jakarta.validation.constraints.NotEmpty; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -155,4 +156,18 @@ public class TemplateInstanceController extends AbstractFileUploadController { templateInstanceService.setDisableOrEnable(reqVO); return success(true); } + //根据id获取实例版本号 + @GetMapping("/get-version") + @Operation(summary = "根据id获取实例版本号") + public CommonResult> getVersion(@RequestParam("id") String id) { + return success(templateInstanceService.getVersion(id)); + } + + //创建版本 + @PostMapping("/create-version") + @Operation(summary = "创建版本") + @PreAuthorize("@ss.hasPermission('bse:template-instance:create-version')") + public CommonResult createVersion(@Valid @NotEmpty(message = "模版实例") String id) { + return success(templateInstanceService.createVersion(id)); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceService.java index eeb41d1..d43028f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceService.java @@ -8,6 +8,7 @@ import jakarta.validation.*; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageParam; +import jakarta.validation.constraints.NotEmpty; /** * 模板实例 Service 接口 @@ -75,4 +76,8 @@ public interface TemplateInstanceService { PageResult listExcludingDisabled(@Valid TemplateInstancePageReqVO pageReqVO); void setDisableOrEnable(@Valid DisableEnableReqVO reqVO); + + TemplateInstanceRespVO createVersion(@Valid @NotEmpty(message = "模版实例") String id); + + Map getVersion(String id); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java index b5c53a7..24e5cee 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceServiceImpl.java @@ -23,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.UUID; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -90,7 +87,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { // 更新 TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId()); TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class); - updateObj.setVer(incrementVersion(templateInstanceDO.getVer())); + // updateObj.setVer(incrementVersion(templateInstanceDO.getVer())); templateInstanceMapper.updateById(updateObj); } @@ -262,6 +259,24 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { .in(TemplateInstanceDO::getId, reqVO.getIds())); } + @Override + @Transactional + public TemplateInstanceRespVO createVersion(String id) { + validateTemplateInstanceExists(Long.valueOf(id)); + TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(id); + TemplateInstanceDO newTpInstanceDO = BeanUtils.toBean(templateInstanceDO, TemplateInstanceDO.class); + newTpInstanceDO.setId(null); + newTpInstanceDO.setVer(incrementVersion(templateInstanceDO.getVer())); + templateInstanceMapper.update(new LambdaUpdateWrapper().set(TemplateInstanceDO::getSts,TmplStsEnum.STOPPED.getCode())); + return BeanUtils.toBean(newTpInstanceDO, TemplateInstanceRespVO.class); + } + + @Override + public Map getVersion(String id) { + validateTemplateInstanceExists(Long.valueOf(id)); + return Map.of("version", templateInstanceMapper.selectById(id).getVer()); + } + @Override public void getDetailedInfo(TemplateInstanceRespVO templateInstanceRespVO) {