Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
b5a58875
Commit
b5a58875
authored
Oct 27, 2022
by
xixinzhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
三维校验接口
parent
83675177
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
466 additions
and
21 deletions
+466
-21
CheckResult.java
.../yeejoin/amos/boot/module/tdc/api/entity/CheckResult.java
+2
-1
ModelItem.java
...om/yeejoin/amos/boot/module/tdc/api/entity/ModelItem.java
+38
-0
ModelItemMapper.java
...join/amos/boot/module/tdc/api/mapper/ModelItemMapper.java
+12
-0
ModelItemService.java
...in/amos/boot/module/tdc/api/service/ModelItemService.java
+27
-0
SubmitRecordService.java
...amos/boot/module/tdc/api/service/SubmitRecordService.java
+6
-0
SyncMethodService.java
...n/amos/boot/module/tdc/api/service/SyncMethodService.java
+17
-0
ModelItemMapper.xml
...ule-tdc-api/src/main/resources/mapper/ModelItemMapper.xml
+5
-0
CheckModelAction.java
...oin/amos/boot/module/tdc/biz/action/CheckModelAction.java
+22
-20
SwjyExecutorConfig.java
...n/amos/boot/module/tdc/biz/config/SwjyExecutorConfig.java
+43
-0
ModelItemController.java
...s/boot/module/tdc/biz/controller/ModelItemController.java
+63
-0
ModelItemServiceImpl.java
...oot/module/tdc/biz/service/impl/ModelItemServiceImpl.java
+164
-0
SubmitRecordServiceImpl.java
.../module/tdc/biz/service/impl/SubmitRecordServiceImpl.java
+14
-0
SyncMethodServiceImpl.java
...ot/module/tdc/biz/service/impl/SyncMethodServiceImpl.java
+53
-0
No files found.
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/entity/CheckResult.java
View file @
b5a58875
...
...
@@ -58,5 +58,6 @@ public class CheckResult {
@ApiModelProperty
(
value
=
"模型名称"
)
private
String
modelName
;
@ApiModelProperty
(
value
=
"提交记录id"
)
private
Long
submitRecordId
;
}
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/entity/ModelItem.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
api
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
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
;
/**
* @author xxz
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
"tdc_model_item"
)
@ApiModel
(
value
=
"ModelItem对象"
,
description
=
"模型填报项表"
)
public
class
ModelItem
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"sequence_nbr"
,
type
=
IdType
.
ID_WORKER
)
protected
Long
sequenceNbr
;
@ApiModelProperty
(
value
=
"校验项名称"
)
private
String
checkItemLabel
;
@ApiModelProperty
(
value
=
"校验项值"
)
private
String
checkItemValue
;
@ApiModelProperty
(
value
=
"模型名称"
)
private
String
modelName
;
@ApiModelProperty
(
value
=
"提交记录id"
)
private
long
submitRecordId
;
}
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/mapper/ModelItemMapper.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
api
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem
;
import
org.mapstruct.Mapper
;
/**
* @author DELL
*/
@Mapper
public
interface
ModelItemMapper
extends
BaseMapper
<
ModelItem
>
{
}
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/service/ModelItemService.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
api
.
service
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
org.springframework.stereotype.Service
;
import
java.util.Map
;
/**
* @author xxz
*/
@Service
public
interface
ModelItemService
{
void
saveModelItem
(
JSONObject
jsonObject
,
AgencyUserModel
userInfo
);
void
editModelItem
(
JSONObject
jsonObject
,
AgencyUserModel
userInfo
);
/**
* 获取详情接口
* @param sequenceNbr 记录id
* @return 项
*/
Map
<
String
,
Object
>
getModelItem
(
Long
sequenceNbr
);
void
deleteModelItem
(
String
sequenceNbr
);
}
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/service/SubmitRecordService.java
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
api
.
service
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord
;
import
org.springframework.stereotype.Service
;
/**
...
...
@@ -7,4 +8,9 @@ import org.springframework.stereotype.Service;
*/
@Service
public
interface
SubmitRecordService
{
int
saveSubmitRecord
(
SubmitRecord
submitRecord
);
SubmitRecord
updateById
(
Long
sequenceNbr
,
String
batchNo
);
}
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/java/com/yeejoin/amos/boot/module/tdc/api/service/SyncMethodService.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
api
.
service
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author xxz
*/
public
interface
SyncMethodService
{
/**
* 校验
*/
void
checkItem
(
Map
<
String
,
List
<
ModelItem
>>
itemValue
,
SubmitRecord
record
);
}
amos-boot-system-tdc/amos-boot-module-tdc-api/src/main/resources/mapper/ModelItemMapper.xml
0 → 100644
View file @
b5a58875
<?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.yeejoin.amos.boot.module.tdc.api.mapper.ModelItemMapper"
>
</mapper>
\ No newline at end of file
amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/action/CheckModelAction.java
View file @
b5a58875
...
...
@@ -70,7 +70,8 @@ public class CheckModelAction {
Map
propertyValues
=
idxProjectModel
.
getPropertyValues
();
String
batchNo
=
String
.
valueOf
(
propertyValues
.
get
(
"batch_no"
));
Integer
checkType
=
Integer
.
valueOf
(
String
.
valueOf
(
propertyValues
.
get
(
"checkType"
)));
Long
submitRecordId
=
Long
.
valueOf
(
String
.
valueOf
(
propertyValues
.
get
(
"submitRecordId"
)));
// Integer checkType = Integer.valueOf(String.valueOf(propertyValues.get("checkType")));
String
orgCode
=
String
.
valueOf
(
propertyValues
.
get
(
"org_code"
));
String
checkPeopleName
=
String
.
valueOf
(
propertyValues
.
get
(
"checkPeopleName"
));
String
itemName
=
idxProjectModel
.
getItemName
();
...
...
@@ -81,12 +82,12 @@ public class CheckModelAction {
return
;
}
if
(!
CollectionUtils
.
isEmpty
(
idxProjectModel
.
getPropertys
())
&&
StringUtils
.
isNotEmpty
(
checkItem
))
{
Map
<
String
,
Object
>
item
=
idxProjectModel
.
getPropertys
().
stream
().
filter
(
map
->
checkItem
.
equals
(
map
.
get
(
"name"
))).
findFirst
().
orElse
(
null
);
if
(
ObjectUtils
.
isNotEmpty
(
item
))
{
checkResult
.
setCheckItemLabel
(
String
.
valueOf
(
item
.
get
(
"title"
)));
}
}
//
if (!CollectionUtils.isEmpty(idxProjectModel.getPropertys()) && StringUtils.isNotEmpty(checkItem)) {
//
Map<String, Object> item = idxProjectModel.getPropertys().stream().filter(map -> checkItem.equals(map.get("name"))).findFirst().orElse(null);
//
if (ObjectUtils.isNotEmpty(item)) {
//
checkResult.setCheckItemLabel(String.valueOf(item.get("title")));
//
}
//
}
checkResult
.
setBatchNo
(
StringUtils
.
isNotEmpty
(
batchNo
)
?
batchNo
:
String
.
valueOf
(
propertyValues
.
get
(
"id"
)));
checkResult
.
setCheckItemResult
(
result
);
...
...
@@ -96,23 +97,24 @@ public class CheckModelAction {
checkResult
.
setModelId
(
String
.
valueOf
(
checkModel
.
getSequenceNbr
()));
checkResult
.
setAmosOrgCode
(
checkModel
.
getAmosOrgCode
());
checkResult
.
setAmosOrgName
(
checkModel
.
getAmosOrgName
());
checkResult
.
setSubmitRecordId
(
submitRecordId
);
checkResult
.
setCheckDate
(
new
Date
());
checkResult
.
setCheckType
(
ObjectUtils
.
isNotEmpty
(
checkType
)
?
checkType
:
1
);
//
checkResult.setCheckType(ObjectUtils.isNotEmpty(checkType) ? checkType : 1);
checkResult
.
setModelName
(
checkModel
.
getModelName
());
checkResultService
.
save
(
checkResult
);
// 2. 判断是否检验结束
if
(
ObjectUtils
.
isNotEmpty
(
checkType
))
{
if
(
checkType
==
1
)
{
// 2.2 单独模型校验,根据批次号查询已经入库的属性
sendWebMessage
(
batchNo
,
checkModel
.
getCheckItemAmount
(),
orgCode
,
checkPeopleName
,
checkType
,
itemName
);
}
else
if
(
checkType
==
0
)
{
// 2.1 全站校验
List
<
CheckModel
>
checkModels
=
checkModelService
.
selectByOrgCode
(
orgCode
);
int
sum
=
checkModels
.
stream
().
mapToInt
(
CheckModel:
:
getCheckItemAmount
).
sum
();
sendWebMessage
(
batchNo
,
sum
,
orgCode
,
checkPeopleName
,
checkType
,
itemName
);
}
}
//
// 2. 判断是否检验结束
//
if (ObjectUtils.isNotEmpty(checkType)) {
//
if (checkType == 1) {
//
// 2.2 单独模型校验,根据批次号查询已经入库的属性
//
sendWebMessage(batchNo, checkModel.getCheckItemAmount(), orgCode, checkPeopleName, checkType, itemName);
//
} else if (checkType == 0) {
//
// 2.1 全站校验
//
List<CheckModel> checkModels = checkModelService.selectByOrgCode(orgCode);
//
int sum = checkModels.stream().mapToInt(CheckModel::getCheckItemAmount).sum();
//
sendWebMessage(batchNo, sum, orgCode, checkPeopleName, checkType, itemName);
//
}
//
}
// else {
// // 指标填报完自动调用,暂时不需要推送前端
// String number = ObjectUtils.isNotEmpty(checkType) ? batchNo : String.valueOf(propertyValues.get("id"));
...
...
amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/config/SwjyExecutorConfig.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
biz
.
config
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.ThreadPoolExecutor
;
/**
* @author DELL
*/
@Slf4j
@Configuration
@EnableAsync
public
class
SwjyExecutorConfig
{
@Bean
(
name
=
"swjyAsyncExecutor"
)
public
Executor
asyncServiceExecutor
()
{
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
//配置核心线程数
executor
.
setCorePoolSize
(
10
);
//配置最大线程数
executor
.
setMaxPoolSize
(
100
);
//配置队列大小
executor
.
setQueueCapacity
(
1000
);
//配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"namePrefix"
);
//线程池维护线程所允许的空闲时间
executor
.
setKeepAliveSeconds
(
30
);
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行--拒绝策略
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
//执行初始化
executor
.
initialize
();
//等待所有任务结束后再关闭线程池
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
return
executor
;
}
}
amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/controller/ModelItemController.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
biz
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.tdc.api.service.ModelItemService
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.Map
;
/**
* 校验项提交
* @author xxz
*/
@RestController
@Api
(
tags
=
"校验项提交"
)
@RequestMapping
(
value
=
"/check-item"
)
public
class
ModelItemController
extends
BaseController
{
@Autowired
ModelItemService
modelItemService
;
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/saveModelItem"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"保存模型项"
,
notes
=
"保存模型项"
)
public
ResponseModel
saveModelItem
(
@RequestBody
JSONObject
jsonObject
){
AgencyUserModel
userInfo
=
getUserInfo
();
if
(
ObjectUtils
.
isEmpty
(
jsonObject
))
{
return
null
;
}
Object
sequenceNbr
=
jsonObject
.
get
(
"sequenceNbr"
);
if
(
ObjectUtils
.
isEmpty
(
sequenceNbr
))
{
modelItemService
.
saveModelItem
(
jsonObject
,
userInfo
);
return
ResponseHelper
.
buildResponse
(
true
);
}
modelItemService
.
editModelItem
(
jsonObject
,
userInfo
);
return
ResponseHelper
.
buildResponse
(
true
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/getModelItem"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取模型项"
,
notes
=
"获取模型项"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
getModelItem
(
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
){
return
ResponseHelper
.
buildResponse
(
modelItemService
.
getModelItem
(
sequenceNbr
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/deleteModelItem"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"删除模型项"
,
notes
=
"删除模型项"
)
public
ResponseModel
deleteModelItem
(
@RequestParam
(
value
=
"sequenceNbr"
)
String
sequenceNbr
){
modelItemService
.
deleteModelItem
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
true
);
}
}
amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/service/impl/ModelItemServiceImpl.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.netflix.discovery.converters.Auto
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord
;
import
com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper
;
import
com.yeejoin.amos.boot.module.tdc.api.mapper.ModelItemMapper
;
import
com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper
;
import
com.yeejoin.amos.boot.module.tdc.api.service.ModelItemService
;
import
com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService
;
import
com.yeejoin.amos.boot.module.tdc.api.service.SyncMethodService
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.CompanyModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author DELL
*/
@Service
public
class
ModelItemServiceImpl
extends
ServiceImpl
<
ModelItemMapper
,
ModelItem
>
implements
ModelItemService
{
@Autowired
SubmitRecordService
submitRecordService
;
@Autowired
SyncMethodService
syncMethodService
;
@Autowired
CheckResultMapper
checkResultMapper
;
@Autowired
SubmitRecordMapper
submitRecordMapper
;
@Override
public
void
saveModelItem
(
JSONObject
jsonObject
,
AgencyUserModel
userInfo
)
{
long
start
=
System
.
currentTimeMillis
();
if
(
ObjectUtils
.
isEmpty
(
jsonObject
))
{
return
;
}
SubmitRecord
submitRecord
=
new
SubmitRecord
();
userInfo
.
getUserName
();
List
<
CompanyModel
>
company
=
userInfo
.
getCompanys
();
if
(!
CollectionUtils
.
isEmpty
(
company
))
{
String
companyName
=
company
.
get
(
0
).
getCompanyName
();
String
orgCode
=
company
.
get
(
0
).
getOrgCode
();
submitRecord
.
setAmosOrgCode
(
orgCode
);
submitRecord
.
setAmosOrgName
(
companyName
);
}
submitRecord
.
setSubmitPeople
(
userInfo
.
getRealName
());
submitRecord
.
setSubmitTime
(
new
Date
());
String
batchNo
=
UUID
.
randomUUID
().
toString
();
submitRecord
.
setBatchNo
(
batchNo
);
long
start1
=
System
.
currentTimeMillis
();
log
.
error
(
"=====记录入库前用时:"
+(
start1
-
start
)+
"======"
);
submitRecordService
.
saveSubmitRecord
(
submitRecord
);
long
end
=
System
.
currentTimeMillis
();
log
.
error
(
"=====记录入库用时:"
+(
end
-
start1
)+
"======"
);
if
(
StringUtils
.
isEmpty
(
submitRecord
.
getSequenceNbr
()))
{
return
;
}
List
<
ModelItem
>
collect
=
jsonObject
.
entrySet
().
stream
().
map
(
e
->
{
ModelItem
modelItem
=
new
ModelItem
();
String
key
=
e
.
getKey
();
String
[]
s
=
key
.
split
(
"_"
);
if
(
s
.
length
>
0
)
{
modelItem
.
setModelName
(
s
[
0
]);
modelItem
.
setCheckItemLabel
(
s
[
1
]);
}
String
value
=
String
.
valueOf
(
e
.
getValue
());
modelItem
.
setCheckItemValue
(
value
);
modelItem
.
setSubmitRecordId
(
submitRecord
.
getSequenceNbr
());
return
modelItem
;
}).
collect
(
Collectors
.
toList
());
Map
<
String
,
List
<
ModelItem
>>
itemValue
=
collect
.
stream
().
collect
(
Collectors
.
groupingBy
(
ModelItem:
:
getModelName
));
long
e1
=
System
.
currentTimeMillis
();
log
.
error
(
"=====参数解析用时:"
+(
e1
-
end
)+
"======"
);
this
.
saveBatch
(
collect
);
long
e2
=
System
.
currentTimeMillis
();
log
.
error
(
"=====入库用时:"
+(
e2
-
e1
)+
"======"
);
// 异步请求规则校验
syncMethodService
.
checkItem
(
itemValue
,
submitRecord
);
}
@Override
public
void
editModelItem
(
JSONObject
jsonObject
,
AgencyUserModel
userInfo
)
{
Long
sequenceNbr
=
Long
.
valueOf
(
String
.
valueOf
(
jsonObject
.
get
(
"sequenceNbr"
)));
String
batchNo
=
UUID
.
randomUUID
().
toString
();
SubmitRecord
submitRecord
=
submitRecordService
.
updateById
(
sequenceNbr
,
batchNo
);
LambdaQueryWrapper
<
ModelItem
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
ModelItem:
:
getSubmitRecordId
,
sequenceNbr
);
this
.
baseMapper
.
delete
(
wrapper
);
List
<
ModelItem
>
collect
=
jsonObject
.
entrySet
().
stream
().
map
(
e
->
{
ModelItem
modelItem
=
new
ModelItem
();
String
key
=
e
.
getKey
();
String
[]
s
=
key
.
split
(
"_"
);
if
(
s
.
length
>
1
)
{
modelItem
.
setModelName
(
s
[
0
]);
modelItem
.
setCheckItemLabel
(
s
[
1
]);
String
value
=
String
.
valueOf
(
e
.
getValue
());
modelItem
.
setCheckItemValue
(
value
);
modelItem
.
setSubmitRecordId
(
submitRecord
.
getSequenceNbr
());
return
modelItem
;
}
else
{
return
null
;
}
}).
filter
(
item
->
!
ObjectUtils
.
isEmpty
(
item
)).
collect
(
Collectors
.
toList
());
this
.
saveOrUpdateBatch
(
collect
);
// 异步请求规则校验
Map
<
String
,
List
<
ModelItem
>>
itemValue
=
collect
.
stream
().
collect
(
Collectors
.
groupingBy
(
ModelItem:
:
getModelName
));
syncMethodService
.
checkItem
(
itemValue
,
submitRecord
);
}
@Override
public
Map
<
String
,
Object
>
getModelItem
(
Long
sequenceNbr
)
{
LambdaQueryWrapper
<
ModelItem
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
ModelItem:
:
getSubmitRecordId
,
sequenceNbr
);
List
<
ModelItem
>
list
=
this
.
list
(
wrapper
);
Map
<
String
,
Object
>
map
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
e
->
e
.
getModelName
()
+
"_"
+
e
.
getCheckItemLabel
(),
ModelItem:
:
getCheckItemValue
));
map
.
put
(
"sequenceNbr"
,
sequenceNbr
);
return
map
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteModelItem
(
String
sequenceNbr
)
{
if
(!
StringUtils
.
isEmpty
(
sequenceNbr
))
{
String
[]
split
=
sequenceNbr
.
split
(
","
);
List
<
String
>
list
=
Arrays
.
asList
(
split
);
// 1. 删除记录
submitRecordMapper
.
deleteBatchIds
(
list
);
// 2. 删除填报项
LambdaQueryWrapper
<
ModelItem
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
in
(
ModelItem:
:
getSubmitRecordId
,
list
);
this
.
baseMapper
.
delete
(
wrapper
);
// 3. 删除校验记录
LambdaQueryWrapper
<
CheckResult
>
resultWrapper
=
new
LambdaQueryWrapper
<>();
resultWrapper
.
in
(
CheckResult:
:
getSubmitRecordId
,
list
);
checkResultMapper
.
delete
(
resultWrapper
);
}
}
}
amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/service/impl/SubmitRecordServiceImpl.java
View file @
b5a58875
...
...
@@ -5,6 +5,7 @@ import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import
com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper
;
import
com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
/**
...
...
@@ -12,4 +13,17 @@ import org.springframework.stereotype.Service;
*/
@Service
public
class
SubmitRecordServiceImpl
extends
ServiceImpl
<
SubmitRecordMapper
,
SubmitRecord
>
implements
SubmitRecordService
{
@Override
public
int
saveSubmitRecord
(
SubmitRecord
submitRecord
)
{
return
this
.
baseMapper
.
insert
(
submitRecord
);
}
@Override
public
SubmitRecord
updateById
(
Long
sequenceNbr
,
String
batchNo
)
{
SubmitRecord
submitRecord
=
this
.
getById
(
sequenceNbr
);
submitRecord
.
setBatchNo
(
batchNo
);
this
.
updateById
(
submitRecord
);
return
submitRecord
;
}
}
amos-boot-system-tdc/amos-boot-module-tdc-biz/src/main/java/com/yeejoin/amos/boot/module/tdc/biz/service/impl/SyncMethodServiceImpl.java
0 → 100644
View file @
b5a58875
package
com
.
yeejoin
.
amos
.
boot
.
module
.
tdc
.
biz
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem
;
import
com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord
;
import
com.yeejoin.amos.boot.module.tdc.api.service.SyncMethodService
;
import
com.yeejoin.amos.boot.module.tdc.biz.action.model.IdxProjectModel
;
import
com.yeejoin.amos.component.rule.RuleTrigger
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @author DELL
*/
@Service
@Async
(
"swjyAsyncExecutor"
)
@Slf4j
public
class
SyncMethodServiceImpl
implements
SyncMethodService
{
@Autowired
RuleTrigger
ruleTrigger
;
@Override
public
void
checkItem
(
Map
<
String
,
List
<
ModelItem
>>
itemValue
,
SubmitRecord
record
)
{
try
{
itemValue
.
forEach
((
key
,
value
)
->
{
IdxProjectModel
idxProjectModel
=
new
IdxProjectModel
();
idxProjectModel
.
setItemName
(
key
);
Map
<
String
,
Object
>
mapValue
=
value
.
stream
().
collect
(
Collectors
.
toMap
(
ModelItem:
:
getCheckItemLabel
,
ModelItem:
:
getCheckItemValue
));
mapValue
.
put
(
"submitRecordId"
,
record
.
getSequenceNbr
());
mapValue
.
put
(
"batch_no"
,
record
.
getBatchNo
());
mapValue
.
put
(
"org_code"
,
record
.
getAmosOrgCode
());
idxProjectModel
.
setPropertyValues
(
mapValue
);
// 调用规则校验模型
try
{
// 没有配决策流,processIds传null即可
String
packageId
=
"三维校验/"
+
key
;
ruleTrigger
.
publish
(
idxProjectModel
,
packageId
,
null
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
});
}
catch
(
Exception
e
)
{
log
.
error
(
"调用规则校验失败:"
);
}
}
}
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