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
624f6ff8
Commit
624f6ff8
authored
Jul 24, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.大屏-安全追溯-设备大屏-安全追溯-同设备近30天按问题次数滚动
parent
82b8a984
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
217 additions
and
1 deletion
+217
-1
EquipQuestionNumCountDto.java
...oot/module/cylinder/api/dto/EquipQuestionNumCountDto.java
+31
-0
EquipmentClassifityEnum.java
...ot/module/cylinder/api/enums/EquipmentClassifityEnum.java
+9
-0
DPStatisticsMapper.java
...s/boot/module/cylinder/api/mapper/DPStatisticsMapper.java
+4
-0
DPStatisticsMapper.xml
...nder-api/src/main/resources/mapper/DPStatisticsMapper.xml
+49
-0
CylinderStatisticsController.java
...nder/flc/biz/controller/CylinderStatisticsController.java
+20
-1
DPStatisticsServiceImpl.java
...ylinder/flc/biz/service/impl/DPStatisticsServiceImpl.java
+104
-0
No files found.
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/api/dto/EquipQuestionNumCountDto.java
0 → 100644
View file @
624f6ff8
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
api
.
dto
;
import
lombok.Data
;
/**
* @author Administrator
*/
@Data
public
class
EquipQuestionNumCountDto
{
/**
* 设备id
*/
private
String
sourceId
;
private
String
useOrgCode
;
private
String
supervisoryCode
;
private
String
useUnitName
;
private
String
cityName
;
private
String
equList
;
private
Long
total
;
private
Long
finished
;
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/api/enums/EquipmentClassifityEnum.java
View file @
624f6ff8
...
@@ -38,4 +38,13 @@ public enum EquipmentClassifityEnum {
...
@@ -38,4 +38,13 @@ public enum EquipmentClassifityEnum {
}
}
}
}
public
static
String
getNameByCode
(
String
code
){
for
(
EquipmentClassifityEnum
value
:
EquipmentClassifityEnum
.
values
())
{
if
(
value
.
getCode
().
equals
(
code
)){
return
value
.
getName
();
}
}
return
""
;
}
}
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/api/mapper/DPStatisticsMapper.java
View file @
624f6ff8
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
api
.
mapper
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
api
.
mapper
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto
;
import
com.yeejoin.amos.boot.module.cylinder.api.dto.EquipQuestionNumCountDto
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -31,4 +33,6 @@ public interface DPStatisticsMapper {
...
@@ -31,4 +33,6 @@ public interface DPStatisticsMapper {
List
<
Map
<
String
,
Object
>>
issueProblemLevelCount
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"time"
)
String
time
);
List
<
Map
<
String
,
Object
>>
issueProblemLevelCount
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"time"
)
String
time
);
List
<
Map
<
String
,
Object
>>
issueCompanyTop
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"time"
)
String
time
);
List
<
Map
<
String
,
Object
>>
issueCompanyTop
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"time"
)
String
time
);
List
<
EquipQuestionNumCountDto
>
queryEquipQuestionList
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"dto"
)
DPFilterParamDto
dpFilterParamDto
);
}
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/resources/mapper/DPStatisticsMapper.xml
View file @
624f6ff8
...
@@ -149,6 +149,55 @@
...
@@ -149,6 +149,55 @@
COUNT DESC
COUNT DESC
LIMIT 10
LIMIT 10
</select>
</select>
<select
id=
"queryEquipQuestionList"
resultType=
"com.yeejoin.amos.boot.module.cylinder.api.dto.EquipQuestionNumCountDto"
>
select
bb."USE_ORG_CODE",
cc."SUPERVISORY_CODE",
dd."USE_UNIT_NAME",
aa.finished,
aa.source_id,
aa.total,
dd."CITY_NAME",
bb."EQU_LIST"
from
(
select
a.total,
a.source_id,
ifnull(b.total,0) as finished
from
(
SELECT
count(1) as total,
source_id
FROM
"tzs_safety_problem_tracing"
WHERE
source_type_code = '3'
and governing_body_org_code like concat(#{orgCode}, '%')
and cast(problem_time AS DATE) between #{dto.beginDate} and #{dto.endDate}
GROUP BY source_id ORDER BY total desc) a
left join (
SELECT
count(1) as total,
source_id
FROM
"tzs_safety_problem_tracing"
WHERE
source_type_code = '3'
and problem_status_code ='1'
and governing_body_org_code like concat(#{orgCode}, '%')
and cast(problem_time AS DATE) between #{dto.beginDate} and #{dto.endDate}
GROUP BY source_id ORDER BY total desc) b on a.source_id = b.source_id
) aa,
idx_biz_jg_register_info bb,
idx_biz_jg_other_info cc,
idx_biz_jg_use_info dd
where
aa.source_id=bb."RECORD"
and aa.source_id=cc."RECORD"
and aa.source_id=dd."RECORD"
</select>
</mapper>
</mapper>
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/biz/controller/CylinderStatisticsController.java
View file @
624f6ff8
...
@@ -4,15 +4,21 @@ package com.yeejoin.amos.boot.module.cylinder.flc.biz.controller;
...
@@ -4,15 +4,21 @@ package com.yeejoin.amos.boot.module.cylinder.flc.biz.controller;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto
;
import
com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderFillingMessageModel
;
import
com.yeejoin.amos.boot.module.cylinder.api.dto.CylinderFillingMessageModel
;
import
com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.CylinderAreaDataServiceImpl
;
import
com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.CylinderAreaDataServiceImpl
;
import
com.yeejoin.amos.boot.module.cylinder.flc.biz.service.impl.DPStatisticsServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.FieldError
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
...
@@ -26,6 +32,8 @@ public class CylinderStatisticsController {
...
@@ -26,6 +32,8 @@ public class CylinderStatisticsController {
@Autowired
@Autowired
private
CylinderAreaDataServiceImpl
service
;
private
CylinderAreaDataServiceImpl
service
;
@Autowired
private
DPStatisticsServiceImpl
statisticsService
;
/**
/**
* 预警预报统计
* 预警预报统计
...
@@ -217,5 +225,16 @@ public class CylinderStatisticsController {
...
@@ -217,5 +225,16 @@ public class CylinderStatisticsController {
}
}
List
<
Map
<
String
,
Object
>>
result
=
service
.
issueCompanyTop
(
regionCode
.
toString
());
List
<
Map
<
String
,
Object
>>
result
=
service
.
issueCompanyTop
(
regionCode
.
toString
());
return
ResponseHelper
.
buildResponse
(
result
);
return
ResponseHelper
.
buildResponse
(
result
);
};
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"大屏-安全追溯-同设备近30天按问题次数滚动"
,
notes
=
"大屏-安全追溯-同设备近30天按问题次数滚动"
)
@PostMapping
(
value
=
"/aqzs/equip-question/list"
)
public
ResponseModel
<
List
<
Map
<
String
,
Object
>>>
getEquipQuestionList
(
@Validated
@RequestBody
DPFilterParamDto
dpFilterParamDto
,
BindingResult
result
)
{
List
<
FieldError
>
fieldErrors
=
result
.
getFieldErrors
();
if
(!
fieldErrors
.
isEmpty
())
{
throw
new
BadRequest
(
fieldErrors
.
get
(
0
).
getDefaultMessage
());
}
return
ResponseHelper
.
buildResponse
(
statisticsService
.
getEquipQuestionList
(
dpFilterParamDto
));
}
}
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/biz/service/impl/DPStatisticsServiceImpl.java
0 → 100644
View file @
624f6ff8
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
flc
.
biz
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto
;
import
com.yeejoin.amos.boot.module.cylinder.api.dto.EquipQuestionNumCountDto
;
import
com.yeejoin.amos.boot.module.cylinder.api.enums.EquipmentClassifityEnum
;
import
com.yeejoin.amos.boot.module.cylinder.api.mapper.DPStatisticsMapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.text.NumberFormat
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.stream.Collectors
;
@Service
public
class
DPStatisticsServiceImpl
{
private
static
Map
<
String
,
String
>
regionCodeOrgCodeMap
=
new
ConcurrentHashMap
<>();
private
DPStatisticsMapper
statisticsMapper
;
public
DPStatisticsServiceImpl
(
DPStatisticsMapper
statisticsMapper
)
{
this
.
statisticsMapper
=
statisticsMapper
;
}
public
List
<
Map
<
String
,
Object
>>
getEquipQuestionList
(
DPFilterParamDto
dpFilterParamDto
)
{
this
.
setDefaultFilter
(
dpFilterParamDto
);
String
orgCode
=
this
.
getAndSetOrgCode
(
dpFilterParamDto
.
getCityCode
());
List
<
EquipQuestionNumCountDto
>
equipQuestionNumCountDtos
=
statisticsMapper
.
queryEquipQuestionList
(
orgCode
,
dpFilterParamDto
);
return
this
.
calPercentFinishedAndCast2Map
(
equipQuestionNumCountDtos
);
}
private
List
<
Map
<
String
,
Object
>>
calPercentFinishedAndCast2Map
(
List
<
EquipQuestionNumCountDto
>
equipQuestionNumCountDtos
)
{
return
equipQuestionNumCountDtos
.
stream
().
map
(
e
->
{
Map
<
String
,
Object
>
item
=
new
HashMap
<>();
// 设备id
item
.
put
(
"key"
,
e
.
getSourceId
());
// 区域名称
item
.
put
(
"regionName"
,
e
.
getCityName
());
// 设备种类
item
.
put
(
"deviceCategoryName"
,
EquipmentClassifityEnum
.
getNameByCode
(
e
.
getEquList
()));
// 监管码/使用登记证编号
item
.
put
(
"code"
,
this
.
buildCodeWithSplit
(
e
.
getSupervisoryCode
(),
e
.
getUseOrgCode
()));
// 使用单位
item
.
put
(
"useUnitName"
,
e
.
getUseUnitName
());
// 问题次数
item
.
put
(
"issuesNumber"
,
e
.
getTotal
());
// 闭环率
item
.
put
(
"closedLoopRate"
,
this
.
calClosedLoopRate
(
e
.
getTotal
(),
e
.
getFinished
()));
return
item
;
}).
collect
(
Collectors
.
toList
());
}
private
String
calClosedLoopRate
(
Long
total
,
Long
finished
)
{
if
(
total
==
0
)
{
return
"0"
;
}
BigDecimal
totalBig
=
new
BigDecimal
(
total
.
toString
());
BigDecimal
finishedBig
=
new
BigDecimal
(
finished
.
toString
());
BigDecimal
result
=
finishedBig
.
divide
(
totalBig
,
2
,
RoundingMode
.
HALF_UP
);
NumberFormat
nt
=
NumberFormat
.
getPercentInstance
();
nt
.
setMinimumFractionDigits
(
0
);
return
nt
.
format
(
result
);
}
private
String
buildCodeWithSplit
(
String
supervisoryCode
,
String
useOrgCode
)
{
if
(
StringUtils
.
isNotEmpty
(
supervisoryCode
)
&&
StringUtils
.
isNotEmpty
(
useOrgCode
))
{
return
String
.
format
(
"%s/%s"
,
supervisoryCode
,
useOrgCode
);
}
if
(
StringUtils
.
isNotEmpty
(
supervisoryCode
))
{
return
supervisoryCode
;
}
if
(
StringUtils
.
isNotEmpty
(
useOrgCode
))
{
return
useOrgCode
;
}
return
""
;
}
private
void
setDefaultFilter
(
DPFilterParamDto
dpFilterParamDto
)
{
if
(
StringUtils
.
isEmpty
(
dpFilterParamDto
.
getBeginDate
()))
{
dpFilterParamDto
.
setBeginDate
(
DateUtil
.
lastMonth
().
toDateStr
());
}
if
(
StringUtils
.
isEmpty
(
dpFilterParamDto
.
getEndDate
()))
{
dpFilterParamDto
.
setEndDate
(
DateUtil
.
today
());
}
}
private
String
getAndSetOrgCode
(
String
region
)
{
String
orgCode
=
regionCodeOrgCodeMap
.
get
(
region
);
if
(
orgCode
==
null
)
{
orgCode
=
statisticsMapper
.
getOrgCodeByCompanyCode
(
region
);
if
(
orgCode
!=
null
)
{
regionCodeOrgCodeMap
.
put
(
region
,
orgCode
);
}
}
return
orgCode
;
}
}
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