# 工具
# 本地附件工具
# 引用
pom.xml加入如下配置:
<properties>
<megrez-file.version>1.0.0-SNAPSHOT</megrez-file.version>
</properties>
<dependencies>
<!-- 中台附件工具 -->
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>megrez-file</artifactId>
<version>${megrez-file.version}</version>
</dependency>
</dependencies>
# 配置
properties属性配置:
#附件下载地址(一般是被引用的后端地址)
base-url=http://localhost:35001
#图片附件浏览url
show.image.base.url=${base-url}/sysFileInfo/showImgStream?id=
#附件上传地址
file.upload.path=G:/fileUpload
# 数据库表(Mysql)
CREATE TABLE `sys_file_info` (
`id` varchar(50) NOT NULL,
`ref_id` varchar(50) DEFAULT NULL COMMENT '关联数据id',
`ref_table` varchar(50) DEFAULT NULL COMMENT '关联数据所属数据表名',
`ref_type` varchar(50) DEFAULT NULL COMMENT '关联数据类型',
`file_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
`file_location` varchar(100) NOT NULL COMMENT '文件存储路径',
`file_type` varchar(200) DEFAULT NULL COMMENT '文件类型',
`upload_time` datetime DEFAULT NULL COMMENT '上传时间',
`upload_person` varchar(50) DEFAULT NULL COMMENT '上传人',
`upload_personId` varchar(50) DEFAULT NULL COMMENT '上传人id',
`can_down_load` int DEFAULT '1' COMMENT '是否可以下载 0:不可以 1:可下载',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 接口说明
1、根据关联数据id读取附件信息列表
请求方式:POST application/json
接口:/sysFileInfo/getSysFileInfo
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
refId | 关联数据id | String | 必填 |
refTable | 关联数据所属数据表名 | String | 选填 |
refType | 关联数据类型 | String | 选填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | List<SysFileInfo> | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
refId | 关联数据主键 | String | |
refTable | 关联数据所属数据表名 | String | |
refType | 关联数据类型 | String | |
fileName | 文件名称 | String | |
fileLocation | 文件路劲 | String | |
fileType | 文件类型 | String | |
uploadTime | 上传时间 | LocalDateTime | |
uploadPerson | 上传人 | String | |
uploadPersonId | 上传人id | String | |
url | 图片url | String | |
canDownLoad | 是否可以下载 | Integer | 0:不可以 1:可下载 |
2、附件下载
请求方式:GET
接口:/sysFileInfo/showImgStream?id=
入参说明:
参数在api后拼接。
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String |
出参说明:
以文件流形式输出。
3、附件上传-1
请求方式:POST form/data
接口:/sysFileInfo/uploadSingle
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
file | 附件 | File[]/File |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | List<SysFileInfo> | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
refId | 关联数据主键 | String | |
refTable | 关联数据所属数据表名 | String | |
refType | 关联数据类型 | String | |
fileName | 文件名称 | String | |
fileLocation | 文件路劲 | String | |
fileType | 文件类型 | String | |
uploadTime | 上传时间 | LocalDateTime | |
uploadPerson | 上传人 | String | |
uploadPersonId | 上传人id | String | |
url | 图片url | String | |
canDownLoad | 是否可以下载 | Integer | 0:不可以 1:可下载 |
3、附件上传-2
请求方式:POST form/data
接口:/sysFileInfo/upload
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
file | 附件 | File[]/File | |
refId | 关联数据id | String | 必填 |
refTable | 关联数据所属数据表名 | String | 必填 |
refType | 关联数据类型 | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | List<SysFileInfo> | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
refId | 关联数据主键 | String | |
refTable | 关联数据所属数据表名 | String | |
refType | 关联数据类型 | String | |
fileName | 文件名称 | String | |
fileLocation | 文件路劲 | String | |
fileType | 文件类型 | String | |
uploadTime | 上传时间 | LocalDateTime | |
uploadPerson | 上传人 | String | |
uploadPersonId | 上传人id | String | |
url | 图片url | String | |
canDownLoad | 是否可以下载 | Integer | 0:不可以 1:可下载 |
4、删除附件
请求方式:POST application/json
接口:/sysFileInfo/delete
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件id | String |
# 云文件系统工具
# 引用
pom.xml加入如下配置:
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>hhh-filestore-feign</artifactId>
<version>2.1.0-SNAPSHOT</version>
</dependency>
# 接口说明
1、上传——获取分片信息接口
请求url:{url}/filestore/file/getBurstInfo
请求方法:post
请求格式:json
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
fileName | 文件名 | String | 必填 |
fileSize | 文件大小 | Long | 必填 |
isShowDown | 是否显示下载按钮 0不显示 1显示 | int | 必填 |
filePath | 文件归属文件夹,只能包含是数字以及大小写字母 | String | 必填 |
dataId | 表单数据ID | String | 选填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | Map<String,Object> | |
data.totalPart | 分片总数 | int | |
data.multipartSize | 分片大小(字节b) 文件按该字节分成多块 | long | |
data.multipartUploadId | 临时上传的ID,分片的上传ID | String | |
msg | 返回说明 | String |
2、上传——分片上传接口
请求url:{url}/filestore/file/uploadBurst
请求方法:post
请求格式:form-data
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
file | 前端根据分片大小分成多个文件,分片文件 | file | 必填 |
multipartUploadId | 临时上传的ID,分片的上传ID | String | 必填 |
multipartNum | 第几块分片数,分片下标,从1开始 | int | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | Map<String,Object> | |
data.multipartNums | 未上传的分片下标 | list | |
data.fileId | 文件ID | String | 所有分片上传完成之后返回 |
data.createTimeEnd | 上传结束时间 | String | 所有分片上传完成之后返回 |
msg | 返回说明 | String |
3、直接下载——请求头带token
请求url:{url}/filestore/file/downloadFile?fileId=XXX(fileId文件ID)
请求方法:get
入参说明:
出参说明:文件流
4、间接下载——获取一次性下载ID
请求url:{url}/filestore/file/tempDownloadFile
请求方法:post
请求格式:json
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
fileId | 文件ID | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | Map<String,Object> | |
data.randomId | 一次性下载ID | String | |
msg | 返回说明 | String |
5、间接下载——不需要请求头带token
请求url:{url}/filestore/file/tempDownloadFile?randomId=XXX(randomId一次性下载ID)
请求方法:get
出参说明:文件流
6、取消绑定、绑定文件(未绑定dataId的文件,将当垃圾文件定期清理)
//注入文件请求服务类
@Autowired
private IFilestoreClientService filestoreClientService;
/**
*
* 取消绑定、绑定文件
* @param dto——dataId 业务数据主键
* @param dto——addFileIds 添加文件关联关系
* @param dto——delFileIds 删除文件关联关系
* @return
*/
Map<String,Object> map=filestoreClientService.updateDataId(FileInfoUpdateDTO dto);
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
dataId | 需要绑定的文件id | String | 必填 |
addFileIds | 需要解绑的文件id | List<String> | 选填 |
delFileIds | 需要解绑并删除的文件id | List<String> | 选填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | Map<String,Object> | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
addSucessCount | 新增绑定数量 | int | |
delSucessCount | 取消绑定数量 | int |
7、文件信息列表
//注入文件请求服务类
@Autowired
private IFilestoreClientService filestoreClientService;
/**
*
* 取消绑定、绑定文件
* @param dto——dataId 业务数据主键
* @return
*/
List<FileInfoModel> fileInfoModel =filestoreClientService.findFileList(String dataId);
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
dataId | 业务数据主键 | String |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | List<FileInfoModel> | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 文件信息主键 | String | |
dataId | 业务数据ID | String | |
fileName | 文件名 | String | |
fileType | 文件类型 | String | |
createTime | 上传时间 | LocalDateTime | |
isShowDown | 是否显示下载按钮 | int | 0不显示 1显示 |
fileSize | 文件大小 | long | |
creatorName | 上传、创建人姓名 | String |
# Excel解析工具-v1.0
注意:改版本已经定版,不再更新,新版本请查看【DEI解析工具-v2.0.0】
# 功能说明
1、支持excel,单sheet数据导入导出解析。
2、支持excel,单sheet自动导入导出。
# 引用
pom.xml加入如下配置:
<properties>
<megrez-spring-boot-dei.version>1.0-SNAPSHOT</megrez-spring-boot-dei.version>
</properties>
<dependencies>
<!-- 中台附件工具 -->
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>megrez-spring-boot-dei</artifactId>
<version>${megrez-spring-boot-dei.version}</version>
</dependency>
</dependencies>
# 配置
properties属性配置:
#导入导出模板存储路径
dei.model-url=E:\\dei\\model
#导入导出临时存储路径
dei.temp-model-url=E:\\dei\\tempModel
# 数据库表(Mysql)
CREATE TABLE `bas_model` (
`id` varchar(36) NOT NULL,
`code` varchar(50) NOT NULL COMMENT '模板编码',
`name` varchar(50) NOT NULL COMMENT '模板名称',
`path` varchar(500) NOT NULL COMMENT '模板路径。模板实际存放绝对路径',
`total_column` int(3) NOT NULL COMMENT '列总数。遍历列总数',
`type` varchar(50) NOT NULL COMMENT '文件类型',
`suffix` varchar(10) NOT NULL COMMENT '文件后缀',
`start_row` int(3) NOT NULL DEFAULT '0' COMMENT '遍历起始索引',
`get_data_type` char(1) DEFAULT NULL COMMENT '导出方式。1、sql 2、service层方法 3、http',
`single_text` longtext COMMENT '导出单项方法',
`row_text` longtext COMMENT '导出列数据方法',
`import_single_text` longtext COMMENT 'import_single_text',
`import_row_text` longtext COMMENT '导入列数据方法',
`save_data_type` char(1) DEFAULT NULL COMMENT '导入方式。1、sql 2、service层方法 3、http',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `bas_model_column` (
`id` varchar(36) NOT NULL,
`model_code` varchar(50) NOT NULL COMMENT '模板编码',
`column_field` varchar(50) NOT NULL COMMENT '动态字段',
`column_name` varchar(500) DEFAULT NULL COMMENT '单元格名称。已废弃',
`column_index` int(3) NOT NULL COMMENT '所在列索引',
`verify` varchar(70) NOT NULL DEFAULT '0' COMMENT '校验方式。已废弃',
`type` varchar(1) NOT NULL DEFAULT '0' COMMENT '类型。0:列类型;1:docx文件列表类型; 2:单项类型',
`column_row_index` int(3) NOT NULL DEFAULT '0' COMMENT '所在行索引。0:列类型;1:docx文件列表类型; 2:单项类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `bas_model_error` (
`id` varchar(36) NOT NULL,
`batch_no` varchar(50) NOT NULL COMMENT '操作批次号',
`result` char(1) NOT NULL COMMENT '操作结果',
`message` varchar(500) DEFAULT NULL COMMENT '操作报告',
`row_index` varchar(100) DEFAULT NULL COMMENT '行索引值',
`column` longtext COMMENT '列参数。column0-column35字段',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `bas_model_file_parameter` (
`id` varchar(36) NOT NULL,
`code` varchar(50) DEFAULT NULL COMMENT '模板编码',
`type` varchar(50) DEFAULT NULL COMMENT '类型。1:导入;2:导出;3:预览',
`path` varchar(100) DEFAULT NULL COMMENT '存储路径',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `bas_model_log` (
`id` varchar(36) NOT NULL,
`model_code` varchar(50) NOT NULL COMMENT '模板编码',
`type` char(1) NOT NULL COMMENT '操作类型。1:导入;2:导出;3:预览',
`path` varchar(500) NOT NULL COMMENT '文件路径',
`file_name` varchar(100) NOT NULL COMMENT '文件名',
`file_type` varchar(50) NOT NULL COMMENT '文件类型',
`operator` varchar(50) NOT NULL COMMENT '操作人。已废弃',
`status` char(1) NOT NULL COMMENT '操作状态。0:操作成功;1:操作失败',
`message` varchar(250) NOT NULL COMMENT '操作报告',
`success_count` int(6) DEFAULT NULL COMMENT '成功记录总数',
`error_count` int(6) DEFAULT NULL COMMENT '失败记录总数',
`batch_no` varchar(50) NOT NULL COMMENT '临时批次号',
`create_time` datetime DEFAULT NULL COMMENT '创建日期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 接口说明
1、上传模板
请求方式:POST multipart/form-data
接口:/dei/tempFileUpload
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
file | 文件(xls) | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | 文件临时id |
msg | 返回说明 | String |
2、保存模板信息
请求方式:POST application/json
接口:/dei/modelAdd
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
tempKey | 文件临时id | String | 必填 |
code | 模板编号 | String | 必填 |
name | 模板名称 | String | 必填 |
startRow | 遍历起始行 | Integer | 必填 |
exportType | 是否可导出 | String | 必填。0:不可导出,1:可导出 |
importType | 是否可导入 | String | 必填。0:不可导入,1:可导入 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
3、编辑模板信息
请求方式:POST application/json
接口:/dei/modelEdit
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
tempKey | 文件临时id | String | 必填 |
name | 模板名称 | String | 必填 |
startRow | 遍历起始行 | Integer | 必填 |
exportType | 是否可导出 | String | 必填。0:不可导出,1:可导出 |
importType | 是否可导入 | String | 必填。0:不可导入,1:可导入 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
4、编辑模板信息
请求方式:POST application/json
接口:/dei/modelEdit
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
tempKey | 文件临时id | String | 必填 |
name | 模板名称 | String | 必填 |
startRow | 遍历起始行 | Integer | 必填 |
exportType | 是否可导出 | String | 必填。0:不可导出,1:可导出 |
importType | 是否可导入 | String | 必填。0:不可导入,1:可导入 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
4、模板详情
请求方式:POST application/json
接口:/dei/getModel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板id | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | BasModel | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板id | String | |
code | 模板编号 | String | |
name | 模板名称 | String | |
totalColumn | 列总数 | String | |
type | 文件类型 | String | |
suffix | 文件后缀 | String | |
startRow | 遍历起始行 | Integer | |
getDataType | 导出方式 | String | 1、sql 2、service层方法 3、http |
singleText | 导出单元格数据方法 | String | |
rowText | 导出列数据方法 | String | |
saveDataType | 导入方式 | String | 1、sql 2、service层方法 3、http |
importSingleText | 导出单元格数据方法 | String | |
importSingleText | 导出列数据方法 | String |
5、删除模板
请求方式:POST application/json
接口:/dei/modelDel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板id | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
6、导出模板
请求方式:GET
接口:/dei/exportModel?modelCode=
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
modelCode | 模板编号 | String | 必填 |
出参说明:
返回文件流。
7、自主导出报表
请求方式:GET
接口:/dei/exportExcel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
modelCode | 模板编号 | String | 必填 |
其他 | 其他参数 | - | 根据实际查询数据条件编辑 |
出参说明:
返回文件流。
8、自主导入报表
请求方式:POST multipart/form-data
接口:/dei/importExcel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
modelCode | 模板编号 | String | 必填 |
file | 其他参数 | - | 根据实际查询数据条件编辑 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
# 使用说明
# 创建模板使用
工具提供两种使用方式:1、只使用excel文档解析返回数据,和传入数据导出excel文档;2、完全使用工具,实现工具自动获取数据并导出,和实现工具获取excel文档自动解析并保存。
两种方式都需要使用“上传模板文件”和“保存模板”接口,将模板上传到服务器。用于解析和遍历数据。
1、只使用excel文档解析返回数据,和传入数据导出excel文档。
在保存模板时,调用接口,只要填写必填字段即可。
“exportType”:如果该模板支持导出,一定要设为1,否则为0;
“importType”:如果该模板支持导入,一定要设为1,否则为0。
2、完全使用工具,实现工具自动获取数据并导出,和实现工具获取excel文档自动解析并保存。
1)工具自动获取数据并导出
在保存模板时,调用接口,“exportType”为1时,需要填写:
“getDataType”:自主导出数据方式。1:sql, 2:service层方法,3:http
“singleText”:如果导出模板有单元格数据,则填写。
“rowText”:如果导出模板有列数据,则填写。
2)工具获取excel文档自动解析并保存
在保存模板时,调用接口,“importType”为1时,需要填写:
“saveDataType”:自主导出数据方式。1:sql, 2:service层方法,3:http
“importSingleText”:如果导入模板有单元格数据,则填写。
“importRowText”:如果导入模板有列数据,则填写。
# 模板文件编辑
1、excel模板格式为“xls”,不支持“xlsx”。
2、当前只支持遍历excel首页,不支持多页(sheet);支持一个列表数据遍历,不支持多个列表数据遍历。
3、模板编辑支持两种占位符:单元格数据占位符“$S{[KEY]}”和列数据占位符“$R{[KEY]}”。
单元格数据:指只需要填写一个或固定多个单元格的数据,非列表列值的数据。
列数据:指列表列数据。
模板文件编辑如下:
# 解析excel工具使用
1、导入
1)引用工具类
@Autowired
private DeiUtils deiUtils;
2)调用工具接口
JSONObject data = deiUtils.getExcelMessage(modelCode, file);
public void importExcel(String modelCode, MultipartFile file) {
try {
JSONObject data = deiUtils.getExcelMessage(modelCode, file);
} catch (IOException e) {
throw new BusinessException(e.getMessage());
}
}
deiUtils.getExcelMessage(String modelCode, MultipartFile file)返回数据格式说明:
{
"single": {}, //单元格数据
"rows": [ //列数据
{},
{},
...
]
}
2、导出
1)引用工具类
@Autowired
private DeiUtils deiUtils;
2)调用工具接口
deiUtils.export(modelCode, data, request, response);
@PostMapping("/export")
public void export(String modelCode, JSONObject data, HttpServletRequest request, HttpServletResponse response) {
String modelCode = "PERSONLIST";
JSONObject data = new JSONObject();
data.put("single", new JSONObject());
data.put("rows", new JSONArray());
deiUtils.export(modelCode, data, request, response);
}
调用该接口会自动返回导出文档的数据流,应在controller层调用。
deiUtils.export(modelCode, data, request, response)入参说明:
modelCode:模板编号
data:文档数据,格式如下:
{
"single": {}, //单元格数据
"rows": [ //列数据
{},
{},
...
]
}
# 自主导出excel使用
待补充。
# 自主导入excel使用
待补充。
# DEI解析工具-v1.1
# 功能说明
1、基于Excel解析工具-v1.0完善,改名为【DEI解析工具】,原用1.0的可以根据【指引】升级到v1.1。
2、支持excel,多sheet模板编辑。
3、支持v1.0所有功能。
# 引用
pom.xml加入如下配置:
<properties>
<megrez-spring-boot-dei.version>1.1-SNAPSHOT</megrez-spring-boot-dei.version>
</properties>
<dependencies>
<!-- 中台附件工具 -->
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>megrez-spring-boot-dei</artifactId>
<version>${megrez-spring-boot-dei.version}</version>
</dependency>
</dependencies>
# 配置
properties属性配置:
#导入导出模板存储路径
dei.model-url=E:\\dei\\model
#导入导出临时存储路径
dei.temp-model-url=E:\\dei\\tempModel
# 数据库表(Mysql)
CREATE TABLE `bas_model` (
`id` varchar(36) NOT NULL COMMENT 'ID',
`code` varchar(50) NOT NULL COMMENT '模板类型编号',
`name` varchar(50) NOT NULL COMMENT '模板类型名称',
`path` varchar(500) NOT NULL COMMENT '模板路径',
`total_column` int(3) NOT NULL COMMENT '列总数',
`type` varchar(50) NOT NULL COMMENT '模板文件类型',
`suffix` varchar(10) NOT NULL COMMENT '模板文件后缀',
`start_row` int(3) NOT NULL DEFAULT '0' COMMENT '遍历初始索引值',
`get_data_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '1、sql 2、service层方法 3、http',
`single_text` longtext CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '单元格数据',
`row_text` longtext COMMENT '行数据',
`import_single_text` longtext COMMENT '导入单元格数据获取方式',
`import_row_text` longtext COMMENT '导入列数据获取方式',
`save_data_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '1、sql 2、service层方法 3、http',
PRIMARY KEY (`id`),
UNIQUE KEY `INDEX_BAS_MODEL_1` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模板配置表';
CREATE TABLE `bas_model_column` (
`id` varchar(36) NOT NULL COMMENT 'ID',
`model_code` varchar(50) NOT NULL COMMENT '模板类型编号',
`sheet_num` int(3) NOT NULL DEFAULT '0' COMMENT '模板页',
`column_field` varchar(50) NOT NULL COMMENT '列名(字段名)',
`column_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '单元格名称',
`column_index` int(3) NOT NULL COMMENT '模板中的列索引',
`verify` varchar(70) NOT NULL DEFAULT '0' COMMENT '验证方式,0:无限制,1:非空,其他:验证编号',
`type` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '0:列类型;1:docx文件列表类型; 2:单元格类型',
`column_row_index` int(3) NOT NULL COMMENT '行索引',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模板列配置表';
CREATE TABLE `bas_model_error` (
`id` varchar(36) NOT NULL COMMENT 'ID',
`batch_no` varchar(50) NOT NULL COMMENT '操作批次号 ',
`result` char(1) NOT NULL COMMENT '操作结果,0:操作成功;1:操作失败',
`message` varchar(500) DEFAULT NULL COMMENT '操作报告',
`row_index` varchar(100) DEFAULT NULL COMMENT '行索引值',
`column0` longtext COMMENT '自定义列,与模板配置对应',
`column1` longtext COMMENT '自定义列,与模板配置对应',
`column2` longtext COMMENT '自定义列,与模板配置对应',
`column3` longtext COMMENT '自定义列,与模板配置对应',
`column4` longtext COMMENT '自定义列,与模板配置对应',
`column5` longtext COMMENT '自定义列,与模板配置对应',
`column6` longtext COMMENT '自定义列,与模板配置对应',
`column7` longtext COMMENT '自定义列,与模板配置对应',
`column8` longtext COMMENT '自定义列,与模板配置对应',
`column9` longtext COMMENT '自定义列,与模板配置对应',
`column10` longtext COMMENT '自定义列,与模板配置对应',
`column11` longtext COMMENT '自定义列,与模板配置对应',
`column12` longtext COMMENT '自定义列,与模板配置对应',
`column13` longtext COMMENT '自定义列,与模板配置对应',
`column14` longtext COMMENT '自定义列,与模板配置对应',
`column15` longtext COMMENT '自定义列,与模板配置对应',
`column16` longtext COMMENT '自定义列,与模板配置对应',
`column17` longtext COMMENT '自定义列,与模板配置对应',
`column18` longtext COMMENT '自定义列,与模板配置对应',
`column19` longtext COMMENT '自定义列,与模板配置对应',
`column20` longtext COMMENT '自定义列,与模板配置对应',
`column21` longtext COMMENT '自定义列,与模板配置对应',
`column22` longtext COMMENT '自定义列,与模板配置对应',
`column23` longtext COMMENT '自定义列,与模板配置对应',
`column24` longtext COMMENT '自定义列,与模板配置对应',
`column25` longtext COMMENT '自定义列,与模板配置对应',
`column26` longtext COMMENT '自定义列,与模板配置对应',
`column27` longtext COMMENT '自定义列,与模板配置对应',
`column28` longtext COMMENT '自定义列,与模板配置对应',
`column29` longtext COMMENT '自定义列,与模板配置对应',
`column30` longtext COMMENT '自定义列,与模板配置对应',
`column31` longtext COMMENT '自定义列,与模板配置对应',
`column32` longtext COMMENT '自定义列,与模板配置对应',
`column33` longtext COMMENT '自定义列,与模板配置对应',
`column34` longtext COMMENT '自定义列,与模板配置对应',
`column35` longtext COMMENT '自定义列,与模板配置对应',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件操作错误详细表';
CREATE TABLE `bas_model_file_parameter` (
`id` varchar(36) NOT NULL COMMENT 'ID',
`code` varchar(50) DEFAULT NULL COMMENT '存储编号',
`type` varchar(50) DEFAULT NULL COMMENT '存储类型,1:导入;2:导出;3:预览',
`path` varchar(100) DEFAULT NULL COMMENT '存储路径',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件存储配置表';
CREATE TABLE `bas_model_log` (
`id` varchar(36) NOT NULL COMMENT 'ID',
`model_code` varchar(50) NOT NULL COMMENT '模板类型编号',
`type` char(1) NOT NULL COMMENT '操作类型,1:导入;2:导出;3:预览',
`path` varchar(500) NOT NULL COMMENT '文件路径',
`file_name` varchar(100) NOT NULL COMMENT '文件名',
`file_type` varchar(50) NOT NULL COMMENT '文件类型',
`operator` varchar(50) NOT NULL COMMENT '操作人',
`status` char(1) NOT NULL COMMENT '操作状态,0:操作成功;1:操作失败',
`message` varchar(250) DEFAULT NULL COMMENT '操作报告',
`success_count` int(6) DEFAULT NULL COMMENT '成功记录总数',
`error_count` int(6) DEFAULT NULL COMMENT '失败记录总数',
`batch_no` varchar(50) NOT NULL COMMENT '临时表批次号',
`create_time` datetime DEFAULT NULL COMMENT '创建日期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='导入导出日志表';
CREATE TABLE `bas_model_sheet` (
`id` varchar(36) NOT NULL DEFAULT '',
`model_code` varchar(50) NOT NULL COMMENT '模板编号',
`sheet_num` int(3) NOT NULL DEFAULT '0' COMMENT '模板页',
`start_row` int(3) NOT NULL DEFAULT '0' COMMENT '遍历初始行索引',
`get_data_type` char(1) DEFAULT NULL COMMENT '1、sql 2、service层方法 3、http',
`single_text` longtext COMMENT '单元格数据',
`row_text` longtext COMMENT '行数据',
`save_data_type` char(255) DEFAULT NULL COMMENT '1、sql 2、service层方法 3、http',
`import_single_text` longtext COMMENT '导入单元格数据获取方式',
`import_row_text` longtext COMMENT '导入列数据获取方式',
PRIMARY KEY (`id`),
UNIQUE KEY `MODEL_SHEET_IDX_1` (`model_code`,`sheet_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 接口说明
1、模板列表
请求方式:POST application/json
接口:/dei/modelList
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 模板编码 | String | |
name | 模板名称 | String | |
page | 页码 | Integer | 默认1 |
limit | 行数 | Integer | 默认10 |
出参说明:
返回参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | List<BasModel> | 模板信息 |
msg | 返回说明 | String |
data出参说明:
返回参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 主键 | int | |
code | 模板编码 | String | |
name | 模板名称 | String | |
suffix | 模板类型 | String |
2、上传模板
请求方式:POST multipart/form-data
接口:/dei/tempFileUpload
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
file | 文件(xls) | String | 必填 |
出参说明:
返回参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | 文件临时id |
msg | 返回说明 | String |
3、保存模板信息
请求方式:POST application/json
接口:/dei/modelAdd
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
tempKey | 文件临时id | String | 必填 |
code | 模板编号 | String | 必填 |
name | 模板名称 | String | 必填 |
exportType | 是否可导出 | String | 必填。0:不可导出,1:可导出 |
importType | 是否可导入 | String | 必填。0:不可导入,1:可导入 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http。如果配置,自主导出全局使用该方法,不使用sheet配置的方法。通常用于service和http多sheet导出数据使用。 |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http。如果配置,自主导入全局使用该方法,不使用sheet配置的方法。通常用于service和http多sheet导入数据使用。 |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
sheets | sheet配置项 | List<BasModelSheet> | excel的每个sheet配置项。入参顺序与excel的sheet排列对应。 |
sheets入参说明(必须有一个sheet配置):
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
startRow | 遍历起始行 | Integer | 必填 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http。不建议使用每个sheet配置,不利于开发 |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http。不建议使用每个sheet配置,不利于开发 |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
4、编辑模板信息
请求方式:POST application/json
接口:/dei/modelEdit
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
tempKey | 文件临时id | String | 选填 |
name | 模板名称 | String | 必填 |
exportType | 是否可导出 | String | 必填。0:不可导出,1:可导出 |
importType | 是否可导入 | String | 必填。0:不可导入,1:可导入 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http。如果配置,自主导出全局使用该方法,不使用sheet配置的方法。通常用于service和http多sheet导出数据使用。 |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http。如果配置,自主导入全局使用该方法,不使用sheet配置的方法。通常用于service和http多sheet导入数据使用。 |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
sheets | sheet配置项 | List<BasModelSheet> | excel的每个sheet配置项。入参顺序与excel的sheet排列对应。 |
sheets入参说明(必须有一个sheet配置):
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
startRow | 遍历起始行 | Integer | 必填 |
getDataType | 自主导出数据方式 | String | 选填。1:sql, 2:service层方法,3:http。不建议使用每个sheet配置,不利于开发 |
singleText | 自主导出单元格数据来源方法 | String | 选填。sql:填写sql,赋值使用“:key”形式。例:select a, b, c from table where d = :dkey service层方法:[serviceName].[functionName],例:appServiceImpl.getMessage http:例:http://localhost:8080/app/getMessage |
rowText | 自主导出列数据来源方法 | String | 选填。与singleText一样 |
saveDataType | 自主导入数据方式 | String | 选填。1:sql, 2:service层方法,3:http。不建议使用每个sheet配置,不利于开发 |
importSingleText | 自主导入单元格数据来源方法 | String | 选填。与singleText一样 |
importRowText | 自主导入列数据来源方法 | String | 选填。与singleText一样 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
5、模板详情
请求方式:POST application/json
接口:/dei/getModel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板id | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | BasModel | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板id | String | |
code | 模板编号 | String | |
name | 模板名称 | String | |
totalColumn | 列总数 | String | |
type | 文件类型 | String | |
suffix | 文件后缀 | String | |
getDataType | 导出方式 | String | 1、sql 2、service层方法 3、http |
singleText | 导出单元格数据方法 | String | |
rowText | 导出列数据方法 | String | |
saveDataType | 导入方式 | String | 1、sql 2、service层方法 3、http |
importSingleText | 导出单元格数据方法 | String | |
importSingleText | 导出列数据方法 | String |
sheets出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
startRow | 遍历起始行 | Integer | |
getDataType | 自主导出数据方式 | String | |
singleText | 自主导出单元格数据来源方法 | String | |
rowText | 自主导出列数据来源方法 | String | |
saveDataType | 自主导入数据方式 | String | |
importSingleText | 自主导入单元格数据来源方法 | String | |
importRowText | 自主导入列数据来源方法 | String |
6、删除模板
请求方式:POST application/json
接口:/dei/modelDel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板id | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
7、导出模板
请求方式:GET
接口:/dei/exportModel?modelCode=
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
modelCode | 模板编号 | String | 必填 |
出参说明:
返回文件流。
8、自主导出报表
请求方式:GET application/json
接口:/dei/exportExcel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
modelCode | 模板编号 | String | 必填 |
其他 | 其他参数 | - | 根据实际查询数据条件编辑 |
出参说明:
返回文件流。
9、自主导入报表
请求方式:POST multipart/form-data
接口:/dei/importExcel
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
modelCode | 模板编号 | String | 必填 |
file | 其他参数 | - | 根据实际查询数据条件编辑 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | String | |
msg | 返回说明 | String |
# 使用说明
# 创建模板使用
工具提供两种使用方式:1、只使用excel文档解析返回数据,和传入数据导出excel文档;2、完全使用工具,实现工具自动获取数据并导出,和实现工具获取excel文档自动解析并保存。
两种方式都需要使用“上传模板文件”和“保存模板”接口,将模板上传到服务器。用于解析和遍历数据。
1、只使用excel文档解析返回数据,和传入数据导出excel文档。
在保存模板时,调用接口,只要填写必填字段即可。
“exportType”:如果该模板支持导出,一定要设为1,否则为0;
“importType”:如果该模板支持导入,一定要设为1,否则为0。
2、完全使用工具,实现工具自动获取数据并导出,和实现工具获取excel文档自动解析并保存。
1)工具自动获取数据并导出
在保存模板时,调用接口,“exportType”为1时,需要填写:
“getDataType”:自主导出数据方式。1:sql, 2:service层方法,3:http
“singleText”:如果导出模板有单元格数据,则填写。
“rowText”:如果导出模板有列数据,则填写。
注意:如果总的getDataType已经设置,每个sheet配置可以忽略(即使配置了也会忽略)。
2)工具获取excel文档自动解析并保存
在保存模板时,调用接口,“importType”为1时,需要填写:
“saveDataType”:自主导出数据方式。1:sql, 2:service层方法,3:http
“importSingleText”:如果导入模板有单元格数据,则填写。
“importRowText”:如果导入模板有列数据,则填写。
注意:如果总的saveDataType已经设置,每个sheet配置可以忽略(即使配置了也会忽略)。
# 模板文件编辑
1、excel模板格式为“xls”,暂不支持“xlsx”。
2、当前每个sheet只支持一个列表数据遍历,不支持多个列表数据遍历。
3、模板编辑支持两种占位符:单元格数据占位符“$S{[KEY]}”和列数据占位符“$R{[KEY]}”。
单元格数据:指只需要填写一个或固定多个单元格的数据,非列表列值的数据。
列数据:指列表列数据。
模板文件编辑如下:
# 解析excel工具使用
1、导入
1)引用工具类
@Autowired
private DeiUtils deiUtils;
2)调用工具接口
JSONObject data = deiUtils.getExcelMessage(modelCode, file);
public void importExcel(String modelCode, MultipartFile file) {
try {
JSONObject data = deiUtils.getExcelMessage(modelCode, file);
} catch (IOException e) {
throw new BusinessException(e.getMessage());
}
}
deiUtils.getExcelMessage(String modelCode, MultipartFile file)返回数据格式说明:
[
{
"single": {}, //单元格数据
"rows": [ //列数据
{},
{},
...
]
},
{
"single": {}, //单元格数据
"rows": [ //列数据
{},
{},
...
]
},
...
]
2、导出
1)引用工具类
@Autowired
private DeiUtils deiUtils;
2)调用工具接口
deiUtils.export(modelCode, data, request, response);
@PostMapping("/export")
public void export(String modelCode, JSONArray jsonArray, HttpServletRequest request, HttpServletResponse response) {
String modelCode = "PERSONLIST";
JSONArray jsonArray = new JSONArray();
JSONObject sheet1 = new JSONObject();
JSONObject singles1 = new JSONObject();
singles1.put("type", "是个类型");
JSONArray rows1 = new JSONArray();
JSONObject row1 = new JSONObject();
row1.put("name", "名字");
row1.put("age", "12");
row1.put("gender", "男");
rows1.add(row1);
JSONObject row2 = new JSONObject();
row2.put("name", "名字2");
row2.put("age", "15");
row2.put("gender", "女");
rows1.add(row2);
sheet1.put("single", singles1);
sheet1.put("rows", rows1);
jsonArray.add(sheet1);
JSONObject sheet2 = new JSONObject();
JSONObject singles2 = new JSONObject();
singles2.put("appName", "应用名称");
singles2.put("appSize", "56MB");
JSONArray rows2 = new JSONArray();
JSONObject row3 = new JSONObject();
row3.put("text", "第一");
row3.put("field", "表单1");
row3.put("checkType", "检测类型");
row3.put("tips", "注意");
rows2.add(row3);
JSONObject row4 = new JSONObject();
row4.put("text", "第二");
row4.put("field", "表单2");
row4.put("checkType", "检测类型2");
row4.put("tips", "注意2");
rows2.add(row4);
sheet2.put("single", singles2);
sheet2.put("rows", rows2);
jsonArray.add(sheet2);
deiUtils.export(modelCode, jsonArray, request, response);
}
调用该接口会自动返回导出文档的数据流,应在controller层调用。
deiUtils.export(modelCode, dataArray, request, response)入参说明:
modelCode:模板编号
dataArray:文档数据,格式如下:
[
{
"single": {}, //单元格数据
"rows": [ //列数据
{},
{},
...
]
},
{
"single": {}, //单元格数据
"rows": [ //列数据
{},
{},
...
]
},
...
]
# 自主导出excel使用
1、调用【自主导出报表】接口,并在新标签打开,js用例:
export_file : function(urlStr, data, method_type) {
var tempForm = document.createElement("form");
tempForm.id="tempForm1";
tempForm.method= typeof(method_type) === "undefined" ? "post" : method_type;
tempForm.action=urlStr;
tempForm.target="_blank";
for(var ke in data) {
var hideInput = document.createElement("input");
hideInput.type="hidden";
hideInput.name= ke
hideInput.value= data[ke];
tempForm.appendChild(hideInput);
}
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);
}
2、编写获取数据方法。
直接使用sql,在填写模板信息的时候,在导出方法中写入sql即可。
select * from table where type = :type order by :sort;
其中【:type】和【:sort】为可替换参数。由接口传入相关参数。
使用service,需要开发者自行编写service实现类,且注入到spring容器中,入参JSONObject为查询条件,拿到查询条件后,开发者自定义查询数据。
@Override public JSONArray exportTestBatch(JSONObject jsonObject) { JSONArray jsonArray = new JSONArray(); JSONObject sheet1 = new JSONObject(); JSONObject singles1 = new JSONObject(); singles1.put("type", "是个类型"); JSONArray rows1 = new JSONArray(); JSONObject row1 = new JSONObject(); row1.put("name", "名字"); row1.put("age", "12"); row1.put("gender", "男"); rows1.add(row1); JSONObject row2 = new JSONObject(); row2.put("name", "名字2"); row2.put("age", "15"); row2.put("gender", "女"); rows1.add(row2); sheet1.put("single", singles1); sheet1.put("rows", rows1); jsonArray.add(sheet1); JSONObject sheet2 = new JSONObject(); JSONObject singles2 = new JSONObject(); singles2.put("appName", "应用名称"); singles2.put("appSize", "56MB"); JSONArray rows2 = new JSONArray(); JSONObject row3 = new JSONObject(); row3.put("text", "第一"); row3.put("field", "表单1"); row3.put("checkType", "检测类型"); row3.put("tips", "注意"); rows2.add(row3); JSONObject row4 = new JSONObject(); row4.put("text", "第二"); row4.put("field", "表单2"); row4.put("checkType", "检测类型2"); row4.put("tips", "注意2"); rows2.add(row4); sheet2.put("single", singles2); sheet2.put("rows", rows2); jsonArray.add(sheet2); return jsonArray; }
使用http,接口类型为POST application/json接口即可,入参传JSONObject,出参JSONArray。
# 自主导入excel使用
1、前端调用【自主导入报表】接口。
2、编写存储数据方法。
直接使用sql,在填写模板信息的时候,在导入方法中写入sql即可。
使用service,需要开发者自行编写service实现类,且注入到spring容器中。
@Override public JSONObject importTestBatch(JSONArray jsonArray) { System.out.println("分页导入-----------------------" + jsonArray.toJSONString()); return (JSONObject) JSONObject.toJSON(Result.ok()); }
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | 0:成功 |
data | 返回数据 | null | |
msg | 返回说明 | String |
使用http,接口类型为POST application/json接口即可,入参传JSONArray,出参JSONObject。
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | 0:成功 |
data | 返回数据 | null | |
msg | 返回说明 | String |
# 消息推送工具
注意:必须基于框架2.1使用。
# 引用
pom.xml加入如下配置:
<properties>
<jianxiecloud-message.version>1.0-SNAPSHOT</jianxiecloud-message.version>
</properties>
<dependencies>
<!-- 消息推送工具 -->
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>megrez-spring-boot-jianxiecloud-message</artifactId>
<version>${jianxiecloud-message.version}</version>
</dependency>
</dependencies>
# 配置
properties属性配置:
#推送的建协云地址,如果配置了中台2.1框架的megrez.bridge.client.server-path,则不需要配置
megrez.message.server-path=https://m.jianxiecloud.com
# 数据库表(Mysql)
CREATE TABLE `megrez_message_strategy` (
`id` varchar(32) NOT NULL COMMENT '主键',
`strategy_name` varchar(50) DEFAULT NULL COMMENT '推送策略名称',
`send_interval` int(11) DEFAULT NULL COMMENT '推送间隔时间;单位:分钟',
`send_error_agent` int(11) DEFAULT NULL COMMENT '推送失败重新推送;1:是,2:否',
`send_error_times` int(11) DEFAULT NULL COMMENT '推送失败次数后中断;单位:次',
`log_cache_id` varchar(256) DEFAULT NULL COMMENT '推送缓存id',
`log_save` int(11) DEFAULT NULL COMMENT '日志保存开启;1:是,2:否',
`log_grade` varchar(10) DEFAULT NULL COMMENT '日志等级;INFO:INFO及以下,WARN:告警及以下,ERROR:报错及以下',
`remark` varchar(256) DEFAULT NULL COMMENT '备注',
`unit_id` varchar(32) DEFAULT NULL COMMENT '所属企业id',
`unit_name` varchar(100) DEFAULT NULL COMMENT '所属企业',
`management_id` varchar(32) DEFAULT NULL COMMENT '所属部门id',
`management_name` varchar(100) DEFAULT NULL COMMENT '所属部门',
`creator_id` varchar(32) DEFAULT NULL COMMENT '所属人id',
`creator_name` varchar(50) DEFAULT NULL COMMENT '所属人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`update_person_id` varchar(32) DEFAULT NULL COMMENT '修改人id',
`update_person_name` varchar(50) DEFAULT NULL COMMENT '修改人',
`invalid` int(11) NOT NULL DEFAULT '0' COMMENT '逻辑删除;0未删除,1已删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='推送策略配置表';
CREATE TABLE `megrez_message_template` (
`id` varchar(32) NOT NULL COMMENT '主键',
`template_name` varchar(50) DEFAULT NULL COMMENT '模板名称',
`type` varchar(32) DEFAULT NULL COMMENT '类别',
`content` varchar(512) DEFAULT NULL COMMENT '模板内容',
`system_name` varchar(50) DEFAULT NULL COMMENT '消息来源名称',
`web_url` varchar(512) DEFAULT NULL COMMENT '网页端详情页面链接',
`app_url` varchar(512) DEFAULT NULL COMMENT 'APP端详情页面链接',
`web_params` varchar(256) DEFAULT NULL COMMENT '网页端详情链接参数',
`app_params` varchar(256) DEFAULT NULL COMMENT 'APP端详情链接参数',
`uc_codes` varchar(512) DEFAULT NULL COMMENT '接收消息用户编码集合',
`uc_names` varchar(512) DEFAULT NULL COMMENT '接收消息用户名称集合',
`push_type` int(11) DEFAULT '1' COMMENT '推送类型;1建协云,2短信,3邮箱;默认建协云',
`mails` varchar(512) DEFAULT NULL COMMENT '接受信息用户邮箱集合',
`phones` varchar(512) DEFAULT NULL COMMENT '接受信息用户手机集合',
`remark` varchar(256) DEFAULT NULL COMMENT '备注',
`unit_id` varchar(32) DEFAULT NULL COMMENT '所属企业id',
`unit_name` varchar(100) DEFAULT NULL COMMENT '所属企业',
`management_id` varchar(32) DEFAULT NULL COMMENT '所属部门id',
`management_name` varchar(100) DEFAULT NULL COMMENT '所属部门',
`creator_id` varchar(32) DEFAULT NULL COMMENT '所属人id',
`creator_name` varchar(50) DEFAULT NULL COMMENT '所属人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`update_person_id` varchar(32) DEFAULT NULL COMMENT '修改人id',
`update_person_name` varchar(50) DEFAULT NULL COMMENT '修改人',
`invalid` int(11) NOT NULL DEFAULT '0' COMMENT '逻辑删除;0未删除,1已删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='推送模板配置表';
# 接口说明
以下接口用于提供给前端进行模板、策略配置,非推送消息直接使用,具体使用推送请看说明。
# 推送模板配置
1、读取模板详情
请求方式:POST application/json
接口:/message/megrezMessageTemplate/getTemplate
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 关联数据id | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | MegrezMessageTemplate | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
templateName | 模板名称 | String | |
type | 模板类型 | String | |
content | 消息推送模板 | String | |
systemName | 应用名称 | String | |
webUrl | 网页端详情页面链接 | String | |
appUrl | APP端详情页面连接 | String | |
webParams | 网页端详情链接参数 | String | |
appParams | APP端详情链接参数 | String | |
ucCodes | 接收消息的建协云用户编码集合 | String | |
ucNames | 接收消息的用户名称集合 | String | |
remark | 备注 | String | |
unitId | 创建企业id | String | |
unitName | 创建企业名称 | String | |
managementId | 创建部门id | String | |
managementName | 创建部门名称 | String | |
creatorId | 创建人id | String | |
creatorName | 创建人名称 | String | |
createTime | 创建时间 | LocalDateTime |
2、读取模板列表
请求方式:POST application/json
接口:/message/megrezMessageTemplate/pageTemplate
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
templateName | 模板名称 | String | |
page | 页码 | Integer | 默认1 |
limit | 行数 | Integer | 默认10 |
出参说明:
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | Integer | |
data | 返回数据 | List<MegrezMessageTemplate> | |
msg | 返回说明 | String | |
count | 总数 | Integer |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
templateName | 模板名称 | String | |
type | 模板类型 | String | |
content | 消息推送模板 | String | |
systemName | 应用名称 | String | |
webUrl | 网页端详情页面链接 | String | |
appUrl | APP端详情页面连接 | String | |
webParams | 网页端详情链接参数 | String | |
appParams | APP端详情链接参数 | String | |
ucCodes | 接收消息的建协云用户编码集合 | String | |
ucNames | 接收消息的用户名称集合 | String | |
remark | 备注 | String | |
unitId | 创建企业id | String | |
unitName | 创建企业名称 | String | |
managementId | 创建部门id | String | |
managementName | 创建部门名称 | String | |
creatorId | 创建人id | String | |
creatorName | 创建人名称 | String | |
createTime | 创建时间 | LocalDateTime |
3、新增模板配置
请求方式:POST application/json
接口:/message/megrezMessageTemplate/addTemplate
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
templateName | 模板名称 | String | 必填 |
type | 类别 | String | 必填 |
content | 模板内容 | String | 必填 |
systemName | 消息来源名称 | String | 必填 |
webUrl | 网页详情页面链接 | String | |
appUrl | APP端详情页面链接 | String | |
webParams | 网页端详情链接参数 | String | |
appParams | APP端详情链接参数 | String | |
ucCodes | 接收人用户码 | String | 必填,多个“,”隔开 |
ucNames | 接收人名称 | String | 必填,多个“,”隔开 |
remark | 备注 | String |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | boolean | |
msg | 返回说明 | String |
3、编辑模板配置
请求方式:POST application/json
接口:/message/megrezMessageTemplate/updateTemplate
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
templateName | 模板名称 | String | 必填 |
type | 类别 | String | 必填 |
content | 模板内容 | String | 必填 |
systemName | 消息来源名称 | String | 必填 |
webUrl | 网页详情页面链接 | String | |
appUrl | APP端详情页面链接 | String | |
webParams | 网页端详情链接参数 | String | |
appParams | APP端详情链接参数 | String | |
ucCodes | 接收人用户码 | String | 必填,多个“,”隔开 |
ucNames | 接收人名称 | String | 必填,多个“,”隔开 |
remark | 备注 | String |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | boolean | |
msg | 返回说明 | String |
4、删除模板配置
请求方式:POST application/json
接口:/message/megrezMessageTemplate/deleteTemplate
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 模板表id | String |
# 推送策略配置
1、读取策略详情
请求方式:POST application/json
接口:/message/megrezMessageStrategy/getStrategy
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 关联数据id | String | 必填 |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | MegrezMessageStrategy | |
msg | 返回说明 | String |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
strategyName | 推送策略名称 | String | |
sendInterval | 推送间隔时间 | String | 单位:分钟 |
sendErrorAgent | 推送失败重新推送 | String | 1:是,2:否 |
sendErrorTimes | 推送失败次数后中断 | String | 单位:次 |
logCacheId | 推送缓存id | String | |
logSave | 日志保存开启 | String | 1:是,2:否 |
logGrade | 日志等级 | String | INFO:INFO及以下,WARN:告警及以下,ERROR:报错及以下 |
remark | 备注 | String | |
unitId | 所属企业id | String | |
unitName | 所属企业 | String | |
managementId | 所属部门id | String | |
managementName | 所属部门 | String | |
creatorId | 所属人id | String | |
creatorName | 所属人 | String | |
createTime | 创建时间 | LocalDateTime |
2、读取策略列表
请求方式:POST application/json
接口:/message/megrezMessageStrategy/pageStrategy
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
strategyName | 策略名称 | String | |
page | 页码 | Integer | 默认1 |
limit | 行数 | Integer | 默认10 |
出参说明:
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | Integer | |
data | 返回数据 | List<MegrezMessageStrategy> | |
msg | 返回说明 | String | |
count | 总数 | Integer |
出参data说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 附件主键 | String | |
strategyName | 推送策略名称 | String | |
sendInterval | 推送间隔时间 | String | 单位:分钟 |
sendErrorAgent | 推送失败重新推送 | String | 1:是,2:否 |
sendErrorTimes | 推送失败次数后中断 | String | 单位:次 |
logCacheId | 推送缓存id | String | |
logSave | 日志保存开启 | String | 1:是,2:否 |
logGrade | 日志等级 | String | INFO:INFO及以下,WARN:告警及以下,ERROR:报错及以下 |
remark | 备注 | String | |
unitId | 所属企业id | String | |
unitName | 所属企业 | String | |
managementId | 所属部门id | String | |
managementName | 所属部门 | String | |
creatorId | 所属人id | String | |
creatorName | 所属人 | String | |
createTime | 创建时间 | LocalDateTime |
3、新增策略配置
请求方式:POST application/json
接口:/message/megrezMessageStrategy/addStrategy
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
strategyName | 策略名称 | String | 必填 |
sendInterval | 推送间隔时间 | String | 必填。单位分钟,必须大于等于1 |
sendErrorAgent | 推送失败重新推送 | String | 必填。1:是,2:否 |
sendErrorTimes | 推送失败重复推送次数 | String | |
logCacheId | 推送缓存id标识 | String | 必填 |
logSave | 日志开启 | String | 必填。1:是,2:否 |
logGrade | 打印日志等级 | String | INFO,WARN,ERROR |
remark | 备注 | String |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | boolean | |
msg | 返回说明 | String |
3、编辑策略配置
请求方式:POST application/json
接口:/message/megrezMessageStrategy/updateStrategy
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
strategyName | 策略名称 | String | 必填 |
sendInterval | 推送间隔时间 | String | 必填。单位分钟,必须大于等于1 |
sendErrorAgent | 推送失败重新推送 | String | 必填。1:是,2:否 |
sendErrorTimes | 推送失败重复推送次数 | String | |
logCacheId | 推送缓存id标识 | String | 必填 |
logSave | 日志开启 | String | 必填。1:是,2:否 |
logGrade | 打印日志等级 | String | INFO,WARN,ERROR |
remark | 备注 | String |
出参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
code | 返回码 | int | |
data | 返回数据 | boolean | |
msg | 返回说明 | String |
4、删除策略配置
请求方式:POST application/json
接口:/message/megrezMessageStrategy/deleteStrategy
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
id | 策略表id | String |
# 使用说明
1、引用工具
@Autowired
private ISendMessageService sendMessageService;
2、调用接口
boolean sendMessage(String strategyId, String templateId, JSONObject datasource);
入参说明:
请求参数 | 参数名 | 参数类型 | 说明 |
---|---|---|---|
strategyId | 使用策略id | String | |
templateId | 使用模板id | String | |
datasource | 替换动态内容的键值数据 | JSONObject | 模板内容、网页端和APP端详情链接参数、推送缓存id动态内容配置使用 |
3、动态内容配置
策略配置和模板配置部分功能字段支持动态内容配置,即可根据实际业务数据替换内容。
动态内容使用“${KEY}”占位符,KEY为业务数据关键字名。
取的动态内容只支持一层的JSONObject,不支持JSONArray、嵌套JSONObject等json数据。
可动态内容配置的功能字段如下
推送策略配置:
推送缓存id
即”log_cache_id",该字段标识的是生成的推送消息唯一标识,用于推送策略判定,如是否重复推送,是否间隔N分钟再推送等。
“推送缓存id”可以写死,也可以使用动态内容。
用例:
SWG_WARNING
SWG_WARNING_${gcId}
推送模板配置:
模板内容
即“content”,同上理。
用例:
应用id为【${appId}】,服务id为【${servicesId}】,延迟数达${count}个,请管理员及时处理。
网页端和APP端详情链接参数
即“web_params”、“app_params”,同上理。
用例:
type=${type}&name=${name}
# Redis多数据源工具
2.1.X版本以上支持。
当前只支持一个redis访问配置。
# 配置
# redis访问地址
spring.redis.host=
# 默认库索引,使用中台2.X框架,一般
spring.redis.database=0
# redis访问端口号
spring.redis.port=
# redis密码
spring.redis.password=
# ----以下额外数据源配置,当前支持db1~db5,只能配置5个,避免过度使用
# 库索引
hedis.store.db1.database=1
# key序列化,不配置使用默认
hedis.store.db1.key-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# value序列化,不配置使用默认
hedis.store.db1.value-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# hashKey序列化,不配置使用默认
hedis.store.db1.key-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# hashValue序列化,不配置使用默认
hedis.store.db1.hash-value-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# 实例化命名,不配置使用db1~db5
hedis.store.db1.name=advice1Template
用例:
# redis访问地址
spring.redis.host=192.168.1.123
# 默认库索引,使用中台2.X框架,一般
spring.redis.database=0
# redis访问端口号
spring.redis.port=6379
# redis密码
spring.redis.password=
# ----以下额外数据源配置,当前支持db1~db5,只能配置5个,避免过度使用
# 1库索引
hedis.store.db1.database=1
# key序列化,不配置使用默认
hedis.store.db1.key-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# value序列化,不配置使用默认
hedis.store.db1.value-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# 实例化命名,不配置使用db1~db5
hedis.store.db1.name=db1
# 2库索引
hedis.store.db2.database=2
# key序列化,不配置使用默认
hedis.store.db2.key-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# value序列化,不配置使用默认
hedis.store.db2.value-redis-serializer=org.springframework.data.redis.serializer.StringRedisSerializer
# 实例化命名,不配置使用db1~db5
hedis.store.db2.name=db2
# 使用说明
@Autowired
private HedisHelper hedisHelper;
//根据库索引获取redis工具实例,如果db1~db5配置的库索引相同,后者会把前者覆盖
hedisHelper.db(1).opsForValue().set("test_key_1", "5678", 10, TimeUnit.SECONDS);
hedisHelper.db(1).opsForValue().get("test_key_1");
//根据实例名获取redis工具实例
hedisHelper.db("db1").opsForValue().set("test_key_1", "5678", 10, TimeUnit.SECONDS);
hedisHelper.db("db1").opsForValue().get("test_key_1");
# 待办事项
# 引用
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>hhh-system-feign</artifactId>
<version>2.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
# 接口说明
@Autowired
private IBacklogClientService backlogClientService;
# 1、新增待办
/**
* @description: 新增待办
* @param: PushWaitModel
* @return: result
*/
Result result = backlogClientService.addBackLog(push);
方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
type | String | 是 | 业务分类 |
title | String | 是 | 标题 |
webUrl | String | 是 | web详情页面链接 |
webParams | String | 是 | web详情页面链接参数 |
appUrl | String | 是 | app详情页面链接 |
appParams | String | 是 | app详情页面链接参数 |
endTime | String | 否 | 截止时间(注:毫秒时间戳) |
groupId | String | 是 | 分组ID,32~36位 |
taskId | String | 是 | 任务ID,32~36位 |
ucId | String | 是 | 接收者ID |
ucName | String | 是 | 接收者姓名 |
entId | String | 是 | 企业ID |
grade | String | 否 | 紧急级别 0 一般 1 紧急,默认0 |
systemCode | String | 是 | 系统编码 |
systemName | String | 是 | 系统名称 |
notifications | String | 是 | 通知方式: APP |
返回参数:
字段 | 类型 | 描述 |
---|---|---|
code | int | 成功0 |
data | Map | 返回数据 |
msg | String | 成功 |
data:
字段 | 类型 | 描述 |
---|---|---|
id | String | 待办ID |
# 2、待办设置为已处理
/**
* @description: 待办设置为已处理
* @param: groupId
* @param: taskId
* @param: resultMsg
* @return: result
*/
Result result = backlogClientService.updateToRead(groupId, taskId, resultMsg);
方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
groupId | String | 是 | 待办组ID |
taskId | String | 是 | 待办任务ID |
resultMsg | String | 是 | 处理结果 |
返回参数:
字段 | 类型 | 描述 |
---|---|---|
code | int | 成功0 |
data | int | 1 |
msg | String | 成功 |
# 3、待办设置为未处理
/**
* @description: 待办设置为未处理
* @param: groupId
* @param: taskId
* @param: resultMsg
* @return: result
*/
Result result = backlogClientService.updateToUnRead(groupId, taskId, resultMsg);
方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
groupId | String | 是 | 待办组ID |
taskId | String | 是 | 待办任务ID |
resultMsg | String | 是 | 处理结果 |
返回参数:
字段 | 类型 | 描述 |
---|---|---|
code | int | 成功0 |
data | int | 1 |
msg | String | 成功 |
# 4、删除单条待办
/**
* @description: 删除单条待办
* @param: groupId
* @param: taskId
* @return: result
*/
Result result = backlogClientService.deleteByGroupIdAndTaskId(groupId, taskId);
方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
groupId | String | 是 | 待办组ID |
taskId | String | 是 | 待办任务ID |
返回参数:
字段 | 类型 | 描述 |
---|---|---|
code | int | 成功0 |
data | int | 1 |
msg | String | 成功 |
# 5、删除组待办
/**
* @description: 删除组待办
* @param: groupId
* @return: result
*/
Result result = backlogClientService.deleteByGroupId(groupId);
方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
groupId | String | 是 | 待办组ID |
返回参数:
字段 | 类型 | 描述 |
---|---|---|
code | int | 成功0 |
data | int | |
msg | String | 成功 |
# 6、设置待办为结束
/**
* @description: 待办设置为结束
* @param: groupId
* @return: result
*/
Result result = backlogClientService.updateToEnd(groupId);
方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
groupId | String | 是 | 待办组ID |
返回参数:
字段 | 类型 | 描述 |
---|---|---|
code | int | 成功0 |
data | int | |
msg | String | 成功 |
# 短信发送
# 引用
<dependency>
<groupId>com.hhh.cloud.framework</groupId>
<artifactId>hhh-system-feign</artifactId>
<version>2.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
# 接口说明
@Autowired
private IShortMessageClientService shortMessageClientService;
# 1、获取短信验证码
/**
* @description: 获取短信验证码
* @param: SmsSendNoAuthModel
* @return: result
*/
boolean messageCodeNotAuth = shortMessageClientService.getMessageCodeNotAuth(model);
# 方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
agentId | String | 是 | 应用ID |
agentSecret | String | 是 | 应用密钥 |
usePurpose | String | 是 | 用途。登录确认:LOGIN 、用户注册:REGISTER、信息变更:INFOCAHNGE 、 身份确认:IDAUTHENT、修改密码:PWDUPDATE |
phone | String | 是 | 手机号。多个用","隔开 |
# 返回参数:
true | 成功 |
---|---|
false | 失败 |
# 2、校验短信验证码
/**
* @description: 校验短信验证码
* @param: SmsCheckCodeNoAuthModel
* @return: result
*/
boolean messageCodeNotAuth = shortMessageClientService.checkMessageCodeNotAuth(model);
# 方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
agentId | String | 是 | 应用ID |
agentSecret | String | 是 | 应用密钥 |
usePurpose | String | 是 | 用途。登录确认:LOGIN 、用户注册:REGISTER、信息变更:INFOCAHNGE 、 身份确认:IDAUTHENT、修改密码:PWDUPDATE |
phone | String | 是 | 手机号 |
phoneCode | String | 是 | 短信验证码 |
# 返回参数:
true | 成功 |
---|---|
false | 失败 |
# 3、发送短信通知
/**
* @description: 发送短信通知
* @param: SmsSendNoticeNoAuthFeignModel
* @return: result
*/
boolean messageCodeNotAuth = shortMessageClientService.sendMessageNoticeNotAuth(model);
# 方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
agentId | String | 是 | 应用ID |
agentSecret | String | 是 | 应用密钥 |
usePurpose | String | 是 | 用途。登录确认:LOGIN 、用户注册:REGISTER、信息变更:INFOCAHNGE 、 身份确认:IDAUTHENT、修改密码:PWDUPDATE |
phone | String | 是 | 手机号。多个用","隔开 |
templateParams | List | 是 | 模板参数列表。顺序与模板中的对应 |
# 返回参数:
true | 成功 |
---|---|
false | 失败 |
# 4、提交发送短信内容
/**
* @description: 提交发送短信内容
* @param: SmsSendNoticeNoAuthFeignModel
* @return: result
*/
boolean messageCodeNotAuth = shortMessageClientService.submitMessageNoticeNotAuth(model);
# 方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
agentId | String | 是 | 应用ID |
agentSecret | String | 是 | 应用密钥 |
usePurpose | String | 是 | 用途。登录确认:LOGIN 、用户注册:REGISTER、信息变更:INFOCAHNGE 、 身份确认:IDAUTHENT、修改密码:PWDUPDATE |
phone | String | 是 | 手机号。多个用","隔开 |
templateParams | List | 是 | 模板参数列表。顺序与模板中的对应 |
# 返回参数:
字段 | 说明 |
---|---|
data | 发送序列号 |
# 5、发送提交的短信内容
/**
* @description: 发送提交的短信内容
* @param: SmsSendNoModel
* @return: result
*/
boolean messageCodeNotAuth = shortMessageClientService.sendMessageNoticeNotAuthBySendNo(model);
# 方法参数:
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
agentId | String | 是 | 应用ID |
agentSecret | String | 是 | 应用密钥 |
sendNo | String | 是 | 发送序列号 |
# 返回参数:
true | 成功 |
---|---|
false | 失败 |