Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
Z
zlmy-cloud
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
zlmy
zlmy-cloud
Commits
856f0a73
Commit
856f0a73
authored
Jan 13, 2026
by
鲁鸿波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
危险作业统计开发
parent
f2b6120b
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1160 additions
and
8 deletions
+1160
-8
上线说明.md
zlmy-modules/zlmy-boot/doc/国产化/上线说明.md
+1
-1
AccidentReportController.java
.../module/accident/controller/AccidentReportController.java
+27
-0
AccidentReportDetailTemplate.java
...odule/accident/template/AccidentReportDetailTemplate.java
+126
-0
HazardWorkPlanStatisticsController.java
...hazard/controller/HazardWorkPlanStatisticsController.java
+55
-3
HazardWorkPlanStatisticsDao.java
...testor/module/hazard/dao/HazardWorkPlanStatisticsDao.java
+41
-0
THazardWorkPlanDao.java
...java/com/testor/module/hazard/dao/THazardWorkPlanDao.java
+4
-0
HazardWorkPlanStatisticsDto.java
.../module/hazard/model/dto/HazardWorkPlanStatisticsDto.java
+6
-0
HazardWorkPlanStatisticsResult.java
...dule/hazard/model/dto/HazardWorkPlanStatisticsResult.java
+24
-0
HazardWorkPlanStatisticsResultVO.java
...le/hazard/model/dto/HazardWorkPlanStatisticsResultVO.java
+20
-0
THazardWorkPlanDetailStatistics.java
...ule/hazard/model/dto/THazardWorkPlanDetailStatistics.java
+45
-0
THazardWorkPlanStatistics.java
...or/module/hazard/model/dto/THazardWorkPlanStatistics.java
+27
-0
WorkStatItem.java
...java/com/testor/module/hazard/model/dto/WorkStatItem.java
+11
-0
HazardWorkPlanStatisticsTemplate.java
...zard/model/template/HazardWorkPlanStatisticsTemplate.java
+119
-0
HazardWorkPlanStatisticsService.java
...odule/hazard/service/HazardWorkPlanStatisticsService.java
+29
-0
THazardWorkPlanService.java
.../testor/module/hazard/service/THazardWorkPlanService.java
+3
-0
HazardWorkPlanStatisticsServiceImpl.java
...ard/service/impl/HazardWorkPlanStatisticsServiceImpl.java
+396
-1
THazardWorkPlanServiceImpl.java
...odule/hazard/service/impl/THazardWorkPlanServiceImpl.java
+2
-0
PortController.java
...a/com/testor/module/report/controller/PortController.java
+1
-0
NewSysDictDataService.java
.../com/testor/module/sys/service/NewSysDictDataService.java
+7
-0
NewSysDictDataServiceImpl.java
...or/module/sys/service/impl/NewSysDictDataServiceImpl.java
+24
-0
AccidentReport.xml
...oot/src/main/resources/mapper/accident/AccidentReport.xml
+3
-3
HazardWorkPlanStatistics.xml
...main/resources/mapper/hazard/HazardWorkPlanStatistics.xml
+187
-0
THazardWorkPlan.xml
...boot/src/main/resources/mapper/hazard/THazardWorkPlan.xml
+2
-0
No files found.
zlmy-modules/zlmy-boot/doc/国产化/上线说明.md
View file @
856f0a73
...
@@ -551,5 +551,5 @@ INSERT INTO "t_sys_dict_data" ("dict_data_id", "dict_id", "dict_key", "dict_valu
...
@@ -551,5 +551,5 @@ INSERT INTO "t_sys_dict_data" ("dict_data_id", "dict_id", "dict_key", "dict_valu
INSERT INTO "t_sys_dict_data" ("dict_data_id", "dict_id", "dict_key", "dict_value", "tree_sort", "status", "create_by", "create_date", "update_by", "update_date", "remarks", "parent_id", "parent_ids") VALUES ('27', '4', '11', '不涉及', '11', '0', NULL, '2026-01-09 15:07:41', NULL, '2026-01-09 15:07:41', NULL, NULL, NULL);
INSERT INTO "t_sys_dict_data" ("dict_data_id", "dict_id", "dict_key", "dict_value", "tree_sort", "status", "create_by", "create_date", "update_by", "update_date", "remarks", "parent_id", "parent_ids") VALUES ('27', '4', '11', '不涉及', '11', '0', NULL, '2026-01-09 15:07:41', NULL, '2026-01-09 15:07:41', NULL, NULL, NULL);
INSERT INTO "t_sys_dict_type" ("dict_id", "dict_name", "dict_type", "is_sys", "status", "create_by", "create_date", "update_by", "update_date", "remarks", "parent_id", "parent_ids", "tree_sort", "cascaded") VALUES ('5', '事故受伤部位', 'injured_area',
NULL, NULL
, NULL, '2026-01-09 15:10:48', NULL, '2026-01-09 15:10:48', NULL, NULL, NULL, NULL, NULL);
INSERT INTO "t_sys_dict_type" ("dict_id", "dict_name", "dict_type", "is_sys", "status", "create_by", "create_date", "update_by", "update_date", "remarks", "parent_id", "parent_ids", "tree_sort", "cascaded") VALUES ('5', '事故受伤部位', 'injured_area',
'1', '0'
, NULL, '2026-01-09 15:10:48', NULL, '2026-01-09 15:10:48', NULL, NULL, NULL, NULL, NULL);
INSERT INTO "t_sys_dict_data" ("dict_data_id", "dict_id", "dict_key", "dict_value", "tree_sort", "status", "create_by", "create_date", "update_by", "update_date", "remarks", "parent_id", "parent_ids") VALUES ('28', '5', '1', '手臂', '1', '0', NULL, '2026-01-09 15:11:09', NULL, '2026-01-09 15:11:09', NULL, NULL, NULL);
INSERT INTO "t_sys_dict_data" ("dict_data_id", "dict_id", "dict_key", "dict_value", "tree_sort", "status", "create_by", "create_date", "update_by", "update_date", "remarks", "parent_id", "parent_ids") VALUES ('28', '5', '1', '手臂', '1', '0', NULL, '2026-01-09 15:11:09', NULL, '2026-01-09 15:11:09', NULL, NULL, NULL);
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/accident/controller/AccidentReportController.java
View file @
856f0a73
...
@@ -11,7 +11,9 @@ import com.testor.biz.util.CacheDicUtils;
...
@@ -11,7 +11,9 @@ import com.testor.biz.util.CacheDicUtils;
import
com.testor.common.constant.DicTypeCode
;
import
com.testor.common.constant.DicTypeCode
;
import
com.testor.common.constant.ProcessStatus
;
import
com.testor.common.constant.ProcessStatus
;
import
com.testor.common.model.UpdateProcessStatusReq
;
import
com.testor.common.model.UpdateProcessStatusReq
;
import
com.testor.common.util.BeanConverUtil
;
import
com.testor.common.util.EnumUtil
;
import
com.testor.common.util.EnumUtil
;
import
com.testor.common.util.excel.EasyExcelUtil
;
import
com.testor.module.accident.model.domain.AccidentReport
;
import
com.testor.module.accident.model.domain.AccidentReport
;
import
com.testor.module.accident.model.dto.AccidentReportDelParam
;
import
com.testor.module.accident.model.dto.AccidentReportDelParam
;
import
com.testor.module.accident.model.dto.AccidentReportDetail
;
import
com.testor.module.accident.model.dto.AccidentReportDetail
;
...
@@ -19,16 +21,20 @@ import com.testor.module.accident.model.req.*;
...
@@ -19,16 +21,20 @@ import com.testor.module.accident.model.req.*;
import
com.testor.module.accident.model.resp.*
;
import
com.testor.module.accident.model.resp.*
;
import
com.testor.module.accident.model.vo.AccidentReportVO
;
import
com.testor.module.accident.model.vo.AccidentReportVO
;
import
com.testor.module.accident.service.AccidentReportService
;
import
com.testor.module.accident.service.AccidentReportService
;
import
com.testor.module.accident.template.AccidentReportDetailTemplate
;
import
com.testor.module.hazard.model.dto.ReportDetailParam
;
import
com.testor.module.hazard.model.dto.ReportDetailParam
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanCheckParam
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanCheckParam
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanDTO
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanDTO
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanParam
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanParam
;
import
com.testor.module.hazard.model.template.THazardWorkPlanTemplate
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO
;
import
com.tongtech.tfw.backend.common.biz.constants.BizConstants
;
import
com.tongtech.tfw.backend.common.biz.constants.BizConstants
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponse
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponse
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponseList
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponseList
;
import
com.tongtech.tfw.backend.common.biz.models.BizGeneralResponse
;
import
com.tongtech.tfw.backend.common.models.supers.SuperController
;
import
com.tongtech.tfw.backend.common.models.supers.SuperController
;
import
com.tongtech.tfw.backend.core.helper.StringHelper
;
import
com.tongtech.tfw.backend.core.helper.StringHelper
;
import
com.tongtech.tfw.backend.core.helper.TypeHelper
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.SneakyThrows
;
import
lombok.SneakyThrows
;
...
@@ -40,6 +46,7 @@ import org.springframework.http.ResponseEntity;
...
@@ -40,6 +46,7 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.math.RoundingMode
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
...
@@ -312,4 +319,24 @@ public class AccidentReportController extends SuperController {
...
@@ -312,4 +319,24 @@ public class AccidentReportController extends SuperController {
return
baseResponse
;
return
baseResponse
;
}
}
@ApiOperation
(
value
=
"导出事故信息详情明细"
,
notes
=
"导出事故信息详情明细"
)
@GetMapping
(
value
=
"/accidentReportDetailExport"
)
public
BaseResponse
<
BizGeneralResponse
>
export
(
HttpServletResponse
response
,
ReportDetailParam
reportDetailParam
){
BaseResponse
<
BizGeneralResponse
>
baseResponse
=
new
BaseResponse
<>();
Page
<
AccidentReportDetail
>
accidentReportDetailPage
=
accidentReportService
.
selectAccidentReportDetail
(
reportDetailParam
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isEmpty
(
accidentReportDetailPage
.
getRecords
()))
{
baseResponse
.
setData
(
BizGeneralResponse
.
builder
().
result
(
"无事故信息详情明细数据"
).
build
());
return
baseResponse
;
}
List
<
AccidentReportDetailTemplate
>
accidentReportDetailTemplate
=
BeanConverUtil
.
converList
(
accidentReportDetailPage
.
getRecords
(),
AccidentReportDetailTemplate
.
class
);
int
index
=
1
;
for
(
AccidentReportDetailTemplate
template
:
accidentReportDetailTemplate
){
template
.
setNumber
(
String
.
valueOf
(
index
++));
}
EasyExcelUtil
.
writeExcel
(
response
,
"事故信息详情明细"
,
"事故信息详情明细"
,
accidentReportDetailTemplate
);
baseResponse
.
setData
(
BizGeneralResponse
.
builder
().
result
(
TypeHelper
.
castToString
(
true
)).
build
());
return
baseResponse
;
}
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/accident/template/AccidentReportDetailTemplate.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
accident
.
template
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.testor.module.accident.model.domain.AccidentPersonnel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* 事故统计详情表
*/
@Data
public
class
AccidentReportDetailTemplate
{
@ExcelProperty
(
"序号"
)
private
String
number
;
@ExcelProperty
(
"序号"
)
private
String
id
;
@ExcelProperty
(
"序号"
)
private
String
currentOrgName
;
@ExcelProperty
(
"序号"
)
private
String
businessDeptName
;
@ExcelProperty
(
"序号"
)
private
String
regionName
;
/**
* 事故发生时间
*/
@ExcelProperty
(
"事故发生时间"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
accidentTime
;
/**
* 事故等级(国家)(字典:accident_level_country)
*/
@ExcelProperty
(
"事故等级(国家)(字典:accident_level_country)"
)
private
String
accidentLevelCountry
;
@ExcelProperty
(
"事故等级(集团)"
)
private
String
accidentLevel
;
@ExcelProperty
(
"受伤人数"
)
private
Integer
reportCount
;
/**
* 直接经济损失
*/
@ExcelProperty
(
"直接经济损失"
)
private
BigDecimal
directEconomicLoss
;
/**
* 损失工作日
*/
@ExcelProperty
(
"损失工作日"
)
@TableField
(
"lost_working_days"
)
private
String
lostWorkingDays
;
/**
* 人员信息
*/
@ExcelProperty
(
"人员信息"
)
private
List
<
AccidentPersonnel
>
accidentPersonnelList
;
@ExcelProperty
(
"事故类型"
)
private
String
accidentType
;
/**
* 涉及集团八大类风险(多选 字典:group_risk)
*/
@ExcelProperty
(
"多选 涉及集团八大类风险(字典:group_risk)"
)
private
String
groupRiskDetail
;
/**
* 涉及危险作业类型(多选 字典:dangerous_homework_category)
*/
@ExcelProperty
(
"多选 涉及危险作业类型(字典:dangerous_homework_category)"
)
private
String
dangerousHomeworkCategoryDetail
;
/**
* 受伤部位(多选 字典:injured_area)
*/
@ExcelProperty
(
"多选 受伤部位(字典:injured_area)"
)
private
String
injuredAreaDetail
;
/**
* 事故详细经过
*/
@ExcelProperty
(
"事故详细经过"
)
private
String
accidentPassed
;
/**
* 事故直接原因和间接原因
*/
@ExcelProperty
(
"事故直接原因和间接原因"
)
private
String
accidentCause
;
/**
* 改善措施
*/
@ExcelProperty
(
"改善措施"
)
private
String
improvements
;
/**
* 事故人员追责问责情况
*/
@ExcelProperty
(
"事故人员追责问责情况"
)
private
String
personnelAccountabilityStatus
;
/**
* 备注
*/
@ExcelProperty
(
"备注"
)
private
String
remarks
;
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/controller/HazardWorkPlanStatisticsController.java
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
controller
;
package
com
.
testor
.
module
.
hazard
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.testor.module.accident.model.dto.AccidentReportDetail
;
import
com.testor.module.accident.template.AccidentReportDetailTemplate
;
import
com.testor.module.hazard.model.dto.*
;
import
com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponse
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponse
;
import
com.testor.common.core.enums.BaseStatusEnum
;
import
com.testor.common.core.enums.BaseStatusEnum
;
import
com.testor.common.util.BeanConverUtil
;
import
com.testor.common.util.BeanConverUtil
;
import
com.testor.common.util.excel.EasyExcelUtil
;
import
com.testor.common.util.excel.EasyExcelUtil
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanDTO
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanParam
;
import
com.testor.module.hazard.model.template.THazardWorkPlanTemplate
;
import
com.testor.module.hazard.model.template.THazardWorkPlanTemplate
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.service.HazardWorkPlanStatisticsService
;
import
com.testor.module.hazard.service.HazardWorkPlanStatisticsService
;
import
com.testor.module.hazard.service.THazardWorkPlanService
;
import
com.testor.module.hazard.service.THazardWorkPlanService
;
import
com.tongtech.tfw.backend.common.biz.models.BaseResponseList
;
import
com.tongtech.tfw.backend.common.biz.models.BizGeneralResponse
;
import
com.tongtech.tfw.backend.common.biz.models.BizGeneralResponse
;
import
com.tongtech.tfw.backend.common.context.ContextUtils
;
import
com.tongtech.tfw.backend.common.context.ContextUtils
;
import
com.tongtech.tfw.backend.common.models.supers.SuperController
;
import
com.tongtech.tfw.backend.common.models.supers.SuperController
;
...
@@ -152,4 +155,53 @@ public class HazardWorkPlanStatisticsController extends SuperController {
...
@@ -152,4 +155,53 @@ public class HazardWorkPlanStatisticsController extends SuperController {
BizGeneralResponse
.
builder
().
result
(
TypeHelper
.
castToString
(
true
)).
build
());
BizGeneralResponse
.
builder
().
result
(
TypeHelper
.
castToString
(
true
)).
build
());
return
baseResponse
;
return
baseResponse
;
}
}
@GetMapping
(
"/selectHazardWorkPlanStatistics"
)
@ApiOperation
(
value
=
"危险作业类型统计分布"
)
public
BaseResponse
<
List
<
THazardWorkPlanStatistics
>>
selectHazardWorkPlanStatistics
(
HazardWorkPlanStatisticsDto
param
)
{
BaseResponse
<
List
<
THazardWorkPlanStatistics
>>
response
=
new
BaseResponse
<>();
if
(
StringHelper
.
isEmpty
(
param
.
getOrgId
())){
param
.
setOrgId
(
ContextUtils
.
getLoginUser
().
getOrgId
());
}
List
<
THazardWorkPlanStatistics
>
dataList
=
hazardWorkPlanStatisticsService
.
selectHazardWorkPlanStatistics
(
param
);
response
.
setData
(
dataList
);
return
response
;
}
@GetMapping
(
"/selectWorkStatusDetailStatistics"
)
@ApiOperation
(
value
=
"危险作业详情统计"
)
public
BaseResponse
<
BaseResponseList
<
HazardWorkPlanStatisticsResult
>>
selectWorkStatusDetailStatistics
(
HazardWorkPlanStatisticsDto
param
)
{
BaseResponse
<
BaseResponseList
<
HazardWorkPlanStatisticsResult
>>
response
=
new
BaseResponse
<>();
if
(
StringHelper
.
isEmpty
(
param
.
getOrgId
())){
param
.
setOrgId
(
ContextUtils
.
getLoginUser
().
getOrgId
());
}
BaseResponse
<
BaseResponseList
<
HazardWorkPlanStatisticsResult
>>
baseResponse
=
new
BaseResponse
<>();
Page
<
HazardWorkPlanStatisticsResult
>
resultList
=
hazardWorkPlanStatisticsService
.
selectWorkStatusDetailStatistics
(
param
);
BaseResponseList
<
HazardWorkPlanStatisticsResult
>
baseResponseList
=
new
BaseResponseList
<>();
baseResponseList
.
setData
(
resultList
.
getRecords
());
baseResponseList
.
setTotal
(
resultList
.
getTotal
());
baseResponse
.
setData
(
baseResponseList
);
return
baseResponse
;
}
@ApiOperation
(
value
=
"导出危险作业详情统计"
,
notes
=
"导出危险作业详情统计"
)
@GetMapping
(
value
=
"/selectWorkStatusDetailStatisticsExport"
)
public
BaseResponse
<
BizGeneralResponse
>
selectWorkStatusDetailStatisticsExport
(
HttpServletResponse
response
,
HazardWorkPlanStatisticsDto
param
){
BaseResponse
<
BizGeneralResponse
>
baseResponse
=
new
BaseResponse
<>();
List
<
HazardWorkPlanStatisticsTemplate
>
hazardWorkPlanStatisticsTemplatePage
=
hazardWorkPlanStatisticsService
.
exportCompleteStatistics
(
param
);
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isEmpty
(
hazardWorkPlanStatisticsTemplatePage
))
{
baseResponse
.
setData
(
BizGeneralResponse
.
builder
().
result
(
"无危险作业详情数据"
).
build
());
return
baseResponse
;
}
List
<
HazardWorkPlanStatisticsTemplate
>
accidentReportDetailTemplate
=
BeanConverUtil
.
converList
(
hazardWorkPlanStatisticsTemplatePage
,
HazardWorkPlanStatisticsTemplate
.
class
);
int
index
=
1
;
for
(
HazardWorkPlanStatisticsTemplate
template
:
hazardWorkPlanStatisticsTemplatePage
){
template
.
setNumber
(
String
.
valueOf
(
index
++));
}
EasyExcelUtil
.
writeExcel
(
response
,
"危险作业详情明细"
,
"危险作业详情明细"
,
accidentReportDetailTemplate
);
baseResponse
.
setData
(
BizGeneralResponse
.
builder
().
result
(
TypeHelper
.
castToString
(
true
)).
build
());
return
baseResponse
;
}
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/dao/HazardWorkPlanStatisticsDao.java
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
dao
;
package
com
.
testor
.
module
.
hazard
.
dao
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanStatistics
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -43,4 +47,41 @@ public interface HazardWorkPlanStatisticsDao {
...
@@ -43,4 +47,41 @@ public interface HazardWorkPlanStatisticsDao {
* @return
* @return
*/
*/
public
List
<
HazardWorkPlanStatisticsVO
>
statOperatorNum
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
param
);
public
List
<
HazardWorkPlanStatisticsVO
>
statOperatorNum
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
param
);
/**
* 危险作业类型统计图表
* @param hazardWorkPlanStatisticsDto
* @return
*/
List
<
THazardWorkPlanStatistics
>
selectHazardWorkPlanStatistics
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
hazardWorkPlanStatisticsDto
);
/**
* 危险作业详情基础统计
* @param query
* @return
*/
List
<
THazardWorkPlanDetailStatistics
>
workBasicDetailStatistics
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
query
);
/**
* 危险作业详情类别统计
* @param query
* @return
*/
List
<
THazardWorkPlanDetailStatistics
>
workTypeDetailStatistics
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
query
);
/**
* 危险作业详情级别统计
* @param query
* @return
*/
List
<
THazardWorkPlanDetailStatistics
>
workLevelDetailStatistics
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
query
);
/**
* 危险作业详情状态统计
* @param query
* @return
*/
List
<
THazardWorkPlanDetailStatistics
>
workStatusDetailStatistics
(
@Param
(
"query"
)
HazardWorkPlanStatisticsDto
query
);
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/dao/THazardWorkPlanDao.java
View file @
856f0a73
...
@@ -3,8 +3,10 @@ package com.testor.module.hazard.dao;
...
@@ -3,8 +3,10 @@ package com.testor.module.hazard.dao;
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.testor.module.hazard.model.domain.THazardWorkPlan
;
import
com.testor.module.hazard.model.domain.THazardWorkPlan
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanParam
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanParam
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanRiverside
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanRiverside
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanStatistics
;
import
com.testor.module.partner.model.dto.TJobStatisticsParam
;
import
com.testor.module.partner.model.dto.TJobStatisticsParam
;
import
com.testor.module.partner.model.vo.RegionalStatisticsVO
;
import
com.testor.module.partner.model.vo.RegionalStatisticsVO
;
import
com.tongtech.tfw.backend.common.models.supers.SuperDao
;
import
com.tongtech.tfw.backend.common.models.supers.SuperDao
;
...
@@ -73,4 +75,6 @@ public interface THazardWorkPlanDao extends SuperDao<THazardWorkPlan>
...
@@ -73,4 +75,6 @@ public interface THazardWorkPlanDao extends SuperDao<THazardWorkPlan>
*/
*/
List
<
RegionalStatisticsVO
>
selectWorkTypeCount
(
@Param
(
"tJobStatisticsParam"
)
TJobStatisticsParam
tJobStatisticsParam
);
List
<
RegionalStatisticsVO
>
selectWorkTypeCount
(
@Param
(
"tJobStatisticsParam"
)
TJobStatisticsParam
tJobStatisticsParam
);
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/dto/HazardWorkPlanStatisticsDto.java
View file @
856f0a73
...
@@ -47,4 +47,10 @@ public class HazardWorkPlanStatisticsDto {
...
@@ -47,4 +47,10 @@ public class HazardWorkPlanStatisticsDto {
*/
*/
@ApiModelProperty
(
value
=
"单位id"
)
@ApiModelProperty
(
value
=
"单位id"
)
private
String
orgId
;
private
String
orgId
;
@ApiModelProperty
(
value
=
"每页数量"
)
private
Integer
size
;
@ApiModelProperty
(
value
=
"当前页数"
)
private
Integer
current
;
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/dto/HazardWorkPlanStatisticsResult.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
model
.
dto
;
import
lombok.Data
;
import
java.util.Map
;
@Data
public
class
HazardWorkPlanStatisticsResult
{
private
String
regionName
;
// 大区
private
String
businessDeptName
;
// 经营部
private
String
currentOrgName
;
// 企业名称
// 基础数量统计
private
Integer
workCount
;
// 危险作业总量
private
Integer
ownCount
;
// 自有员工作业数量
private
Integer
stakeholderCount
;
// 相关方作业数量
// 分类统计
private
Map
<
String
,
Integer
>
workTypeStats
;
// 作业类别统计 <类别名称, 数量>
private
Map
<
String
,
Integer
>
workLevelStats
;
// 作业级别统计 <级别名称, 数量>
private
Map
<
String
,
Integer
>
workStatusStats
;
// 作业状态统计 <状态名称, 数量>
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/dto/HazardWorkPlanStatisticsResultVO.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
model
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
HazardWorkPlanStatisticsResultVO
{
private
String
regionName
;
private
String
businessDeptName
;
private
String
currentOrgName
;
private
Integer
workCount
;
private
Integer
ownCount
;
private
Integer
stakeholderCount
;
private
List
<
WorkStatItem
>
workTypeStats
;
// 作业类别统计列表
private
List
<
WorkStatItem
>
workLevelStats
;
// 作业级别统计列表
private
List
<
WorkStatItem
>
workStatusStats
;
// 作业状态统计列表
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/dto/THazardWorkPlanDetailStatistics.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
THazardWorkPlanDetailStatistics
{
@ApiModelProperty
(
value
=
"当前机构名称"
)
private
String
currentOrgName
;
@ApiModelProperty
(
value
=
"经营部名称"
)
private
String
businessDeptName
;
@ApiModelProperty
(
value
=
"大区名称"
)
private
String
regionName
;
@ApiModelProperty
(
value
=
"危险作业总量"
)
private
Integer
workCount
;
@ApiModelProperty
(
value
=
"自有员工作业数量"
)
private
Integer
ownCount
;
@ApiModelProperty
(
value
=
"相关方作业数量"
)
private
Integer
stakeholderCount
;
@ApiModelProperty
(
value
=
"作业类型"
)
private
String
workType
;
@ApiModelProperty
(
value
=
"作业类型数量"
)
private
Integer
workTypeCount
;
@ApiModelProperty
(
value
=
"作业级别"
)
private
String
workLevel
;
@ApiModelProperty
(
value
=
"作业级别数量"
)
private
Integer
workLevelCount
;
@ApiModelProperty
(
value
=
"作业状态"
)
private
String
workStatus
;
@ApiModelProperty
(
value
=
"作业状态数量"
)
private
Integer
workStatusCount
;
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/dto/THazardWorkPlanStatistics.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
THazardWorkPlanStatistics
{
/**
* 作业类型
*/
@ApiModelProperty
(
value
=
"作业类型"
)
private
String
workType
;
/**
* 作业级别
*/
@ApiModelProperty
(
value
=
"作业级别"
)
private
String
workLevel
;
/**
* 作业数量
*/
@ApiModelProperty
(
value
=
"作业数量"
)
private
Integer
count
;
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/dto/WorkStatItem.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
model
.
dto
;
import
lombok.Data
;
@Data
public
class
WorkStatItem
{
private
String
name
;
// 类别/级别/状态名称
private
Integer
count
;
// 数量
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/model/template/HazardWorkPlanStatisticsTemplate.java
0 → 100644
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
model
.
template
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
@Data
public
class
HazardWorkPlanStatisticsTemplate
{
@ExcelProperty
(
"序号"
)
private
String
number
;
@ExcelProperty
(
"大区"
)
private
String
regionName
;
@ExcelProperty
(
"经营部"
)
private
String
businessDeptName
;
@ExcelProperty
(
"企业名称"
)
private
String
currentOrgName
;
@ExcelProperty
(
"危险作业总量"
)
private
Integer
workCount
;
@ExcelProperty
(
"自有员工作业数量"
)
private
Integer
ownCount
;
@ExcelProperty
(
"相关方作业数量"
)
private
Integer
stakeholderCount
;
// ============== 作业类别统计 ==============
@ExcelProperty
(
"进仓作业"
)
private
Integer
workTypeIn
;
@ExcelProperty
(
"出仓作业"
)
private
Integer
workTypeOut
;
@ExcelProperty
(
"动火作业"
)
private
Integer
workTypeFire
;
@ExcelProperty
(
"有限空间作业"
)
private
Integer
workTypeLimitedSpace
;
@ExcelProperty
(
"吊装作业"
)
private
Integer
workTypeHoisting
;
@ExcelProperty
(
"高处作业"
)
private
Integer
workTypeHigh
;
@ExcelProperty
(
"临时用电作业"
)
private
Integer
workTypeTempElectricity
;
@ExcelProperty
(
"动土作业"
)
private
Integer
workTypeExcavation
;
@ExcelProperty
(
"断路作业"
)
private
Integer
workTypeRoadClosure
;
@ExcelProperty
(
"环流熏蒸作业"
)
private
Integer
workTypeCirculationFumigation
;
@ExcelProperty
(
"熏蒸作业"
)
private
Integer
workTypeFumigation
;
@ExcelProperty
(
"平仓作业"
)
private
Integer
workTypeClosing
;
@ExcelProperty
(
"筒仓清仓作业"
)
private
Integer
workTypeSiloCleaning
;
@ExcelProperty
(
"液氨接卸作业"
)
private
Integer
workTypeLiquidAmmonia
;
@ExcelProperty
(
"未知类别"
)
private
Integer
workTypeUnknown
;
// ============== 作业级别统计 ==============
@ExcelProperty
(
"高度危险"
)
private
Integer
workLevelHigh
;
@ExcelProperty
(
"较大危险"
)
private
Integer
workLevelMedium
;
@ExcelProperty
(
"一般危险"
)
private
Integer
workLevelLow
;
@ExcelProperty
(
"未知级别"
)
private
Integer
workLevelUnknown
;
// ============== 作业状态统计 ==============
@ExcelProperty
(
"技术交底"
)
private
Integer
workStatusTechBriefing
;
@ExcelProperty
(
"草稿"
)
private
Integer
workStatusDraft
;
@ExcelProperty
(
"已关闭"
)
private
Integer
workStatusClosed
;
@ExcelProperty
(
"作业前(条件确认)"
)
private
Integer
workStatusPreCondition
;
@ExcelProperty
(
"作业前(风险分析)"
)
private
Integer
workStatusPreRiskAnalysis
;
@ExcelProperty
(
"已超时自动取消"
)
private
Integer
workStatusTimeoutCancel
;
@ExcelProperty
(
"已取消"
)
private
Integer
workStatusCancelled
;
@ExcelProperty
(
"作业前(许可证)"
)
private
Integer
workStatusPreLicense
;
@ExcelProperty
(
"未知状态"
)
private
Integer
workStatusUnknown
;
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/service/HazardWorkPlanStatisticsService.java
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
service
;
package
com
.
testor
.
module
.
hazard
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsResult
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanStatistics
;
import
com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
...
@@ -40,4 +47,26 @@ public interface HazardWorkPlanStatisticsService {
...
@@ -40,4 +47,26 @@ public interface HazardWorkPlanStatisticsService {
* @return
* @return
*/
*/
public
List
<
HazardWorkPlanStatisticsVO
>
statOperatorNum
(
HazardWorkPlanStatisticsDto
param
);
public
List
<
HazardWorkPlanStatisticsVO
>
statOperatorNum
(
HazardWorkPlanStatisticsDto
param
);
/**
* 危险作业类型统计图表
* @param hazardWorkPlanStatisticsDto
* @return
*/
List
<
THazardWorkPlanStatistics
>
selectHazardWorkPlanStatistics
(
HazardWorkPlanStatisticsDto
hazardWorkPlanStatisticsDto
);
/**
* 危险作业详情统计
* @param query
* @return
*/
Page
<
HazardWorkPlanStatisticsResult
>
selectWorkStatusDetailStatistics
(
HazardWorkPlanStatisticsDto
query
);
// Changed from List to Page
/**
* 危险作业详情统计导出
* @param query
* @return
*/
List
<
HazardWorkPlanStatisticsTemplate
>
exportCompleteStatistics
(
HazardWorkPlanStatisticsDto
query
);
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/service/THazardWorkPlanService.java
View file @
856f0a73
...
@@ -135,4 +135,7 @@ public interface THazardWorkPlanService extends SuperService<THazardWorkPlan> {
...
@@ -135,4 +135,7 @@ public interface THazardWorkPlanService extends SuperService<THazardWorkPlan> {
*/
*/
Integer
unfinishedCount
(
List
<
String
>
orgIds
);
Integer
unfinishedCount
(
List
<
String
>
orgIds
);
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/service/impl/HazardWorkPlanStatisticsServiceImpl.java
View file @
856f0a73
package
com
.
testor
.
module
.
hazard
.
service
.
impl
;
package
com
.
testor
.
module
.
hazard
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.testor.biz.sys.dict.data.dao.SysDictDataDao
;
import
com.testor.biz.sys.dict.data.service.SysDictDataService
;
import
com.testor.common.core.utils.StringUtils
;
import
com.testor.module.hazard.dao.HazardWorkPlanStatisticsDao
;
import
com.testor.module.hazard.dao.HazardWorkPlanStatisticsDao
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto
;
import
com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsResult
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics
;
import
com.testor.module.hazard.model.dto.THazardWorkPlanStatistics
;
import
com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO
;
import
com.testor.module.hazard.service.HazardWorkPlanStatisticsService
;
import
com.testor.module.hazard.service.HazardWorkPlanStatisticsService
;
import
com.testor.module.sys.service.NewSysDictDataService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.
List
;
import
java.util.
*
;
@Service
@Service
public
class
HazardWorkPlanStatisticsServiceImpl
implements
HazardWorkPlanStatisticsService
{
public
class
HazardWorkPlanStatisticsServiceImpl
implements
HazardWorkPlanStatisticsService
{
@Autowired
@Autowired
private
HazardWorkPlanStatisticsDao
hazardWorkPlanStatisticsDao
;
private
HazardWorkPlanStatisticsDao
hazardWorkPlanStatisticsDao
;
@Autowired
private
NewSysDictDataService
dictDataService
;
/**
/**
* 危险作业分布统计,根据单位
* 危险作业分布统计,根据单位
*
*
...
@@ -68,4 +81,386 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis
...
@@ -68,4 +81,386 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis
public
List
<
HazardWorkPlanStatisticsVO
>
statOperatorNum
(
HazardWorkPlanStatisticsDto
param
)
{
public
List
<
HazardWorkPlanStatisticsVO
>
statOperatorNum
(
HazardWorkPlanStatisticsDto
param
)
{
return
hazardWorkPlanStatisticsDao
.
statOperatorNum
(
param
);
return
hazardWorkPlanStatisticsDao
.
statOperatorNum
(
param
);
}
}
@Override
public
List
<
THazardWorkPlanStatistics
>
selectHazardWorkPlanStatistics
(
HazardWorkPlanStatisticsDto
hazardWorkPlanStatisticsDto
)
{
return
hazardWorkPlanStatisticsDao
.
selectHazardWorkPlanStatistics
(
hazardWorkPlanStatisticsDto
);
}
@Override
public
Page
<
HazardWorkPlanStatisticsResult
>
selectWorkStatusDetailStatistics
(
HazardWorkPlanStatisticsDto
query
)
{
// 0. 获取所有字典值
Map
<
String
,
List
<
String
>>
allDictValues
=
getAllDictValues
();
// 1. 执行四个独立的查询
List
<
THazardWorkPlanDetailStatistics
>
workBasicDetailStatistics
=
hazardWorkPlanStatisticsDao
.
workBasicDetailStatistics
(
query
);
List
<
THazardWorkPlanDetailStatistics
>
workTypeDetailStatistics
=
hazardWorkPlanStatisticsDao
.
workTypeDetailStatistics
(
query
);
List
<
THazardWorkPlanDetailStatistics
>
workLevelDetailStatistics
=
hazardWorkPlanStatisticsDao
.
workLevelDetailStatistics
(
query
);
List
<
THazardWorkPlanDetailStatistics
>
workStatusDetailStatistics
=
hazardWorkPlanStatisticsDao
.
workStatusDetailStatistics
(
query
);
// 2. 创建结果列表
List
<
HazardWorkPlanStatisticsResult
>
resultList
=
new
ArrayList
<>();
// 3. 构建企业键值映射
Map
<
String
,
HazardWorkPlanStatisticsResult
>
resultMap
=
new
HashMap
<>();
// 3.1 处理基础数量统计
for
(
THazardWorkPlanDetailStatistics
basicStat
:
workBasicDetailStatistics
)
{
String
key
=
getOrgKey
(
basicStat
.
getRegionName
(),
basicStat
.
getBusinessDeptName
(),
basicStat
.
getCurrentOrgName
());
HazardWorkPlanStatisticsResult
result
=
new
HazardWorkPlanStatisticsResult
();
result
.
setRegionName
(
basicStat
.
getRegionName
());
result
.
setBusinessDeptName
(
basicStat
.
getBusinessDeptName
());
result
.
setCurrentOrgName
(
basicStat
.
getCurrentOrgName
());
result
.
setWorkCount
(
basicStat
.
getWorkCount
());
result
.
setOwnCount
(
basicStat
.
getOwnCount
());
result
.
setStakeholderCount
(
basicStat
.
getStakeholderCount
());
// 预初始化所有字典值为0
result
.
setWorkTypeStats
(
initializeDictStats
(
allDictValues
.
get
(
"workType"
)));
result
.
setWorkLevelStats
(
initializeDictStats
(
allDictValues
.
get
(
"workLevel"
)));
result
.
setWorkStatusStats
(
initializeDictStats
(
allDictValues
.
get
(
"workStatus"
)));
resultMap
.
put
(
key
,
result
);
}
// 3.2 处理作业类别统计
for
(
THazardWorkPlanDetailStatistics
typeStat
:
workTypeDetailStatistics
)
{
String
key
=
getOrgKey
(
typeStat
.
getRegionName
(),
typeStat
.
getBusinessDeptName
(),
typeStat
.
getCurrentOrgName
());
HazardWorkPlanStatisticsResult
result
=
resultMap
.
get
(
key
);
if
(
result
!=
null
)
{
String
workType
=
typeStat
.
getWorkType
()
!=
null
?
typeStat
.
getWorkType
()
:
"未知类别"
;
Integer
count
=
typeStat
.
getWorkTypeCount
()
!=
null
?
typeStat
.
getWorkTypeCount
()
:
0
;
// 如果字典值不在预定义列表中,添加到字典值列表
if
(!
result
.
getWorkTypeStats
().
containsKey
(
workType
))
{
result
.
getWorkTypeStats
().
put
(
workType
,
0
);
}
result
.
getWorkTypeStats
().
put
(
workType
,
count
);
}
}
// 3.3 处理作业级别统计
for
(
THazardWorkPlanDetailStatistics
levelStat
:
workLevelDetailStatistics
)
{
String
key
=
getOrgKey
(
levelStat
.
getRegionName
(),
levelStat
.
getBusinessDeptName
(),
levelStat
.
getCurrentOrgName
());
HazardWorkPlanStatisticsResult
result
=
resultMap
.
get
(
key
);
if
(
result
!=
null
)
{
String
workLevel
=
levelStat
.
getWorkLevel
()
!=
null
?
levelStat
.
getWorkLevel
()
:
"未知级别"
;
Integer
count
=
levelStat
.
getWorkLevelCount
()
!=
null
?
levelStat
.
getWorkLevelCount
()
:
0
;
// 如果字典值不在预定义列表中,添加到字典值列表
if
(!
result
.
getWorkLevelStats
().
containsKey
(
workLevel
))
{
result
.
getWorkLevelStats
().
put
(
workLevel
,
0
);
}
result
.
getWorkLevelStats
().
put
(
workLevel
,
count
);
}
}
// 3.4 处理作业状态统计
for
(
THazardWorkPlanDetailStatistics
statusStat
:
workStatusDetailStatistics
)
{
String
key
=
getOrgKey
(
statusStat
.
getRegionName
(),
statusStat
.
getBusinessDeptName
(),
statusStat
.
getCurrentOrgName
());
HazardWorkPlanStatisticsResult
result
=
resultMap
.
get
(
key
);
if
(
result
!=
null
)
{
String
workStatus
=
statusStat
.
getWorkStatus
()
!=
null
?
statusStat
.
getWorkStatus
()
:
"未知状态"
;
Integer
count
=
statusStat
.
getWorkStatusCount
()
!=
null
?
statusStat
.
getWorkStatusCount
()
:
0
;
// 如果字典值不在预定义列表中,添加到字典值列表
if
(!
result
.
getWorkStatusStats
().
containsKey
(
workStatus
))
{
result
.
getWorkStatusStats
().
put
(
workStatus
,
0
);
}
result
.
getWorkStatusStats
().
put
(
workStatus
,
count
);
}
}
// 3.5 确保所有预定义字典值都存在(即使没有数据也显示为0)
for
(
HazardWorkPlanStatisticsResult
result
:
resultMap
.
values
())
{
ensureAllDictValuesPresent
(
result
,
allDictValues
);
}
// 4. 将Map转换为List
resultList
.
addAll
(
resultMap
.
values
());
// 5. 排序(按组织层级)
resultList
.
sort
((
a
,
b
)
->
{
int
regionCompare
=
StringUtils
.
compare
(
a
.
getRegionName
(),
b
.
getRegionName
());
if
(
regionCompare
!=
0
)
return
regionCompare
;
int
deptCompare
=
StringUtils
.
compare
(
a
.
getBusinessDeptName
(),
b
.
getBusinessDeptName
());
if
(
deptCompare
!=
0
)
return
deptCompare
;
return
StringUtils
.
compare
(
a
.
getCurrentOrgName
(),
b
.
getCurrentOrgName
());
});
// 6. 手动分页处理
int
total
=
resultList
.
size
();
int
pageSize
=
query
.
getSize
();
int
currentPage
=
query
.
getCurrent
();
// 计算分页起始和结束索引
int
startIndex
=
(
currentPage
-
1
)
*
pageSize
;
int
endIndex
=
Math
.
min
(
startIndex
+
pageSize
,
total
);
Page
<
HazardWorkPlanStatisticsResult
>
page
=
new
Page
<>(
currentPage
,
pageSize
);
// 如果起始索引超出范围,返回空列表
if
(
startIndex
>=
total
)
{
page
.
setRecords
(
new
ArrayList
<>());
}
else
{
// 获取当前页的数据
List
<
HazardWorkPlanStatisticsResult
>
pageRecords
=
resultList
.
subList
(
startIndex
,
endIndex
);
page
.
setRecords
(
pageRecords
);
}
// 7. 设置分页信息
page
.
setTotal
(
total
);
page
.
setPages
((
total
+
pageSize
-
1
)
/
pageSize
);
// 计算总页数
return
page
;
}
/**
* 初始化字典统计,所有值设为0
*/
private
Map
<
String
,
Integer
>
initializeDictStats
(
List
<
String
>
dictValues
)
{
if
(
dictValues
==
null
)
{
return
new
HashMap
<>();
}
Map
<
String
,
Integer
>
stats
=
new
LinkedHashMap
<>();
for
(
String
dictValue
:
dictValues
)
{
stats
.
put
(
dictValue
,
0
);
}
return
stats
;
}
/**
* 确保所有预定义字典值都存在
*/
private
void
ensureAllDictValuesPresent
(
HazardWorkPlanStatisticsResult
result
,
Map
<
String
,
List
<
String
>>
allDictValues
)
{
if
(
result
==
null
||
allDictValues
==
null
)
return
;
// 确保作业类别字典值完整
if
(
allDictValues
.
containsKey
(
"workType"
))
{
for
(
String
dictValue
:
allDictValues
.
get
(
"workType"
))
{
result
.
getWorkTypeStats
().
putIfAbsent
(
dictValue
,
0
);
}
}
// 确保作业级别字典值完整
if
(
allDictValues
.
containsKey
(
"workLevel"
))
{
for
(
String
dictValue
:
allDictValues
.
get
(
"workLevel"
))
{
result
.
getWorkLevelStats
().
putIfAbsent
(
dictValue
,
0
);
}
}
// 确保作业状态字典值完整
if
(
allDictValues
.
containsKey
(
"workStatus"
))
{
for
(
String
dictValue
:
allDictValues
.
get
(
"workStatus"
))
{
result
.
getWorkStatusStats
().
putIfAbsent
(
dictValue
,
0
);
}
}
}
private
String
getOrgKey
(
String
regionName
,
String
businessDeptName
,
String
currentOrgName
)
{
return
(
regionName
!=
null
?
regionName
:
""
)
+
"|"
+
(
businessDeptName
!=
null
?
businessDeptName
:
""
)
+
"|"
+
(
currentOrgName
!=
null
?
currentOrgName
:
""
);
}
// 获取所有字典值的方法
private
Map
<
String
,
List
<
String
>>
getAllDictValues
()
{
Map
<
String
,
List
<
String
>>
dictValues
=
new
HashMap
<>();
// 获取作业类别字典值
List
<
String
>
workTypeDicts
=
dictDataService
.
getDictValuesByDictId
(
"42a87414a06a4f57b9d3ffb1907284b4"
);
dictValues
.
put
(
"workType"
,
workTypeDicts
!=
null
?
workTypeDicts
:
new
ArrayList
<>());
// 获取作业级别字典值
List
<
String
>
workLevelDicts
=
dictDataService
.
getDictValuesByDictId
(
"222842ea3bb4468bbbeaa3856a4f2731"
);
dictValues
.
put
(
"workLevel"
,
workLevelDicts
!=
null
?
workLevelDicts
:
new
ArrayList
<>());
// 获取作业状态字典值
List
<
String
>
workStatusDicts
=
dictDataService
.
getDictValuesByDictId
(
"60c11c98359b4cd09b7220202abf9e0b"
);
dictValues
.
put
(
"workStatus"
,
workStatusDicts
!=
null
?
workStatusDicts
:
new
ArrayList
<>());
return
dictValues
;
}
/**
* 导出完整的危险作业统计数据(不分页,全部数据)
* @param query 查询条件
* @return 完整的导出数据列表
*/
public
List
<
HazardWorkPlanStatisticsTemplate
>
exportCompleteStatistics
(
HazardWorkPlanStatisticsDto
query
)
{
// 1. 设置不分页查询参数
HazardWorkPlanStatisticsDto
noPageQuery
=
new
HazardWorkPlanStatisticsDto
();
// 复制查询条件
BeanUtils
.
copyProperties
(
query
,
noPageQuery
);
// 设置不分页(获取所有数据)
noPageQuery
.
setCurrent
(
1
);
noPageQuery
.
setSize
(
Integer
.
MAX_VALUE
);
// 2. 执行查询(获取完整数据,不分页)
Page
<
HazardWorkPlanStatisticsResult
>
pageResult
=
selectWorkStatusDetailStatistics
(
noPageQuery
);
// 3. 获取所有记录(不分页)
List
<
HazardWorkPlanStatisticsResult
>
allResults
=
pageResult
.
getRecords
();
// 4. 转换为导出模板
return
convertToExportTemplates
(
allResults
);
}
/**
* 将统计结果列表转换为导出模板列表
*/
public
List
<
HazardWorkPlanStatisticsTemplate
>
convertToExportTemplates
(
List
<
HazardWorkPlanStatisticsResult
>
statisticsResults
)
{
List
<
HazardWorkPlanStatisticsTemplate
>
exportTemplates
=
new
ArrayList
<>();
if
(
statisticsResults
==
null
||
statisticsResults
.
isEmpty
())
{
return
exportTemplates
;
}
// 设置序号
int
index
=
1
;
for
(
HazardWorkPlanStatisticsResult
result
:
statisticsResults
)
{
HazardWorkPlanStatisticsTemplate
template
=
convertSingleResult
(
result
,
index
++);
exportTemplates
.
add
(
template
);
}
return
exportTemplates
;
}
/**
* 转换单个统计结果为导出模板
*/
private
HazardWorkPlanStatisticsTemplate
convertSingleResult
(
HazardWorkPlanStatisticsResult
result
,
int
index
)
{
HazardWorkPlanStatisticsTemplate
template
=
new
HazardWorkPlanStatisticsTemplate
();
// 2. 设置组织信息
template
.
setRegionName
(
result
.
getRegionName
());
template
.
setBusinessDeptName
(
result
.
getBusinessDeptName
());
template
.
setCurrentOrgName
(
result
.
getCurrentOrgName
());
// 3. 设置基础数量统计
template
.
setWorkCount
(
result
.
getWorkCount
()
!=
null
?
result
.
getWorkCount
()
:
0
);
template
.
setOwnCount
(
result
.
getOwnCount
()
!=
null
?
result
.
getOwnCount
()
:
0
);
template
.
setStakeholderCount
(
result
.
getStakeholderCount
()
!=
null
?
result
.
getStakeholderCount
()
:
0
);
// 4. 设置作业类别统计
Map
<
String
,
Integer
>
workTypeStats
=
result
.
getWorkTypeStats
();
if
(
workTypeStats
!=
null
)
{
template
.
setWorkTypeIn
(
getValueOrZero
(
workTypeStats
,
"进仓作业"
));
template
.
setWorkTypeOut
(
getValueOrZero
(
workTypeStats
,
"出仓作业"
));
template
.
setWorkTypeFire
(
getValueOrZero
(
workTypeStats
,
"动火作业"
));
template
.
setWorkTypeLimitedSpace
(
getValueOrZero
(
workTypeStats
,
"有限空间作业"
));
template
.
setWorkTypeHoisting
(
getValueOrZero
(
workTypeStats
,
"吊装作业"
));
template
.
setWorkTypeHigh
(
getValueOrZero
(
workTypeStats
,
"高处作业"
));
template
.
setWorkTypeTempElectricity
(
getValueOrZero
(
workTypeStats
,
"临时用电作业"
));
template
.
setWorkTypeExcavation
(
getValueOrZero
(
workTypeStats
,
"动土作业"
));
template
.
setWorkTypeRoadClosure
(
getValueOrZero
(
workTypeStats
,
"断路作业"
));
template
.
setWorkTypeCirculationFumigation
(
getValueOrZero
(
workTypeStats
,
"环流熏蒸作业"
));
template
.
setWorkTypeFumigation
(
getValueOrZero
(
workTypeStats
,
"熏蒸作业"
));
template
.
setWorkTypeClosing
(
getValueOrZero
(
workTypeStats
,
"平仓作业"
));
template
.
setWorkTypeSiloCleaning
(
getValueOrZero
(
workTypeStats
,
"筒仓清仓作业"
));
template
.
setWorkTypeLiquidAmmonia
(
getValueOrZero
(
workTypeStats
,
"液氨接卸作业"
));
template
.
setWorkTypeUnknown
(
getValueOrZero
(
workTypeStats
,
"未知类别"
));
}
else
{
// 如果为空,初始化所有值为0
initializeWorkTypeStats
(
template
);
}
// 5. 设置作业级别统计
Map
<
String
,
Integer
>
workLevelStats
=
result
.
getWorkLevelStats
();
if
(
workLevelStats
!=
null
)
{
template
.
setWorkLevelHigh
(
getValueOrZero
(
workLevelStats
,
"高度危险"
));
template
.
setWorkLevelMedium
(
getValueOrZero
(
workLevelStats
,
"较大危险"
));
template
.
setWorkLevelLow
(
getValueOrZero
(
workLevelStats
,
"一般危险"
));
template
.
setWorkLevelUnknown
(
getValueOrZero
(
workLevelStats
,
"未知级别"
));
}
else
{
initializeWorkLevelStats
(
template
);
}
// 6. 设置作业状态统计
Map
<
String
,
Integer
>
workStatusStats
=
result
.
getWorkStatusStats
();
if
(
workStatusStats
!=
null
)
{
template
.
setWorkStatusTechBriefing
(
getValueOrZero
(
workStatusStats
,
"技术交底"
));
template
.
setWorkStatusDraft
(
getValueOrZero
(
workStatusStats
,
"草稿"
));
template
.
setWorkStatusClosed
(
getValueOrZero
(
workStatusStats
,
"已关闭"
));
template
.
setWorkStatusPreCondition
(
getValueOrZero
(
workStatusStats
,
"作业前(条件确认)"
));
template
.
setWorkStatusPreRiskAnalysis
(
getValueOrZero
(
workStatusStats
,
"作业前(风险分析)"
));
template
.
setWorkStatusTimeoutCancel
(
getValueOrZero
(
workStatusStats
,
"已超时自动取消"
));
template
.
setWorkStatusCancelled
(
getValueOrZero
(
workStatusStats
,
"已取消"
));
template
.
setWorkStatusPreLicense
(
getValueOrZero
(
workStatusStats
,
"作业前(许可证)"
));
template
.
setWorkStatusUnknown
(
getValueOrZero
(
workStatusStats
,
"未知状态"
));
}
else
{
initializeWorkStatusStats
(
template
);
}
return
template
;
}
/**
* 初始化作业类别统计为0
*/
private
void
initializeWorkTypeStats
(
HazardWorkPlanStatisticsTemplate
template
)
{
template
.
setWorkTypeIn
(
0
);
template
.
setWorkTypeOut
(
0
);
template
.
setWorkTypeFire
(
0
);
template
.
setWorkTypeLimitedSpace
(
0
);
template
.
setWorkTypeHoisting
(
0
);
template
.
setWorkTypeHigh
(
0
);
template
.
setWorkTypeTempElectricity
(
0
);
template
.
setWorkTypeExcavation
(
0
);
template
.
setWorkTypeRoadClosure
(
0
);
template
.
setWorkTypeCirculationFumigation
(
0
);
template
.
setWorkTypeFumigation
(
0
);
template
.
setWorkTypeClosing
(
0
);
template
.
setWorkTypeSiloCleaning
(
0
);
template
.
setWorkTypeLiquidAmmonia
(
0
);
template
.
setWorkTypeUnknown
(
0
);
}
/**
* 初始化作业级别统计为0
*/
private
void
initializeWorkLevelStats
(
HazardWorkPlanStatisticsTemplate
template
)
{
template
.
setWorkLevelHigh
(
0
);
template
.
setWorkLevelMedium
(
0
);
template
.
setWorkLevelLow
(
0
);
template
.
setWorkLevelUnknown
(
0
);
}
/**
* 初始化作业状态统计为0
*/
private
void
initializeWorkStatusStats
(
HazardWorkPlanStatisticsTemplate
template
)
{
template
.
setWorkStatusTechBriefing
(
0
);
template
.
setWorkStatusDraft
(
0
);
template
.
setWorkStatusClosed
(
0
);
template
.
setWorkStatusPreCondition
(
0
);
template
.
setWorkStatusPreRiskAnalysis
(
0
);
template
.
setWorkStatusTimeoutCancel
(
0
);
template
.
setWorkStatusCancelled
(
0
);
template
.
setWorkStatusPreLicense
(
0
);
template
.
setWorkStatusUnknown
(
0
);
}
/**
* 从Map中获取值,如果没有则返回0
*/
private
Integer
getValueOrZero
(
Map
<
String
,
Integer
>
map
,
String
key
)
{
if
(
map
==
null
||
key
==
null
)
{
return
0
;
}
Integer
value
=
map
.
get
(
key
);
return
value
!=
null
?
value
:
0
;
}
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/hazard/service/impl/THazardWorkPlanServiceImpl.java
View file @
856f0a73
...
@@ -2443,6 +2443,8 @@ public class THazardWorkPlanServiceImpl extends SuperServiceImpl<THazardWorkPlan
...
@@ -2443,6 +2443,8 @@ public class THazardWorkPlanServiceImpl extends SuperServiceImpl<THazardWorkPlan
return
baseMapper
.
unfinishedCount
(
orgIds
);
return
baseMapper
.
unfinishedCount
(
orgIds
);
}
}
private
void
deleteDoneRecords
(
String
bizId
)
{
private
void
deleteDoneRecords
(
String
bizId
)
{
try
{
try
{
// 获取流程实例ID
// 获取流程实例ID
...
...
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/report/controller/PortController.java
View file @
856f0a73
...
@@ -350,6 +350,7 @@ public class PortController {
...
@@ -350,6 +350,7 @@ public class PortController {
accidentReportService
.
exports
(
response
,
request
,
accidentReportExportReq
);
accidentReportService
.
exports
(
response
,
request
,
accidentReportExportReq
);
}
}
@ApiOperation
(
value
=
"本单位值班记录下载"
,
notes
=
""
)
@ApiOperation
(
value
=
"本单位值班记录下载"
,
notes
=
""
)
@PostMapping
(
"/getDutyRecord"
)
@PostMapping
(
"/getDutyRecord"
)
public
void
getDutyRecord
(
@RequestBody
DutyDownload
dutyDownload
)
{
public
void
getDutyRecord
(
@RequestBody
DutyDownload
dutyDownload
)
{
...
...
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/sys/service/NewSysDictDataService.java
View file @
856f0a73
...
@@ -100,4 +100,11 @@ public interface NewSysDictDataService {
...
@@ -100,4 +100,11 @@ public interface NewSysDictDataService {
*/
*/
List
<
SysDictData
>
getDictId
(
String
dictId
);
List
<
SysDictData
>
getDictId
(
String
dictId
);
/**
* 根据字典id获取字典数据
* @param dictId 字典id
* @return
*/
List
<
String
>
getDictValuesByDictId
(
String
dictId
);
}
}
zlmy-modules/zlmy-boot/src/main/java/com/testor/module/sys/service/impl/NewSysDictDataServiceImpl.java
View file @
856f0a73
...
@@ -170,4 +170,28 @@ public class NewSysDictDataServiceImpl implements NewSysDictDataService {
...
@@ -170,4 +170,28 @@ public class NewSysDictDataServiceImpl implements NewSysDictDataService {
}
}
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
/**
* 根据字典ID获取所有字典值(优化版)
* @param dictId 字典ID
* @return 字典值列表
*/
public
List
<
String
>
getDictValuesByDictId
(
String
dictId
)
{
// 直接查询字典数据表,不需要先检查字典类型表
List
<
SysDictData
>
dictDataList
=
sysDictDataService
.
list
(
new
QueryWrapper
<
SysDictData
>()
.
eq
(
"dict_id"
,
dictId
)
.
orderByAsc
(
"tree_sort"
)
// 按排序字段排序
);
if
(
ObjectHelper
.
isNotEmpty
(
dictDataList
))
{
return
dictDataList
.
stream
()
.
map
(
SysDictData:
:
getDictValue
)
.
filter
(
value
->
value
!=
null
&&
!
value
.
trim
().
isEmpty
())
.
collect
(
Collectors
.
toList
());
}
return
Collections
.
emptyList
();
}
}
}
zlmy-modules/zlmy-boot/src/main/resources/mapper/accident/AccidentReport.xml
View file @
856f0a73
...
@@ -233,9 +233,9 @@
...
@@ -233,9 +233,9 @@
COALESCE(
COALESCE(
(SELECT COUNT(1) FROM t_accident_personnel WHERE ref_id = tar.id AND status = '0'),
(SELECT COUNT(1) FROM t_accident_personnel WHERE ref_id = tar.id AND status = '0'),
0
0
) as reportCount
,
) as reportCount
,
tar.
*
tar.
id
FROM t_accident_report tar
FROM t_accident_report tar
LEFT JOIN t_sys_dict_data sdd2 ON tar.accident_level = sdd2.dict_key
LEFT JOIN t_sys_dict_data sdd2 ON tar.accident_level = sdd2.dict_key
...
...
zlmy-modules/zlmy-boot/src/main/resources/mapper/hazard/HazardWorkPlanStatistics.xml
View file @
856f0a73
...
@@ -404,4 +404,191 @@
...
@@ -404,4 +404,191 @@
GROUP BY t.operator;
GROUP BY t.operator;
</select>
</select>
<select
id=
"selectHazardWorkPlanStatistics"
resultType=
"com.testor.module.hazard.model.dto.THazardWorkPlanStatistics"
>
SELECT
sdd.dict_value as workType,
sdd2.dict_value as workLevel,
COUNT(*) as count
FROM t_hazard_work_plan hwp
inner join t_sys_dict_data sdd on sdd.dict_data_id = hwp.work_type and sdd.dict_id = '42a87414a06a4f57b9d3ffb1907284b4'
inner join t_sys_dict_data sdd2 on sdd2.dict_data_id = hwp.work_level and sdd2.dict_id = '222842ea3bb4468bbbeaa3856a4f2731'
left join t_sys_org so on hwp.org_id = so.org_id
where hwp.status = '0' and hwp.work_type!='' and hwp.work_level !=''
<if
test=
"query.workType!=null and query.workType != ''"
>
and hwp.work_type = #{query.workType}
</if>
<if
test=
"query.workLevel!=null and query.workLevel != ''"
>
and hwp.work_level = #{query.workLevel}
</if>
<if
test=
"query.isEscalated!=null and query.isEscalated != ''"
>
and hwp.is_escalated = #{query.isEscalated}
</if>
<if
test=
"query.workStatus!=null and query.workStatus != ''"
>
and find_in_set(hwp.work_status, #{query.workStatus})
</if>
<if
test=
"query.reportStartDate!=null and query.reportStartDate != '' and query.reportEndDate!=null and query.reportEndDate != ''"
>
and hwp.create_date
<![CDATA[ >= ]]>
#{query.reportStartDate} and hwp.create_date
<![CDATA[ <= ]]>
#{query.reportEndDate}
</if>
<if
test=
"query.orgId != null and query.orgId != ''"
>
AND (
hwp.org_id = #{query.orgId}
OR so.parent_ids LIKE concat('%', #{query.orgId}, '%')
)
</if>
GROUP BY sdd.dict_value, sdd2.dict_value
order by sdd.dict_value, sdd2.dict_value
</select>
<select
id=
"workBasicDetailStatistics"
resultType=
"com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics"
>
SELECT
region.org_name as regionName,
bd.org_name as businessDeptName,
so.org_name as currentOrgName,
COUNT(*) as workCount,
SUM(CASE WHEN so.is_rent = '0' THEN 1 ELSE 0 END) as ownCount,
SUM(CASE WHEN so.is_rent = '1' THEN 1 ELSE 0 END) as stakeholderCount
FROM t_hazard_work_plan hwp
LEFT JOIN t_sys_org so ON so.org_id = hwp.org_id
LEFT JOIN t_sys_org bd ON bd.org_id = so.parent_id
LEFT JOIN t_sys_org region ON region.org_id = bd.parent_id
LEFT JOIN t_sys_org hq ON hq.org_id = region.parent_id
WHERE hwp.status = '0'
<if
test=
"query.workType!=null and query.workType != ''"
>
and hwp.work_type = #{query.workType}
</if>
<if
test=
"query.workLevel!=null and query.workLevel != ''"
>
and hwp.work_level = #{query.workLevel}
</if>
<if
test=
"query.isEscalated!=null and query.isEscalated != ''"
>
and hwp.is_escalated = #{query.isEscalated}
</if>
<if
test=
"query.workStatus!=null and query.workStatus != ''"
>
and find_in_set(hwp.work_status, #{query.workStatus})
</if>
<if
test=
"query.reportStartDate!=null and query.reportStartDate != '' and query.reportEndDate!=null and query.reportEndDate != ''"
>
and hwp.create_date
<![CDATA[ >= ]]>
#{query.reportStartDate} and hwp.create_date
<![CDATA[ <= ]]>
#{query.reportEndDate}
</if>
<if
test=
"query.orgId != null and query.orgId != ''"
>
AND (
hwp.org_id = #{query.orgId}
OR so.parent_ids LIKE concat('%', #{query.orgId}, '%')
)
</if>
GROUP BY hq.org_name, region.org_name, bd.org_name, so.org_name
ORDER BY hq.org_name, region.org_name, bd.org_name, so.org_name, workCount DESC
</select>
<select
id=
"workTypeDetailStatistics"
resultType=
"com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics"
>
SELECT
region.org_name as regionName,
bd.org_name as businessDeptName,
so.org_name as currentOrgName,
sdd_type.dict_value as workType,
COUNT(*) as workTypeCount
FROM t_hazard_work_plan hwp
LEFT JOIN t_sys_org so ON so.org_id = hwp.org_id
LEFT JOIN t_sys_org bd ON bd.org_id = so.parent_id
LEFT JOIN t_sys_org region ON region.org_id = bd.parent_id
LEFT JOIN t_sys_org hq ON hq.org_id = region.parent_id
LEFT JOIN t_sys_dict_data sdd_type ON sdd_type.dict_data_id = hwp.work_type
AND sdd_type.dict_id = '42a87414a06a4f57b9d3ffb1907284b4'
WHERE hwp.status = '0'
<if
test=
"query.workLevel!=null and query.workLevel != ''"
>
and hwp.work_level = #{query.workLevel}
</if>
<if
test=
"query.isEscalated!=null and query.isEscalated != ''"
>
and hwp.is_escalated = #{query.isEscalated}
</if>
<if
test=
"query.workStatus!=null and query.workStatus != ''"
>
and find_in_set(hwp.work_status, #{query.workStatus})
</if>
<if
test=
"query.reportStartDate!=null and query.reportStartDate != '' and query.reportEndDate!=null and query.reportEndDate != ''"
>
and hwp.create_date
<![CDATA[ >= ]]>
#{query.reportStartDate} and hwp.create_date
<![CDATA[ <= ]]>
#{query.reportEndDate}
</if>
<if
test=
"query.orgId != null and query.orgId != ''"
>
AND (
hwp.org_id = #{query.orgId}
OR so.parent_ids LIKE concat('%', #{query.orgId}, '%')
)
</if>
GROUP BY hq.org_name, region.org_name, bd.org_name, so.org_name, sdd_type.dict_value
ORDER BY hq.org_name, region.org_name, bd.org_name, so.org_name
</select>
<select
id=
"workLevelDetailStatistics"
resultType=
"com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics"
>
SELECT
region.org_name as regionName,
bd.org_name as businessDeptName,
so.org_name as currentOrgName,
sdd_level.dict_value as workLevel,
COUNT(*) as workLevelCount
FROM t_hazard_work_plan hwp
LEFT JOIN t_sys_org so ON so.org_id = hwp.org_id
LEFT JOIN t_sys_org bd ON bd.org_id = so.parent_id
LEFT JOIN t_sys_org region ON region.org_id = bd.parent_id
LEFT JOIN t_sys_org hq ON hq.org_id = region.parent_id
LEFT JOIN t_sys_dict_data sdd_level ON sdd_level.dict_data_id = hwp.work_level
AND sdd_level.dict_id = '222842ea3bb4468bbbeaa3856a4f2731'
WHERE hwp.status = '0'
<if
test=
"query.workType!=null and query.workType != ''"
>
and hwp.work_type = #{query.workType}
</if>
<if
test=
"query.isEscalated!=null and query.isEscalated != ''"
>
and hwp.is_escalated = #{query.isEscalated}
</if>
<if
test=
"query.workStatus!=null and query.workStatus != ''"
>
and find_in_set(hwp.work_status, #{query.workStatus})
</if>
<if
test=
"query.reportStartDate!=null and query.reportStartDate != '' and query.reportEndDate!=null and query.reportEndDate != ''"
>
and hwp.create_date
<![CDATA[ >= ]]>
#{query.reportStartDate} and hwp.create_date
<![CDATA[ <= ]]>
#{query.reportEndDate}
</if>
<if
test=
"query.orgId != null and query.orgId != ''"
>
AND (
hwp.org_id = #{query.orgId}
OR so.parent_ids LIKE concat('%', #{query.orgId}, '%')
)
</if>
GROUP BY hq.org_name, region.org_name, bd.org_name, so.org_name, sdd_level.dict_value
ORDER BY hq.org_name, region.org_name, bd.org_name, so.org_name
</select>
<select
id=
"workStatusDetailStatistics"
resultType=
"com.testor.module.hazard.model.dto.THazardWorkPlanDetailStatistics"
>
-- 按危险作业状态统计
SELECT
region.org_name as regionName,
bd.org_name as businessDeptName,
so.org_name as currentOrgName,
sdd_status.dict_value as workStatus,
COUNT(*) as workStatusCount
FROM t_hazard_work_plan hwp
LEFT JOIN t_sys_org so ON so.org_id = hwp.org_id
LEFT JOIN t_sys_org bd ON bd.org_id = so.parent_id
LEFT JOIN t_sys_org region ON region.org_id = bd.parent_id
LEFT JOIN t_sys_org hq ON hq.org_id = region.parent_id
LEFT JOIN t_sys_dict_data sdd_status ON sdd_status.dict_key = hwp.work_status
AND sdd_status.dict_id = '60c11c98359b4cd09b7220202abf9e0b'
WHERE hwp.status = '0'
<if
test=
"query.workType!=null and query.workType != ''"
>
and hwp.work_type = #{query.workType}
</if>
<if
test=
"query.workLevel!=null and query.workLevel != ''"
>
and hwp.work_level = #{query.workLevel}
</if>
<if
test=
"query.isEscalated!=null and query.isEscalated != ''"
>
and hwp.is_escalated = #{query.isEscalated}
</if>
<if
test=
"query.reportStartDate!=null and query.reportStartDate != '' and query.reportEndDate!=null and query.reportEndDate != ''"
>
and hwp.create_date
<![CDATA[ >= ]]>
#{query.reportStartDate} and hwp.create_date
<![CDATA[ <= ]]>
#{query.reportEndDate}
</if>
<if
test=
"query.orgId != null and query.orgId != ''"
>
AND (
hwp.org_id = #{query.orgId}
OR so.parent_ids LIKE concat('%', #{query.orgId}, '%')
)
</if>
GROUP BY hq.org_name, region.org_name, bd.org_name, so.org_name, sdd_status.dict_value
ORDER BY hq.org_name, region.org_name, bd.org_name, so.org_name, workStatusCount DESC
</select>
</mapper>
</mapper>
\ No newline at end of file
zlmy-modules/zlmy-boot/src/main/resources/mapper/hazard/THazardWorkPlan.xml
View file @
856f0a73
...
@@ -181,4 +181,6 @@
...
@@ -181,4 +181,6 @@
</if>
</if>
</select>
</select>
</mapper>
</mapper>
\ 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