Commit 5c402bbc authored by chenzhao's avatar chenzhao

水源模板功能优化

parent 4fbb589e
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
package com.yeejoin.amos.boot.module.common.api.excel;
public interface ExcelDynamicSelect {
/**
* 获取动态生成的下拉框可选数据
* @return 动态生成的下拉框可选数据
*/
String[] getSource();
}
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;
}
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;
}
}
...@@ -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;
}
} }
...@@ -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;
} }
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
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);
});
}
}
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);
}
}
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);
}
}
});
}
}
}
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);
});
}
}
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();
}
}
......
...@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment