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
0fadb312
Commit
0fadb312
authored
Sep 22, 2023
by
guoxw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
物理表异常字段查询和同步 增加_TEMP表
parent
43bf81ab
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
41 deletions
+65
-41
DataTemplateController.java
...his/web/controller/dataImport/DataTemplateController.java
+11
-41
DataTemplateService.java
.../tbyf/his/web/dataImport/service/DataTemplateService.java
+10
-0
DataTemplateServiceImpl.java
.../web/dataImport/service/impl/DataTemplateServiceImpl.java
+44
-0
No files found.
admin-api/src/main/java/com/tbyf/his/web/controller/dataImport/DataTemplateController.java
View file @
0fadb312
...
@@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.*;
...
@@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.*;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.ExecutionException
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -55,10 +57,10 @@ public class DataTemplateController {
...
@@ -55,10 +57,10 @@ public class DataTemplateController {
private
ExcelDataService
excelDataService
;
private
ExcelDataService
excelDataService
;
@Autowired
@Autowired
private
MetaFieldMapper
metaFieldMapper
;
private
JdbcTemplate
jdbcTemplate
;
@Autowired
@Autowired
private
JdbcTemplate
jdbcTemplate
;
private
MetaFieldMapper
metaFieldMapper
;
@IgnoreWebSecurity
@IgnoreWebSecurity
@GetMapping
()
@GetMapping
()
...
@@ -71,53 +73,21 @@ public class DataTemplateController {
...
@@ -71,53 +73,21 @@ public class DataTemplateController {
@IgnoreWebSecurity
@IgnoreWebSecurity
@GetMapping
(
"/fieldError"
)
@GetMapping
(
"/fieldError"
)
@ApiOperation
(
"物理表异常字段查询"
)
@ApiOperation
(
"物理表异常字段查询"
)
public
AjaxResult
fieldError
(
@RequestParam
String
templateId
)
{
public
AjaxResult
fieldError
(
@RequestParam
String
templateId
)
throws
ExecutionException
,
InterruptedException
{
List
<
FieldErrorVo
>
fieldErrorVos1
=
metaFieldMapper
.
selectFieldErrorVO
(
templateId
);
List
<
FieldErrorVo
>
fieldErrorVos
=
metaFieldMapper
.
selectFieldErrorVO
(
templateId
);
List
<
FieldErrorVo
>
fieldErrorVos2
=
metaFieldMapper
.
selectFieldErrorVO
(
templateId
);
ArrayList
<
FieldErrorVo
>
resultList
=
new
ArrayList
<>();
ArrayList
<
FieldErrorVo
>
resultList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
fieldErrorVos
1
)
&&
StringUtils
.
isNotBlank
(
fieldErrorVos1
.
get
(
0
).
getTableName
()))
{
if
(!
CollectionUtils
.
isEmpty
(
fieldErrorVos
)
&&
StringUtils
.
isNotBlank
(
fieldErrorVos
.
get
(
0
).
getTableName
()))
{
List
<
FieldErrorVo
>
list1
=
getTableFieldError
(
fieldErrorVos1
,
fieldErrorVos1
.
get
(
0
).
getTableName
());
CompletableFuture
<
List
<
FieldErrorVo
>>
future1
=
dataTemplateService
.
getTableFieldError
(
fieldErrorVos
,
fieldErrorVos
.
get
(
0
).
getTableName
());
List
<
FieldErrorVo
>
list2
=
getTableFieldError
(
fieldErrorVos2
,
fieldErrorVos2
.
get
(
0
).
getTableName
()
+
"_TEMP"
);
CompletableFuture
<
List
<
FieldErrorVo
>>
future2
=
dataTemplateService
.
getTableFieldError
(
fieldErrorVos
,
fieldErrorVos
.
get
(
0
).
getTableName
()
+
"_TEMP"
);
resultList
.
addAll
(
list1
);
resultList
.
addAll
(
list2
);
resultList
.
addAll
(
future1
.
get
());
resultList
.
addAll
(
future2
.
get
()
);
}
}
return
AjaxResult
.
success
(
resultList
);
return
AjaxResult
.
success
(
resultList
);
}
}
private
List
<
FieldErrorVo
>
getTableFieldError
(
List
<
FieldErrorVo
>
fieldErrorVos
,
String
tableName
)
{
List
<
FieldErrorVo
>
resultList
=
new
ArrayList
<>();
try
{
DataSourceUtil
.
switchDs
(
DataSourceType
.
SLAVE
.
name
());
if
(
metaFieldMapper
.
selectTableCount
(
tableName
)
>
0
)
{
fieldErrorVos
.
forEach
(
item
->
{
String
fieldType
=
item
.
getFieldType
();
String
columnType
=
""
;
if
(
fieldType
.
contains
(
"NUMBER"
))
{
columnType
=
metaFieldMapper
.
selectNumberFieldType
(
tableName
,
item
.
getFieldName
());
}
else
{
columnType
=
metaFieldMapper
.
selectFieldType
(
tableName
,
item
.
getFieldName
());
}
if
(!
StringUtils
.
equals
(
fieldType
,
columnType
)
&&
!
isVarcharLengthEqual
(
fieldType
,
columnType
))
{
item
.
setColumnType
(
columnType
).
setTableName
(
tableName
);
resultList
.
add
(
item
);
}
});
}
}
finally
{
DataSourceUtil
.
switchDefaultDs
();
}
return
resultList
;
}
private
boolean
isVarcharLengthEqual
(
String
fieldType
,
String
columnType
)
{
return
fieldType
.
contains
(
"VARCHAR"
)
&&
columnType
.
contains
(
"VARCHAR"
)
&&
fieldType
.
substring
(
fieldType
.
indexOf
(
"("
)
+
1
,
fieldType
.
indexOf
(
")"
)).
equals
(
columnType
.
substring
(
columnType
.
indexOf
(
"("
)
+
1
,
columnType
.
indexOf
(
")"
)));
}
@IgnoreWebSecurity
@IgnoreWebSecurity
@PostMapping
(
"/syncFieldError"
)
@PostMapping
(
"/syncFieldError"
)
@ApiOperation
(
"物理表异常字段同步"
)
@ApiOperation
(
"物理表异常字段同步"
)
public
AjaxResult
fieldErrorUpdate
(
@RequestBody
List
<
FieldErrorVo
>
fieldErrorVos
)
{
public
AjaxResult
fieldErrorUpdate
(
@RequestBody
List
<
FieldErrorVo
>
fieldErrorVos
)
{
//ALTER TABLE T0801_HEALTHCENTER_TEMP MODIFY ( ORG_NAME VARCHAR2(256) )
final
String
alterSql
=
"ALTER TABLE {} MODIFY ( {} {} )"
;
final
String
alterSql
=
"ALTER TABLE {} MODIFY ( {} {} )"
;
try
{
try
{
DataSourceUtil
.
switchDs
(
DataSourceType
.
SLAVE
.
name
());
DataSourceUtil
.
switchDs
(
DataSourceType
.
SLAVE
.
name
());
...
@@ -249,7 +219,7 @@ public class DataTemplateController {
...
@@ -249,7 +219,7 @@ public class DataTemplateController {
.
ne
(
DataTemplate:
:
getYear
,
template
.
getYear
())
.
ne
(
DataTemplate:
:
getYear
,
template
.
getYear
())
.
select
(
DataTemplate:
:
getYear
);
.
select
(
DataTemplate:
:
getYear
);
List
<
DataTemplate
>
list
=
dataTemplateService
.
list
(
queryWrapper
);
List
<
DataTemplate
>
list
=
dataTemplateService
.
list
(
queryWrapper
);
return
AjaxResult
.
success
(
list
.
stream
().
filter
(
item
->
StringUtils
.
isNotBlank
(
item
.
getYear
())).
map
(
DataTemplate:
:
getYear
).
collect
(
Collectors
.
toList
()));
return
AjaxResult
.
success
(
list
.
stream
().
map
(
DataTemplate:
:
getYear
).
filter
(
StringUtils:
:
isNotBlank
).
collect
(
Collectors
.
toList
()));
}
}
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/DataTemplateService.java
View file @
0fadb312
...
@@ -3,12 +3,14 @@ package com.tbyf.his.web.dataImport.service;
...
@@ -3,12 +3,14 @@ package com.tbyf.his.web.dataImport.service;
import
com.baomidou.mybatisplus.annotation.DbType
;
import
com.baomidou.mybatisplus.annotation.DbType
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.vo.FieldErrorVo
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.domain.vo.VerifyVO
;
import
com.tbyf.his.web.dataImport.domain.vo.VerifyVO
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.entity.DataTemplate
;
import
com.tbyf.his.web.dataImport.entity.DataTemplate
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
/**
/**
* @author lzz
* @author lzz
...
@@ -42,4 +44,12 @@ public interface DataTemplateService extends IService<DataTemplate> {
...
@@ -42,4 +44,12 @@ public interface DataTemplateService extends IService<DataTemplate> {
* @return
* @return
*/
*/
List
<
DataRule
>
getAllRule
(
String
templateId
);
List
<
DataRule
>
getAllRule
(
String
templateId
);
/**
* 获取物理表的错误字段
* @param fieldErrorVos
* @param tableName
* @return
*/
public
CompletableFuture
<
List
<
FieldErrorVo
>>
getTableFieldError
(
List
<
FieldErrorVo
>
fieldErrorVos
,
String
tableName
);
}
}
admin-api/src/main/java/com/tbyf/his/web/dataImport/service/impl/DataTemplateServiceImpl.java
View file @
0fadb312
...
@@ -5,18 +5,25 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -5,18 +5,25 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.tbyf.his.common.annotation.DataSource
;
import
com.tbyf.his.common.annotation.DataSource
;
import
com.tbyf.his.common.enums.DataSourceType
;
import
com.tbyf.his.common.enums.DataSourceType
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.common.utils.StringUtils
;
import
com.tbyf.his.common.utils.bean.BeanUtils
;
import
com.tbyf.his.framework.datasource.DataSourceUtil
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.param.QueryTemplateParam
;
import
com.tbyf.his.web.dataImport.domain.vo.FieldErrorVo
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.domain.vo.TemplateVO
;
import
com.tbyf.his.web.dataImport.domain.vo.VerifyVO
;
import
com.tbyf.his.web.dataImport.domain.vo.VerifyVO
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.entity.DataRule
;
import
com.tbyf.his.web.dataImport.entity.DataTemplate
;
import
com.tbyf.his.web.dataImport.entity.DataTemplate
;
import
com.tbyf.his.web.dataImport.mapper.DataTemplateMapper
;
import
com.tbyf.his.web.dataImport.mapper.DataTemplateMapper
;
import
com.tbyf.his.web.dataImport.mapper.MetaFieldMapper
;
import
com.tbyf.his.web.dataImport.service.DataTemplateService
;
import
com.tbyf.his.web.dataImport.service.DataTemplateService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
/**
/**
* @author lzz
* @author lzz
...
@@ -30,6 +37,9 @@ public class DataTemplateServiceImpl extends ServiceImpl<DataTemplateMapper, Dat
...
@@ -30,6 +37,9 @@ public class DataTemplateServiceImpl extends ServiceImpl<DataTemplateMapper, Dat
@Autowired
@Autowired
private
DataTemplateMapper
dataTemplateMapper
;
private
DataTemplateMapper
dataTemplateMapper
;
@Autowired
private
MetaFieldMapper
metaFieldMapper
;
@Override
@Override
public
List
<
TemplateVO
>
queryTemplate
(
QueryTemplateParam
param
)
{
public
List
<
TemplateVO
>
queryTemplate
(
QueryTemplateParam
param
)
{
return
dataTemplateMapper
.
queryTemplate
(
param
);
return
dataTemplateMapper
.
queryTemplate
(
param
);
...
@@ -57,4 +67,38 @@ public class DataTemplateServiceImpl extends ServiceImpl<DataTemplateMapper, Dat
...
@@ -57,4 +67,38 @@ public class DataTemplateServiceImpl extends ServiceImpl<DataTemplateMapper, Dat
public
List
<
DataRule
>
getAllRule
(
String
templateId
)
{
public
List
<
DataRule
>
getAllRule
(
String
templateId
)
{
return
dataTemplateMapper
.
getAllRule
(
templateId
);
return
dataTemplateMapper
.
getAllRule
(
templateId
);
}
}
@Async
public
CompletableFuture
<
List
<
FieldErrorVo
>>
getTableFieldError
(
List
<
FieldErrorVo
>
fieldErrorVos
,
String
tableName
)
{
log
.
info
(
"start"
);
List
<
FieldErrorVo
>
resultList
=
new
ArrayList
<>();
try
{
DataSourceUtil
.
switchDs
(
DataSourceType
.
SLAVE
.
name
());
if
(
metaFieldMapper
.
selectTableCount
(
tableName
)
>
0
)
{
fieldErrorVos
.
forEach
(
item
->
{
String
fieldType
=
item
.
getFieldType
();
String
columnType
;
if
(
fieldType
.
contains
(
"NUMBER"
))
{
columnType
=
metaFieldMapper
.
selectNumberFieldType
(
tableName
,
item
.
getFieldName
());
}
else
{
columnType
=
metaFieldMapper
.
selectFieldType
(
tableName
,
item
.
getFieldName
());
}
//元字段存在、物理表字段可能不存在
if
(
StringUtils
.
isNotBlank
(
columnType
)
&&
!
StringUtils
.
equals
(
fieldType
,
columnType
)
&&
!
isVarcharLengthEqual
(
fieldType
,
columnType
))
{
FieldErrorVo
fieldErrorVo
=
new
FieldErrorVo
();
BeanUtils
.
copyBeanProp
(
fieldErrorVo
,
item
);
resultList
.
add
(
fieldErrorVo
.
setColumnType
(
columnType
).
setTableName
(
tableName
));
}
});
}
}
finally
{
DataSourceUtil
.
switchDefaultDs
();
}
return
CompletableFuture
.
completedFuture
(
resultList
);
}
protected
boolean
isVarcharLengthEqual
(
String
fieldType
,
String
columnType
)
{
return
fieldType
.
contains
(
"VARCHAR"
)
&&
columnType
.
contains
(
"VARCHAR"
)
&&
fieldType
.
substring
(
fieldType
.
indexOf
(
"("
)
+
1
,
fieldType
.
indexOf
(
")"
)).
equals
(
columnType
.
substring
(
columnType
.
indexOf
(
"("
)
+
1
,
columnType
.
indexOf
(
")"
)));
}
}
}
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