模版编制的相关实现

This commit is contained in:
潘荣晟
2025-09-23 18:08:50 +08:00
parent 204e2ea510
commit 9cd63f144a
7 changed files with 44 additions and 11 deletions

View File

@@ -21,6 +21,7 @@ public interface ErrorCodeConstants {
ErrorCode STATUS_OPERATION_FAIL= new ErrorCode(1_027_000_513, "当前状态不支持此操作"); ErrorCode STATUS_OPERATION_FAIL= new ErrorCode(1_027_000_513, "当前状态不支持此操作");
ErrorCode NOT_FOUND_CLASS= new ErrorCode(1_027_000_514, "找不到对应的类"); ErrorCode NOT_FOUND_CLASS= new ErrorCode(1_027_000_514, "找不到对应的类");
ErrorCode UTIL_NOT_INIT= new ErrorCode(1_027_000_515, "工具类为未初始化"); ErrorCode UTIL_NOT_INIT= new ErrorCode(1_027_000_515, "工具类为未初始化");
ErrorCode TMPL_INS_FLD_CODE_EXISTS = new ErrorCode(1_027_000_516, "字段已存在");
//Illegal operation type //Illegal operation type
} }

View File

@@ -1,6 +1,6 @@
package com.zt.plat.module.base.controller.admin.templtp; package com.zt.plat.module.base.controller.admin.templtp;
import cn.hutool.core.io.IoUtil;
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.controller.admin.templtp.vo.TemplateInstanceRespVO; 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.controller.admin.templtp.vo.TemplateInstanceSaveReqVO;
@@ -18,7 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.*;
import jakarta.validation.*; import jakarta.validation.*;
import jakarta.servlet.http.*; import jakarta.servlet.http.*;
import java.util.*; import java.util.*;
@@ -34,7 +34,7 @@ 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;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import org.springframework.web.multipart.MultipartFile;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@@ -111,7 +111,9 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')") @PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
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);
return success(BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class)); TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
templateInstanceRespVO.setDeptIds(templateInstanceService.getDeptByInstanId(id));
return success(templateInstanceRespVO);
} }
@GetMapping("/page") @GetMapping("/page")

View File

@@ -56,4 +56,6 @@ public class TemplateInstanceRespVO {
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
@Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
private List<String> deptIds;
} }

View File

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import org.springframework.web.multipart.MultipartFile;
@Schema(description = "管理后台 - 模板实例新增/修改 Request VO") @Schema(description = "管理后台 - 模板实例新增/修改 Request VO")
@Data @Data

View File

@@ -1,6 +1,7 @@
package com.zt.plat.module.base.service.tmpltp; package com.zt.plat.module.base.service.tmpltp;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataPageReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO;
@@ -42,6 +43,14 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
@Override @Override
public TemplateInstanceDataRespVO createTemplateInstanceData(TemplateInstanceDataSaveReqVO createReqVO) { public TemplateInstanceDataRespVO createTemplateInstanceData(TemplateInstanceDataSaveReqVO createReqVO) {
//判断当前标识字段在数据库中是否存在
Long loginUserCompanyId = SecurityFrameworkUtils.getLoginUserCompanyId();
if (templateInstanceDataMapper.selectCount(new LambdaQueryWrapper<TemplateInstanceDataDO>()
.eq(TemplateInstanceDataDO::getFldKy,createReqVO)
.eq(TemplateInstanceDataDO::getInscId,createReqVO.getInscId())
.eq(TemplateInstanceDataDO::getCompanyId,loginUserCompanyId)) >0) {
throw exception(TMPL_INS_FLD_CODE_EXISTS);
}
// 插入 // 插入
TemplateInstanceDataDO templateInstanceData = BeanUtils.toBean(createReqVO, TemplateInstanceDataDO.class); TemplateInstanceDataDO templateInstanceData = BeanUtils.toBean(createReqVO, TemplateInstanceDataDO.class);
templateInstanceDataMapper.insert(templateInstanceData); templateInstanceDataMapper.insert(templateInstanceData);

View File

@@ -63,4 +63,5 @@ public interface TemplateInstanceService {
*/ */
PageResult<TemplateInstanceDO> getTemplateInstancePage(TemplateInstancePageReqVO pageReqVO); PageResult<TemplateInstanceDO> getTemplateInstancePage(TemplateInstancePageReqVO pageReqVO);
List<String> getDeptByInstanId(Long instanId);
} }

View File

@@ -1,8 +1,10 @@
package com.zt.plat.module.base.service.tmpltp; package com.zt.plat.module.base.service.tmpltp;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.util.SecurityFrameworkUtils;
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.controller.admin.templtp.vo.TemplateInstanceRespVO; 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.controller.admin.templtp.vo.TemplateInstanceSaveReqVO;
@@ -23,8 +25,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.STATUS_OPERATION_FAIL; import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*;
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTANCE_NOT_EXISTS;
/** /**
@@ -46,11 +47,13 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
private TemplateInstanceItemMapper templateInstanceItemMapper; private TemplateInstanceItemMapper templateInstanceItemMapper;
private static final Pattern VERSION_PATTERN = Pattern.compile("^(.*?)([0-9]+(?:\\.[0-9]+)*)(.*)$"); private static final Pattern VERSION_PATTERN = Pattern.compile("^(.*?)([0-9]+(?:\\.[0-9]+)*)(.*)$");
@Override @Override
@Transactional @Transactional
public TemplateInstanceRespVO createTemplateInstance(TemplateInstanceSaveReqVO createReqVO) { public TemplateInstanceRespVO createTemplateInstance(TemplateInstanceSaveReqVO createReqVO) {
// 插入 // 插入
TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class); TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class);
templateInstance.setVer("v1.0");
templateInstanceMapper.insert(templateInstance); templateInstanceMapper.insert(templateInstance);
//构建使用部门 //构建使用部门
@@ -81,7 +84,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
} }
TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class); TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class);
updateObj.setOrigCntt(null); //重新赋值,防止原始文件被更改 // updateObj.setOrigCntt(null); //重新赋值,防止原始文件被更改
updateObj.setVer(incrementVersion(templateInstanceDO.getVer())); updateObj.setVer(incrementVersion(templateInstanceDO.getVer()));
templateInstanceMapper.updateById(updateObj); templateInstanceMapper.updateById(updateObj);
} }
@@ -131,6 +134,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
return templateInstanceMapper.selectPage(pageReqVO); return templateInstanceMapper.selectPage(pageReqVO);
} }
private String incrementVersion(String currentVersion) { private String incrementVersion(String currentVersion) {
// 处理空值或空字符串 // 处理空值或空字符串
if (currentVersion == null || currentVersion.trim().isEmpty()) { if (currentVersion == null || currentVersion.trim().isEmpty()) {
@@ -189,4 +193,17 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
return prefix + newNumberPart + suffix; return prefix + newNumberPart + suffix;
} }
@Override
public List<String> getDeptByInstanId(Long instanId) {
Long loginUserCompanyId = SecurityFrameworkUtils.getLoginUserCompanyId();
return departmentInstanceRelativityMapper.selectList(new LambdaQueryWrapper<DepartmentInstanceRelativityDO>()
.eq(DepartmentInstanceRelativityDO::getTemplateInstanceId, instanId)
.eq(DepartmentInstanceRelativityDO::getCompanyId, loginUserCompanyId)
)
.stream()
.map(DepartmentInstanceRelativityDO::getCompanyDepartmentId)
.toList();
}
} }