模版编制相关实现

This commit is contained in:
潘荣晟
2025-09-28 16:06:21 +08:00
parent 646d847d46
commit ca2b1c0b63
9 changed files with 69 additions and 3 deletions

View File

@@ -199,4 +199,11 @@ public class TemplateInstanceController extends AbstractFileUploadController {
public CommonResult<List<TemplateInstanceRespVO>> listByTemplateCode(@RequestParam("cdg") @Valid @NotEmpty(message = "模版编号不能为空") String templateCode) {
return success(templateInstanceService.listByCdg(templateCode));
}
//通过实例id获取字段和条款详情
@GetMapping("/field-and-clause-detail")
@Operation(summary = "通过实例id获取字段和条款详情")
public CommonResult<FieldAndClauseRespVO> getFieldAndClauseDetail(@Valid @NotEmpty(message = "模版实例id不能为空") @RequestParam("id") String id) {
return success(templateInstanceService.getFieldAndClauseDetail(id));
}
}

View File

@@ -115,6 +115,4 @@ public class TemplateInstanceDataController implements BusinessControllerMarker
ExcelUtils.write(response, "实例字段值.xls", "数据", TemplateInstanceDataRespVO.class,
BeanUtils.toBean(list, TemplateInstanceDataRespVO.class));
}
}

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 lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - 合同动态表单 响应 VO")
@Data
public class FieldAndClauseRespVO {
@Schema(description = "模板分类")
List<TmplFldRespVO> tmplFldRespVOS;
@Schema(description = "条款")
List<TmplItmRespVO> tmplItmRespVOS;
}

View File

@@ -85,4 +85,6 @@ public interface TemplateInstanceService {
// Map<String, Object> saveFile(MultipartFile file, String id);
void updateTemplateInstanceFileUrlByInstanceId(@Valid @NotEmpty(message = "模版实例id不能为空") String id, @Valid @NotEmpty(message = "文件参数不能为空") String params);
FieldAndClauseRespVO getFieldAndClauseDetail(@Valid @NotEmpty(message = "模版实例id不能为空") String id);
}

View File

@@ -55,7 +55,10 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
private TemplateInstanceDataMapper templateInstanceDataMapper;
@Resource
private TemplateInstanceItemMapper templateInstanceItemMapper;
@Resource
private TmplItmService tmplItmService;
@Resource
private TmplTpFldService tmplTpFldService;
@Resource
private TmplTpService tmplTpService;
@@ -444,4 +447,27 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
log.info("==================模板实例编号生成成功,模板实例编号为【{}】==================", cdg);
return cdg;
}
@Override
public FieldAndClauseRespVO getFieldAndClauseDetail(String id) {
FieldAndClauseRespVO fieldAndClauseRespVO = new FieldAndClauseRespVO();
//查询关联的实例模版字段
List<String> valKeys = templateInstanceDataMapper.selectList(new LambdaQueryWrapper<TemplateInstanceDataDO>().eq(TemplateInstanceDataDO::getInscId, id)).stream().map(TemplateInstanceDataDO::getFldKy).distinct().toList();
//查询关联的实例模版条款
List<String> itmIds = templateInstanceItemMapper.selectList(new LambdaQueryWrapper<TemplateInstanceItemDO>().eq(TemplateInstanceItemDO::getInscId, id)).stream().map(TemplateInstanceItemDO::getItmId).toList();
// 例模版条款去条款库查询条款信息
if (!itmIds.isEmpty()){
List<TmplItmRespVO> tmplItmRespVOS = BeanUtils.toBean(tmplItmService.listTmplItmByIds(itmIds), TmplItmRespVO.class);
fieldAndClauseRespVO.setTmplItmRespVOS(BeanUtils.toBean(tmplItmRespVOS, TmplItmRespVO.class));
}
if (!valKeys.isEmpty()){
//例模版字段去字段库查询字段信息
List<TmplTpFldDO> tmplTpListByValKeys = tmplTpFldService.getTmplTpListByValKeys(valKeys);
fieldAndClauseRespVO.setTmplFldRespVOS(BeanUtils.toBean(tmplTpListByValKeys, TmplFldRespVO.class));
}
return fieldAndClauseRespVO;
}
}

View File

@@ -7,6 +7,8 @@ import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmSaveReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplItmDO;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import java.util.List;
@@ -17,4 +19,5 @@ public interface TmplItmService extends IService<TmplItmDO> {
boolean deleteTmplItm(List<Long> ids);
PageResult<TmplItmDO> pageTmplItm(TmpItmPageReqVO pageReqVO);
List<TmplItmDO> listTmplItmByIds(@Valid @NotEmpty(message = "ids不能为空") List<String> ids);
}

View File

@@ -71,4 +71,9 @@ public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> im
public PageResult<TmplItmDO> pageTmplItm(TmpItmPageReqVO pageReqVO) {
return baseMapper.selectPage(pageReqVO);
}
@Override
public List<TmplItmDO> listTmplItmByIds(List<String> ids) {
return baseMapper.selectByIds(ids);
}
}

View File

@@ -19,4 +19,7 @@ public interface TmplTpFldService extends IService<TmplTpFldDO> {
void deleteTmplTpByIds(List< Long> ids);
List<Map<String, Object>>getTmplTpListByClass(String clazz);
List<TmplTpFldDO> getTmplTpListByValKeys(List< String> valNames);
}

View File

@@ -1,6 +1,7 @@
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.LoginUser;
@@ -90,4 +91,9 @@ public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFld
log.info("获取模板字段列表,模板字段类:【{}】", clazz);
return ClassInfoScanner.getClassFieldInfo(clazz);
}
@Override
public List<TmplTpFldDO> getTmplTpListByValKeys(List<String> valNames) {
return baseMapper.selectList(new LambdaQueryWrapper<TmplTpFldDO>().in(TmplTpFldDO::getFldKy, valNames));
}
}