模版编制相关实现

This commit is contained in:
潘荣晟
2025-09-28 15:11:23 +08:00
parent 08c3ffef4f
commit 5463bc3d16
16 changed files with 134 additions and 96 deletions

View File

@@ -7,6 +7,7 @@ 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.dto.FileCreateReqDTO;
import jakarta.validation.constraints.NotEmpty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -42,6 +43,7 @@ import org.springframework.web.multipart.MultipartFile;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Slf4j
@Tag(name = "管理后台 - 模板实例")
@RestController
@RequestMapping("/base/template-instance")
@@ -103,14 +105,16 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@Operation(summary = "获得模板实例")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@RequestParam("id") Long id) {
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(id);
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@Valid @NotEmpty(message = "编号不能为空") @RequestParam("id") String id) {
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(Long.valueOf(id));
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
if (templateInstance == null) {
if (templateInstanceRespVO != null) {
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
log.info("==================模板实例详情查询成功=================");
return success(templateInstanceRespVO);
}
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
return success(templateInstanceRespVO);
return success(null);
}
@GetMapping("/page")

View File

@@ -4,6 +4,7 @@ package com.zt.plat.module.base.controller.admin.templtp;
import com.zt.plat.module.base.controller.admin.templtp.vo.*;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpDO;
import com.zt.plat.module.base.service.tmpltp.TmplTpService;
import jakarta.validation.constraints.NotEmpty;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -85,8 +86,8 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@Operation(summary = "获得模板分类")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
public CommonResult<TmplTpRespVO> getTmplTp(@RequestParam("id") Long id) {
TmplTpDO tmplTp = tmplTpService.getTmplTp(id);
public CommonResult<TmplTpRespVO> getTmplTp(@Valid @NotEmpty(message = "编号不能为空") @RequestParam("id") String id) {
TmplTpDO tmplTp = tmplTpService.getTmplTp(Long.valueOf(id));
return success(BeanUtils.toBean(tmplTp, TmplTpRespVO.class));
}
@@ -114,10 +115,10 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@GetMapping("/field-and-clause")
@Operation(summary = "获得字段和条款",description = "字段和条款回显,传入模版分类的id")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
public CommonResult<Map<String, Object>> getFieldAndClause(@RequestParam("id") Long id) {
public CommonResult<Map<String, Object>> getFieldAndClause(@Valid @NotEmpty(message = "编号不能为空")@RequestParam("id") String id) {
Map<String, Object> map = new HashMap<>();
map.put("field", tmplTpService.getField(id));
map.put("clause", tmplTpService.getClause(id));
map.put("field", tmplTpService.getField(Long.valueOf(id)));
map.put("clause", tmplTpService.getClause(Long.valueOf(id)));
return success(map);
}
//获取分类树

View File

@@ -71,8 +71,8 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
if (callback.getActions() != null) {
for (Action action : callback.getActions()) {
String actionType = switch (action.getType()) {
case 0 -> "断开了";
case 1 -> "连接";
case 0 -> "断开了连接";
case 1 -> "连接成功";
case 2 -> "在中点击了强制保存";
default -> "在中执行了未知操作";
};
@@ -146,15 +146,16 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
MultipartFile file = downloadFileAsMultipart(callback.getUrl());
// 1. 验证文件是否为空
String directory = "模版实例";
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
fileCreateReqDTO.setName(fileName);
fileCreateReqDTO.setContent(file.getBytes());
fileCreateReqDTO.setType(file.getContentType()); // 使用真实的MIME类型
fileCreateReqDTO.setDirectory(directory); // 设置文件存储目录
if (file.getSize() <=0){
log.error("文件大小为0");
return;
}
// 7. 调用文件服务创建文件
CommonResult<FileRespDTO> result = fileApi.createFileWithReturn(fileCreateReqDTO);
if (result.isSuccess()) {

View File

@@ -50,7 +50,9 @@ public class UrlFileDownloader {
String contentType = connection.getContentType() == null ? "application/octet-stream" : connection.getContentType();
// 3. 读取文件字节内容
byte[] fileBytes = readFileBytes(connection.getInputStream());
if (fileBytes.length == 0){
throw new IOException("文件内容为空");
}
// 4. 使用自定义MultipartFile实现类封装不依赖Spring Test
return new CustomMultipartFile(
"file", // 表单字段名(与上传接口的@RequestParam("file")对应)

View File

@@ -8,6 +8,8 @@ import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 实例字段值 Mapper
@@ -25,7 +27,7 @@ public interface TemplateInstanceDataMapper extends BaseMapperX<TemplateInstance
.betweenIfPresent(TemplateInstanceDataDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(TemplateInstanceDataDO::getId));
}
int deleteByTemplateInstanceId(@Param("templateInstanceId") Long templateInstanceId);
int deleteByTemplateInstanceIds(@Param("templateInstanceIds") List<Long> templateInstanceIds);
int updateFldValById(@Param("inscId") String inscId, @Param("fldVal") String fldVal, @Param("fldKy") String fldKy);

View File

@@ -8,6 +8,8 @@ import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 实例条款值 Mapper
@@ -26,5 +28,5 @@ public interface TemplateInstanceItemMapper extends BaseMapperX<TemplateInstance
.orderByDesc(TemplateInstanceItemDO::getId));
}
int deleteByTemplateInstanceId(@Param("templateInstanceId") Long templateInstanceId);
int deleteByTemplateInstanceIds(@Param("templateInstanceIds") List<Long> templateInstanceIds);
}

View File

@@ -6,6 +6,7 @@ import com.zt.plat.module.base.controller.admin.templtp.vo.DepartmentInstanceRel
import com.zt.plat.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativitySaveReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO;
import com.zt.plat.module.base.dal.mysql.tmpltp.DepartmentInstanceRelativityMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -32,6 +33,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.DEPARTMENT_INST
*/
@Service
@Validated
@Slf4j
public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstanceRelativityService {
@Resource
@@ -43,6 +45,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
DepartmentInstanceRelativityDO departmentInstanceRelativity = BeanUtils.toBean(createReqVO, DepartmentInstanceRelativityDO.class);
departmentInstanceRelativityMapper.insert(departmentInstanceRelativity);
// 返回
log.info("创建部门与实例关联成功,结果:{}", departmentInstanceRelativity);
return BeanUtils.toBean(departmentInstanceRelativity, DepartmentInstanceRelativityRespVO.class);
}
@@ -53,6 +56,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
// 更新
DepartmentInstanceRelativityDO updateObj = BeanUtils.toBean(updateReqVO, DepartmentInstanceRelativityDO.class);
departmentInstanceRelativityMapper.updateById(updateObj);
log.info("更新部门与实例关联成功,结果:{}", updateObj);
}
@Override
@@ -61,6 +65,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
validateDepartmentInstanceRelativityExists(id);
// 删除
departmentInstanceRelativityMapper.deleteById(id);
log.info("删除部门与实例关联成功,结果:{}", id);
}
@Override
@@ -69,6 +74,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
validateDepartmentInstanceRelativityExists(ids);
// 删除
departmentInstanceRelativityMapper.deleteByIds(ids);
log.info("删除部门与实例关联成功,结果:{}", ids);
}
private void validateDepartmentInstanceRelativityExists(List<Long> ids) {

View File

@@ -10,6 +10,7 @@ import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
@@ -36,6 +37,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTAN
*/
@Service
@Validated
@Slf4j
public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataService {
@Resource
@@ -54,6 +56,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
// 插入
TemplateInstanceDataDO templateInstanceData = BeanUtils.toBean(createReqVO, TemplateInstanceDataDO.class);
templateInstanceDataMapper.insert(templateInstanceData);
log.info("创建实例与字段值关系成功,结果:{}", templateInstanceData);
// 返回
return BeanUtils.toBean(templateInstanceData, TemplateInstanceDataRespVO.class);
}
@@ -65,6 +68,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
// 更新
TemplateInstanceDataDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDataDO.class);
templateInstanceDataMapper.updateById(updateObj);
log.info("更新实例与字段值关系成功,结果:{}", updateObj);
}
@Override
@@ -73,6 +77,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
validateTemplateInstanceDataExists(id);
// 删除
templateInstanceDataMapper.deleteById(id);
log.info("删除实例与字段值关系成功,结果:{}", id);
}
@Override
@@ -81,6 +86,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
validateTemplateInstanceDataExists(ids);
// 删除
templateInstanceDataMapper.deleteByIds(ids);
log.info("删除实例与字段值关系成功,结果:{}", ids);
}
private void validateTemplateInstanceDataExists(List<Long> ids) {
@@ -103,6 +109,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
@Override
public PageResult<TemplateInstanceDataDO> getTemplateInstanceDataPage(TemplateInstanceDataPageReqVO pageReqVO) {
log.info("查询实例与字段值关系列表,参数:{}", pageReqVO);
return templateInstanceDataMapper.selectPage(pageReqVO);
}
@@ -112,7 +119,10 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
if (CollUtil.isEmpty(pageReqVOS)) {
throw exception(PARAMS_IS_NULL_OR_ERR);
}
pageReqVOS.forEach(i->templateInstanceDataMapper.updateFldValById(i.getInscId(),i.getFldVal(),i.getFldKy()));
pageReqVOS.forEach(
i->{templateInstanceDataMapper.updateFldValById(i.getInscId(),i.getFldVal(),i.getFldKy());
log.info("更新实例与字段值关系成功结果实例id【{}】,key:【{}】,值【{}】", i.getInscId(),i.getFldKy(),i.getFldVal());
});
return true;
}

View File

@@ -6,6 +6,7 @@ import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemR
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemSaveReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO;
import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceItemMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -23,6 +24,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTAN
*/
@Service
@Validated
@Slf4j
public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemService {
@Resource
@@ -33,6 +35,7 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
// 插入
TemplateInstanceItemDO templateInstanceItem = BeanUtils.toBean(createReqVO, TemplateInstanceItemDO.class);
templateInstanceItemMapper.insert(templateInstanceItem);
log.info("创建成功实例与条款关系成功,记录为【{}】", templateInstanceItem);
// 返回
return BeanUtils.toBean(templateInstanceItem, TemplateInstanceItemRespVO.class);
}
@@ -44,6 +47,7 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
// 更新
TemplateInstanceItemDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceItemDO.class);
templateInstanceItemMapper.updateById(updateObj);
log.info("更新成功实例与条款关系成功,记录为【{}】", updateObj);
}
@Override
@@ -52,6 +56,7 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
validateTemplateInstanceItemExists(id);
// 删除
templateInstanceItemMapper.deleteById(id);
log.info("删除成功实例与条款关系成功,记录为【{}】", id);
}
@Override
@@ -60,6 +65,7 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
validateTemplateInstanceItemExists(ids);
// 删除
templateInstanceItemMapper.deleteByIds(ids);
log.info("删除成功实例与条款关系成功,记录为【{}】", ids);
}
private void validateTemplateInstanceItemExists(List<String> ids) {

Some files were not shown because too many files have changed in this diff Show More