模版编制的相关实现
This commit is contained in:
@@ -5,7 +5,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
public enum DeleteStatusEnum {
|
public enum DeleteStatusEnum {
|
||||||
|
|
||||||
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.STOPPED.getCode());}}),
|
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
|
||||||
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
|
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
|
||||||
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>());
|
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>());
|
||||||
|
|
||||||
|
|||||||
@@ -8,15 +8,9 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public enum PublishStatusEnum {
|
public enum PublishStatusEnum {
|
||||||
|
|
||||||
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{
|
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
|
||||||
add(TmplStsEnum.DRAFT.getCode());
|
|
||||||
add(TmplStsEnum.STOPPED.getCode());
|
|
||||||
}}),
|
|
||||||
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
|
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
|
||||||
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() {{
|
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() );
|
||||||
add(TmplStsEnum.DRAFT.getCode());
|
|
||||||
add(TmplStsEnum.STOPPED.getCode());
|
|
||||||
}});
|
|
||||||
|
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|||||||
@@ -5,9 +5,15 @@ import java.util.Set;
|
|||||||
|
|
||||||
public enum UpdateStatusEnum {
|
public enum UpdateStatusEnum {
|
||||||
|
|
||||||
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
|
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{
|
||||||
|
add(TmplStsEnum.DRAFT.getCode());
|
||||||
|
add(TmplStsEnum.STOPPED.getCode());
|
||||||
|
}}),
|
||||||
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
|
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
|
||||||
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>());
|
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>(){{
|
||||||
|
add(TmplStsEnum.DRAFT.getCode());
|
||||||
|
add(TmplStsEnum.STOPPED.getCode());
|
||||||
|
}});
|
||||||
|
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
package com.zt.plat.module.base.controller.admin.templtp;
|
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.*;
|
||||||
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.TemplateInstanceDO;
|
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO;
|
||||||
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService;
|
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService;
|
||||||
import com.zt.plat.module.infra.api.file.FileApi;
|
import com.zt.plat.module.infra.api.file.FileApi;
|
||||||
@@ -22,6 +19,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
|
|
||||||
import jakarta.validation.*;
|
import jakarta.validation.*;
|
||||||
import jakarta.servlet.http.*;
|
import jakarta.servlet.http.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -30,6 +28,7 @@ import com.zt.plat.framework.common.pojo.PageParam;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||||
@@ -40,7 +39,6 @@ import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
|||||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 模板实例")
|
@Tag(name = "管理后台 - 模板实例")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/base/template-instance")
|
@RequestMapping("/base/template-instance")
|
||||||
@@ -51,28 +49,14 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
|||||||
static {
|
static {
|
||||||
FileUploadController annotation = TemplateInstanceController.class.getAnnotation(FileUploadController.class);
|
FileUploadController annotation = TemplateInstanceController.class.getAnnotation(FileUploadController.class);
|
||||||
if (annotation != null) {
|
if (annotation != null) {
|
||||||
setFileUploadInfo(annotation);
|
setFileUploadInfo(annotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TemplateInstanceService templateInstanceService;
|
private TemplateInstanceService templateInstanceService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private FileApi fileApi;
|
|
||||||
|
|
||||||
// @PostMapping("/upload-file")
|
|
||||||
// @Operation(summary = "上传模板实例文件")
|
|
||||||
// public CommonResult<Map<String, String> >upload(MultipartFile file) {
|
|
||||||
// Map<String, String> fileMap = new HashMap<>();
|
|
||||||
// try {
|
|
||||||
// String fileWhitReturn = fileApi.createFile(file.getBytes(), file.getOriginalFilename());
|
|
||||||
// fileMap.put("fileUrl", fileWhitReturn);
|
|
||||||
// } catch (IOException e) {
|
|
||||||
// throw new RuntimeException(e);
|
|
||||||
// }
|
|
||||||
// return success(fileMap);
|
|
||||||
// }
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建模板实例")
|
@Operation(summary = "创建模板实例")
|
||||||
@PreAuthorize("@ss.hasPermission('bse:template-instance:create')")
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:create')")
|
||||||
@@ -100,7 +84,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
|||||||
@DeleteMapping("/delete-list")
|
@DeleteMapping("/delete-list")
|
||||||
@Parameter(name = "ids", description = "编号", required = true)
|
@Parameter(name = "ids", description = "编号", required = true)
|
||||||
@Operation(summary = "批量删除模板实例")
|
@Operation(summary = "批量删除模板实例")
|
||||||
@PreAuthorize("@ss.hasPermission('bse:template-instance:delete')")
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:delete')")
|
||||||
public CommonResult<Boolean> deleteTemplateInstanceList(@RequestBody BatchDeleteReqVO req) {
|
public CommonResult<Boolean> deleteTemplateInstanceList(@RequestBody BatchDeleteReqVO req) {
|
||||||
templateInstanceService.deleteTemplateInstanceListByIds(req.getIds());
|
templateInstanceService.deleteTemplateInstanceListByIds(req.getIds());
|
||||||
return success(true);
|
return success(true);
|
||||||
@@ -113,7 +97,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
|||||||
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@RequestParam("id") Long id) {
|
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@RequestParam("id") Long id) {
|
||||||
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(id);
|
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(id);
|
||||||
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
|
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
|
||||||
templateInstanceRespVO.setDeptIds(templateInstanceService.getDeptByInstanId(id));
|
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
|
||||||
return success(templateInstanceRespVO);
|
return success(templateInstanceRespVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +106,11 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
|||||||
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
|
||||||
public CommonResult<PageResult<TemplateInstanceRespVO>> getTemplateInstancePage(@Valid TemplateInstancePageReqVO pageReqVO) {
|
public CommonResult<PageResult<TemplateInstanceRespVO>> getTemplateInstancePage(@Valid TemplateInstancePageReqVO pageReqVO) {
|
||||||
PageResult<TemplateInstanceDO> pageResult = templateInstanceService.getTemplateInstancePage(pageReqVO);
|
PageResult<TemplateInstanceDO> pageResult = templateInstanceService.getTemplateInstancePage(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, TemplateInstanceRespVO.class));
|
PageResult<TemplateInstanceRespVO> templateInstanceRespVOPageResult = BeanUtils.toBean(pageResult, TemplateInstanceRespVO.class);
|
||||||
|
templateInstanceRespVOPageResult.getList().forEach(templateInstanceRespVO -> {
|
||||||
|
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
|
||||||
|
});
|
||||||
|
return success(templateInstanceRespVOPageResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@@ -130,14 +118,15 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
|||||||
@PreAuthorize("@ss.hasPermission('bse:template-instance:export')")
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:export')")
|
||||||
@ApiAccessLog(operateType = EXPORT)
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
public void exportTemplateInstanceExcel(@Valid TemplateInstancePageReqVO pageReqVO,
|
public void exportTemplateInstanceExcel(@Valid TemplateInstancePageReqVO pageReqVO,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response) throws IOException {
|
||||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
List<TemplateInstanceDO> list = templateInstanceService.getTemplateInstancePage(pageReqVO).getList();
|
List<TemplateInstanceDO> list = templateInstanceService.getTemplateInstancePage(pageReqVO).getList();
|
||||||
// 导出 Excel
|
// 导出 Excel
|
||||||
ExcelUtils.write(response, "模板实例.xls", "数据", TemplateInstanceRespVO.class,
|
ExcelUtils.write(response, "模板实例.xls", "数据", TemplateInstanceRespVO.class,
|
||||||
BeanUtils.toBean(list, TemplateInstanceRespVO.class));
|
BeanUtils.toBean(list, TemplateInstanceRespVO.class));
|
||||||
}
|
}
|
||||||
//模版实例发布
|
|
||||||
|
//模版实例发布
|
||||||
@PostMapping("/publish-batch")
|
@PostMapping("/publish-batch")
|
||||||
@Operation(summary = "模版实例发布")
|
@Operation(summary = "模版实例发布")
|
||||||
@PreAuthorize("@ss.hasPermission('bse:template-instance:publish')")
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:publish')")
|
||||||
@@ -145,4 +134,25 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
|||||||
templateInstanceService.publishTemplateInstance(publishReqVOS);
|
templateInstanceService.publishTemplateInstance(publishReqVOS);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//不显示停用状态的查询接口
|
||||||
|
@GetMapping("/list-excluding-disabled")
|
||||||
|
@Operation(summary = "获得模板实例")
|
||||||
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
|
||||||
|
public CommonResult<PageResult<TemplateInstanceRespVO>> listExcludingDisabled(@Valid TemplateInstancePageReqVO pageReqVO) {
|
||||||
|
PageResult<TemplateInstanceRespVO> templateInstanceRespVOPageResult = BeanUtils.toBean(templateInstanceService.listExcludingDisabled(pageReqVO), TemplateInstanceRespVO.class);
|
||||||
|
templateInstanceRespVOPageResult.getList().forEach(templateInstanceRespVO -> {
|
||||||
|
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
|
||||||
|
});
|
||||||
|
return success(templateInstanceRespVOPageResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
//停用和启用接口
|
||||||
|
@PostMapping("/disable-enable")
|
||||||
|
@Operation(summary = "实例停用和启用接口",description = "实例停用和启用接口")
|
||||||
|
@PreAuthorize("@ss.hasPermission('bse:template-instance:disable-enable')")
|
||||||
|
public CommonResult<Boolean> setDisableOrEnable(@Valid @RequestBody DisableEnableReqVO reqVO) {
|
||||||
|
templateInstanceService.setDisableOrEnable(reqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 实例启用与禁用 Request VO")
|
||||||
|
@Data
|
||||||
|
public class DisableEnableReqVO {
|
||||||
|
@Schema(description = "实例主键(id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
@NotEmpty(message = "实例主键不能为空")
|
||||||
|
private List<String> ids;
|
||||||
|
@Schema(description = "操作类型;操作类型type,type的值启用为enable,禁用为disable", requiredMode = Schema.RequiredMode.REQUIRED, example = "enable")
|
||||||
|
@NotEmpty(message = "实例操作类型不能为空")
|
||||||
|
private String type;
|
||||||
|
}
|
||||||
@@ -56,6 +56,10 @@ public class TemplateInstanceRespVO {
|
|||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
@Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
@Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
|
||||||
private List<String> deptIds;
|
private List<String> deptIds;
|
||||||
|
@Schema(description = "实例字段;这个是实例字段绑定的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
|
||||||
|
private List<TemplateInstanceDataRespVO> templateInstanceDataRespVOS;
|
||||||
|
@Schema(description = "实例条款;这个是实例条款绑定的条款;", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
|
||||||
|
private List<TemplateInstanceItemRespVO> instanceItemRespVOS;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ public class TemplateInstanceSaveReqVO {
|
|||||||
@NotEmpty(message = "模板名称不能为空")
|
@NotEmpty(message = "模板名称不能为空")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
// @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotEmpty(message = "模板编码不能为空")
|
// @NotEmpty(message = "模板编码不能为空")
|
||||||
private String cdg;
|
// private String cdg;
|
||||||
|
|
||||||
@Schema(description = "模板描述")
|
@Schema(description = "模板描述")
|
||||||
private String dsp;
|
private String dsp;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 字段库 DO
|
* 字段库 DO
|
||||||
* 对应数据库表:BIZ_TMPL_TP_FLD
|
* 对应数据库表:BSE_TMPL_TP_FLD
|
||||||
*
|
*
|
||||||
* @author 后台管理
|
* @author 后台管理
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
|||||||
|
|
||||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO;
|
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO;
|
||||||
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO;
|
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO;
|
||||||
|
import com.zt.plat.module.tmpltp.enums.TmplStsEnum;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
|
||||||
@@ -33,5 +34,20 @@ public interface TemplateInstanceMapper extends BaseMapperX<TemplateInstanceDO>
|
|||||||
.betweenIfPresent(TemplateInstanceDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(TemplateInstanceDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.orderByDesc(TemplateInstanceDO::getId));
|
.orderByDesc(TemplateInstanceDO::getId));
|
||||||
}
|
}
|
||||||
|
default PageResult<TemplateInstanceDO> listExcludingDisabled(TemplateInstancePageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<TemplateInstanceDO>()
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getTpId, reqVO.getTpId())
|
||||||
|
.likeIfPresent(TemplateInstanceDO::getName, reqVO.getName())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getCdg, reqVO.getCdg())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getDsp, reqVO.getDsp())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getCntt, reqVO.getCntt())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getOrigCntt, reqVO.getOrigCntt())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getFileTp, reqVO.getFileTp())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getVer, reqVO.getVer())
|
||||||
|
.eqIfPresent(TemplateInstanceDO::getSts, reqVO.getSts())
|
||||||
|
.betweenIfPresent(TemplateInstanceDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.ne(TemplateInstanceDO::getSts, TmplStsEnum.STOPPED.getCode()) // 不包含停用状态(不等于停用状态)
|
||||||
|
.orderByDesc(TemplateInstanceDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,7 @@ package com.zt.plat.module.base.service.tmpltp;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import com.zt.plat.module.base.controller.admin.templtp.vo.PublishTemplateInstanceReqVO;
|
import com.zt.plat.module.base.controller.admin.templtp.vo.*;
|
||||||
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.TemplateInstanceDO;
|
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO;
|
||||||
import jakarta.validation.*;
|
import jakarta.validation.*;
|
||||||
|
|
||||||
@@ -67,4 +64,15 @@ public interface TemplateInstanceService {
|
|||||||
List<String> getDeptByInstanId(Long instanId);
|
List<String> getDeptByInstanId(Long instanId);
|
||||||
|
|
||||||
void publishTemplateInstance(List<PublishTemplateInstanceReqVO> publishReqVOS);
|
void publishTemplateInstance(List<PublishTemplateInstanceReqVO> publishReqVOS);
|
||||||
|
|
||||||
|
void getDetailedInfo(TemplateInstanceRespVO templateInstanceRespVO);
|
||||||
|
/**
|
||||||
|
* 获得模板实例分页排除停用状态的
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 模板实例分页
|
||||||
|
*/
|
||||||
|
PageResult<TemplateInstanceDO> listExcludingDisabled(@Valid TemplateInstancePageReqVO pageReqVO);
|
||||||
|
|
||||||
|
void setDisableOrEnable(@Valid DisableEnableReqVO reqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,14 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
|
import com.zt.plat.framework.security.core.LoginUser;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.module.base.controller.admin.templtp.vo.PublishTemplateInstanceReqVO;
|
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
|
||||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO;
|
import com.zt.plat.module.base.controller.admin.templtp.vo.*;
|
||||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceRespVO;
|
import com.zt.plat.module.base.dal.dataobject.tmpltp.*;
|
||||||
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.DepartmentInstanceRelativityMapper;
|
||||||
import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper;
|
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.TemplateInstanceItemMapper;
|
||||||
@@ -29,6 +26,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -63,6 +61,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
|||||||
// 插入
|
// 插入
|
||||||
TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class);
|
TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class);
|
||||||
templateInstance.setVer("v1.0"); //设置初始版本为v1.0
|
templateInstance.setVer("v1.0"); //设置初始版本为v1.0
|
||||||
|
templateInstance.setCdg(UUID.randomUUID().toString());//设置模板编码
|
||||||
templateInstance.setSts(TmplStsEnum.DRAFT.getCode());//设置初始状态为草稿
|
templateInstance.setSts(TmplStsEnum.DRAFT.getCode());//设置初始状态为草稿
|
||||||
int insert = templateInstanceMapper.insert(templateInstance);
|
int insert = templateInstanceMapper.insert(templateInstance);
|
||||||
if (insert <= 0) {
|
if (insert <= 0) {
|
||||||
@@ -86,21 +85,11 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
|||||||
public void updateTemplateInstance(TemplateInstanceSaveReqVO updateReqVO) {
|
public void updateTemplateInstance(TemplateInstanceSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateTemplateInstanceExists(updateReqVO.getId());
|
validateTemplateInstanceExists(updateReqVO.getId());
|
||||||
// TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId());
|
|
||||||
// //获取保存旧文件内容防止被更新
|
|
||||||
// String originalContent = templateInstanceDO.getOriginalContent();
|
|
||||||
|
|
||||||
//校验该记录能否被修改
|
//校验该记录能否被修改
|
||||||
validateStatusCanUpdate(updateReqVO.getId());
|
validateStatusCanUpdate(updateReqVO.getId());
|
||||||
// 更新
|
// 更新
|
||||||
TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId());
|
TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId());
|
||||||
String sts = templateInstanceDO.getSts();
|
|
||||||
if (!sts.equals( TmplStsEnum.DRAFT.getCode())) {
|
|
||||||
throw exception(STATUS_OPERATION_FAIL);
|
|
||||||
}
|
|
||||||
|
|
||||||
TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class);
|
TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class);
|
||||||
// updateObj.setOrigCntt(null); //重新赋值,防止原始文件被更改
|
|
||||||
updateObj.setVer(incrementVersion(templateInstanceDO.getVer()));
|
updateObj.setVer(incrementVersion(templateInstanceDO.getVer()));
|
||||||
templateInstanceMapper.updateById(updateObj);
|
templateInstanceMapper.updateById(updateObj);
|
||||||
}
|
}
|
||||||
@@ -238,7 +227,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
|||||||
PublishStatusEnum status = PublishStatusEnum.fromCode(currentStatus);
|
PublishStatusEnum status = PublishStatusEnum.fromCode(currentStatus);
|
||||||
boolean transitionAllowed = false;
|
boolean transitionAllowed = false;
|
||||||
if (status != null) {
|
if (status != null) {
|
||||||
transitionAllowed = status.isTransitionAllowed( TmplStsEnum.PUBLISHED.getCode());
|
transitionAllowed = status.isTransitionAllowed(TmplStsEnum.PUBLISHED.getCode());
|
||||||
}
|
}
|
||||||
if (!transitionAllowed) {
|
if (!transitionAllowed) {
|
||||||
throw exception(STATUS_OPERATION_FAIL);
|
throw exception(STATUS_OPERATION_FAIL);
|
||||||
@@ -252,13 +241,57 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
|||||||
.set(TemplateInstanceDO::getSts, TmplStsEnum.PUBLISHED.getCode()));
|
.set(TemplateInstanceDO::getSts, TmplStsEnum.PUBLISHED.getCode()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateStatusCanDelete(List<Long> ids) {
|
@Override
|
||||||
|
public PageResult<TemplateInstanceDO> listExcludingDisabled(TemplateInstancePageReqVO pageReqVO) {
|
||||||
|
return templateInstanceMapper.listExcludingDisabled(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDisableOrEnable(DisableEnableReqVO reqVO) {
|
||||||
|
validateTemplateInstanceExists(reqVO.getIds().stream().map(Long::valueOf).toList());
|
||||||
|
String code;
|
||||||
|
if (reqVO.getType().equals("disable")) {
|
||||||
|
// 禁用
|
||||||
|
code = TmplStsEnum.STOPPED.getCode();
|
||||||
|
} else {
|
||||||
|
// 启用
|
||||||
|
code = TmplStsEnum.PUBLISHED.getCode();
|
||||||
|
}
|
||||||
|
templateInstanceMapper.update(new LambdaUpdateWrapper<TemplateInstanceDO>()
|
||||||
|
.set(TemplateInstanceDO::getSts, code)
|
||||||
|
.in(TemplateInstanceDO::getId, reqVO.getIds()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getDetailedInfo(TemplateInstanceRespVO templateInstanceRespVO) {
|
||||||
|
templateInstanceRespVO.setDeptIds(getDeptByInstanId(templateInstanceRespVO.getId()));
|
||||||
|
templateInstanceRespVO.setInstanceItemRespVOS(setInstanceItemRespVOS(templateInstanceRespVO.getId()));
|
||||||
|
templateInstanceRespVO.setTemplateInstanceDataRespVOS(setTemplateInstanceDataRespVOS(templateInstanceRespVO.getId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 实例条款值
|
||||||
|
private List<TemplateInstanceItemRespVO> setInstanceItemRespVOS(Long id) {
|
||||||
|
List<TemplateInstanceItemDO> templateInstanceItemDOS = templateInstanceItemMapper.selectList(new LambdaQueryWrapper<TemplateInstanceItemDO>()
|
||||||
|
.eq(TemplateInstanceItemDO::getInscId, id)
|
||||||
|
.eq(TemplateInstanceItemDO::getCompanyId, CompanyContextHolder.getCompanyId()));
|
||||||
|
return BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 实例数据
|
||||||
|
private List<TemplateInstanceDataRespVO> setTemplateInstanceDataRespVOS(Long id) {
|
||||||
|
return BeanUtils.toBean(templateInstanceDataMapper.selectList(new LambdaQueryWrapper<TemplateInstanceDataDO>()
|
||||||
|
.eq(TemplateInstanceDataDO::getInscId, id)
|
||||||
|
.eq(TemplateInstanceDataDO::getCompanyId, CompanyContextHolder.getCompanyId())), TemplateInstanceDataRespVO.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateStatusCanDelete(List<Long> ids) {
|
||||||
Set<String> sts = templateInstanceMapper.selectByIds(ids).stream().map(TemplateInstanceDO::getSts).collect(Collectors.toSet());
|
Set<String> sts = templateInstanceMapper.selectByIds(ids).stream().map(TemplateInstanceDO::getSts).collect(Collectors.toSet());
|
||||||
sts.forEach(status -> {
|
sts.forEach(status -> {
|
||||||
DeleteStatusEnum deleteStatusEnum = DeleteStatusEnum.fromCode(status);
|
DeleteStatusEnum deleteStatusEnum = DeleteStatusEnum.fromCode(status);
|
||||||
boolean transitionAllowed = false;
|
boolean transitionAllowed = false;
|
||||||
if (deleteStatusEnum != null) {
|
if (deleteStatusEnum != null) {
|
||||||
transitionAllowed = deleteStatusEnum.isTransitionAllowed( TmplStsEnum.DRAFT.getCode());
|
transitionAllowed = deleteStatusEnum.isTransitionAllowed(TmplStsEnum.DRAFT.getCode());
|
||||||
}
|
}
|
||||||
if (!transitionAllowed) {
|
if (!transitionAllowed) {
|
||||||
throw exception(STATUS_OPERATION_FAIL);
|
throw exception(STATUS_OPERATION_FAIL);
|
||||||
@@ -266,7 +299,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateStatusCanDelete(Long id) {
|
private void validateStatusCanDelete(Long id) {
|
||||||
String sts = templateInstanceMapper.selectById(id).getSts();
|
String sts = templateInstanceMapper.selectById(id).getSts();
|
||||||
DeleteStatusEnum deleteStatusEnum = DeleteStatusEnum.fromCode(sts);
|
DeleteStatusEnum deleteStatusEnum = DeleteStatusEnum.fromCode(sts);
|
||||||
boolean transitionAllowed = false;
|
boolean transitionAllowed = false;
|
||||||
@@ -277,6 +310,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
|||||||
throw exception(STATUS_OPERATION_FAIL);
|
throw exception(STATUS_OPERATION_FAIL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateStatusCanUpdate(Long id) {
|
private void validateStatusCanUpdate(Long id) {
|
||||||
String sts = templateInstanceMapper.selectById(id).getSts();
|
String sts = templateInstanceMapper.selectById(id).getSts();
|
||||||
UpdateStatusEnum updateStatusEnum = UpdateStatusEnum.fromCode(sts);
|
UpdateStatusEnum updateStatusEnum = UpdateStatusEnum.fromCode(sts);
|
||||||
|
|||||||
Reference in New Issue
Block a user