模版编制的相关实现

This commit is contained in:
潘荣晟
2025-09-24 15:57:05 +08:00
parent 4b629100de
commit 08e3b37e52
11 changed files with 265 additions and 46 deletions

View File

@@ -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);
}
}

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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'