diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/DeleteStatusEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/DeleteStatusEnum.java new file mode 100644 index 0000000..113da7e --- /dev/null +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/DeleteStatusEnum.java @@ -0,0 +1,39 @@ +package com.zt.plat.module.tmpltp.enums; + +import java.util.HashSet; +import java.util.Set; + +public enum DeleteStatusEnum { + + STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.STOPPED.getCode());}}), + STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()), + STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>()); + + + private final String code; + private final Set allowedTransitions; + + DeleteStatusEnum(String code, Set allowedTransitions) { + this.code = code; + this.allowedTransitions = allowedTransitions; + } + + /** + * 根据状态码获取对应的枚举实例 + */ + public static DeleteStatusEnum fromCode(String code) { + for (DeleteStatusEnum status : values()) { + if (status.code.equals(code)) { + return status; + } + } + return null; + } + + /** + * 校验状态转换是否合法 + */ + public boolean isTransitionAllowed(String targetStatus) { + return allowedTransitions.contains(targetStatus); + } +} diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java index cbfaec7..6b9efff 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java @@ -14,14 +14,15 @@ public interface ErrorCodeConstants { ErrorCode TMPL_TP_DEl_ERROR = new ErrorCode(1_027_000_507, "模版分类删除失败"); ErrorCode TEMPLATE_INSTANCE_DATA_NOT_EXISTS = new ErrorCode(1_027_000_508, "实例字段值不存在"); ErrorCode TEMPLATE_INSTANCE_ITEM_NOT_EXISTS = new ErrorCode(1_027_000_509, "实例条款值不存在"); + ErrorCode TEMPLATE_INSTANCE_CREATE_FAIL = new ErrorCode(1_027_000_510, "实例创建失败"); ErrorCode PARAMS_IS_NULL_OR_ERR = new ErrorCode(1_027_000_510, "参数为空或参数错误"); - ErrorCode DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS = new ErrorCode(1_027_000_511, "部门与实例关联不存在"); - ErrorCode ILLEGAL_OPERATION_TYPE = new ErrorCode(1_027_000_511, "非法操作类型"); - ErrorCode OPERATION_FAIL= new ErrorCode(1_027_000_512, "操作失败"); - ErrorCode STATUS_OPERATION_FAIL= new ErrorCode(1_027_000_513, "当前状态不支持此操作"); - ErrorCode NOT_FOUND_CLASS= new ErrorCode(1_027_000_514, "找不到对应的类"); - ErrorCode UTIL_NOT_INIT= new ErrorCode(1_027_000_515, "工具类为未初始化"); - ErrorCode TMPL_INS_FLD_CODE_EXISTS = new ErrorCode(1_027_000_516, "字段已存在"); + ErrorCode DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS = new ErrorCode(1_027_000_512, "部门与实例关联不存在"); + ErrorCode ILLEGAL_OPERATION_TYPE = new ErrorCode(1_027_000_513, "非法操作类型"); + ErrorCode OPERATION_FAIL= new ErrorCode(1_027_000_514, "操作失败"); + ErrorCode STATUS_OPERATION_FAIL= new ErrorCode(1_027_000_515, "当前状态不支持此操作"); + ErrorCode NOT_FOUND_CLASS= new ErrorCode(1_027_000_516, "找不到对应的类"); + ErrorCode UTIL_NOT_INIT= new ErrorCode(1_027_000_517, "工具类为未初始化"); + ErrorCode TMPL_INS_FLD_CODE_EXISTS = new ErrorCode(1_027_000_518, "字段已存在"); //Illegal operation type } diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/StatusEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/PublishStatusEnum.java similarity index 55% rename from zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/StatusEnum.java rename to zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/PublishStatusEnum.java index 2871837..4a56aa9 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/StatusEnum.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/PublishStatusEnum.java @@ -6,25 +6,23 @@ import java.util.Set; /** * 状态枚举类,定义所有可能的状态及合法的状态转换 */ -public enum StatusEnum { - // 定义所有状态及对应的合法转换目标状态 - STATUS_1("1", new HashSet() {{ - add("2"); - add("4"); +public enum PublishStatusEnum { + + STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{ + add(TmplStsEnum.DRAFT.getCode()); + add(TmplStsEnum.STOPPED.getCode()); }}), - STATUS_2("2", new HashSet() {{ - add("3"); - }}), - STATUS_3("3", new HashSet() {{ - add("4"); - add("2"); - }}), - STATUS_4("4", new HashSet<>()); // 没有合法的转换目标 + STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()), + STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() {{ + add(TmplStsEnum.DRAFT.getCode()); + add(TmplStsEnum.STOPPED.getCode()); + }}); + private final String code; private final Set allowedTransitions; - StatusEnum(String code, Set allowedTransitions) { + PublishStatusEnum(String code, Set allowedTransitions) { this.code = code; this.allowedTransitions = allowedTransitions; } @@ -32,8 +30,8 @@ public enum StatusEnum { /** * 根据状态码获取对应的枚举实例 */ - public static StatusEnum fromCode(String code) { - for (StatusEnum status : values()) { + public static PublishStatusEnum fromCode(String code) { + for (PublishStatusEnum status : values()) { if (status.code.equals(code)) { return status; } diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/TmplStsEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/TmplStsEnum.java new file mode 100644 index 0000000..04d6407 --- /dev/null +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/TmplStsEnum.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.tmpltp.enums; + +import lombok.Getter; + +@Getter +public enum TmplStsEnum { + // 草稿状态 + DRAFT("DRF", "草稿"), + // 已发布状态 + PUBLISHED("PUB", "已发布"), + // 已停用状态 + STOPPED("STOP", "已停用"); + + // 获取状态编码 + private final String code; + // 获取状态描述 + private final String description; + + // 构造方法 + TmplStsEnum(String code, String description) { + this.code = code; + this.description = description; + } + + // 根据编码获取枚举实例 + public static TmplStsEnum getByCode(String code) { + for (TmplStsEnum status : TmplStsEnum.values()) { + if (status.getCode().equals(code)) { + return status; + } + } + return null; + } +} diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/UpdateStatusEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/UpdateStatusEnum.java new file mode 100644 index 0000000..398f9a0 --- /dev/null +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/UpdateStatusEnum.java @@ -0,0 +1,39 @@ +package com.zt.plat.module.tmpltp.enums; + +import java.util.HashSet; +import java.util.Set; + +public enum UpdateStatusEnum { + + STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}), + STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()), + STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>()); + + + private final String code; + private final Set allowedTransitions; + + UpdateStatusEnum(String code, Set allowedTransitions) { + this.code = code; + this.allowedTransitions = allowedTransitions; + } + + /** + * 根据状态码获取对应的枚举实例 + */ + public static UpdateStatusEnum fromCode(String code) { + for (UpdateStatusEnum status : values()) { + if (status.code.equals(code)) { + return status; + } + } + return null; + } + + /** + * 校验状态转换是否合法 + */ + public boolean isTransitionAllowed(String targetStatus) { + return allowedTransitions.contains(targetStatus); + } +} 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 fdd827e..7e96049 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 @@ -1,6 +1,7 @@ package com.zt.plat.module.base.controller.admin.templtp; +import com.zt.plat.module.base.controller.admin.templtp.vo.PublishTemplateInstanceReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceRespVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceSaveReqVO; @@ -136,5 +137,12 @@ public class TemplateInstanceController extends AbstractFileUploadController { ExcelUtils.write(response, "模板实例.xls", "数据", TemplateInstanceRespVO.class, BeanUtils.toBean(list, TemplateInstanceRespVO.class)); } - + //模版实例发布 + @PostMapping("/publish-batch") + @Operation(summary = "模版实例发布") + @PreAuthorize("@ss.hasPermission('bse:template-instance:publish')") + public CommonResult publishTemplateInstance(@Valid @RequestBody List publishReqVOS) { + templateInstanceService.publishTemplateInstance(publishReqVOS); + return success(true); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/PublishTemplateInstanceReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/PublishTemplateInstanceReqVO.java new file mode 100644 index 0000000..4a04cc2 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/PublishTemplateInstanceReqVO.java @@ -0,0 +1,16 @@ +package com.zt.plat.module.base.controller.admin.templtp.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + + +@Schema(description = "管理后台 - 实例发布 Request VO") +@Data +public class PublishTemplateInstanceReqVO { + @Schema(description = "主键;需要发布的模版实例id,类型是长整型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "id不能为空") + private String id; + @Schema(description = "当前状态;对应模版状态字段sts。需要传当前记录的状态,非必传。类型是字符串", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String currentStatus; +} 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 77350d6..e8b207f 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 @@ -2,6 +2,7 @@ package com.zt.plat.module.base.service.tmpltp; import java.util.*; +import com.zt.plat.module.base.controller.admin.templtp.vo.PublishTemplateInstanceReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceRespVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceSaveReqVO; @@ -64,4 +65,6 @@ public interface TemplateInstanceService { PageResult getTemplateInstancePage(TemplateInstancePageReqVO pageReqVO); List getDeptByInstanId(Long instanId); + + void publishTemplateInstance(List publishReqVOS); } 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 3ec7b89..e2f2661 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 @@ -2,18 +2,25 @@ package com.zt.plat.module.base.service.tmpltp; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; +import com.zt.plat.module.base.controller.admin.templtp.vo.PublishTemplateInstanceReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceRespVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceSaveReqVO; import com.zt.plat.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO; import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO; +import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpDO; import com.zt.plat.module.base.dal.mysql.tmpltp.DepartmentInstanceRelativityMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceItemMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceMapper; +import com.zt.plat.module.tmpltp.enums.DeleteStatusEnum; +import com.zt.plat.module.tmpltp.enums.PublishStatusEnum; +import com.zt.plat.module.tmpltp.enums.TmplStsEnum; +import com.zt.plat.module.tmpltp.enums.UpdateStatusEnum; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,8 +28,10 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*; @@ -53,8 +62,12 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { public TemplateInstanceRespVO createTemplateInstance(TemplateInstanceSaveReqVO createReqVO) { // 插入 TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class); - templateInstance.setVer("v1.0"); - templateInstanceMapper.insert(templateInstance); + templateInstance.setVer("v1.0"); //设置初始版本为v1.0 + templateInstance.setSts(TmplStsEnum.DRAFT.getCode());//设置初始状态为草稿 + int insert = templateInstanceMapper.insert(templateInstance); + if (insert <= 0) { + throw exception(TEMPLATE_INSTANCE_CREATE_FAIL); + } //构建使用部门 List departmentInstanceRelativityDOS = new ArrayList<>(); @@ -76,10 +89,13 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { // TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId()); // //获取保存旧文件内容防止被更新 // String originalContent = templateInstanceDO.getOriginalContent(); + + //校验该记录能否被修改 + validateStatusCanUpdate(updateReqVO.getId()); // 更新 TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId()); String sts = templateInstanceDO.getSts(); - if (!sts.equals("DRF")) { + if (!sts.equals( TmplStsEnum.DRAFT.getCode())) { throw exception(STATUS_OPERATION_FAIL); } @@ -94,19 +110,23 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { public void deleteTemplateInstance(Long id) { // 校验存在 validateTemplateInstanceExists(id); + validateStatusCanDelete(id); // 删除 //删除对应的字段和条款关系 //1、删除合同的与字段的关系 templateInstanceDataMapper.deleteByTemplateInstanceId(id); //2、删除条款与和他的关系 - templateInstanceDataMapper.deleteByTemplateInstanceId(id); + templateInstanceItemMapper.deleteByTemplateInstanceId(id); templateInstanceMapper.deleteById(id); } @Override + @Transactional public void deleteTemplateInstanceListByIds(List ids) { // 校验存在 validateTemplateInstanceExists(ids); + //校验当前模版能否被删除 + validateStatusCanDelete(ids); // 删除 templateInstanceMapper.deleteByIds(ids); } @@ -206,4 +226,66 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { .toList(); } + @Override + @Transactional + public void publishTemplateInstance(List publishReqVOS) { + // 校验当前状态是否能够进行发布 + publishReqVOS.forEach(reqVO -> { + String currentStatus = reqVO.getCurrentStatus(); + if (currentStatus.isEmpty()) { + currentStatus = templateInstanceMapper.selectById(reqVO.getId()).getSts(); + } + PublishStatusEnum status = PublishStatusEnum.fromCode(currentStatus); + boolean transitionAllowed = false; + if (status != null) { + transitionAllowed = status.isTransitionAllowed( TmplStsEnum.PUBLISHED.getCode()); + } + if (!transitionAllowed) { + throw exception(STATUS_OPERATION_FAIL); + } + }); + + templateInstanceMapper.update(new LambdaUpdateWrapper() + .in(TemplateInstanceDO::getId, publishReqVOS.stream() + .map(PublishTemplateInstanceReqVO::getId) + .collect(Collectors.toSet())) + .set(TemplateInstanceDO::getSts, TmplStsEnum.PUBLISHED.getCode())); + } + + private void validateStatusCanDelete(List ids) { + Set sts = templateInstanceMapper.selectByIds(ids).stream().map(TemplateInstanceDO::getSts).collect(Collectors.toSet()); + sts.forEach(status -> { + DeleteStatusEnum deleteStatusEnum = DeleteStatusEnum.fromCode(status); + boolean transitionAllowed = false; + if (deleteStatusEnum != null) { + transitionAllowed = deleteStatusEnum.isTransitionAllowed( TmplStsEnum.DRAFT.getCode()); + } + if (!transitionAllowed) { + throw exception(STATUS_OPERATION_FAIL); + } + }); + } + + private void validateStatusCanDelete(Long id) { + String sts = templateInstanceMapper.selectById(id).getSts(); + DeleteStatusEnum deleteStatusEnum = DeleteStatusEnum.fromCode(sts); + boolean transitionAllowed = false; + if (deleteStatusEnum != null) { + transitionAllowed = deleteStatusEnum.isTransitionAllowed(TmplStsEnum.DRAFT.getCode()); + } + if (!transitionAllowed) { + throw exception(STATUS_OPERATION_FAIL); + } + } + private void validateStatusCanUpdate(Long id) { + String sts = templateInstanceMapper.selectById(id).getSts(); + UpdateStatusEnum updateStatusEnum = UpdateStatusEnum.fromCode(sts); + boolean transitionAllowed = false; + if (updateStatusEnum != null) { + transitionAllowed = updateStatusEnum.isTransitionAllowed(sts); + } + if (!transitionAllowed) { + throw exception(STATUS_OPERATION_FAIL); + } + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java index f14a611..af878d6 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java @@ -11,7 +11,6 @@ import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpFldDO; import com.zt.plat.module.base.dal.mysql.tmpltp.TmplFldRelMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TmplItmRelMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TmplTpMapper; -import com.zt.plat.module.tmpltp.enums.StatusEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -193,27 +192,27 @@ public class TmplTpServiceImpl extends ServiceImpl imple } - private boolean validateStatusUpdate(Long id, String status) { - TmplTpDO tmplTpDO = baseMapper.getTmplTpById(id); - String currentSts = tmplTpDO.getSts(); - - // 获取当前状态对应的枚举实例 - StatusEnum currentStatus = StatusEnum.fromCode(currentSts); - - // 如果当前状态不合法,直接返回false - if (currentStatus == null) { - return false; - } - - // 校验状态转换是否合法 - return currentStatus.isTransitionAllowed(status); - } +// private boolean validateStatusUpdate(Long id, String status) { +// TmplTpDO tmplTpDO = baseMapper.getTmplTpById(id); +// String currentSts = tmplTpDO.getSts(); +// +// // 获取当前状态对应的枚举实例 +// PublishStatusEnum currentStatus = PublishStatusEnum.fromCode(currentSts); +// +// // 如果当前状态不合法,直接返回false +// if (currentStatus == null) { +// return false; +// } +// +// // 校验状态转换是否合法 +// return currentStatus.isTransitionAllowed(status); +// } // private boolean validateStatusCanDelete(List ids) { // Set sts = listByIds(ids).stream().map(TmplTpDO::getSts).collect(Collectors.toSet()); // List result = new ArrayList<>(); // sts.forEach(status -> { -// StatusEnum currentStatus = StatusEnum.fromCode(status); +// PublishStatusEnum currentStatus = PublishStatusEnum.fromCode(status); // boolean transitionAllowed = false; // if (currentStatus != null) { // transitionAllowed = currentStatus.isTransitionAllowed(status); diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml index bcaecee..3659758 100644 --- a/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml @@ -26,7 +26,7 @@