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
19fa9295
Commit
19fa9295
authored
Jun 27, 2025
by
韩桐桐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
快捷筛选导出
parent
fb9abf4b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
420 additions
and
7 deletions
+420
-7
EquipInfoVo.java
...ejoin/amos/boot/module/statistics/api/vo/EquipInfoVo.java
+302
-0
ComprehensiveStatisticalAnalysisController.java
...ontroller/ComprehensiveStatisticalAnalysisController.java
+22
-0
ComprehensiveStatisticalAnalysisServiceImpl.java
...ice/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
+66
-7
MinioUtils.java
...join/amos/boot/module/statistcs/biz/utils/MinioUtils.java
+30
-0
No files found.
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-api/src/main/java/com/yeejoin/amos/boot/module/statistics/api/vo/EquipInfoVo.java
0 → 100644
View file @
19fa9295
package
com
.
yeejoin
.
amos
.
boot
.
module
.
statistics
.
api
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.yeejoin.amos.boot.module.jg.api.annotation.DictCode2DictName
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* 设备
*/
@Data
public
class
EquipInfoVo
{
@ExcelProperty
(
"管辖机构名称"
)
private
String
ORG_BRANCH_NAME
;
@ExcelProperty
(
"使用单位名称"
)
private
String
USE_UNIT_NAME
;
@ExcelProperty
(
"使用单位统一信用代码"
)
private
String
USE_UNIT_CREDIT_CODE
;
@ExcelProperty
(
"设备种类名称"
)
private
String
EQU_LIST
;
@ExcelProperty
(
"设备类别名称"
)
private
String
EQU_CATEGORY
;
@ExcelProperty
(
"设备品种名称"
)
private
String
EQU_DEFINE
;
@ExcelProperty
(
"使用登记证编号"
)
private
String
USE_ORG_CODE
;
@ExcelProperty
(
"96333电梯码"
)
private
String
CODE96333
;
@ExcelProperty
(
"设备代码"
)
private
String
EQU_CODE
;
@ExcelProperty
(
"监管码"
)
private
String
SUPERVISORY_CODE
;
@ExcelProperty
(
"使用场所"
)
private
String
USE_PLACE
;
@ExcelProperty
(
"详细地址"
)
private
String
ADDRESS
;
@ExcelProperty
(
"设备状态"
)
private
Integer
EQU_STATE
;
@ExcelProperty
(
"认领状态"
)
private
String
STATUS
;
@ExcelProperty
(
"安全管理员"
)
private
String
SAFETY_MANAGER
;
@ExcelProperty
(
"安全管理员电话"
)
private
String
PHONE
;
@ExcelProperty
(
"维保单位统一信用代码"
)
private
String
MAINTAIN_UNIT
;
@ExcelProperty
(
"维保单位名称"
)
private
String
MAINTAIN_UNIT_NAME
;
@ExcelProperty
(
"单位内部编号"
)
private
String
USE_INNER_CODE
;
@ExcelProperty
(
"出场编号"
)
private
String
FACTORY_NUM
;
@ExcelProperty
(
"制造单位名称"
)
private
String
PRODUCE_UNIT_NAME
;
@ExcelProperty
(
"安改维单位统一信用代码"
)
private
String
USC_UNIT_CREDIT_CODE
;
@ExcelProperty
(
"安改维单位统名称"
)
private
String
USC_UNIT_NAME
;
@ExcelProperty
(
"投用日期"
)
private
Date
USC_DATE
;
@ExcelProperty
(
"产品名称"
)
private
String
PRODUCT_NAME
;
@ExcelProperty
(
"设备品牌"
)
private
String
BRAND_NAME
;
@ExcelProperty
(
"设备型号"
)
private
String
EQU_TYPE
;
@ExcelProperty
(
"制造日期"
)
private
String
PRODUCE_DATE
;
@ExcelProperty
(
"设备来源"
)
private
String
DATA_SOURCE
;
@ExcelProperty
(
"是否车用气瓶"
)
private
String
WHETHER_VEHICLE_CYLINDER
;
@ExcelProperty
(
"是否撬装式压力容器"
)
private
String
WHETHER_SKID_MOUNTED_PRESSURE_VESSEL
;
@ExcelProperty
(
"气瓶分类"
)
private
String
CYLINDER_CATEGORY
;
@ExcelProperty
(
"是否纳管"
)
private
Boolean
IS_INTO_MANAGEMENT
;
@ExcelProperty
(
"工程装置"
)
private
String
PROJECT_CONTRAPTION
;
@ExcelProperty
(
"信息化"
)
private
String
INFORMATION_SITUATION
;
@ExcelProperty
(
"工程装置id"
)
private
String
projectContraptionId
;
@ExcelProperty
(
"数据质量等级"
)
private
Integer
dataQualityScore
;
@ExcelProperty
(
"设计单位统一信用代码"
)
private
String
designUnitCreditCode
;
@ExcelProperty
(
"设计单位名称"
)
private
String
designUnitName
;
@ExcelProperty
(
"制造单位统一社会信用代码"
)
private
String
produceUnitCreditCode
;
/**
* 最新一条检验信息
*/
@ExcelProperty
(
""
)
private
List
<
Inspection
>
inspections
;
/**
* 最新一条维保信息
*/
@ExcelProperty
(
""
)
private
List
<
Maintenance
>
maintenances
;
/**
* 技术参数
*/
@ExcelProperty
(
""
)
private
List
<
TechParam
>
techParams
;
@Data
public
static
class
TechParam
{
@ExcelProperty
(
""
)
private
String
paramKey
;
@ExcelProperty
(
""
)
private
String
paramLabel
;
@ExcelProperty
(
""
)
private
String
strValue
;
@ExcelProperty
(
""
)
private
Long
longValue
;
@ExcelProperty
(
""
)
private
Double
doubleValue
;
@ExcelProperty
(
""
)
private
Boolean
boolValue
;
@ExcelProperty
(
""
)
private
Date
dateValue
;
}
@Data
public
static
class
Inspection
{
@ExcelProperty
(
""
)
private
String
sequenceNbr
;
/**
* 检验类型
*/
@ExcelProperty
(
""
)
private
String
inspectType
;
/**
* 检验机构名称
*/
@ExcelProperty
(
""
)
private
String
inspectOrgName
;
/**
* 检验人员
*/
@ExcelProperty
(
""
)
private
String
inspectStaff
;
/**
* 检验结论
*/
@ExcelProperty
(
""
)
private
String
inspectConclusion
;
/**
* 检验日期
*/
@ExcelProperty
(
""
)
private
Date
inspectDate
;
/**
* 下次检验日期
*/
@ExcelProperty
(
""
)
private
Date
nextInspectDate
;
/**
* 检验机构编码
*/
@ExcelProperty
(
""
)
private
String
inspectOrgCode
;
/**
* 报告编号
*/
@ExcelProperty
(
""
)
private
String
inspectReportNo
;
}
@Data
public
static
class
Maintenance
{
@ExcelProperty
(
""
)
private
String
sequenceNbr
;
/**
* 维保单位统一社会信用代码
*/
@ExcelProperty
(
""
)
private
String
meUnitCreditCode
;
/**
* 维保单位名称
*/
@ExcelProperty
(
""
)
private
String
meUnitName
;
/**
* 维保备案合同
*/
@ExcelProperty
(
""
)
private
String
repairInform
;
/**
* 维保合同开始日期
*/
@ExcelProperty
(
""
)
private
Date
informStart
;
/**
* 维保合同结束日期
*/
@ExcelProperty
(
""
)
private
Date
informEnd
;
/**
* 维保负责人姓名
*/
@ExcelProperty
(
""
)
private
String
meMaster
;
/**
* 维保负责人身份证
*/
@ExcelProperty
(
""
)
private
String
meMasterId
;
/**
* 紧急救援电话
*/
@ExcelProperty
(
""
)
private
String
emergencyCall
;
/**
* 维保周期
*/
@ExcelProperty
(
""
)
private
String
meCycle
;
/**
* 大修周期
*/
@ExcelProperty
(
""
)
private
String
overhaulCycle
;
/**
* 24小时维保电话
*/
@ExcelProperty
(
""
)
private
String
me24Telephone
;
}
}
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/controller/ComprehensiveStatisticalAnalysisController.java
View file @
19fa9295
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.statistcs.biz.controller;
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.utils.RequestContextWrapper
;
import
com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ComprehensiveStatisticalAnalysisServiceImpl
;
import
com.yeejoin.amos.boot.module.statistcs.biz.service.impl.ComprehensiveStatisticalAnalysisServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -15,6 +16,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
...
@@ -15,6 +16,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.UUID
;
/**
/**
* 综合统计分析API
* 综合统计分析API
...
@@ -80,5 +82,25 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
...
@@ -80,5 +82,25 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
return
ResponseHelper
.
buildResponse
(
statisticalAnalysisService
.
queryForPage
(
jsonObject
));
return
ResponseHelper
.
buildResponse
(
statisticalAnalysisService
.
queryForPage
(
jsonObject
));
}
}
/**
* 综合统计分析接口-导出
*
* @param map 入参
* @return result
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/export"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"综合统计分析接口-导出"
,
notes
=
"综合统计分析接口-导出"
)
public
ResponseModel
<
String
>
export
(
@RequestBody
Map
<
String
,
Object
>
map
)
{
String
uuid
=
UUID
.
randomUUID
().
toString
();
statisticalAnalysisService
.
startDownLoadMsg
(
"综合统计分析设备列表"
,
uuid
);
RequestContextWrapper
contextWrapper
=
RequestContextWrapper
.
capture
();
new
Thread
(()
->
{
contextWrapper
.
apply
();
statisticalAnalysisService
.
export
(
uuid
,
new
JSONObject
(
map
));
}).
start
();
return
ResponseHelper
.
buildResponse
(
"后台处理中,请注意下载!"
);
}
}
}
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
View file @
19fa9295
package
com
.
yeejoin
.
amos
.
boot
.
module
.
statistcs
.
biz
.
service
.
impl
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
statistcs
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.annotation.TechnicalParameter
;
import
com.yeejoin.amos.boot.biz.common.annotation.TechnicalParameter
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.excel.ExcelUtil
;
import
com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl
;
import
com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl
;
import
com.yeejoin.amos.boot.module.common.api.dto.TechParamItem
;
import
com.yeejoin.amos.boot.module.common.api.dto.TechParamItem
;
import
com.yeejoin.amos.boot.module.common.biz.utils.TechParamUtil
;
import
com.yeejoin.amos.boot.module.common.biz.utils.TechParamUtil
;
import
com.yeejoin.amos.boot.module.statistcs.biz.utils.JsonUtils
;
import
com.yeejoin.amos.boot.module.statistcs.biz.utils.JsonUtils
;
import
com.yeejoin.amos.boot.module.statistcs.biz.utils.MinioUtils
;
import
com.yeejoin.amos.boot.module.statistics.api.enums.AdvanceSearchEnum
;
import
com.yeejoin.amos.boot.module.statistics.api.enums.AdvanceSearchEnum
;
import
com.yeejoin.amos.boot.module.statistics.api.enums.ConditionEnum
;
import
com.yeejoin.amos.boot.module.statistics.api.enums.ConditionEnum
;
import
com.yeejoin.amos.boot.module.statistics.api.enums.StatisticalAnalysisEnum
;
import
com.yeejoin.amos.boot.module.statistics.api.enums.StatisticalAnalysisEnum
;
import
com.yeejoin.amos.boot.module.statistics.api.mapper.TzsCustomFilterMapper
;
import
com.yeejoin.amos.boot.module.statistics.api.mapper.TzsCustomFilterMapper
;
import
com.yeejoin.amos.boot.module.statistics.api.vo.EquipInfoVo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -31,9 +35,13 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -31,9 +35,13 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.nio.charset.StandardCharsets
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
...
@@ -53,14 +61,14 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -53,14 +61,14 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
@Value
(
"classpath:/json/equipCategory.json"
)
@Value
(
"classpath:/json/equipCategory.json"
)
private
Resource
equipCategory
;
private
Resource
equipCategory
;
private
final
TzsCustomFilterMapper
tzsCustomFilterMapper
;
@Autowired
private
final
DataDictionaryServiceImpl
dataDictionaryService
;
private
TzsCustomFilterMapper
tzsCustomFilterMapper
;
private
final
EmqKeeper
emqKeeper
;
@Autowired
private
DataDictionaryServiceImpl
dataDictionaryService
;
private
final
RestHighLevelClient
restHighLevelClient
;
private
final
RestHighLevelClient
restHighLevelClient
;
private
final
String
DOWN_LOAD_START_TEMP
=
"{\"id\":\"%s\",\"status\":\"starting\",\"fileName\":\"%s\",\"time\":\"%s\"}"
;
private
final
String
DOWNLOAD_TOPIC
=
"/topic/download/excel/%s"
;
private
final
String
BUCKET_NAME
=
"upload"
;
private
final
String
UPLOAD_PATH
=
"/tzs/excelTempFile"
;
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
public
List
<
Map
<
String
,
Object
>>
queryEquipmentCategory
(
String
key
)
{
public
List
<
Map
<
String
,
Object
>>
queryEquipmentCategory
(
String
key
)
{
...
@@ -393,4 +401,54 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
...
@@ -393,4 +401,54 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
return
result
;
return
result
;
}
}
/**
* 开始下载 发送消息
*/
public
void
startDownLoadMsg
(
String
fileName
,
String
uuid
)
{
try
{
emqKeeper
.
getMqttClient
().
publish
(
String
.
format
(
DOWNLOAD_TOPIC
,
RequestContext
.
getToken
()),
String
.
format
(
DOWN_LOAD_START_TEMP
,
uuid
,
fileName
,
new
Date
().
getTime
()).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
}
/**
* 发送主题消息,给企业推送excel 结束下载提醒
*
* @param topic 主体格式为: /download/excel/${token}
* @param jsonObject 文件名称 + excel文件路径(minio)
*/
public
void
sendDownLoadExcelMsg
(
String
topic
,
JSONObject
jsonObject
)
{
try
{
emqKeeper
.
getMqttClient
().
publish
(
topic
,
JSONObject
.
toJSONString
(
jsonObject
).
getBytes
(
StandardCharsets
.
UTF_8
),
2
,
false
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
}
/**
* 综合统计分析接口-导出
* @param uuid uuid
* @param filter 过滤条件
*/
public
void
export
(
String
uuid
,
JSONObject
filter
)
{
// 查询数据
JSONObject
jsonData
=
this
.
queryForPage
(
filter
);
// 类型转化
List
<
EquipInfoVo
>
exportData
=
JSONArray
.
parseArray
(
JSON
.
toJSONString
(
jsonData
.
get
(
"pageData"
)),
EquipInfoVo
.
class
);
// 转化附件
MultipartFile
templateExcelFile
=
ExcelUtil
.
createTemplateExcelFile
(
"综合统计分析设备列表数据"
,
"综合统计分析设备列表"
,
exportData
,
EquipInfoVo
.
class
,
null
,
false
);
// 上传minio服务器
String
urlString
=
MinioUtils
.
uploadExcelFile
(
templateExcelFile
,
BUCKET_NAME
,
UPLOAD_PATH
);
// 提醒下载
this
.
sendDownLoadExcelMsg
(
String
.
format
(
DOWNLOAD_TOPIC
,
RequestContext
.
getToken
()),
new
JSONObject
()
.
fluentPut
(
"id"
,
uuid
)
.
fluentPut
(
"status"
,
"done"
)
.
fluentPut
(
"fileName"
,
"综合统计分析设备列表"
)
.
fluentPut
(
"url"
,
urlString
)
.
fluentPut
(
"time"
,
new
Date
().
getTime
()));
}
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/utils/MinioUtils.java
0 → 100644
View file @
19fa9295
package
com
.
yeejoin
.
amos
.
boot
.
module
.
statistcs
.
biz
.
utils
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.Map
;
public
class
MinioUtils
{
/**
* 上传excel文件到minio服务器
*
* @param templateExcelFile 文件
* @param bucketName 存储桶名称
* @param bucketName 文件名称
* @return minio文件路径
*/
public
static
String
uploadExcelFile
(
MultipartFile
templateExcelFile
,
String
bucketName
,
String
uploadPath
)
{
FeignClientResult
<
Map
<
String
,
String
>>
uploadResult
=
Systemctl
.
fileStorageClient
.
updateBucketFile
(
templateExcelFile
,
bucketName
,
uploadPath
);
String
urlString
=
""
;
if
(
uploadResult
!=
null
&&
uploadResult
.
getResult
()
!=
null
)
{
for
(
String
s
:
uploadResult
.
getResult
().
keySet
())
{
urlString
=
s
;
}
}
return
urlString
;
}
}
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