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 5b5fbc6..cbfaec7 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 @@ -21,6 +21,7 @@ public interface ErrorCodeConstants { 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, "字段已存在"); //Illegal operation type } 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 8c9edfe..fdd827e 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,6 @@ 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.TemplateInstanceRespVO; 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.Operation; -import jakarta.validation.constraints.*; + import jakarta.validation.*; import jakarta.servlet.http.*; 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.apilog.core.annotation.ApiAccessLog; -import org.springframework.web.multipart.MultipartFile; + 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')") public CommonResult getTemplateInstance(@RequestParam("id") Long 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") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java index 9d7c34b..6d9bca1 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java @@ -56,4 +56,6 @@ public class TemplateInstanceRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private List deptIds; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java index 76475ee..8ecdf4d 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; import jakarta.validation.constraints.*; +import org.springframework.web.multipart.MultipartFile; @Schema(description = "管理后台 - 模板实例新增/修改 Request VO") @Data diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java index 7a37f87..dd117e9 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.base.service.tmpltp; 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.TemplateInstanceDataRespVO; import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO; @@ -42,6 +43,14 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ @Override public TemplateInstanceDataRespVO createTemplateInstanceData(TemplateInstanceDataSaveReqVO createReqVO) { + //判断当前标识字段在数据库中是否存在 + Long loginUserCompanyId = SecurityFrameworkUtils.getLoginUserCompanyId(); + if (templateInstanceDataMapper.selectCount(new LambdaQueryWrapper() + .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); templateInstanceDataMapper.insert(templateInstanceData); 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 d6f5385..77350d6 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 @@ -63,4 +63,5 @@ public interface TemplateInstanceService { */ PageResult getTemplateInstancePage(TemplateInstancePageReqVO pageReqVO); + List getDeptByInstanId(Long instanId); } 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 7960a25..3ec7b89 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 @@ -1,8 +1,10 @@ package com.zt.plat.module.base.service.tmpltp; 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.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.TemplateInstanceRespVO; 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 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.TEMPLATE_INSTANCE_NOT_EXISTS; +import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*; /** @@ -46,16 +47,18 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { private TemplateInstanceItemMapper templateInstanceItemMapper; private static final Pattern VERSION_PATTERN = Pattern.compile("^(.*?)([0-9]+(?:\\.[0-9]+)*)(.*)$"); + @Override @Transactional public TemplateInstanceRespVO createTemplateInstance(TemplateInstanceSaveReqVO createReqVO) { // 插入 TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class); + templateInstance.setVer("v1.0"); templateInstanceMapper.insert(templateInstance); //构建使用部门 List departmentInstanceRelativityDOS = new ArrayList<>(); - createReqVO.getDeptIds().forEach(deptId ->{ + createReqVO.getDeptIds().forEach(deptId -> { DepartmentInstanceRelativityDO departmentInstanceRelativityDO = new DepartmentInstanceRelativityDO(); departmentInstanceRelativityDO.setTemplateInstanceId(String.valueOf(templateInstance.getId())); departmentInstanceRelativityDO.setCompanyDepartmentId(deptId); @@ -70,7 +73,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { public void updateTemplateInstance(TemplateInstanceSaveReqVO updateReqVO) { // 校验存在 validateTemplateInstanceExists(updateReqVO.getId()); - // TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId()); + // TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(updateReqVO.getId()); // //获取保存旧文件内容防止被更新 // String originalContent = templateInstanceDO.getOriginalContent(); // 更新 @@ -81,7 +84,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { } TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class); - updateObj.setOrigCntt(null); //重新赋值,防止原始文件被更改 + // updateObj.setOrigCntt(null); //重新赋值,防止原始文件被更改 updateObj.setVer(incrementVersion(templateInstanceDO.getVer())); templateInstanceMapper.updateById(updateObj); } @@ -101,12 +104,12 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { } @Override - public void deleteTemplateInstanceListByIds(List ids) { + public void deleteTemplateInstanceListByIds(List ids) { // 校验存在 validateTemplateInstanceExists(ids); // 删除 templateInstanceMapper.deleteByIds(ids); - } + } private void validateTemplateInstanceExists(List ids) { List list = templateInstanceMapper.selectByIds(ids); @@ -131,6 +134,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { return templateInstanceMapper.selectPage(pageReqVO); } + private String incrementVersion(String currentVersion) { // 处理空值或空字符串 if (currentVersion == null || currentVersion.trim().isEmpty()) { @@ -189,4 +193,17 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { return prefix + newNumberPart + suffix; } + + @Override + public List getDeptByInstanId(Long instanId) { + Long loginUserCompanyId = SecurityFrameworkUtils.getLoginUserCompanyId(); + return departmentInstanceRelativityMapper.selectList(new LambdaQueryWrapper() + .eq(DepartmentInstanceRelativityDO::getTemplateInstanceId, instanId) + .eq(DepartmentInstanceRelativityDO::getCompanyId, loginUserCompanyId) + ) + .stream() + .map(DepartmentInstanceRelativityDO::getCompanyDepartmentId) + .toList(); + } + }