兰州网站开发企业,电子商务和网络营销哪个好,网站icon怎么做的,wordpress 上传图片发生错误后续会加上详细注释#xff0c;或者出一个贴图详细的2.0版本#xff0c;大家不要错过#xff01;我会详细教大家如何使用自定义注解开发#xff01;让你的代码瞬间高大上起来 Data
public class ReportDateDTO {/*** 年*/ApiModelProperty(value 年, notes 或者出一个贴图详细的2.0版本大家不要错过我会详细教大家如何使用自定义注解开发让你的代码瞬间高大上起来 Data
public class ReportDateDTO {/*** 年*/ApiModelProperty(value 年, notes )ReportFiled(value year, description date, font FONT_MS_YH, fontsize 13.5f)private String year;/*** 月*/ApiModelProperty(value 月, notes )ReportFiled(value month, description date, font FONT_MS_YH, fontsize 13.5f)private String month;/*** 日*/ApiModelProperty(value 日, notes )ReportFiled(value day, description date, font FONT_MS_YH, fontsize 13.5f)private String day;ReportList(report_)private ListForecastDataDTO forecastDataDTOList;
} /*** authorTtc* date 2024/1/22 14:36* description: 导出大屏预报数据VO*/
Data
public class ForecastDataDTO {/*** 日期*/ApiModelProperty(value 日期, notes )ReportFiled(value date)private String formattedDate;/*** 天气*/ApiModelProperty(value 天气, notes )ReportFiled(value weather)private String weaDay;/*** 大屏显示风力等级*/ApiModelProperty(value 大屏显示风力等级, notes )ReportFiled(value wind)private String largeScreenWind;/*** 最高温度*/ApiModelProperty(value 最高温度, notes )ReportFiled(value tem_max)private String tem1;/*** 最低温度*/ApiModelProperty(value 最低温度, notes )ReportFiled(value tem_min)private String tem2;
} /*** authorTtc* date 2024/1/18 17:54* description: 报告字段*/
Documented
Retention(RetentionPolicy.RUNTIME)
Target(ElementType.FIELD)
public interface ReportFiled {String value() default ;float fontsize() default 12.0f;/*** 字体路径* 如果为空使用默认字体* return*/String font() default ;String prefix() default ;String description() default ;
} /*** authorTtc* date 2024/1/23 14:48* description: pdf*/
Documented
Retention(RetentionPolicy.RUNTIME)
Target(ElementType.FIELD)
public interface ReportList {/*** 报表集合名称* 作为其中元素的前缀* return*/String value() default ;
} public MapString, PdfFiledDto getParamMap(Object param, String prefix, int index) {MapString, PdfFiledDto map new HashMap(16);if (param null) {return map;}Field[] fields param.getClass().getDeclaredFields();for (Field field : fields) {Object formVal ReflectUtil.getFieldValue(param, field.getName());ReportFiled reportFiled field.getAnnotation(ReportFiled.class);if (reportFiled ! null) {fillParamMapByReportFiled(map, formVal, reportFiled, prefix, index);}ReportList reportList field.getAnnotation(ReportList.class);if (reportList ! null) {String formKeyPrefix reportList.value();if (formVal instanceof List) {ListObject formObjList (ListObject) formVal;for (int i 0; i formObjList.size(); i) {Object subObj formObjList.get(i);MapString, PdfFiledDto subMap getParamMap(subObj, formKeyPrefix, i 1);map.putAll(subMap);}}}}return map;
} private static void fillParamMapByReportFiled(MapString, PdfFiledDto map,Object formVal, ReportFiled reportFiled, String prefix, int index) {String formKey reportFiled.value();if (StrUtil.isNotBlank(prefix)) {// 获取实际keyformKey handleFormKey(prefix, index, formKey);}if (formVal null) {map.put(formKey, getPdfFiledDto(, -1.0f));return;}fillParamMapByObject(map, reportFiled, formKey, formVal, index);
} private static void fillParamMapByReportFiled(MapString, PdfFiledDto map, Object formVal, ReportFiled reportFiled, String prefix, int index) { String formKey reportFiled.value(); if (StrUtil.isNotBlank(prefix)) { // 获取实际key formKey handleFormKey(prefix, index, formKey); } if (formVal null) { map.put(formKey, getPdfFiledDto(, -1.0f)); return; } if (formVal.getClass().isArray()) { Object[] arr (Object[]) formVal; for (int i 0; i arr.length; i) { Object item arr[i]; fillParamMapByObject(map, reportFiled, handleFormKey(formKey, i, ), item); } return; } fillParamMapByObject(map, reportFiled, formKey, formVal); } 这里list集合单独处理加上文本域对应序号。 private static String handleFormKey(String prefix, int index, String formKey) {prefix prefix.endsWith(StrPool.UNDERLINE) ? prefix : prefix StrPool.UNDERLINE;return StrUtil.isBlank(formKey) ?prefix index: prefix formKey StrPool.UNDERLINE index;
} private static PdfFiledDto getPdfFiledDto(String val, float fontsize) {return new PdfFiledDto(val, fontsize, null);
}private static PdfFiledDto getPdfFiledDto(String val, float fontsize, String fontPath) {return new PdfFiledDto(val, fontsize, fontPath);
}