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
5c402bbc
Commit
5c402bbc
authored
Apr 18, 2023
by
chenzhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
水源模板功能优化
parent
4fbb589e
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1327 additions
and
10 deletions
+1327
-10
WaterBaseResourceDto.java
...amos/boot/module/common/api/dto/WaterBaseResourceDto.java
+213
-0
WaterExcelCraneDto.java
...n/amos/boot/module/common/api/dto/WaterExcelCraneDto.java
+81
-0
WaterExcelHydrantDto.java
...amos/boot/module/common/api/dto/WaterExcelHydrantDto.java
+110
-0
WaterExcelIndustryPoolDto.java
...boot/module/common/api/dto/WaterExcelIndustryPoolDto.java
+84
-0
WaterExcelNaturalDto.java
...amos/boot/module/common/api/dto/WaterExcelNaturalDto.java
+84
-0
WaterExcelPoolDto.java
...in/amos/boot/module/common/api/dto/WaterExcelPoolDto.java
+59
-0
WaterExcelWaterTankDto.java
...os/boot/module/common/api/dto/WaterExcelWaterTankDto.java
+54
-0
ExcelDynamicSelect.java
...amos/boot/module/common/api/excel/ExcelDynamicSelect.java
+9
-0
ExcelSelected.java
...join/amos/boot/module/common/api/excel/ExcelSelected.java
+34
-0
ExcelSelectedResolve.java
...os/boot/module/common/api/excel/ExcelSelectedResolve.java
+59
-0
ExcelUtil.java
.../yeejoin/amos/boot/module/common/api/excel/ExcelUtil.java
+34
-0
ExplicitConstraint.java
...amos/boot/module/common/api/excel/ExplicitConstraint.java
+9
-1
SelectDataSheetWriteHandler.java
.../module/common/api/excel/SelectDataSheetWriteHandler.java
+174
-0
SelectedSheetWriteHandler.java
...ot/module/common/api/excel/SelectedSheetWriteHandler.java
+52
-0
SpringContextUtil.java
.../amos/boot/module/common/api/excel/SpringContextUtil.java
+33
-0
TemplateCellWriteHandlerDate1.java
...odule/common/api/excel/TemplateCellWriteHandlerDate1.java
+117
-0
TitleHandler.java
...ejoin/amos/boot/module/common/api/excel/TitleHandler.java
+51
-0
ExcelController.java
.../amos/boot/module/jcs/biz/controller/ExcelController.java
+67
-9
PlanTaskController.java
...n/amos/patrol/business/controller/PlanTaskController.java
+3
-0
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterBaseResourceDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterBaseResourceDto"
,
description
=
"水资源"
)
public
class
WaterBaseResourceDto
extends
BaseDto
{
@ExcelIgnore
@ApiModelProperty
(
value
=
"机构/部门名称"
)
private
String
bizOrgName
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"机构编码"
)
private
String
bizOrgCode
;
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
value
=
"名称"
,
index
=
0
)
@ApiModelProperty
(
value
=
"资源名称"
)
private
String
name
;
@ExcelProperty
(
value
=
"地址"
,
index
=
1
)
@ApiModelProperty
(
value
=
"地址"
)
private
String
address
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"资源类型(消火栓:hydrant、消防水鹤:crane、天然水源:natural、消防水池:pool)"
)
private
String
resourceType
;
@ExplicitConstraint
(
type
=
"XFSYLX"
,
indexNum
=
2
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"资源类型"
,
index
=
2
)
@ApiModelProperty
(
value
=
"资源类型名称(消火栓、消防水鹤、天然水源、消防水池)"
)
private
String
resourceTypeName
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"所在建筑id"
)
private
Long
belongBuildingId
;
@ExplicitConstraint
(
indexNum
=
3
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getWaterBuildingList"
)
@ExcelProperty
(
value
=
"所在建筑"
,
index
=
3
)
@ApiModelProperty
(
value
=
"所在建筑"
)
private
String
belongBuilding
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"所属消防系统id"
)
private
Long
belongFightingSystemId
;
@ExplicitConstraint
(
indexNum
=
4
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getFireSystemList"
)
@ExcelProperty
(
value
=
"所属消防系统"
,
index
=
4
)
@ApiModelProperty
(
value
=
"所属消防系统"
)
private
String
belongFightingSystem
;
@ExcelIgnore
@ApiModelProperty
(
"设施定义id"
)
private
Long
equipId
;
@ApiModelProperty
(
"设施定义名称"
)
@ExcelProperty
(
value
=
"设施定义名称"
,
index
=
5
)
@ExplicitConstraint
(
indexNum
=
5
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getEquipDefinition"
)
private
String
equipName
;
@ExcelIgnore
@ApiModelProperty
(
"设施分类id"
)
private
Long
equipCategoryId
;
@ApiModelProperty
(
"维保周期"
)
@ExcelProperty
(
value
=
"维保周期(月)"
,
index
=
6
)
private
String
maintenancePeriod
;
@ExcelProperty
(
value
=
"建造日期"
,
index
=
7
)
@ApiModelProperty
(
value
=
"建造日期"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
buildDate
;
@ExcelProperty
(
value
=
"启用日期"
,
index
=
8
)
@ApiModelProperty
(
value
=
"启用日期"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
enableDate
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"管理单位id"
)
private
Long
managementUnitId
;
@ExplicitConstraint
(
indexNum
=
9
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getWaterCompanyList"
)
@ExcelProperty
(
value
=
"管理单位"
,
index
=
9
)
@ApiModelProperty
(
value
=
"管理单位"
)
private
String
managementUnit
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"维保单位id"
)
private
Long
maintenanceUnitId
;
@ExplicitConstraint
(
indexNum
=
10
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getCompanyList"
)
@ExcelProperty
(
value
=
"维保单位"
,
index
=
10
)
@ApiModelProperty
(
value
=
"维保单位"
)
private
String
maintenanceUnit
;
@ExplicitConstraint
(
indexNum
=
11
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getContactUser"
)
@ExcelProperty
(
value
=
"联系人姓名"
,
index
=
11
)
@ApiModelProperty
(
value
=
"联系人姓名"
)
private
String
contactUser
;
/**
* 联系人姓名id
*/
@ExcelIgnore
@TableField
(
"contact_user_id"
)
private
String
contactUserId
;
@ExcelProperty
(
value
=
"联系人电话"
,
index
=
12
)
@ApiModelProperty
(
value
=
"联系人电话"
)
private
String
contactPhone
;
@ApiModelProperty
(
value
=
"经度"
)
@ExcelProperty
(
value
=
"经度"
,
index
=
13
)
private
Double
longitude
;
@ApiModelProperty
(
value
=
"纬度"
)
@ExcelProperty
(
value
=
"纬度"
,
index
=
14
)
private
Double
latitude
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"是否有物联参数(1有,0没有)"
)
private
Boolean
isIot
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消防救援机构_通用唯一识别码"
)
private
String
rescueOrgCode
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"行政区划代码"
)
private
String
administrativeCode
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"更新人员"
)
private
String
recUserName
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"组织机构代码"
)
private
String
orgCode
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"资源id"
)
private
Long
resourceId
;
// 物联参数改为动态加载,原先字段作废,字段做隐藏
@ExcelIgnore
@ApiModelProperty
(
value
=
"储水量容积物联编码"
)
private
String
iotWaterStorage
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"流量物联编码"
)
private
String
iotFlowRate
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"状态物联编码"
)
private
String
iotStatus
;
// BUG 2920 管网压力字段冗余 2021-09-18 陈召
@ExcelIgnore
@ApiModelProperty
(
value
=
"管网压力物联编码"
)
private
String
iotPipePressure
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"物联参数"
)
private
Map
<
String
,
Object
>
waterResourceIotDto
;
// BUG 2935 优化项 分类从93060000 取得字典数据 by kongfm 2021-09-17
@ApiModelProperty
(
"设施分类名称"
)
@ExcelIgnore
private
String
equipCategoryName
;
@ApiModelProperty
(
"设施分类编码"
)
@ExcelIgnore
private
String
equipCategoryCode
;
@ApiModelProperty
(
"设施编码"
)
@ExcelIgnore
private
String
equipCode
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"附件"
)
@TableField
(
exist
=
false
)
private
Map
<
String
,
List
<
AttachmentDto
>>
attachments
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterExcelCraneDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterExcelCraneDto"
,
description
=
"消防水鹤"
)
public
class
WaterExcelCraneDto
extends
WaterBaseResourceDto
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
value
=
"高度(cm)"
,
index
=
15
)
@ApiModelProperty
(
value
=
"高度(cm)"
)
private
Float
height
;
@ExcelProperty
(
value
=
"供水单位名称"
,
index
=
16
)
@ApiModelProperty
(
value
=
"供水单位名称"
)
private
String
waterSupplyName
;
@ExcelProperty
(
value
=
"所属管网"
,
index
=
17
)
@ApiModelProperty
(
value
=
"所属管网"
)
private
String
pipeNetwork
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消防给水管网形式类型代码"
)
private
String
pipeTypeCode
;
@ExplicitConstraint
(
type
=
"XFJSGW"
,
indexNum
=
18
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"消防给水管网形式"
,
index
=
18
)
@ApiModelProperty
(
value
=
"消防给水管网形式"
)
private
String
pipeTypeName
;
@ExcelProperty
(
value
=
"管网直径(cm)"
,
index
=
19
)
@ApiModelProperty
(
value
=
"管网直径(cm)"
)
private
Float
pipeDiameter
;
@ExcelProperty
(
value
=
"加水车道数量(个)"
,
index
=
20
)
@ApiModelProperty
(
value
=
"加水车道数量(个)"
)
private
Integer
waterfillingLaneNum
;
@ExcelProperty
(
value
=
"进水管直径(cm)"
,
index
=
21
)
@ApiModelProperty
(
value
=
"进水管直径(cm)"
)
private
Float
inletPipeDiameter
;
@ExcelProperty
(
value
=
"出水管直径(cm)"
,
index
=
22
)
@ApiModelProperty
(
value
=
"出水管直径(cm)"
)
private
Float
outletPipeDiameter
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"水源可用状态类别代码"
)
private
String
statusCode
;
@ExplicitConstraint
(
type
=
"SYZT"
,
indexNum
=
23
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"水源可用状态"
,
index
=
23
)
@ApiModelProperty
(
value
=
"水源可用状态类别名称"
)
private
String
status
;
@ExcelProperty
(
value
=
"所属路段"
,
index
=
24
)
@ApiModelProperty
(
value
=
"所属路段"
)
private
String
section
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterExcelHydrantDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterExcelHydrantDto"
,
description
=
"消火栓"
)
public
class
WaterExcelHydrantDto
extends
WaterBaseResourceDto
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
value
=
"所属管网"
,
index
=
24
)
@ApiModelProperty
(
value
=
"所属管网"
)
private
String
pipeNetwork
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消防给水管网形式类型代码"
)
private
String
pipeTypeCode
;
@ExplicitConstraint
(
type
=
"XFJSGW"
,
indexNum
=
25
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"消防给水管网形式"
,
index
=
25
)
@ApiModelProperty
(
value
=
"消防给水管网形式"
)
private
String
pipeTypeName
;
@ExcelProperty
(
value
=
"管网直径(cm)"
,
index
=
15
)
@ApiModelProperty
(
value
=
"管网直径(cm)"
)
private
Float
pipeDiameter
;
@ExplicitConstraint
(
type
=
"XHSXTLX"
,
indexNum
=
16
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"消火栓系统类型"
,
index
=
16
)
@ApiModelProperty
(
value
=
"消火栓系统类型"
)
private
String
systemType
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消火栓系统类型code"
)
private
String
systemTypeCode
;
@ExcelProperty
(
value
=
"消火栓类型"
,
index
=
17
)
@ExplicitConstraint
(
type
=
"HSLX"
,
indexNum
=
17
,
sourceClass
=
CommonExplicitConstraint
.
class
)
@ApiModelProperty
(
value
=
"消火栓类型"
)
@TableField
(
exist
=
false
)
private
String
hydrantType
;
@ExplicitConstraint
(
type
=
"XHSFZXS"
,
indexNum
=
18
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"消火栓放置形式"
,
index
=
18
)
@ApiModelProperty
(
value
=
"消火栓放置形式"
)
private
String
placeForm
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消火栓放置形式code"
)
private
String
placeFormCode
;
@ExplicitConstraint
(
type
=
"XFSDJK"
,
indexNum
=
21
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"消防水带接口"
,
index
=
21
)
@ApiModelProperty
(
value
=
"消防水带接口"
)
private
String
hoseConnection
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消防水带接口code"
)
private
String
hoseConnectionCode
;
@ExplicitConstraint
(
type
=
"QSXS"
,
indexNum
=
20
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"取水形式"
,
index
=
20
)
@ApiModelProperty
(
value
=
"取水形式"
)
private
String
intakeForm
;
@ExcelProperty
(
value
=
"供水单位名称"
,
index
=
19
)
@ApiModelProperty
(
value
=
"供水单位名称"
)
private
String
waterSupplyName
;
@ExcelProperty
(
value
=
"道路路口路段"
,
index
=
22
)
@ApiModelProperty
(
value
=
"道路路口路段简要情况"
)
private
String
roadJunctionInfo
;
@ExcelProperty
(
value
=
"消防设施状况"
,
index
=
23
)
@ApiModelProperty
(
value
=
"消防设施状况分类"
)
private
String
facilitiesCategory
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消防设施状况分类code"
)
private
String
facilitiesCategoryCode
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterExcelIndustryPoolDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterExcelIndustryPoolDto"
,
description
=
"工业水池"
)
public
class
WaterExcelIndustryPoolDto
extends
WaterBaseResourceDto
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"水源可用状态类别代码"
)
private
String
statusCode
;
@ExplicitConstraint
(
type
=
"SYZT"
,
indexNum
=
15
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"水源可用状态"
,
index
=
15
)
@ApiModelProperty
(
value
=
"水源可用状态类别名称"
)
private
String
status
;
@ExcelProperty
(
value
=
"容积(m³)"
,
index
=
16
)
@ApiModelProperty
(
value
=
"容积(m³)"
)
private
Float
volume
;
@ExplicitConstraint
(
type
=
"QSXS"
,
indexNum
=
17
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"取水形式"
,
index
=
17
)
@ApiModelProperty
(
value
=
"取水形式"
)
private
String
intakeForm
;
@ExcelProperty
(
value
=
"取水高度(cm)"
,
index
=
18
)
@ApiModelProperty
(
value
=
"取水高度(cm)"
)
private
Float
intakeHeight
;
@ExcelProperty
(
value
=
"水源标高差(cm)"
,
index
=
19
)
@ApiModelProperty
(
value
=
"水源标高差(cm)"
)
private
Float
elevationDifference
;
@ExcelProperty
(
value
=
"所属路段"
,
index
=
20
)
@ApiModelProperty
(
value
=
"所属路段"
)
private
String
section
;
@ExcelProperty
(
value
=
"停车位置"
,
index
=
21
)
@ApiModelProperty
(
value
=
"停车位置"
)
private
String
parkingPosition
;
@ExcelProperty
(
value
=
"停车数量(个)"
,
index
=
22
)
@ApiModelProperty
(
value
=
"停车数量(个)"
)
private
int
parkingNum
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"消防给水管网形式类型代码"
)
private
String
pipeTypeCode
;
@ExplicitConstraint
(
type
=
"XFJSGW"
,
indexNum
=
23
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"消防给水管网形式"
,
index
=
23
)
@ApiModelProperty
(
value
=
"消防给水管网形式"
)
private
String
pipeTypeName
;
@ExcelProperty
(
value
=
"供水单位名称"
,
index
=
24
)
@ApiModelProperty
(
value
=
"供水单位名称"
)
private
String
waterSupplyName
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterExcelNaturalDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterExcelNaturalDto"
,
description
=
"天然水源"
)
public
class
WaterExcelNaturalDto
extends
WaterBaseResourceDto
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
value
=
"高度(cm)"
,
index
=
15
)
@ApiModelProperty
(
value
=
"高度(cm)"
)
private
Float
height
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"水源类型代码"
)
private
String
typeCode
;
@ExplicitConstraint
(
type
=
"TRSYLX"
,
indexNum
=
16
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"水源类型"
,
index
=
16
)
@ApiModelProperty
(
value
=
"水源类型"
)
private
String
type
;
@ExcelProperty
(
value
=
"容积(m³)"
,
index
=
17
)
@ApiModelProperty
(
value
=
"容积(m³)"
)
private
Float
volume
;
@ExcelProperty
(
value
=
"面积(㎡)"
,
index
=
18
)
@ApiModelProperty
(
value
=
"面积(㎡)"
)
private
Float
area
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"水源可用状态类别代码"
)
private
String
statusCode
;
@ExplicitConstraint
(
type
=
"SYZT"
,
indexNum
=
19
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"水源可用状态"
,
index
=
19
)
@ApiModelProperty
(
value
=
"水源可用状态类别名称"
)
private
String
status
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"有无枯水期"
)
private
Boolean
hasDrySeason
;
@ExplicitConstraint
(
indexNum
=
20
,
source
=
{
"有"
,
"无"
})
// 固定下拉内容
@ExcelProperty
(
value
=
"有无枯水期"
,
index
=
20
)
@ApiModelProperty
(
value
=
"有无枯水期"
)
private
String
hasDrySeasonType
;
@ExcelProperty
(
value
=
"水质情况"
,
index
=
21
)
@ApiModelProperty
(
value
=
"水质情况"
)
private
String
qualitySituationInfo
;
@ExcelProperty
(
value
=
"四季变化简要情况"
,
index
=
22
)
@ApiModelProperty
(
value
=
"四季变化简要情况"
)
private
String
seasonChangeInfo
;
@ExcelProperty
(
value
=
"枯水期跨度简要情况"
,
index
=
23
)
@ApiModelProperty
(
value
=
"枯水期跨度简要情况"
)
private
String
dryPeriodSpan
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterExcelPoolDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterExcelPoolDto"
,
description
=
"消防水池"
)
public
class
WaterExcelPoolDto
extends
WaterBaseResourceDto
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExplicitConstraint
(
type
=
"QSXS"
,
indexNum
=
15
,
sourceClass
=
CommonExplicitConstraint
.
class
)
// 动态下拉内容
@ExcelProperty
(
value
=
"取水形式"
,
index
=
15
)
@ApiModelProperty
(
value
=
"取水形式"
)
private
String
intakeForm
;
@ExcelProperty
(
value
=
"容积(m³)"
,
index
=
16
)
@ApiModelProperty
(
value
=
"容积(m³)"
)
private
Float
volume
;
@ExcelProperty
(
value
=
"最低报警水位(m)"
,
index
=
17
)
@ApiModelProperty
(
value
=
"最低报警水位(m)"
)
private
Float
minWaterLevel
;
@ExcelProperty
(
value
=
"最高报警水位(m)"
,
index
=
18
)
@ApiModelProperty
(
value
=
"最高报警水位(m)"
)
private
Float
maxWaterLevel
;
@ExcelIgnore
@ApiModelProperty
(
"水池液位显示装置id"
)
private
String
levelDeviceId
;
@ApiModelProperty
(
"水池液位显示装置名称"
)
@ExcelProperty
(
value
=
"水池液位显示装置"
,
index
=
19
)
@ExplicitConstraint
(
indexNum
=
19
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getListByEquipmentCode"
)
private
String
levelDeviceName
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/WaterExcelWaterTankDto.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author system_generator
* @date 2021-06-29
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterExcelWaterTankDto"
,
description
=
"消防水箱"
)
public
class
WaterExcelWaterTankDto
extends
WaterBaseResourceDto
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
value
=
"容积(m³)"
,
index
=
18
)
@ApiModelProperty
(
value
=
"容积(m³)"
)
private
Float
volume
;
@ExcelProperty
(
value
=
"最低报警水位(m)"
,
index
=
15
)
@ApiModelProperty
(
value
=
"最低报警水位(m)"
)
private
Float
minWaterLevel
;
@ExcelProperty
(
value
=
"最高报警水位(m)"
,
index
=
16
)
@ApiModelProperty
(
value
=
"最高报警水位(m)"
)
private
Float
maxWaterLevel
;
@ExcelIgnore
@ApiModelProperty
(
"水池液位显示装置id"
)
private
String
levelDeviceId
;
@ApiModelProperty
(
"水池液位显示装置名称"
)
@ExcelProperty
(
value
=
"水池液位显示装置"
,
index
=
17
)
@ExplicitConstraint
(
indexNum
=
17
,
sourceClass
=
CommonExplicitConstraint
.
class
,
method
=
"getListByEquipmentCode"
)
private
String
levelDeviceName
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/ExcelDynamicSelect.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
public
interface
ExcelDynamicSelect
{
/**
* 获取动态生成的下拉框可选数据
* @return 动态生成的下拉框可选数据
*/
String
[]
getSource
();
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/ExcelSelected.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 标注导出的列为下拉框类型,并为下拉框设置内容
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
FIELD
)
public
@interface
ExcelSelected
{
/**
* 固定下拉内容
*/
String
[]
source
()
default
{};
/**
* 动态下拉内容
*/
Class
<?
extends
ExcelDynamicSelect
>[]
sourceClass
()
default
{};
/**
* 设置下拉框的起始行,默认为第二行
*/
int
firstRow
()
default
1
;
/**
* 设置下拉框的结束行,默认为最后一行
*/
int
lastRow
()
default
0x10000
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/ExcelSelectedResolve.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
/**
* @program: mypro
* @description: todo
* @author: xuYao2
* @create: 2022-07-22 13:35
**/
@Data
@Slf4j
public
class
ExcelSelectedResolve
{
/**
* 下拉内容
*/
private
String
[]
source
;
/**
* 设置下拉框的起始行,默认为第二行
*/
private
int
firstRow
;
/**
* 设置下拉框的结束行,默认为最后一行
*/
private
int
lastRow
;
public
String
[]
resolveSelectedSource
(
ExplicitConstraint
excelSelected
,
DataSources
dataDictionaryMapper
)
{
if
(
excelSelected
==
null
)
{
return
null
;
}
// 获取固定下拉框的内容
String
[]
source
=
excelSelected
.
source
();
if
(
source
.
length
>
0
)
{
return
source
;
}
// 获取动态下拉框的内容
Class
<?
extends
ExplicitInterface
>[]
classes
=
excelSelected
.
sourceClass
();
if
(
classes
.
length
>
0
)
{
try
{
ExplicitInterface
explicitInterface
=
classes
[
0
].
newInstance
();
String
[]
dynamicSelectSource
=
explicitInterface
.
source
(
excelSelected
.
type
(),
excelSelected
.
method
(),
dataDictionaryMapper
);
if
(
dynamicSelectSource
!=
null
&&
dynamicSelectSource
.
length
>
0
)
{
return
dynamicSelectSource
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"解析动态下拉框数据异常"
,
e
);
}
}
return
null
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/ExcelUtil.java
View file @
5c402bbc
...
@@ -418,5 +418,39 @@ public class ExcelUtil {
...
@@ -418,5 +418,39 @@ public class ExcelUtil {
}
}
}
}
/**
* 解析表头类中的下拉注解
* @param head 表头类
* @param <T> 泛型
* @return Map<下拉框列索引, 下拉框内容> map
*/
public
static
<
T
>
Map
<
Integer
,
ExcelSelectedResolve
>
resolveSelectedAnnotation
(
Class
<
T
>
head
,
DataSources
dataDictionaryMapper
)
{
Map
<
Integer
,
ExcelSelectedResolve
>
selectedMap
=
new
HashMap
<>();
// getDeclaredFields(): 返回全部声明的属性;getFields(): 返回public类型的属性
Field
[]
fields
=
head
.
getDeclaredFields
();
for
(
int
i
=
0
;
i
<
fields
.
length
;
i
++){
Field
field
=
fields
[
i
];
// 解析注解信息
ExplicitConstraint
selected
=
field
.
getAnnotation
(
ExplicitConstraint
.
class
);
ExcelProperty
property
=
field
.
getAnnotation
(
ExcelProperty
.
class
);
if
(
selected
!=
null
)
{
ExcelSelectedResolve
excelSelectedResolve
=
new
ExcelSelectedResolve
();
// 处理下拉框内容
String
[]
source
=
excelSelectedResolve
.
resolveSelectedSource
(
selected
,
dataDictionaryMapper
);
if
(
source
!=
null
&&
source
.
length
>
0
){
excelSelectedResolve
.
setSource
(
source
);
excelSelectedResolve
.
setFirstRow
(
selected
.
firstRow
());
excelSelectedResolve
.
setLastRow
(
selected
.
lastRow
());
if
(
property
!=
null
&&
property
.
index
()
>=
0
){
selectedMap
.
put
(
property
.
index
(),
excelSelectedResolve
);
}
else
{
selectedMap
.
put
(
i
,
excelSelectedResolve
);
}
}
}
}
return
selectedMap
;
}
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/ExplicitConstraint.java
View file @
5c402bbc
...
@@ -18,5 +18,13 @@ public @interface ExplicitConstraint {
...
@@ -18,5 +18,13 @@ public @interface ExplicitConstraint {
String
type
()
default
""
;
String
type
()
default
""
;
//接口查询
//接口查询
String
method
()
default
""
;
String
method
()
default
""
;
/**
* 设置下拉框的起始行,默认为第二行
*/
int
firstRow
()
default
1
;
/**
* 设置下拉框的结束行,默认为最后一行
*/
int
lastRow
()
default
0x10000
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/SelectDataSheetWriteHandler.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
com.alibaba.excel.write.handler.SheetWriteHandler
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
import
org.apache.poi.hssf.usermodel.HSSFDataValidation
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.apache.poi.xssf.usermodel.XSSFDataValidation
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author: CUI
* @date: 2022-05-27 9:11
*/
public
class
SelectDataSheetWriteHandler
implements
SheetWriteHandler
{
private
Map
<
Integer
,
String
[]>
selectMap
;
private
static
final
Integer
LIMIT_NUMBER
=
0
;
private
char
[]
alphabet
=
new
char
[]{
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
,
'G'
,
'H'
,
'I'
,
'J'
,
'K'
,
'L'
,
'M'
,
'N'
,
'O'
,
'P'
,
'Q'
,
'R'
,
'S'
,
'T'
,
'U'
,
'V'
,
'W'
,
'X'
,
'Y'
,
'Z'
};
public
SelectDataSheetWriteHandler
(
Map
<
Integer
,
String
[]>
selectMap
)
{
this
.
selectMap
=
selectMap
;
}
@Override
public
void
beforeSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
}
@Override
public
void
afterSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
if
(
selectMap
==
null
||
selectMap
.
size
()
==
0
)
{
return
;
}
// 需要设置下拉框的sheet页
Sheet
curSheet
=
writeSheetHolder
.
getSheet
();
DataValidationHelper
helper
=
curSheet
.
getDataValidationHelper
();
String
dictSheetName
=
"sheet2"
;
Workbook
workbook
=
writeWorkbookHolder
.
getWorkbook
();
// 数据字典的sheet页
Sheet
dictSheet
=
workbook
.
createSheet
(
dictSheetName
);
// 隐藏数据字典的sheet页
workbook
.
setSheetHidden
(
workbook
.
getSheetIndex
(
dictSheet
),
true
);
// k 为存在下拉数据集的单元格下表 v为下拉数据集
selectMap
.
forEach
((
k
,
v
)
->
{
// 设置下拉单元格的首行 末行 首列 末列
CellRangeAddressList
rangeList
=
new
CellRangeAddressList
(
1
,
65536
,
k
,
k
);
// 如果下拉值总数大于100,则使用一个新sheet存储,避免生成的导入模板下拉值获取不到
if
(
v
.
length
>
LIMIT_NUMBER
)
{
//定义sheet的名称
//1.创建一个隐藏的sheet 名称为 hidden + k
String
sheetName
=
"hidden"
+
k
;
// Workbook workbook = writeWorkbookHolder.getWorkbook();
Sheet
hiddenSheet
=
workbook
.
createSheet
(
sheetName
);
for
(
int
i
=
0
,
length
=
v
.
length
;
i
<
length
;
i
++)
{
// 开始的行数i,列数k
hiddenSheet
.
createRow
(
i
).
createCell
(
k
).
setCellValue
(
v
[
i
]);
}
Name
category1Name
=
workbook
.
createName
();
category1Name
.
setNameName
(
sheetName
);
String
excelLine
=
getExcelLine
(
k
);
// 下拉框数据来源 eg:字典sheet!$B1:$B2
String
refers
=
dictSheetName
+
"!$"
+
excelLine
+
"$1:$"
+
excelLine
+
"$"
+
(
v
.
length
+
1
);
// 创建可被其他单元格引用的名称
Name
name
=
workbook
.
createName
();
// 设置名称的名字
name
.
setNameName
(
"dict"
+
k
);
// 设置公式
name
.
setRefersToFormula
(
refers
);
// 设置引用约束
DataValidationConstraint
constraint
=
helper
.
createFormulaListConstraint
(
"dict"
+
k
);
// 设置约束
DataValidation
validation
=
helper
.
createValidation
(
constraint
,
rangeList
);
if
(
validation
instanceof
HSSFDataValidation
)
{
validation
.
setSuppressDropDownArrow
(
false
);
}
else
{
validation
.
setSuppressDropDownArrow
(
true
);
validation
.
setShowErrorBox
(
true
);
}
// 阻止输入非下拉框的值
validation
.
setErrorStyle
(
DataValidation
.
ErrorStyle
.
STOP
);
validation
.
createErrorBox
(
"提示"
,
"此值与单元格定义格式不一致!"
);
// 添加下拉框约束
writeSheetHolder
.
getSheet
().
addValidationData
(
validation
);
}
});
/* for (Map.Entry<Integer, String[]> entry : selectMap.entrySet()) {
// 设置下拉单元格的首行、末行、首列、末列
CellRangeAddressList rangeAddressList = new CellRangeAddressList(1, 65533, entry.getKey(), entry.getKey());
int rowLen = entry.getValue().length;
// 设置字典sheet页的值 每一列一个字典项
for (int i = 0; i < rowLen; i++) {
Row row = dictSheet.getRow(i);
if (row == null) {
row = dictSheet.createRow(i);
}
row.createCell(entry.getKey()).setCellValue(entry.getValue()[i]);
}
String excelColumn = getExcelColumn(entry.getKey());
// 下拉框数据来源 eg:字典sheet!$B1:$B2
String refers = dictSheetName + "!$" + excelColumn + "$1:$" + excelColumn + "$" + rowLen;
// 创建可被其他单元格引用的名称
Name name = workbook.createName();
// 设置名称的名字
name.setNameName("dict" + entry.getKey());
// 设置公式
name.setRefersToFormula(refers);
// 设置引用约束
DataValidationConstraint constraint = helper.createFormulaListConstraint("dict" + entry.getKey());
// 设置约束
DataValidation validation = helper.createValidation(constraint, rangeAddressList);
if (validation instanceof HSSFDataValidation) {
validation.setSuppressDropDownArrow(false);
} else {
validation.setSuppressDropDownArrow(true);
validation.setShowErrorBox(true);
}
// 阻止输入非下拉框的值
validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
validation.createErrorBox("提示", "此值与单元格定义格式不一致!");
// 添加下拉框约束
writeSheetHolder.getSheet().addValidationData(validation);
}*/
}
/**
* 将数字列转化成为字母列
* @param num
* @author: CUI
* @date: 2022-05-27 9:12
* @return: java.lang.String
*/
private
String
getExcelColumn
(
int
num
)
{
String
column
=
""
;
int
len
=
alphabet
.
length
-
1
;
int
first
=
num
/
len
;
int
second
=
num
%
len
;
if
(
num
<=
len
)
{
column
=
alphabet
[
num
]
+
""
;
}
else
{
column
=
alphabet
[
first
-
1
]
+
""
;
if
(
second
==
0
)
{
column
=
column
+
alphabet
[
len
]
+
""
;
}
else
{
column
=
column
+
alphabet
[
second
-
1
]
+
""
;
}
}
return
column
;
}
private
String
getExcelLine
(
int
num
)
{
String
line
=
""
;
int
first
=
num
/
26
;
int
second
=
num
%
26
;
if
(
first
>
0
)
{
line
=
(
char
)
(
'A'
+
first
-
1
)
+
""
;
}
line
+=
(
char
)
(
'A'
+
second
)
+
""
;
return
line
;
}
}
\ No newline at end of file
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/SelectedSheetWriteHandler.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
com.alibaba.excel.write.handler.SheetWriteHandler
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
org.apache.poi.ss.usermodel.DataValidation
;
import
org.apache.poi.ss.usermodel.DataValidationConstraint
;
import
org.apache.poi.ss.usermodel.DataValidationHelper
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
java.util.Map
;
/**
* @program: mypro
* @description: todo
* @create: 2022-07-22 13:36
**/
@Data
@AllArgsConstructor
public
class
SelectedSheetWriteHandler
implements
SheetWriteHandler
{
private
final
Map
<
Integer
,
ExcelSelectedResolve
>
selectedMap
;
@Override
public
void
beforeSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
}
@Override
public
void
afterSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
// 这里可以对cell进行任何操作
Sheet
sheet
=
writeSheetHolder
.
getSheet
();
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
selectedMap
.
forEach
((
k
,
v
)
->
{
// 设置下拉列表的行: 首行,末行,首列,末列
CellRangeAddressList
rangeList
=
new
CellRangeAddressList
(
1
,
65536
,
k
,
k
);
// 设置下拉列表的值
DataValidationConstraint
constraint
=
helper
.
createExplicitListConstraint
(
v
.
getSource
());
// 设置约束
DataValidation
validation
=
helper
.
createValidation
(
constraint
,
rangeList
);
// 阻止输入非下拉选项的值
validation
.
setErrorStyle
(
DataValidation
.
ErrorStyle
.
STOP
);
validation
.
setShowErrorBox
(
true
);
validation
.
setSuppressDropDownArrow
(
true
);
validation
.
createErrorBox
(
"提示"
,
"请输入下拉选项中的内容"
);
sheet
.
addValidationData
(
validation
);
});
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/SpringContextUtil.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
/**
* @program: mypro
* @description: todo
* @create: 2022-07-22 13:45
**/
@Component
public
class
SpringContextUtil
implements
ApplicationContextAware
{
private
static
ApplicationContext
applicationContext
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
SpringContextUtil
.
applicationContext
=
applicationContext
;
}
// 通过class获取Bean
public
static
<
T
>
T
getBean
(
Class
<
T
>
clazz
)
{
return
applicationContext
.
getBean
(
clazz
);
}
// 通过name以及class获取Bean
public
static
<
T
>
T
getBean
(
String
name
,
Class
<
T
>
clazz
)
{
return
applicationContext
.
getBean
(
name
,
clazz
);
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/TemplateCellWriteHandlerDate1.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
com.google.zxing.qrcode.encoder.QRCode
;
import
com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil
;
import
org.apache.poi.hssf.usermodel.HSSFDataValidation
;
import
org.apache.poi.ss.usermodel.DataValidationHelper
;
import
org.apache.poi.ss.usermodel.Name
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.handler.SheetWriteHandler
;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
import
org.apache.poi.ss.usermodel.DataValidation
;
import
org.apache.poi.ss.usermodel.DataValidationConstraint
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.apache.poi.xssf.usermodel.XSSFDataValidation
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* excel通用单元格格式类下拉框赋值
*/
public
class
TemplateCellWriteHandlerDate1
implements
SheetWriteHandler
{
/**
* 构造器注入
*/
private
Map
<
Integer
,
String
[]>
explicitListConstraintMap
=
new
HashMap
<>();
public
TemplateCellWriteHandlerDate1
(
Map
<
Integer
,
String
[]>
explicitListConstraintMap
)
{
this
.
explicitListConstraintMap
=
explicitListConstraintMap
;
}
/**
* 避免生成的导入模板下拉值获取不到
*/
private
static
final
Integer
LIMIT_NUMBER
=
0
;
/**
* 返回excel列标A-Z-AA-ZZ
*
* @param num 列数
* @return java.lang.String
*/
private
String
getExcelLine
(
int
num
)
{
String
line
=
""
;
int
first
=
num
/
26
;
int
second
=
num
%
26
;
if
(
first
>
0
)
{
line
=
(
char
)
(
'A'
+
first
-
1
)
+
""
;
}
line
+=
(
char
)
(
'A'
+
second
)
+
""
;
return
line
;
}
@Override
public
void
beforeSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
// TODO Auto-generated method stub
}
@Override
public
void
afterSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
if
(
explicitListConstraintMap
!=
null
)
{
// 这里可以对cell进行任何操作
Sheet
sheet
=
writeSheetHolder
.
getSheet
();
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
// k 为存在下拉数据集的单元格下表 v为下拉数据集
explicitListConstraintMap
.
forEach
((
k
,
v
)
->
{
// 设置下拉单元格的首行 末行 首列 末列
CellRangeAddressList
rangeList
=
new
CellRangeAddressList
(
1
,
65536
,
k
,
k
);
// 如果下拉值总数大于100,则使用一个新sheet存储,避免生成的导入模板下拉值获取不到
if
(
v
.
length
>
LIMIT_NUMBER
)
{
//定义sheet的名称
//1.创建一个隐藏的sheet 名称为 hidden + k
String
sheetName
=
"hidden"
+
k
+
QRCodeUtil
.
generateQRCode
();
Workbook
workbook
=
writeWorkbookHolder
.
getWorkbook
();
Sheet
hiddenSheet
=
workbook
.
createSheet
(
sheetName
);
for
(
int
i
=
0
,
length
=
v
.
length
;
i
<
length
;
i
++)
{
// 开始的行数i,列数k
hiddenSheet
.
createRow
(
i
).
createCell
(
k
).
setCellValue
(
v
[
i
]);
}
Name
category1Name
=
workbook
.
createName
();
category1Name
.
setNameName
(
sheetName
);
String
excelLine
=
getExcelLine
(
k
);
// =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组
String
refers
=
"="
+
sheetName
+
"!$"
+
excelLine
+
"$1:$"
+
excelLine
+
"$"
+
(
v
.
length
+
1
);
// 将刚才设置的sheet引用到你的下拉列表中
DataValidationConstraint
constraint
=
helper
.
createFormulaListConstraint
(
refers
);
DataValidation
dataValidation
=
helper
.
createValidation
(
constraint
,
rangeList
);
if
(
dataValidation
instanceof
HSSFDataValidation
)
{
dataValidation
.
setSuppressDropDownArrow
(
false
);
}
else
{
dataValidation
.
setSuppressDropDownArrow
(
true
);
dataValidation
.
setShowErrorBox
(
true
);
}
writeSheetHolder
.
getSheet
().
addValidationData
(
dataValidation
);
// 设置存储下拉列值得sheet为隐藏
int
hiddenIndex
=
workbook
.
getSheetIndex
(
sheetName
);
if
(!
workbook
.
isSheetHidden
(
hiddenIndex
))
{
workbook
.
setSheetHidden
(
hiddenIndex
,
true
);
}
}
});
}
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/TitleHandler.java
0 → 100644
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
com.alibaba.excel.write.handler.SheetWriteHandler
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.DataValidation
;
import
org.apache.poi.ss.usermodel.DataValidationConstraint
;
import
org.apache.poi.ss.usermodel.DataValidationHelper
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
java.util.Map
;
@Slf4j
public
class
TitleHandler
implements
SheetWriteHandler
{
/**
* 下拉框值
*/
private
Map
<
Integer
,
String
[]>
dropDownMap
;
/**
* 多少行有下拉
*/
private
final
static
Integer
rowSize
=
200
;
public
TitleHandler
(
Map
<
Integer
,
String
[]>
dropDownMap
)
{
this
.
dropDownMap
=
dropDownMap
;
}
@Override
public
void
beforeSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
}
@Override
public
void
afterSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
Sheet
sheet
=
writeSheetHolder
.
getSheet
();
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
dropDownMap
.
forEach
((
celIndex
,
strings
)
->
{
// 区间设置
CellRangeAddressList
cellRangeAddressList
=
new
CellRangeAddressList
(
1
,
rowSize
,
celIndex
,
celIndex
);
// 下拉内容
DataValidationConstraint
constraint
=
helper
.
createExplicitListConstraint
(
strings
);
DataValidation
dataValidation
=
helper
.
createValidation
(
constraint
,
cellRangeAddressList
);
sheet
.
addValidationData
(
dataValidation
);
});
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/src/main/java/com/yeejoin/amos/boot/module/jcs/biz/controller/ExcelController.java
View file @
5c402bbc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jcs
.
biz
.
controller
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jcs
.
biz
.
controller
;
import
java.lang.reflect.Field
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcelFactory
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.yeejoin.amos.boot.biz.common.excel.TemplateCellWriteHandler
;
import
com.yeejoin.amos.boot.biz.common.excel.TemplateCellWriteHandlerDate
;
import
com.yeejoin.amos.boot.module.common.api.dto.*
;
import
com.yeejoin.amos.boot.module.common.api.enums.ExceptionEnum
;
import
com.yeejoin.amos.boot.module.common.api.enums.ExceptionEnum
;
import
com.yeejoin.amos.boot.module.common.api.excel.*
;
import
org.apache.commons.jexl2.UnifiedJEXL
;
import
org.apache.commons.jexl2.UnifiedJEXL
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestPart
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
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
;
...
@@ -28,7 +34,6 @@ import com.baomidou.mybatisplus.core.toolkit.Sequence;
...
@@ -28,7 +34,6 @@ import com.baomidou.mybatisplus.core.toolkit.Sequence;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
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.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.common.api.dto.ExcelDto
;
import
com.yeejoin.amos.boot.module.jcs.api.enums.ExcelEnums
;
import
com.yeejoin.amos.boot.module.jcs.api.enums.ExcelEnums
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.DataSourcesImpl
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.DataSourcesImpl
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.ExcelServiceImpl
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.ExcelServiceImpl
;
...
@@ -265,6 +270,59 @@ public class ExcelController extends BaseController {
...
@@ -265,6 +270,59 @@ public class ExcelController extends BaseController {
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@RequestMapping
(
value
=
"/downTempdelate"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"水源模板下载"
,
notes
=
"水源模板下载"
)
public
void
downTempdelate
(
HttpServletResponse
response
)
{
try
{
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setHeader
(
"content-Type"
,
"application/vnd.ms-excel"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
"消防水源.xlsx"
,
"UTF-8"
));
response
.
setHeader
(
"Access-Control-Expose-Headers"
,
"Content-Disposition"
);
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterBaseResourceDto
.
class
,
dataSources
);
ExcelWriter
excelWriter
=
EasyExcelFactory
.
write
(
response
.
getOutputStream
()).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap
)).
registerWriteHandler
(
new
TemplateCellWriteHandler
()).
build
();
List
<
WaterExcelPoolDto
>
waterExcelPoolDtos
=
new
ArrayList
<>();
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap1
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterExcelPoolDto
.
class
,
dataSources
);
WriteSheet
writeSheet
=
EasyExcelFactory
.
writerSheet
(
0
,
"消防水池"
).
head
(
WaterExcelPoolDto
.
class
).
head
(
WaterExcelPoolDto
.
class
).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap1
)).
build
();
List
<
WaterExcelHydrantDto
>
waterExcelHydrantDtos
=
new
ArrayList
<>();
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap2
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterExcelHydrantTestDto
.
class
,
dataSources
);
WriteSheet
writeSheet2
=
EasyExcel
.
writerSheet
(
1
,
"消火栓"
).
head
(
WaterExcelHydrantTestDto
.
class
).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap2
)).
registerWriteHandler
(
new
TemplateCellWriteHandler
()).
build
();
List
<
WaterExcelCraneDto
>
waterExcelCraneDtos
=
new
ArrayList
<>();
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap3
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterExcelCraneDto
.
class
,
dataSources
);
WriteSheet
writeSheet3
=
EasyExcel
.
writerSheet
(
2
,
"消防水鹤"
).
head
(
WaterExcelCraneDto
.
class
).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap3
)).
registerWriteHandler
(
new
TemplateCellWriteHandler
()).
build
();
List
<
WaterExcelNaturalDto
>
waterExcelNaturalDtos
=
new
ArrayList
<>();
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap4
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterExcelCraneDto
.
class
,
dataSources
);
WriteSheet
writeSheet4
=
EasyExcel
.
writerSheet
(
3
,
"天然水源"
).
head
(
WaterExcelNaturalDto
.
class
).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap4
)).
registerWriteHandler
(
new
TemplateCellWriteHandler
()).
build
();
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap5
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterExcelIndustryPoolDto
.
class
,
dataSources
);
List
<
WaterExcelIndustryPoolDto
>
waterExcelIndustryPoolDtos
=
new
ArrayList
<>();
WriteSheet
writeSheet5
=
EasyExcel
.
writerSheet
(
4
,
"工业水池"
).
head
(
WaterExcelIndustryPoolDto
.
class
).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap5
)).
registerWriteHandler
(
new
TemplateCellWriteHandler
()).
build
();
List
<
WaterExcelWaterTankDto
>
waterExcelWaterTankDtos
=
new
ArrayList
<>();
Map
<
Integer
,
ExcelSelectedResolve
>
resolveMap6
=
ExcelUtil
.
resolveSelectedAnnotation
(
WaterExcelWaterTankDto
.
class
,
dataSources
);
WriteSheet
writeSheet6
=
EasyExcel
.
writerSheet
(
5
,
"消防水箱"
).
head
(
WaterExcelWaterTankDto
.
class
).
registerWriteHandler
(
new
SelectedSheetWriteHandler
(
resolveMap6
)).
registerWriteHandler
(
new
TemplateCellWriteHandler
()).
build
();
excelWriter
.
write
(
waterExcelPoolDtos
,
writeSheet
);
excelWriter
.
write
(
waterExcelHydrantDtos
,
writeSheet2
);
excelWriter
.
write
(
waterExcelCraneDtos
,
writeSheet3
);
excelWriter
.
write
(
waterExcelNaturalDtos
,
writeSheet4
);
excelWriter
.
write
(
waterExcelIndustryPoolDtos
,
writeSheet5
);
excelWriter
.
write
(
waterExcelWaterTankDtos
,
writeSheet6
);
excelWriter
.
finish
();
response
.
flushBuffer
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/controller/PlanTaskController.java
View file @
5c402bbc
...
@@ -463,6 +463,9 @@ public class PlanTaskController extends AbstractBaseController {
...
@@ -463,6 +463,9 @@ public class PlanTaskController extends AbstractBaseController {
try
{
try
{
HashMap
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
HashMap
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
ReginParams
reginParams
=
getSelectedOrgInfo
();
ReginParams
reginParams
=
getSelectedOrgInfo
();
if
(
pointNo
.
contains
(
"\r"
)){
pointNo
=
pointNo
.
replace
(
"\r"
,
""
);
}
String
loginOrgCode
=
reginParams
.
getPersonIdentity
().
getCompanyBizOrgCode
();
String
loginOrgCode
=
reginParams
.
getPersonIdentity
().
getCompanyBizOrgCode
();
params
.
put
(
"bizOrgCode"
,
loginOrgCode
);
params
.
put
(
"bizOrgCode"
,
loginOrgCode
);
params
.
put
(
"pointNo"
,
pointNo
);
params
.
put
(
"pointNo"
,
pointNo
);
...
...
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