Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
emport-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘泽志
emport-api
Commits
c8e10b26
Commit
c8e10b26
authored
Feb 09, 2023
by
刘泽志
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
文档上传
parent
3f89b1b1
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
988 additions
and
25 deletions
+988
-25
DataImportController.java
...f/his/web/controller/dataImport/DataImportController.java
+116
-11
DiConfig.java
.../main/java/com/tbyf/his/web/dataImport/core/DiConfig.java
+39
-0
DiConstants.java
...in/java/com/tbyf/his/web/dataImport/core/DiConstants.java
+67
-0
RuleVO.java
...rc/main/java/com/tbyf/his/web/dataImport/core/RuleVO.java
+51
-0
RuleValidator.java
.../java/com/tbyf/his/web/dataImport/core/RuleValidator.java
+17
-0
CompareValidator.java
...f/his/web/dataImport/core/validator/CompareValidator.java
+78
-0
NotNullValidator.java
...f/his/web/dataImport/core/validator/NotNullValidator.java
+41
-0
OrValidator.java
...m/tbyf/his/web/dataImport/core/validator/OrValidator.java
+54
-0
RangeValidator.java
...byf/his/web/dataImport/core/validator/RangeValidator.java
+42
-0
RegValidator.java
.../tbyf/his/web/dataImport/core/validator/RegValidator.java
+31
-0
SectionValidator.java
...f/his/web/dataImport/core/validator/SectionValidator.java
+43
-0
WithValidator.java
...tbyf/his/web/dataImport/core/validator/WithValidator.java
+55
-0
BindRuleParam.java
...m/tbyf/his/web/dataImport/domain/param/BindRuleParam.java
+31
-0
UploadExcelParam.java
...byf/his/web/dataImport/domain/param/UploadExcelParam.java
+38
-0
TemplateVO.java
...ava/com/tbyf/his/web/dataImport/domain/vo/TemplateVO.java
+54
-0
ExcelData.java
...in/java/com/tbyf/his/web/dataImport/entity/ExcelData.java
+54
-0
BindRuleMapper.java
...va/com/tbyf/his/web/dataImport/mapper/BindRuleMapper.java
+12
-0
DataImportTemplateMapper.java
...f/his/web/dataImport/mapper/DataImportTemplateMapper.java
+12
-0
ExcelDataMapper.java
...a/com/tbyf/his/web/dataImport/mapper/ExcelDataMapper.java
+12
-0
BindRuleService.java
.../com/tbyf/his/web/dataImport/service/BindRuleService.java
+12
-0
DataImportTemplateService.java
...his/web/dataImport/service/DataImportTemplateService.java
+13
-0
ExcelDataService.java
...com/tbyf/his/web/dataImport/service/ExcelDataService.java
+12
-0
BindRuleServiceImpl.java
.../his/web/dataImport/service/impl/BindRuleServiceImpl.java
+20
-0
DataImportTemplateServiceImpl.java
...ataImport/service/impl/DataImportTemplateServiceImpl.java
+13
-0
ExcelDataServiceImpl.java
...his/web/dataImport/service/impl/ExcelDataServiceImpl.java
+20
-0
application.yml
admin-api/src/main/resources/application.yml
+12
-12
DataImportTemplateMapper.xml
...pi/src/main/resources/mapper/DataImportTemplateMapper.xml
+26
-0
dataImport.sql
scripts/dataImport.sql
+13
-2
No files found.
admin-api/src/main/java/com/tbyf/his/web/controller/dataImport/DataImportController.java
View file @
c8e10b26
...
...
@@ -16,23 +16,25 @@ import com.tbyf.his.framework.datasource.DataSourceUtil;
import
com.tbyf.his.framework.datasource.DynamicDataSourceContextHolder
;
import
com.tbyf.his.system.domain.SysDatasource
;
import
com.tbyf.his.system.service.ISysDatasourceService
;
import
com.tbyf.his.web.dataImport.core.DiConfig
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
com.tbyf.his.web.dataImport.domain.param.*
;
import
com.tbyf.his.web.dataImport.entity.DataDict
;
import
com.tbyf.his.web.dataImport.entity.DataField
;
import
com.tbyf.his.web.dataImport.entity.DataImportTemplate
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.service.DataDictService
;
import
com.tbyf.his.web.dataImport.service.DataFieldService
;
import
com.tbyf.his.web.dataImport.service.DataImportTemplateService
;
import
com.tbyf.his.web.dataImport.service.DataRuleService
;
import
com.tbyf.his.web.dataImport.entity.*
;
import
com.tbyf.his.web.dataImport.service.*
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
...
...
@@ -68,13 +70,17 @@ public class DataImportController {
@Autowired
private
DataRuleService
dataRuleService
;
@Autowired
private
BindRuleService
bindRuleService
;
@Autowired
private
ExcelDataService
excelDataService
;
@IgnoreWebSecurity
@GetMapping
(
"/template"
)
@ApiOperation
(
"模板查询"
)
public
AjaxResult
queryTemplate
(
@Validated
QueryTemplateParam
param
)
{
final
LambdaQueryWrapper
<
DataImportTemplate
>
wrapper
=
Wrappers
.
lambdaQuery
(
DataImportTemplate
.
class
)
.
eq
(
DataImportTemplate:
:
getYear
,
param
.
getYear
());
return
AjaxResult
.
success
(
dataImportService
.
list
(
wrapper
));
return
AjaxResult
.
success
(
dataImportService
.
queryTemplate
(
param
));
}
@IgnoreWebSecurity
...
...
@@ -309,4 +315,103 @@ public class DataImportController {
return
AjaxResult
.
success
();
}
@IgnoreWebSecurity
@PostMapping
(
"/rule/test"
)
@ApiOperation
(
"规则测试"
)
public
AjaxResult
testRule
(
@RequestBody
@Validated
RuleVO
test
)
{
final
RuleValidator
validator
=
DiConfig
.
getValidator
(
test
.
getMode
());
validator
.
validate
(
test
);
if
(
StringUtils
.
isNotBlank
(
test
.
getResult
()))
{
return
AjaxResult
.
error
(
test
.
getResult
());
}
return
AjaxResult
.
success
();
}
@IgnoreWebSecurity
@GetMapping
(
"/bind/quick"
)
@ApiOperation
(
"快速绑定"
)
public
AjaxResult
quickBind
(
@RequestParam
String
templateId
,
@RequestParam
String
ruleId
)
{
final
LambdaQueryWrapper
<
DataField
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
DataField
.
class
)
.
select
(
DataField:
:
getId
)
.
eq
(
DataField:
:
getTemplateId
,
templateId
);
final
List
<
String
>
fieldIdList
=
dataFieldService
.
list
(
queryWrapper
).
stream
()
.
map
(
DataField:
:
getId
)
.
collect
(
Collectors
.
toList
());
final
LambdaQueryWrapper
<
BindRule
>
removeWrapper
=
Wrappers
.
lambdaQuery
(
BindRule
.
class
)
.
in
(
BindRule:
:
getDataId
,
fieldIdList
)
.
eq
(
BindRule:
:
getRuleId
,
ruleId
);
bindRuleService
.
remove
(
removeWrapper
);
final
List
<
BindRule
>
bindRuleList
=
fieldIdList
.
stream
().
map
(
item
->
{
BindRule
bind
=
new
BindRule
();
bind
.
setDataId
(
item
);
bind
.
setRuleId
(
ruleId
);
return
bind
;
}).
collect
(
Collectors
.
toList
());
bindRuleService
.
saveBatch
(
bindRuleList
);
return
AjaxResult
.
success
();
}
@IgnoreWebSecurity
@GetMapping
(
"/bind"
)
@ApiOperation
(
"查询绑定的规则"
)
public
AjaxResult
queryBindRule
(
@RequestParam
String
fieldId
)
{
final
List
<
BindRule
>
list
=
bindRuleService
.
list
(
Wrappers
.
lambdaQuery
(
BindRule
.
class
)
.
eq
(
BindRule:
:
getDataId
,
fieldId
));
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
AjaxResult
.
success
(
Collections
.
emptyList
());
}
final
List
<
String
>
idList
=
list
.
stream
().
map
(
BindRule:
:
getRuleId
).
collect
(
Collectors
.
toList
());
return
AjaxResult
.
success
(
dataRuleService
.
list
(
Wrappers
.
lambdaQuery
(
DataRule
.
class
)
.
in
(
DataRule:
:
getId
,
idList
)));
}
@IgnoreWebSecurity
@PostMapping
(
"/bind"
)
@ApiOperation
(
"配置字段规则绑定"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
AjaxResult
bindRule
(
@RequestBody
BindRuleParam
param
)
{
bindRuleService
.
remove
(
Wrappers
.
lambdaQuery
(
BindRule
.
class
).
eq
(
BindRule:
:
getDataId
,
param
.
getFieldId
()));
if
(!
CollectionUtils
.
isEmpty
(
param
.
getRuleIdList
()))
{
final
List
<
BindRule
>
bindRuleList
=
param
.
getRuleIdList
().
stream
().
map
(
item
->
{
BindRule
bd
=
new
BindRule
();
bd
.
setRuleId
(
item
);
bd
.
setDataId
(
param
.
getFieldId
());
return
bd
;
}).
collect
(
Collectors
.
toList
());
bindRuleService
.
saveBatch
(
bindRuleList
);
}
return
AjaxResult
.
success
();
}
@SneakyThrows
@IgnoreWebSecurity
@PostMapping
(
"/upload"
)
@ApiOperation
(
"文件导入"
)
public
AjaxResult
bindRule
(
UploadExcelParam
param
)
{
if
(
StringUtils
.
equals
(
param
.
getType
(),
"1"
))
{
}
else
if
(
StringUtils
.
equals
(
param
.
getType
(),
"2"
))
{
ExcelData
excelData
=
excelDataService
.
getOne
(
Wrappers
.
lambdaQuery
(
ExcelData
.
class
)
.
eq
(
ExcelData:
:
getTemplateId
,
param
.
getTemplateId
())
.
eq
(
ExcelData:
:
getType
,
"2"
),
false
);
if
(
ObjectUtils
.
isEmpty
(
excelData
))
{
excelData
=
new
ExcelData
();
excelData
.
setFile
(
param
.
getFile
().
getBytes
());
excelData
.
setFileName
(
param
.
getFile
().
getOriginalFilename
());
excelData
.
setType
(
"2"
);
excelData
.
setTemplateId
(
param
.
getTemplateId
());
excelData
.
setYear
(
param
.
getYear
());
excelData
.
setOrgName
(
param
.
getOrgName
());
excelDataService
.
save
(
excelData
);
}
else
{
excelData
.
setFile
(
param
.
getFile
().
getBytes
());
excelData
.
setFileName
(
param
.
getFile
().
getOriginalFilename
());
excelDataService
.
updateById
(
excelData
);
}
}
return
AjaxResult
.
success
();
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/DiConfig.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.annotation.Configuration
;
import
javax.annotation.PostConstruct
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
/**
* @author lzz
* @date 2023/2/9 9:22
*/
@Configuration
public
class
DiConfig
{
@Autowired
private
ApplicationContext
applicationContext
;
public
static
final
Map
<
String
,
RuleValidator
>
VALIDATOR_MAP
=
new
ConcurrentHashMap
<>(
8
);
@PostConstruct
public
void
init
()
{
final
Map
<
String
,
RuleValidator
>
validatorMap
=
applicationContext
.
getBeansOfType
(
RuleValidator
.
class
);
VALIDATOR_MAP
.
putAll
(
validatorMap
);
}
/**
* 获取校验器
*
* @param mode
* @return
*/
public
static
RuleValidator
getValidator
(
String
mode
)
{
return
VALIDATOR_MAP
.
get
(
DiConstants
.
SERVICE_PREFIX
+
mode
);
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/DiConstants.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
;
/**
* DataImport常量
*
* @author lzz
* @date 2023/1/10 17:22
*/
public
class
DiConstants
{
/**
* 唯一分隔符
*/
public
static
final
String
SEPARATOR
=
","
;
/**
* 验证规则 正则
*/
public
static
final
String
SERVICE_PREFIX
=
"di_validation_mode_"
;
/**
* 验证规则 正则
*/
public
static
final
String
VALID_MODE_REG
=
"正则"
;
/**
* 验证规则 非空
*/
public
static
final
String
VALID_MODE_NOTNULL
=
"非空"
;
/**
* 验证规则 区间
*/
public
static
final
String
VALID_MODE_SECTION
=
"区间"
;
/**
* 验证规则 比较
*/
public
static
final
String
VALID_MODE_COMPARE
=
"比较"
;
/**
* 验证规则 值域
*/
public
static
final
String
VALID_MODE_RANGE
=
"值域"
;
/**
* 验证规则 逻辑与
*/
public
static
final
String
VALID_MODE_WITH
=
"逻辑与"
;
/**
* 验证规则 逻辑或
*/
public
static
final
String
VALID_MODE_OR
=
"逻辑或"
;
/**
* 基础规则
*/
public
static
final
String
RULE_BASE
=
"基础规则"
;
/**
* 组合规则
*/
public
static
final
String
RULE_COMBINE
=
"组合规则"
;
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/RuleVO.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author lzz
* @date 2023/2/9 9:18
*/
@Data
public
class
RuleVO
{
@ApiModelProperty
(
"规则ID"
)
private
String
id
;
@ApiModelProperty
(
"规则名称"
)
private
String
name
;
@ApiModelProperty
(
"规则类型"
)
private
String
type
;
@ApiModelProperty
(
"验证模式"
)
private
String
mode
;
@ApiModelProperty
(
"验证内容"
)
private
String
content
;
@ApiModelProperty
(
"待验证的值"
)
private
String
value
;
@ApiModelProperty
(
"验证结果"
)
private
String
result
;
public
void
init
(
DataRule
rule
)
{
this
.
setId
(
rule
.
getId
());
this
.
setName
(
rule
.
getName
());
this
.
setType
(
rule
.
getType
());
this
.
setMode
(
rule
.
getMode
());
this
.
setContent
(
rule
.
getContent
());
}
public
static
RuleVO
create
(
DataRule
rule
)
{
final
RuleVO
vo
=
new
RuleVO
();
vo
.
init
(
rule
);
return
vo
;
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/RuleValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
;
/**
* @author lzz
* @date 2023/2/9 9:21
*/
public
interface
RuleValidator
{
/**
* 校验方法
*
* @param rule
*/
void
validate
(
RuleVO
rule
);
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/CompareValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
/**
* 比较规则校验
* 目前支持符号为 > >= < <= = !=
*
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_COMPARE
)
@Slf4j
public
class
CompareValidator
implements
RuleValidator
{
public
static
final
String
GT
=
">"
;
public
static
final
String
GTE
=
">="
;
public
static
final
String
LT
=
"<"
;
public
static
final
String
LTE
=
"<="
;
public
static
final
String
EQ
=
"="
;
public
static
final
String
NEQ
=
"!="
;
private
String
getValue
(
String
value
,
String
symbol
)
{
return
value
.
trim
().
substring
(
symbol
.
length
()).
trim
();
}
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
if
(
rule
.
getContent
().
startsWith
(
GT
))
{
final
BigDecimal
x
=
new
BigDecimal
(
getValue
(
rule
.
getContent
(),
GT
));
if
(
new
BigDecimal
(
rule
.
getValue
()).
compareTo
(
x
)
<=
0
)
{
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
else
if
(
rule
.
getContent
().
startsWith
(
GTE
))
{
final
BigDecimal
x
=
new
BigDecimal
(
getValue
(
rule
.
getContent
(),
GTE
));
if
(
new
BigDecimal
(
rule
.
getValue
()).
compareTo
(
x
)
<
0
)
{
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
else
if
(
rule
.
getContent
().
startsWith
(
LT
))
{
final
BigDecimal
x
=
new
BigDecimal
(
getValue
(
rule
.
getContent
(),
LT
));
if
(
new
BigDecimal
(
rule
.
getValue
()).
compareTo
(
x
)
>=
0
)
{
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
else
if
(
rule
.
getContent
().
startsWith
(
LTE
))
{
final
BigDecimal
x
=
new
BigDecimal
(
getValue
(
rule
.
getContent
(),
LTE
));
if
(
new
BigDecimal
(
rule
.
getValue
()).
compareTo
(
x
)
>
0
)
{
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
else
if
(
rule
.
getContent
().
startsWith
(
EQ
))
{
final
String
content
=
getValue
(
rule
.
getContent
(),
EQ
);
if
(!
StringUtils
.
equals
(
rule
.
getValue
().
trim
(),
content
))
{
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
else
if
(
rule
.
getContent
().
startsWith
(
NEQ
))
{
final
String
content
=
getValue
(
rule
.
getContent
(),
NEQ
);
if
(
StringUtils
.
equals
(
rule
.
getValue
().
trim
(),
content
))
{
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"比较未通过"
,
e
);
rule
.
setResult
(
StringUtils
.
format
(
"比较 {} 未通过"
,
rule
.
getContent
()));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/NotNullValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* 非空规则校验
*
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_NOTNULL
)
@Slf4j
public
class
NotNullValidator
implements
RuleValidator
{
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
if
(
StringUtils
.
isBlank
(
rule
.
getValue
()))
{
rule
.
setResult
(
StringUtils
.
format
(
"非空校验 {} 未通过"
,
rule
.
getName
()));
return
;
}
if
(
StringUtils
.
isNotBlank
(
rule
.
getContent
()))
{
final
String
[]
badArray
=
rule
.
getContent
().
split
(
DiConstants
.
SEPARATOR
);
for
(
String
badStr
:
badArray
)
{
if
(
StringUtils
.
equals
(
badStr
,
rule
.
getValue
()))
{
rule
.
setResult
(
StringUtils
.
format
(
"非空校验 {} 未通过"
,
rule
.
getName
()));
return
;
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"非空校验未通过"
,
e
);
rule
.
setResult
(
StringUtils
.
format
(
"非空校验 {} 未通过"
,
rule
.
getName
()));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/OrValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConfig
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.service.DataRuleService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* 组合规则 逻辑或校验
*
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_OR
)
@Slf4j
public
class
OrValidator
implements
RuleValidator
{
@Autowired
private
DataRuleService
dataRuleService
;
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
if
(
StringUtils
.
isNotBlank
(
rule
.
getContent
()))
{
final
String
[]
ruleIds
=
rule
.
getContent
().
split
(
DiConstants
.
SEPARATOR
);
final
DataRule
dataRule1
=
dataRuleService
.
getById
(
ruleIds
[
0
]);
final
DataRule
dataRule2
=
dataRuleService
.
getById
(
ruleIds
[
1
]);
final
RuleVO
rule1
=
RuleVO
.
create
(
dataRule1
);
final
RuleVO
rule2
=
RuleVO
.
create
(
dataRule2
);
rule1
.
setValue
(
rule
.
getValue
());
rule2
.
setValue
(
rule
.
getValue
());
final
RuleValidator
validator1
=
DiConfig
.
getValidator
(
rule1
.
getMode
());
validator1
.
validate
(
rule1
);
if
(
StringUtils
.
isNotBlank
(
rule1
.
getResult
()))
{
// 第一个条件不满足就进行第二个
final
RuleValidator
validator2
=
DiConfig
.
getValidator
(
rule2
.
getMode
());
validator2
.
validate
(
rule2
);
if
(
StringUtils
.
isNotBlank
(
rule2
.
getResult
()))
{
rule
.
setResult
(
rule2
.
getResult
());
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"逻辑或组合校验未通过"
,
e
);
//rule.setResult(StringUtils.format("逻辑或组合校验未通过"));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/RangeValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* 值域校验
*
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_RANGE
)
@Slf4j
public
class
RangeValidator
implements
RuleValidator
{
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
if
(
StringUtils
.
isNotBlank
(
rule
.
getContent
()))
{
final
String
[]
arr
=
rule
.
getContent
().
split
(
DiConstants
.
SEPARATOR
);
boolean
flag
=
false
;
for
(
String
value
:
arr
)
{
if
(
StringUtils
.
equals
(
value
.
trim
(),
rule
.
getValue
().
trim
()))
{
flag
=
true
;
break
;
}
}
if
(!
flag
)
{
rule
.
setResult
(
StringUtils
.
format
(
"值域校验未通过,值域:{}"
,
rule
.
getContent
()));
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"值域校验未通过"
,
e
);
rule
.
setResult
(
StringUtils
.
format
(
"值域校验未通过,值域:{}"
,
rule
.
getContent
()));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/RegValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.util.regex.Pattern
;
/**
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_REG
)
@Slf4j
public
class
RegValidator
implements
RuleValidator
{
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
final
boolean
matches
=
Pattern
.
matches
(
rule
.
getContent
(),
rule
.
getValue
());
if
(!
matches
)
{
rule
.
setResult
(
StringUtils
.
format
(
"正则表达式{}校验未通过"
,
rule
.
getContent
()));
}
}
catch
(
Exception
e
)
{
log
.
error
(
"正则表达式校验未通过"
,
e
);
rule
.
setResult
(
StringUtils
.
format
(
"正则表达式{}校验未通过"
,
rule
.
getContent
()));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/SectionValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
/**
* 区间规则校验
*
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_SECTION
)
@Slf4j
public
class
SectionValidator
implements
RuleValidator
{
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
if
(
StringUtils
.
isNotBlank
(
rule
.
getContent
()))
{
final
String
[]
section
=
rule
.
getContent
().
split
(
DiConstants
.
SEPARATOR
);
final
BigDecimal
a
=
new
BigDecimal
(
section
[
0
]);
final
BigDecimal
b
=
new
BigDecimal
(
section
[
1
]);
final
BigDecimal
value
=
new
BigDecimal
(
rule
.
getValue
());
if
(
value
.
compareTo
(
a
)
>=
0
)
{
if
(
b
.
compareTo
(
value
)
<
0
)
{
rule
.
setResult
(
StringUtils
.
format
(
"区间校验未通过,数据大于{}"
,
b
.
toString
()));
}
}
else
{
rule
.
setResult
(
StringUtils
.
format
(
"区间校验未通过,数据小于{}"
,
a
.
toString
()));
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"区间校验未通过"
,
e
);
rule
.
setResult
(
StringUtils
.
format
(
"区间校验 {} 未通过"
,
rule
.
getName
()));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/core/validator/WithValidator.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
core
.
validator
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.web.dataImport.core.DiConfig
;
import
com.tbyf.his.web.dataImport.core.DiConstants
;
import
com.tbyf.his.web.dataImport.core.RuleVO
;
import
com.tbyf.his.web.dataImport.core.RuleValidator
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.service.DataRuleService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* 组合规则逻辑与校验
*
* @author lzz
* @date 2023/1/29 14:21
*/
@Service
(
DiConstants
.
SERVICE_PREFIX
+
DiConstants
.
VALID_MODE_WITH
)
@Slf4j
public
class
WithValidator
implements
RuleValidator
{
@Autowired
private
DataRuleService
dataRuleService
;
@Override
public
void
validate
(
RuleVO
rule
)
{
try
{
if
(
StringUtils
.
isNotBlank
(
rule
.
getContent
()))
{
final
String
[]
ruleIds
=
rule
.
getContent
().
split
(
DiConstants
.
SEPARATOR
);
final
DataRule
dataRule1
=
dataRuleService
.
getById
(
ruleIds
[
0
]);
final
DataRule
dataRule2
=
dataRuleService
.
getById
(
ruleIds
[
1
]);
final
RuleVO
rule1
=
RuleVO
.
create
(
dataRule1
);
final
RuleVO
rule2
=
RuleVO
.
create
(
dataRule2
);
rule1
.
setValue
(
rule
.
getValue
());
rule2
.
setValue
(
rule
.
getValue
());
final
RuleValidator
validator1
=
DiConfig
.
getValidator
(
rule1
.
getMode
());
validator1
.
validate
(
rule1
);
if
(
StringUtils
.
isBlank
(
rule1
.
getResult
()))
{
final
RuleValidator
validator2
=
DiConfig
.
getValidator
(
rule2
.
getMode
());
validator2
.
validate
(
rule2
);
if
(
StringUtils
.
isNotBlank
(
rule2
.
getResult
()))
{
rule
.
setResult
(
rule2
.
getResult
());
}
}
else
{
rule
.
setResult
(
rule1
.
getResult
());
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"逻辑与组合校验未通过"
,
e
);
//rule.setResult(StringUtils.format("逻辑与组合校验未通过"));
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/domain/param/BindRuleParam.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
domain
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"规则绑定入参"
,
description
=
"规则绑定入参"
)
public
class
BindRuleParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"字段ID"
)
@NotNull
(
message
=
"id不能为空"
)
private
String
fieldId
;
@ApiModelProperty
(
value
=
"规则ID集合"
)
private
List
<
String
>
ruleIdList
;
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/domain/param/UploadExcelParam.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
domain
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.Serializable
;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"excel上传入参"
,
description
=
"excel上传入参"
)
public
class
UploadExcelParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"文件类型"
)
private
String
type
;
@ApiModelProperty
(
value
=
"规则ID集合"
)
private
MultipartFile
file
;
@ApiModelProperty
(
value
=
"模板ID"
)
private
String
templateId
;
@ApiModelProperty
(
value
=
"数据年份"
)
private
String
year
;
@ApiModelProperty
(
value
=
"机构类型"
)
private
String
orgName
;
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/domain/vo/TemplateVO.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.tbyf.his.web.dataImport.domain.BaseMp
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"数据导入模板"
,
description
=
"数据导入模板"
)
public
class
TemplateVO
extends
BaseMp
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"模板ID"
)
private
String
id
;
@ApiModelProperty
(
value
=
"模板名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"机构类型"
)
private
String
orgName
;
@ApiModelProperty
(
value
=
"导入状态 1-已导入 0-未导入"
)
private
String
importStatus
;
@ApiModelProperty
(
value
=
"数据年份"
)
private
String
year
;
@JsonFormat
(
pattern
=
FORMAT
,
timezone
=
TIMEZONE
)
@ApiModelProperty
(
value
=
"上次导入时间"
)
private
Date
importTime
;
@ApiModelProperty
(
value
=
"数据源ID"
)
private
String
dataSourceId
;
@ApiModelProperty
(
value
=
"表名"
)
private
String
tableName
;
@ApiModelProperty
(
value
=
"excel模板id"
)
private
String
excelId
;
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/entity/ExcelData.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @author lzz
* @date 2023/1/10 15:36
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"excel_data"
,
autoResultMap
=
true
)
@ApiModel
(
value
=
"excel存储表"
,
description
=
"excel存储表"
)
public
class
ExcelData
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
id
;
@ApiModelProperty
(
value
=
"文件名"
)
@TableField
(
"file_name"
)
private
String
fileName
;
@ApiModelProperty
(
value
=
"文件数据"
)
@TableField
(
"file"
)
private
byte
[]
file
;
@ApiModelProperty
(
value
=
"文件类型 1-初始导入文件 2-标准模板文件"
)
@TableField
(
"type"
)
private
String
type
;
@ApiModelProperty
(
value
=
"模板ID"
)
@TableField
(
"template_id"
)
private
String
templateId
;
@ApiModelProperty
(
value
=
"数据年份"
)
@TableField
(
"year"
)
private
String
year
;
@ApiModelProperty
(
value
=
"机构类型"
)
@TableField
(
"org_name"
)
private
String
orgName
;
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/mapper/BindRuleMapper.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tbyf.his.web.dataImport.entity.BindRule
;
/**
* @author lzz
* @date 2023/2/7 11:22
*/
public
interface
BindRuleMapper
extends
BaseMapper
<
BindRule
>
{
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/mapper/DataImportTemplateMapper.java
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.entity.DataImportTemplate
;
import
java.util.List
;
/**
* @author lzz
* @date 2023/2/7 11:22
*/
public
interface
DataImportTemplateMapper
extends
BaseMapper
<
DataImportTemplate
>
{
/**
* 查询模板数据
*
* @param param
* @return
*/
List
<
TemplateVO
>
queryTemplate
(
QueryTemplateParam
param
);
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/mapper/ExcelDataMapper.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.tbyf.his.web.dataImport.entity.ExcelData
;
/**
* @author lzz
* @date 2023/2/7 11:22
*/
public
interface
ExcelDataMapper
extends
BaseMapper
<
ExcelData
>
{
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/BindRuleService.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tbyf.his.web.dataImport.entity.BindRule
;
/**
* @author lzz
* @date 2023/2/7 11:23
*/
public
interface
BindRuleService
extends
IService
<
BindRule
>
{
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/DataImportTemplateService.java
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.entity.DataImportTemplate
;
import
java.util.List
;
/**
* @author lzz
* @date 2023/2/7 11:23
*/
public
interface
DataImportTemplateService
extends
IService
<
DataImportTemplate
>
{
/**
* 查询模板信息
*
* @param param
* @return
*/
List
<
TemplateVO
>
queryTemplate
(
QueryTemplateParam
param
);
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/ExcelDataService.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tbyf.his.web.dataImport.entity.ExcelData
;
/**
* @author lzz
* @date 2023/2/7 11:23
*/
public
interface
ExcelDataService
extends
IService
<
ExcelData
>
{
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/impl/BindRuleServiceImpl.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tbyf.his.common.annotation.DataSource
;
import
com.tbyf.his.common.enums.DataSourceType
;
import
com.tbyf.his.web.dataImport.entity.BindRule
;
import
com.tbyf.his.web.dataImport.mapper.BindRuleMapper
;
import
com.tbyf.his.web.dataImport.service.BindRuleService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* @author lzz
* @date 2023/2/7 11:24
*/
@Slf4j
@Service
@DataSource
(
DataSourceType
.
MASTER
)
public
class
BindRuleServiceImpl
extends
ServiceImpl
<
BindRuleMapper
,
BindRule
>
implements
BindRuleService
{
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/impl/DataImportTemplateServiceImpl.java
View file @
c8e10b26
...
...
@@ -3,12 +3,17 @@ package com.tbyf.his.web.dataImport.service.impl;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tbyf.his.common.annotation.DataSource
;
import
com.tbyf.his.common.enums.DataSourceType
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.entity.DataImportTemplate
;
import
com.tbyf.his.web.dataImport.mapper.DataImportTemplateMapper
;
import
com.tbyf.his.web.dataImport.service.DataImportTemplateService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author lzz
* @date 2023/2/7 11:24
...
...
@@ -17,4 +22,12 @@ import org.springframework.stereotype.Service;
@Service
@DataSource
(
DataSourceType
.
MASTER
)
public
class
DataImportTemplateServiceImpl
extends
ServiceImpl
<
DataImportTemplateMapper
,
DataImportTemplate
>
implements
DataImportTemplateService
{
@Autowired
private
DataImportTemplateMapper
dataImportTemplateMapper
;
@Override
public
List
<
TemplateVO
>
queryTemplate
(
QueryTemplateParam
param
)
{
return
dataImportTemplateMapper
.
queryTemplate
(
param
);
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/impl/ExcelDataServiceImpl.java
0 → 100644
View file @
c8e10b26
package
com
.
tbyf
.
his
.
web
.
dataImport
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.tbyf.his.common.annotation.DataSource
;
import
com.tbyf.his.common.enums.DataSourceType
;
import
com.tbyf.his.web.dataImport.entity.ExcelData
;
import
com.tbyf.his.web.dataImport.mapper.ExcelDataMapper
;
import
com.tbyf.his.web.dataImport.service.ExcelDataService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* @author lzz
* @date 2023/2/7 11:24
*/
@Slf4j
@Service
@DataSource
(
DataSourceType
.
MASTER
)
public
class
ExcelDataServiceImpl
extends
ServiceImpl
<
ExcelDataMapper
,
ExcelData
>
implements
ExcelDataService
{
}
admin-api/src/main/resources/application.yml
View file @
c8e10b26
...
...
@@ -63,18 +63,18 @@ spring:
redisEnable
:
false
redis
:
# 地址
host
:
81.68.90.14
#
host: 127.0.0.1
# 端口,默认为6379
port
:
16378
# port: 6379
# port: 6379
# 数据库索引
database
:
0
# 密码
password
:
afJmdkaW07xR
# 连接超时时间
timeout
:
3000
#
host: 81.68.90.14
host
:
127.0.0.1
# 端口,默认为6379
port
:
16378
# port: 6379
# port: 6379
# 数据库索引
database
:
0
# 密码
password
:
afJmdkaW07xR
# 连接超时时间
timeout
:
3000
lettuce
:
pool
:
# 连接池中的最小空闲连接
...
...
admin-api/src/main/resources/mapper/DataImportTemplateMapper.xml
0 → 100644
View file @
c8e10b26
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tbyf.his.web.dataImport.mapper.DataImportTemplateMapper"
>
<select
id=
"queryTemplate"
resultType=
"com.tbyf.his.web.dataImport.domain.vo.TemplateVO"
>
SELECT id,
name,
org_name as orgName,
import_status as importStatus,
year,
import_time as importTime,
datasource_id as dataSourceId,
table_name as tableName,
create_time as createTime,
update_time as updateTime,
remarks,
(select id from excel_data where template_id = data_import_template.id and type = '2' limit 1) as excelId
FROM data_import_template
<where>
<if
test=
"year != null and year != ''"
>
year = #{year}
</if>
</where>
</select>
</mapper>
scripts/dataImport.sql
View file @
c8e10b26
...
...
@@ -52,4 +52,16 @@ create table bind_rule
(
data_id
varchar
(
32
)
null
comment
'数据ID'
,
rule_id
varchar
(
32
)
null
comment
'规则ID'
)
comment
'规则绑定表'
;
\ No newline at end of file
)
comment
'规则绑定表'
;
create
table
excel_data
(
id
varchar
(
32
)
not
null
primary
key
,
file_name
varchar
(
64
)
null
comment
'文件名'
,
file
longblob
null
comment
'文件数据'
,
type
varchar
(
64
)
null
comment
'文件类型 1-初始导入文件 2-标准模板文件'
,
template_id
varchar
(
32
)
null
comment
'模板ID'
,
year
varchar
(
32
)
null
comment
'数据年份'
,
org_name
varchar
(
64
)
null
comment
'机构类型'
,
)
comment
'excel存储表'
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment