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
18f30968
Commit
18f30968
authored
Feb 02, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.报检信息推送草稿
parent
0a1ed137
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
344 additions
and
0 deletions
+344
-0
InspectionApplicationPushData.java
.../module/jyjc/api/model/InspectionApplicationPushData.java
+61
-0
InspectionEquipData.java
.../amos/boot/module/jyjc/api/model/InspectionEquipData.java
+46
-0
InspectionApplicationPushEvent.java
...module/jyjc/biz/event/InspectionApplicationPushEvent.java
+25
-0
InspectionApplicationPushEventListener.java
...vent/listener/InspectionApplicationPushEventListener.java
+212
-0
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/InspectionApplicationPushData.java
0 → 100644
View file @
18f30968
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author Administrator
*/
@ApiModel
(
value
=
"检验检测申请信息推送数据"
)
@Data
public
class
InspectionApplicationPushData
implements
Serializable
{
@ApiModelProperty
(
value
=
"报检单号"
)
private
String
applicationNo
;
@ApiModelProperty
(
value
=
"申请日期"
)
private
Date
applicationDate
;
@ApiModelProperty
(
value
=
"报检单位编号"
)
private
String
applicationUnitCode
;
@ApiModelProperty
(
value
=
"报检单位名称"
)
private
String
applicationUnitName
;
@ApiModelProperty
(
value
=
"报检单位地址"
)
private
String
applicationUnitAddress
;
@ApiModelProperty
(
value
=
"报检单位联系人"
)
private
String
applicationContactName
;
@ApiModelProperty
(
value
=
"申请联系人电话"
)
private
String
applicationContactPhone
;
@ApiModelProperty
(
value
=
"内部人员代码"
)
private
String
innerPersonCode
;
@ApiModelProperty
(
value
=
"检验检测类型"
)
private
String
inspectionType
;
@ApiModelProperty
(
value
=
"检验检测类别"
)
private
String
inspectionClassify
;
@ApiModelProperty
(
value
=
"监管单位名称"
)
private
String
superviseOrgName
;
@ApiModelProperty
(
value
=
"检验检测单位编码"
)
private
String
inspectionUnitCode
;
@ApiModelProperty
(
value
=
"检验检测单位名称"
)
private
String
inspectionUnitName
;
private
List
<
InspectionEquipData
>
inspectionEquips
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/model/InspectionEquipData.java
0 → 100644
View file @
18f30968
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Map
;
/**
* @author Administrator
*/
@Data
@ApiModel
(
value
=
"检验检测申请信息推送数据-设备信息"
)
public
class
InspectionEquipData
{
@ApiModelProperty
(
value
=
"监管码"
)
private
String
supervisoryCode
;
@ApiModelProperty
(
value
=
"设备名称"
)
private
String
equName
;
@ApiModelProperty
(
value
=
"设备种类"
)
private
String
equList
;
@ApiModelProperty
(
value
=
"设备类别"
)
private
String
equCategory
;
@ApiModelProperty
(
value
=
"设备品种"
)
private
String
equDefine
;
@ApiModelProperty
(
value
=
"注册代码"
)
private
String
equCode
;
@ApiModelProperty
(
value
=
"使用/施工地址"
)
private
String
address
;
@ApiModelProperty
(
value
=
"施工单位信用代码"
)
private
String
uscUnitCreditCode
;
@ApiModelProperty
(
value
=
"施工单位名称"
)
private
String
uscUnitCreditName
;
@ApiModelProperty
(
value
=
"技术参数"
)
private
Map
<
String
,
Object
>
techParams
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/event/InspectionApplicationPushEvent.java
0 → 100644
View file @
18f30968
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
event
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationModel
;
import
lombok.Getter
;
import
org.springframework.context.ApplicationEvent
;
/**
* @author Administrator
*/
@Getter
public
class
InspectionApplicationPushEvent
extends
ApplicationEvent
{
private
JyjcInspectionApplicationModel
jyjcInspectionApplicationModel
;
/**
* Create a new {@code ApplicationEvent}.
*
* @param source the object on which the event initially occurred or with
* which the event is associated (never {@code null})
*/
public
InspectionApplicationPushEvent
(
Object
source
,
JyjcInspectionApplicationModel
jyjcInspectionApplicationModel
)
{
super
(
source
);
this
.
jyjcInspectionApplicationModel
=
jyjcInspectionApplicationModel
;
}
}
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
0 → 100644
View file @
18f30968
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
event
.
listener
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationPushLog
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.EquipCategoryEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.InspectionApplicationPushData
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.InspectionEquipData
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationModel
;
import
com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionApplicationPushEvent
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationEquipServiceImpl
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationPushLogServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgConstructionInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.stream.Collectors
;
/**
* @author Administrator
*/
@Component
@Slf4j
public
class
InspectionApplicationPushEventListener
implements
ApplicationListener
<
InspectionApplicationPushEvent
>
{
private
BlockingQueue
<
JyjcInspectionApplicationModel
>
queue
=
new
LinkedBlockingQueue
<>();
@Value
(
"${inspection.push.max.deal.thread.num: 2}"
)
private
int
threadNum
;
@Autowired
JyjcInspectionApplicationPushLogServiceImpl
pushLogService
;
@Autowired
JyjcInspectionApplicationEquipServiceImpl
applicationEquipService
;
@Autowired
IdxBizJgConstructionInfoMapper
constructionInfoMapper
;
@Autowired
IdxBizJgUseInfoMapper
useInfoMapper
;
@Autowired
TzBaseEnterpriseInfoMapper
baseEnterpriseInfoMapper
;
@Autowired
private
EquipTechParamBoilerMapper
equipTechParamBoilerMapper
;
@Autowired
private
EquipTechParamVesselMapper
equipTechParamVesselMapper
;
@Autowired
private
EquipTechParamElevatorMapper
equipTechParamElevatorMapper
;
@Autowired
private
EquipTechParamLiftingMapper
equipTechParamLiftingMapper
;
@Autowired
private
EquipTechParamVehicleMapper
equipTechParamVehicleMapper
;
@Autowired
private
EquipTechParamRidesMapper
equipTechParamRidesMapper
;
@Autowired
private
EquipTechParamPipelineMapper
equipTechParamPipelineMapper
;
@Autowired
private
EquipTechParamRopewayMapper
equipTechParamRopewayMapper
;
@Override
public
void
onApplicationEvent
(
InspectionApplicationPushEvent
event
)
{
log
.
info
(
"收到报检推送请求:{}"
,
event
);
queue
.
add
(
event
.
getJyjcInspectionApplicationModel
());
}
@PostConstruct
public
void
init
()
{
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
threadNum
);
for
(
int
i
=
0
;
i
<
threadNum
;
i
++)
{
executorService
.
execute
(()
->
{
while
(
true
)
{
try
{
JyjcInspectionApplicationModel
applicationModel
=
queue
.
take
();
//构建数据
JyjcInspectionApplicationPushLog
pushLog
=
this
.
createPushData
(
applicationModel
);
// 发送数据
this
.
pushData2Kafka
(
pushLog
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
});
}
}
private
void
pushData2Kafka
(
JyjcInspectionApplicationPushLog
pushLog
)
{
// 发送kafka指定的主题
}
private
JyjcInspectionApplicationPushLog
createPushData
(
JyjcInspectionApplicationModel
applicationModel
)
{
JyjcInspectionApplicationPushLog
pushLog
=
new
JyjcInspectionApplicationPushLog
();
pushLog
.
setInspectionUnitCode
(
applicationModel
.
getInspectionUnitCode
());
pushLog
.
setApplicationSeq
(
applicationModel
.
getSequenceNbr
());
// 初始状态
pushLog
.
setPushStatus
(
"1"
);
pushLog
.
setPushData
(
this
.
buildData
(
applicationModel
));
pushLog
.
setRecDate
(
new
Date
());
pushLogService
.
save
(
pushLog
);
return
pushLog
;
}
private
String
buildData
(
JyjcInspectionApplicationModel
applicationModel
)
{
InspectionApplicationPushData
pushData
=
new
InspectionApplicationPushData
();
BeanUtil
.
copyProperties
(
applicationModel
,
pushData
);
// 监管机构
pushData
.
setSuperviseOrgName
(
this
.
getSuperviseNameByCode
(
applicationModel
.
getApplicationUnitCode
()));
// 报检的设备信息
pushData
.
setInspectionEquips
(
this
.
buildInspectionEquipInfo
(
applicationModel
.
getSequenceNbr
()));
return
JSONObject
.
toJSONString
(
pushData
);
}
private
List
<
InspectionEquipData
>
buildInspectionEquipInfo
(
Long
sequenceNbr
)
{
List
<
JyjcInspectionApplicationEquip
>
jyjcInspectionApplicationEquips
=
applicationEquipService
.
list
(
new
LambdaQueryWrapper
<
JyjcInspectionApplicationEquip
>().
eq
(
JyjcInspectionApplicationEquip:
:
getApplicationSeq
,
sequenceNbr
));
return
jyjcInspectionApplicationEquips
.
stream
().
map
(
e
->
{
InspectionEquipData
equipData
=
new
InspectionEquipData
();
BeanUtil
.
copyProperties
(
e
,
equipData
);
equipData
.
setAddress
(
this
.
getAddressByRecord
(
e
.
getEquipUnicode
()));
this
.
setUscUnitInfo
(
equipData
,
e
.
getEquipUnicode
());
this
.
setTechParams
(
equipData
,
e
.
getEquipUnicode
());
return
equipData
;
}).
collect
(
Collectors
.
toList
());
}
private
void
setTechParams
(
InspectionEquipData
equipData
,
String
equipUnicode
)
{
// 按照设备类型查询不同的技术参数表
equipData
.
setTechParams
(
this
.
populateEquipInfoWithTechParams
(
equipData
.
getEquList
(),
equipUnicode
));
}
private
Map
<
String
,
Object
>
populateEquipInfoWithTechParams
(
String
equList
,
String
record
)
{
EquipCategoryEnum
productType
=
EquipCategoryEnum
.
of
(
Integer
.
parseInt
(
equList
));
switch
(
Objects
.
requireNonNull
(
productType
))
{
case
IDX_BIZ_JG_TECH_PARAMS_BOILER:
return
BeanUtil
.
beanToMap
(
equipTechParamBoilerMapper
.
getBoilerByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_VESSEL:
return
BeanUtil
.
beanToMap
(
equipTechParamVesselMapper
.
getVesselByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_ELEVATOR:
return
BeanUtil
.
beanToMap
(
equipTechParamElevatorMapper
.
getElevatorByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_LIFTING:
return
BeanUtil
.
beanToMap
(
equipTechParamLiftingMapper
.
getLiftingByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_VEHICLE:
return
BeanUtil
.
beanToMap
(
equipTechParamVehicleMapper
.
getVehicleByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_RIDES:
return
BeanUtil
.
beanToMap
(
equipTechParamRidesMapper
.
getRidesByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_PIPELINE:
return
BeanUtil
.
beanToMap
(
equipTechParamPipelineMapper
.
getPipelineByDefaultValue
(
record
));
case
IDX_BIZ_JG_TECH_PARAMS_ROPEWAY:
return
BeanUtil
.
beanToMap
(
equipTechParamRopewayMapper
.
getRopewayByDefaultValue
(
record
));
default
:
break
;
}
return
null
;
}
private
String
getAddressByRecord
(
String
equipUnicode
)
{
IdxBizJgUseInfo
idxBizJgUseInfo
=
useInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
IdxBizJgUseInfo
>().
eq
(
IdxBizJgUseInfo:
:
getRecord
,
equipUnicode
));
return
null2Blank
(
idxBizJgUseInfo
.
getProvinceName
())
+
null2Blank
(
idxBizJgUseInfo
.
getCityName
())
+
null2Blank
(
idxBizJgUseInfo
.
getCountyName
())
+
null2Blank
(
idxBizJgUseInfo
.
getAddress
());
}
private
String
null2Blank
(
String
str
)
{
return
StrUtil
.
isNotEmpty
(
str
)
?
str
:
""
;
}
private
void
setUscUnitInfo
(
InspectionEquipData
equipData
,
String
equipUnicode
)
{
LambdaQueryWrapper
<
IdxBizJgConstructionInfo
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
IdxBizJgConstructionInfo:
:
getRecord
,
equipUnicode
);
wrapper
.
orderByDesc
(
TzsBaseEntity:
:
getRecDate
);
wrapper
.
last
(
"limit 1"
);
IdxBizJgConstructionInfo
jgConstructionInfo
=
constructionInfoMapper
.
selectOne
(
wrapper
);
if
(
jgConstructionInfo
!=
null
)
{
equipData
.
setUscUnitCreditCode
(
jgConstructionInfo
.
getUscUnitCreditCode
());
equipData
.
setUscUnitCreditName
(
jgConstructionInfo
.
getUscUnitName
());
}
}
private
String
getSuperviseNameByCode
(
String
applicationUnitCode
)
{
//查询监管单位名称
TzBaseEnterpriseInfo
tzBaseEnterpriseInfo
=
baseEnterpriseInfoMapper
.
selectOne
(
new
LambdaQueryWrapper
<
TzBaseEnterpriseInfo
>().
eq
(
TzBaseEnterpriseInfo:
:
getUseCode
,
applicationUnitCode
));
return
tzBaseEnterpriseInfo
.
getSuperviseOrgName
();
}
}
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