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
e1fb30cd
Commit
e1fb30cd
authored
Sep 24, 2025
by
tianbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(jg): 新增设备安全问题追溯处理逻辑
- 新增根据sourceId删除安全追溯问题的逻辑,标记为删除状态并记录删除原因 - 新增根据源id更新问题的逻辑,支持检测和维保信息变更时自动更新问题状态 - 新增设备安全问题刷新处理器,实现设备数据变更时的安全问题同步处理
parent
361213f1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
120 additions
and
0 deletions
+120
-0
EquipmentSafetyProblemRefreshHandler.java
...refresh/handler/EquipmentSafetyProblemRefreshHandler.java
+57
-0
SafetyProblemTracingServiceImpl.java
.../jg/biz/service/impl/SafetyProblemTracingServiceImpl.java
+63
-0
No files found.
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/refresh/handler/EquipmentSafetyProblemRefreshHandler.java
0 → 100644
View file @
e1fb30cd
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
refresh
.
handler
;
import
com.yeejoin.amos.boot.module.common.api.dao.EsEquipmentDao
;
import
com.yeejoin.amos.boot.module.common.api.entity.TzsDataRefreshMessage
;
import
com.yeejoin.amos.boot.module.common.api.service.IDataRefreshHandler
;
import
com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgInspectionDetectionInfoService
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgMaintenanceRecordInfoServiceImpl
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgUseInfoServiceImpl
;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.SafetyProblemTracingServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
@Component
@RequiredArgsConstructor
@Slf4j
public
class
EquipmentSafetyProblemRefreshHandler
implements
IDataRefreshHandler
{
private
final
IdxBizJgUseInfoServiceImpl
useInfoService
;
private
final
IIdxBizJgInspectionDetectionInfoService
iIdxBizJgInspectionDetectionInfoService
;
private
final
EsEquipmentDao
esEquipmentDao
;
private
final
IdxBizJgMaintenanceRecordInfoServiceImpl
maintenanceRecordInfoService
;
private
final
SafetyProblemTracingServiceImpl
safetyProblemTracingService
;
@Override
public
String
supportType
()
{
return
"equipment"
;
}
@Override
public
void
doRefresh
(
TzsDataRefreshMessage
message
)
{
log
.
info
(
"设备更新安全追溯问题开始,设备id:{}"
,
message
.
getDataId
());
String
record
=
message
.
getDataId
();
switch
(
DataRefreshEvent
.
Operation
.
valueOf
(
message
.
getOperation
()))
{
case
DELETE:
safetyProblemTracingService
.
deleteBySourceId
(
record
,
"问题源被删除"
);
break
;
case
INSERT:
case
UPDATE:
Map
<
String
,
Object
>
detail
=
useInfoService
.
getBaseMapper
().
queryDetail
(
record
);
if
(
detail
==
null
)
{
return
;
}
IdxBizJgInspectionDetectionInfo
inspectionDetectionInfo
=
iIdxBizJgInspectionDetectionInfoService
.
queryNewestDetailByRecord
(
record
);
IdxBizJgMaintenanceRecordInfo
lastMaintenanceRecordInfo
=
maintenanceRecordInfoService
.
queryNewestDetailByRecord
(
record
);
safetyProblemTracingService
.
updateBySourceId
(
record
,
detail
,
inspectionDetectionInfo
,
lastMaintenanceRecordInfo
);
break
;
default
:
log
.
error
(
"unknown operation: {}"
,
message
.
getOperation
());
}
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/SafetyProblemTracingServiceImpl.java
View file @
e1fb30cd
...
@@ -19,10 +19,13 @@ import com.yeejoin.amos.boot.module.jg.api.dto.SafetyProblemTracingDto;
...
@@ -19,10 +19,13 @@ import com.yeejoin.amos.boot.module.jg.api.dto.SafetyProblemTracingDto;
import
com.yeejoin.amos.boot.module.jg.api.entity.SafetyProblemTracing
;
import
com.yeejoin.amos.boot.module.jg.api.entity.SafetyProblemTracing
;
import
com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemSourceTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemSourceTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemStatusEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemStatusEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.SafetyProblemTracingMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.SafetyProblemTracingMapper
;
import
com.yeejoin.amos.boot.module.jg.api.service.ISafetyProblemTracingService
;
import
com.yeejoin.amos.boot.module.jg.api.service.ISafetyProblemTracingService
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo
;
import
org.apache.ibatis.session.SqlSession
;
import
org.apache.ibatis.session.SqlSession
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -232,4 +235,63 @@ public class SafetyProblemTracingServiceImpl extends BaseService<SafetyProblemTr
...
@@ -232,4 +235,63 @@ public class SafetyProblemTracingServiceImpl extends BaseService<SafetyProblemTr
public
Page
<
Map
<
String
,
Object
>>
queryUserListProblemById
(
Page
<
Map
<
String
,
Object
>>
page
,
String
problemId
)
{
public
Page
<
Map
<
String
,
Object
>>
queryUserListProblemById
(
Page
<
Map
<
String
,
Object
>>
page
,
String
problemId
)
{
return
this
.
baseMapper
.
queryUserListProblemById
(
page
,
problemId
);
return
this
.
baseMapper
.
queryUserListProblemById
(
page
,
problemId
);
}
}
/**
* 根据sourceId删除安全追溯问题
*
* @param sourceId 问题源id
* @param deleteReason
*/
@Transactional
public
void
deleteBySourceId
(
String
sourceId
,
String
deleteReason
)
{
List
<
SafetyProblemTracing
>
safetyProblemTracings
=
this
.
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
SafetyProblemTracing
>().
eq
(
SafetyProblemTracing:
:
getSourceId
,
sourceId
));
if
(!
ValidationUtil
.
isEmpty
(
safetyProblemTracings
))
{
List
<
SafetyProblemTracing
>
deleteList
=
Lists
.
newArrayList
();
safetyProblemTracings
.
forEach
(
item
->
{
// 设备问题标记为删除状态,删除原因为问题源被删除。但处理状态保留
item
.
setIsDelete
(
true
);
JSONObject
extraInfo
=
new
JSONObject
();
extraInfo
.
put
(
"deleteReason"
,
deleteReason
);
item
.
setExtraInfo
(
extraInfo
.
toJSONString
());
deleteList
.
add
(
item
);
});
this
.
saveBatch
(
deleteList
);
}
}
/**
* 根据源id更新问题
*
* @param record 问题源记录
* @param detail 问题源详情
* @param inspectionDetectionInfo 最新检测信息
* @param lastMaintenanceRecordInfo 最新维保信息
*/
@Transactional
public
void
updateBySourceId
(
String
record
,
Map
<
String
,
Object
>
detail
,
IdxBizJgInspectionDetectionInfo
inspectionDetectionInfo
,
IdxBizJgMaintenanceRecordInfo
lastMaintenanceRecordInfo
)
{
List
<
SafetyProblemTracing
>
safetyProblemTracings
=
this
.
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
SafetyProblemTracing
>()
.
eq
(
SafetyProblemTracing:
:
getSourceId
,
record
)
.
eq
(
SafetyProblemTracing:
:
getIsDelete
,
false
)
.
eq
(
SafetyProblemTracing:
:
getProblemStatusCode
,
SafetyProblemStatusEnum
.
UNHANDLED
.
getCode
()));
if
(!
ValidationUtil
.
isEmpty
(
safetyProblemTracings
))
{
safetyProblemTracings
.
forEach
(
item
->
{
// 一个设备某类未处理的问题只有一个,所以直接更新某个类型问题
if
(
item
.
getProblemTypeCode
().
equals
(
SafetyProblemTypeEnum
.
JYCQ
.
getProblemTypeCode
())
&&
inspectionDetectionInfo
!=
null
&&
new
Date
().
before
(
inspectionDetectionInfo
.
getNextInspectDate
()))
{
item
.
setProblemStatusCode
(
SafetyProblemStatusEnum
.
HANDLED
.
getCode
());
item
.
setProblemStatus
(
SafetyProblemStatusEnum
.
HANDLED
.
getName
());
}
if
(
item
.
getProblemTypeCode
().
equals
(
SafetyProblemTypeEnum
.
WBCQ
.
getProblemTypeCode
())
&&
lastMaintenanceRecordInfo
!=
null
&&
new
Date
().
before
(
lastMaintenanceRecordInfo
.
getInformEnd
()))
{
item
.
setProblemStatusCode
(
SafetyProblemStatusEnum
.
HANDLED
.
getCode
());
item
.
setProblemStatus
(
SafetyProblemStatusEnum
.
HANDLED
.
getName
());
}
});
this
.
saveOrUpdateBatch
(
safetyProblemTracings
);
}
}
}
}
\ No newline at end of file
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