package org.hsweb.web.service.form;
import org.hsweb.web.bean.common.QueryParam;
import org.hsweb.web.bean.po.form.Form;
import org.hsweb.web.service.GenericService;
import java.sql.SQLException;
import java.util.List;
/**
* 自定义表单服务类
* Created by generator
*/
public interface FormService extends GenericService<Form, String> {
/**
* 修改表单,不修改原始数据,而是新加入一条数据,版本号自动+1.
*/
@Override
int update(Form data);
/**
* 创建一个新版本的表单
*
* @param oldVersionId 旧版本表单ID
* @return 新版本表单ID
*/
String createNewVersion(String oldVersionId);
/**
* 查询最新版本的表单列表
*
* @param param 查询参数
* @return 表单列表
*/
List<Form> selectLatestList(QueryParam param);
/**
* 查询最新版本的表单数量
*
* @param param 查询参数
* @return 表单数量
*/
int countLatestList(QueryParam param);
/**
* 发布表单,发布表单后,可通过{@link DynamicFormService}进行调用.
* 表单发布后,using属性自动改为true,其他已发布的版本将自动取消发布.
*
* @param formId 要发布的表单ID
*/
void deploy(String formId) throws SQLException;
void tryDeployAll();
/**
* 取消发布,取消发布后。表单失效。使用{@link DynamicFormService}后无法再进行调用
*
* @param formId 要取消发布的表单ID
*/
void unDeploy(String formId);
/**
* 创建当前已部署表单对应的html,用于前端渲染.
* 要创建的表单必须已经发布
*
* @param name 要创建html的表单名称
* @return html字符串
*/
String createDeployHtml(String name);
/**
* 根据名称查询已部署的表单
*
* @param name 表单名称
* @return 已部署的表单
*/
Form selectDeployed(String name);
/**
* 根据表单名称,获取最新版本的表单
*
* @param name 表单名称
* @return 表单对象,表单不存在将返回null
* @
*/
Form selectLatest(String name);
/**
* 根据表单名称和版本,获取表单
*
* @param name 表单名称
* @param version 表单版本
* @return 表单对象,表单不存在将返回null
* @
*/
Form selectByVersion(String name, int version);
/**
* 创建表单的html预览。
*
* @param id 表单ID
* @return html 字符串
*/
@Deprecated
String createViewHtml(String id);
/**
* 查询当前正在使用的表单
*
* @param name 正在使用的表单名称
* @return 表单对象。没有则返回null
* @
*/
Form selectUsing(String name);
int selectDeployedVersion(String name);
}