模版编制的相关实现
This commit is contained in:
@@ -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<String> allowedTransitions;
|
||||
|
||||
DeleteStatusEnum(String code, Set<String> 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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -6,25 +6,23 @@ import java.util.Set;
|
||||
/**
|
||||
* 状态枚举类,定义所有可能的状态及合法的状态转换
|
||||
*/
|
||||
public enum StatusEnum {
|
||||
// 定义所有状态及对应的合法转换目标状态
|
||||
STATUS_1("1", new HashSet<String>() {{
|
||||
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<String>() {{
|
||||
add("3");
|
||||
}}),
|
||||
STATUS_3("3", new HashSet<String>() {{
|
||||
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<String> allowedTransitions;
|
||||
|
||||
StatusEnum(String code, Set<String> allowedTransitions) {
|
||||
PublishStatusEnum(String code, Set<String> 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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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<String> allowedTransitions;
|
||||
|
||||
UpdateStatusEnum(String code, Set<String> 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);
|
||||
}
|
||||
}
|
||||
@@ -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<Boolean> publishTemplateInstance(@Valid @RequestBody List<PublishTemplateInstanceReqVO> publishReqVOS) {
|
||||
templateInstanceService.publishTemplateInstance(publishReqVOS);
|
||||
return success(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<TemplateInstanceDO> getTemplateInstancePage(TemplateInstancePageReqVO pageReqVO);
|
||||
|
||||
List<String> getDeptByInstanId(Long instanId);
|
||||
|
||||
void publishTemplateInstance(List<PublishTemplateInstanceReqVO> publishReqVOS);
|
||||
}
|
||||
|
||||
@@ -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<DepartmentInstanceRelativityDO> 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<Long> ids) {
|
||||
// 校验存在
|
||||
validateTemplateInstanceExists(ids);
|
||||
//校验当前模版能否被删除
|
||||
validateStatusCanDelete(ids);
|
||||
// 删除
|
||||
templateInstanceMapper.deleteByIds(ids);
|
||||
}
|
||||
@@ -206,4 +226,66 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
.toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void publishTemplateInstance(List<PublishTemplateInstanceReqVO> 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<TemplateInstanceDO>()
|
||||
.in(TemplateInstanceDO::getId, publishReqVOS.stream()
|
||||
.map(PublishTemplateInstanceReqVO::getId)
|
||||
.collect(Collectors.toSet()))
|
||||
.set(TemplateInstanceDO::getSts, TmplStsEnum.PUBLISHED.getCode()));
|
||||
}
|
||||
|
||||
private void validateStatusCanDelete(List<Long> ids) {
|
||||
Set<String> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<TmplTpMapper, TmplTpDO> 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<Long> ids) {
|
||||
// Set<String> sts = listByIds(ids).stream().map(TmplTpDO::getSts).collect(Collectors.toSet());
|
||||
// List<Boolean> 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);
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<select id="getField" resultType="com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO">
|
||||
|
||||
SELECT f.*
|
||||
FROM BIZ_TMPL_TP_FLD f
|
||||
FROM BSE_TMPL_TP_FLD f
|
||||
INNER JOIN BSE_TMPL_FLD_REL r ON f.ID = r.TP_FLD_ID
|
||||
INNER JOIN BSE_TMPL_TP t ON r.TMPL_TP_ID = t.ID
|
||||
WHERE f.DELETED = '0'
|
||||
|
||||
Reference in New Issue
Block a user