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
24b8a436
Commit
24b8a436
authored
Nov 14, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.按照宝鸡特检院增加报检返回字段及结果接收调整
parent
06089ffb
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
96 additions
and
34 deletions
+96
-34
JyjcInspectionResultDataModel.java
.../module/jyjc/api/model/JyjcInspectionResultDataModel.java
+5
-0
InspectionApplicationPushEventListener.java
...vent/listener/InspectionApplicationPushEventListener.java
+21
-8
JyjcInspectionResultServiceImpl.java
...yjc/biz/service/impl/JyjcInspectionResultServiceImpl.java
+70
-26
No files found.
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/model/JyjcInspectionResultDataModel.java
View file @
24b8a436
...
...
@@ -82,4 +82,9 @@ public class JyjcInspectionResultDataModel {
*/
private
String
traceId
;
/**
* 设备唯一标识,record--首检时需要,此时设备无监管码及设备代码
*/
private
String
equipId
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/event/listener/InspectionApplicationPushEventListener.java
View file @
24b8a436
...
...
@@ -114,6 +114,8 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
@Autowired
JgUseRegistrationManageMapper
jgUseRegistrationManageMapper
;
@Autowired
IdxBizJgDesignInfoMapper
designInfoMapper
;
/**
...
...
@@ -215,9 +217,11 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
// 注册信息
this
.
setRegisterInfo
(
equipData
,
e
.
getEquipUnicode
());
// 制造信息
this
.
setProductData
(
equipData
,
e
.
getEquipUnicode
());
this
.
setProductData
(
equipData
,
e
.
getEquipUnicode
());
// 设计信息
this
.
setDesignInfo
(
equipData
,
e
.
getEquipUnicode
());
// 维保单位信息
this
.
setMaintenanceInfo
(
equipData
,
e
.
getEquipUnicode
());
this
.
setMaintenanceInfo
(
equipData
,
e
.
getEquipUnicode
());
// 单个查询执行,原因数据量较大 in 慢
this
.
setOtherInfo
(
equipData
,
e
.
getEquipUnicode
(),
applicationModel
.
getInspectionType
());
// 单个查询执行,原因数据量较大 in 慢
...
...
@@ -226,11 +230,20 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
}).
collect
(
Collectors
.
toList
());
}
private
void
setDesignInfo
(
InspectionEquipData
equipData
,
String
equipUnicode
)
{
IdxBizJgDesignInfo
designInfo
=
designInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
IdxBizJgDesignInfo
>()
.
eq
(
IdxBizJgDesignInfo:
:
getRecord
,
equipUnicode
)
.
select
(
IdxBizJgDesignInfo:
:
getRecord
,
IdxBizJgDesignInfo:
:
getDesignUseDate
));
if
(
designInfo
!=
null
)
{
equipData
.
setDesignUseDate
(
designInfo
.
getDesignUseDate
());
}
}
private
void
setMaintenanceInfo
(
InspectionEquipData
equipData
,
String
equipUnicode
)
{
MaintenanceInfo
maintenanceInfo
=
maintenanceInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
MaintenanceInfo
>()
.
eq
(
AbstractEquipBaseEntity:
:
getRecord
,
equipUnicode
)
.
select
(
MaintenanceInfo:
:
getRecord
,
MaintenanceInfo:
:
getMeUnitCreditCode
,
MaintenanceInfo:
:
getMeUnitName
));
if
(
maintenanceInfo
!=
null
)
{
.
select
(
MaintenanceInfo:
:
getRecord
,
MaintenanceInfo:
:
getMeUnitCreditCode
,
MaintenanceInfo:
:
getMeUnitName
));
if
(
maintenanceInfo
!=
null
)
{
equipData
.
setMeUnitCreditCode
(
maintenanceInfo
.
getMeUnitCreditCode
());
equipData
.
setMeUnitName
(
maintenanceInfo
.
getMeUnitName
());
}
...
...
@@ -239,7 +252,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
private
void
setUseInfo
(
InspectionEquipData
equipData
,
String
equipUnicode
)
{
IdxBizJgUseInfo
idxBizJgUseInfo
=
useInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
IdxBizJgUseInfo
>()
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
equipUnicode
)
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
equipUnicode
)
);
equipData
.
setUseInnerCode
(
idxBizJgUseInfo
.
getUseInnerCode
());
equipData
.
setAddress
(
getAddressByRecord
(
idxBizJgUseInfo
));
...
...
@@ -253,7 +266,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
private
void
setRegisterInfo
(
InspectionEquipData
equipData
,
String
equipUnicode
)
{
LambdaQueryWrapper
<
IdxBizJgRegisterInfo
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
select
(
IdxBizJgRegisterInfo:
:
getEquType
,
IdxBizJgRegisterInfo:
:
getRecord
);
wrapper
.
select
(
IdxBizJgRegisterInfo:
:
getEquType
,
IdxBizJgRegisterInfo:
:
getRecord
);
wrapper
.
eq
(
IdxBizJgRegisterInfo:
:
getRecord
,
equipUnicode
);
wrapper
.
select
(
IdxBizJgRegisterInfo:
:
getRecord
,
IdxBizJgRegisterInfo:
:
getEquType
,
...
...
@@ -280,8 +293,8 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
}
private
void
setProductData
(
InspectionEquipData
equipData
,
String
record
)
{
IdxBizJgFactoryInfo
idxBizJgFactoryInfo
=
factoryInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
IdxBizJgFactoryInfo
>().
eq
(
IdxBizJgFactoryInfo:
:
getRecord
,
record
));
if
(
idxBizJgFactoryInfo
!=
null
)
{
IdxBizJgFactoryInfo
idxBizJgFactoryInfo
=
factoryInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
IdxBizJgFactoryInfo
>().
eq
(
IdxBizJgFactoryInfo:
:
getRecord
,
record
));
if
(
idxBizJgFactoryInfo
!=
null
)
{
equipData
.
setFactoryNum
(
idxBizJgFactoryInfo
.
getFactoryNum
());
equipData
.
setProduceUnitCreditCode
(
idxBizJgFactoryInfo
.
getProduceUnitCreditCode
());
equipData
.
setProduceUnitName
(
idxBizJgFactoryInfo
.
getProduceUnitName
());
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/JyjcInspectionResultServiceImpl.java
View file @
24b8a436
...
...
@@ -41,6 +41,7 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.*
;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieModel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.io.Resource
;
...
...
@@ -53,6 +54,7 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.*
;
...
...
@@ -417,37 +419,73 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
List
<
JyjcInspectionResultDataModel
>
receivePushResultData
(
List
<
JyjcInspectionResultDataModel
>
resultDataModels
)
{
log
.
info
(
"收到检验检测厂商推送的结果数据:{}"
,
JSONArray
.
toJSONString
(
resultDataModels
));
// 1.组织数据
Map
<
String
,
JyjcInspectionResult
>
resultListMap
=
queryWaitUpdateResultList
(
resultDataModels
);
// 1.数据合法性检查
this
.
checkMustFieldIsValid
(
resultDataModels
);
// 2.组织数据
List
<
JyjcInspectionResult
>
resultList
=
queryResultList
(
resultDataModels
);
// key为{record}, value为{JyjcInspectionResult},首次检验时,设备无监管码,用record作为设备标识,可适用与所有的检验结果的接收
Map
<
String
,
JyjcInspectionResult
>
recordResultMap
=
getRecordKeyResultMap
(
resultList
);
// key为{supervisoryCode}, value为{JyjcInspectionResult} ,适用于非首次检验之外的检验结果接收
Map
<
String
,
JyjcInspectionResult
>
superviseCodeKeyResultMap
=
getSuperviseCodeKeyResultMap
(
resultList
);
List
<
JyjcInspectionResult
>
updateResultList
=
new
ArrayList
<>();
List
<
JyjcInspectionResultAttachment
>
resultAttachments
=
new
ArrayList
<>();
List
<
JyjcInspectionResultParam
>
resultParams
=
new
ArrayList
<>();
resultDataModels
.
forEach
(
r
->
{
// 填充主表数据
this
.
fillResultData
(
r
,
resultListMap
.
get
(
r
.
getApplicationNo
()
+
":"
+
r
.
getSupervisoryCode
()));
// 填充附件数据
this
.
fillResultAttachmentData
(
r
,
resultListMap
.
get
(
r
.
getApplicationNo
()
+
":"
+
r
.
getSupervisoryCode
()),
resultAttachments
);
// 填充技术参数数据
this
.
fillResultParamData
(
r
,
resultListMap
.
get
(
r
.
getApplicationNo
()
+
":"
+
r
.
getSupervisoryCode
()),
resultParams
);
JyjcInspectionResult
result
=
this
.
getJyjcInspectionResult
(
r
,
recordResultMap
,
superviseCodeKeyResultMap
);
if
(
result
!=
null
)
{
// 填充主表数据
this
.
fillResultData
(
r
,
result
,
updateResultList
);
// 填充附件数据
this
.
fillResultAttachmentData
(
r
,
result
,
resultAttachments
);
// 填充技术参数数据
this
.
fillResultParamData
(
r
,
result
,
resultParams
);
}
});
// 2.批量保存主表数据
this
.
updateBatchById
(
resultListMap
.
values
());
// 3.批量保存子表数据
deleteAndCreateSubTable
(
resultListMap
,
resultAttachments
,
resultParams
);
// 4.异步更新最新一次检验信息
eventPublisher
.
publish
(
new
UseInfoSaveToDbEvent
(
this
,
new
ArrayList
<>(
resultListMap
.
values
())));
// 5.异步更新设备的检验检测信息
eventPublisher
.
publish
(
new
InspectionDetectionSaveToDbEvent
(
this
,
new
ArrayList
<>(
resultListMap
.
values
())));
// 3.数据入库
if
(!
updateResultList
.
isEmpty
()){
// 3.1 批量保存主表数据
this
.
updateBatchById
(
updateResultList
);
// 3.2 批量保存子表数据
deleteAndCreateSubTable
(
updateResultList
,
resultAttachments
,
resultParams
);
// 3.3 异步更新最新一次检验信息
eventPublisher
.
publish
(
new
UseInfoSaveToDbEvent
(
this
,
new
ArrayList
<>(
updateResultList
)));
// 4.4 异步更新设备的检验检测信息
eventPublisher
.
publish
(
new
InspectionDetectionSaveToDbEvent
(
this
,
new
ArrayList
<>(
updateResultList
)));
}
return
resultDataModels
;
}
private
void
deleteAndCreateSubTable
(
Map
<
String
,
JyjcInspectionResult
>
resultListMap
,
List
<
JyjcInspectionResultAttachment
>
resultAttachments
,
List
<
JyjcInspectionResultParam
>
resultParams
)
{
List
<
JyjcInspectionResult
>
resultList
=
new
ArrayList
<>(
resultListMap
.
values
());
private
void
checkMustFieldIsValid
(
List
<
JyjcInspectionResultDataModel
>
resultDataModels
)
{
int
i
=
0
;
for
(
JyjcInspectionResultDataModel
resultDataModel
:
resultDataModels
){
i
++;
if
(
StringUtils
.
isEmpty
(
resultDataModel
.
getEquipId
())
&&
StringUtils
.
isEmpty
(
resultDataModel
.
getSupervisoryCode
())){
throw
new
BadRequest
(
"第"
+
i
+
"条数据存在问题,supervisoryCode和equipId不能同时为空!"
);
}
}
}
private
JyjcInspectionResult
getJyjcInspectionResult
(
JyjcInspectionResultDataModel
resultDataModel
,
Map
<
String
,
JyjcInspectionResult
>
recordResultMap
,
Map
<
String
,
JyjcInspectionResult
>
superviseCodeKeyResultMap
){
if
(
StringUtils
.
isNotEmpty
(
resultDataModel
.
getEquipId
())){
return
recordResultMap
.
get
(
resultDataModel
.
getApplicationNo
()
+
":"
+
resultDataModel
.
getEquipId
());
}
if
(
StringUtils
.
isNotEmpty
(
resultDataModel
.
getSupervisoryCode
())){
return
superviseCodeKeyResultMap
.
get
(
resultDataModel
.
getApplicationNo
()
+
":"
+
resultDataModel
.
getSupervisoryCode
());
}
return
null
;
}
private
void
deleteAndCreateSubTable
(
List
<
JyjcInspectionResult
>
resultList
,
List
<
JyjcInspectionResultAttachment
>
resultAttachments
,
List
<
JyjcInspectionResultParam
>
resultParams
)
{
List
<
Long
>
resultIds
=
resultList
.
stream
().
map
(
BaseEntity:
:
getSequenceNbr
).
collect
(
Collectors
.
toList
());
if
(
resultAttachments
.
size
()
>
0
)
{
if
(
!
resultAttachments
.
isEmpty
()
)
{
attachmentService
.
remove
(
new
LambdaQueryWrapper
<
JyjcInspectionResultAttachment
>().
in
(
JyjcInspectionResultAttachment:
:
getResultSeq
,
resultIds
));
attachmentService
.
saveBatch
(
resultAttachments
);
}
if
(
resultParams
.
size
()
>
0
)
{
if
(
!
resultParams
.
isEmpty
()
)
{
resultParamService
.
remove
(
new
LambdaQueryWrapper
<
JyjcInspectionResultParam
>().
in
(
JyjcInspectionResultParam:
:
getResultSeq
,
resultIds
));
resultParamService
.
saveBatch
(
resultParams
);
}
...
...
@@ -486,7 +524,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
});
}
private
void
fillResultData
(
JyjcInspectionResultDataModel
r
,
JyjcInspectionResult
jyjcInspectionResult
)
{
private
void
fillResultData
(
JyjcInspectionResultDataModel
r
,
JyjcInspectionResult
jyjcInspectionResult
,
List
<
JyjcInspectionResult
>
updateResultList
)
{
jyjcInspectionResult
.
setResultStatus
(
ResultStatusEnum
.
YES_RESULT
.
getCode
());
jyjcInspectionResult
.
setLicenseNumber
(
r
.
getLicenseNumber
());
jyjcInspectionResult
.
setResultNo
(
r
.
getResultNo
());
...
...
@@ -501,6 +539,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
jyjcInspectionResult
.
setNonConformance
(
JSON
.
toJSONString
(
r
.
getNonConformance
()));
jyjcInspectionResult
.
setRemark
(
"同步数据"
);
jyjcInspectionResult
.
setTraceId
(
r
.
getTraceId
());
updateResultList
.
add
(
jyjcInspectionResult
);
}
private
String
getUserSeqByPersonCode
(
String
innerPersonCode
)
{
...
...
@@ -512,14 +551,19 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
return
""
;
}
private
Map
<
String
,
JyjcInspectionResult
>
queryWaitUpdateResultList
(
List
<
JyjcInspectionResultDataModel
>
resultDataModels
)
{
private
Map
<
String
,
JyjcInspectionResult
>
getSuperviseCodeKeyResultMap
(
List
<
JyjcInspectionResult
>
resultList
)
{
return
resultList
.
stream
().
filter
(
r
->
StringUtils
.
isNotEmpty
(
r
.
getSupervisoryCode
())).
collect
(
Collectors
.
toMap
((
c
)
->
c
.
getApplicationNo
()
+
":"
+
c
.
getSupervisoryCode
(),
Function
.
identity
()));
}
private
Map
<
String
,
JyjcInspectionResult
>
getRecordKeyResultMap
(
List
<
JyjcInspectionResult
>
resultList
)
{
return
resultList
.
stream
().
collect
(
Collectors
.
toMap
((
c
)
->
c
.
getApplicationNo
()
+
":"
+
c
.
getEquipUnicode
(),
Function
.
identity
()));
}
private
List
<
JyjcInspectionResult
>
queryResultList
(
List
<
JyjcInspectionResultDataModel
>
resultDataModels
)
{
List
<
String
>
applicationNos
=
resultDataModels
.
stream
().
map
(
JyjcInspectionResultDataModel:
:
getApplicationNo
).
collect
(
Collectors
.
toList
());
List
<
String
>
supervisoryCodes
=
resultDataModels
.
stream
().
map
(
JyjcInspectionResultDataModel:
:
getSupervisoryCode
).
collect
(
Collectors
.
toList
());
LambdaQueryWrapper
<
JyjcInspectionResult
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
in
(
JyjcInspectionResult:
:
getApplicationNo
,
applicationNos
);
wrapper
.
in
(
JyjcInspectionResult:
:
getSupervisoryCode
,
supervisoryCodes
);
List
<
JyjcInspectionResult
>
resultList
=
this
.
list
(
wrapper
);
return
resultList
.
stream
().
collect
(
Collectors
.
toMap
((
c
)
->
c
.
getApplicationNo
()
+
":"
+
c
.
getSupervisoryCode
(),
Function
.
identity
()));
return
this
.
list
(
wrapper
);
}
public
List
<
DictionarieModel
>
inspectTypeListByPerson
(
ReginParams
selectedOrgInfo
)
{
...
...
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