|
|
@ -1,22 +1,40 @@ |
|
|
|
package com.zc.business.service.impl; |
|
|
|
|
|
|
|
import com.ruoyi.common.config.RuoYiConfig; |
|
|
|
import com.ruoyi.common.core.domain.AjaxResult; |
|
|
|
import com.ruoyi.common.core.domain.entity.SysUser; |
|
|
|
import com.ruoyi.common.core.redis.RedisCache; |
|
|
|
import com.ruoyi.common.utils.StakeMarkUtils; |
|
|
|
import com.ruoyi.common.utils.StringUtils; |
|
|
|
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
|
|
import com.zc.business.constant.RedisKeyConstants; |
|
|
|
import com.zc.business.domain.DcSdhsEvent; |
|
|
|
import com.zc.business.domain.DcSdhsEventQuery; |
|
|
|
import com.zc.business.enums.UniversalEnum; |
|
|
|
import com.zc.business.service.IDcSdhsEventService; |
|
|
|
import com.zc.business.utils.PoiUtil; |
|
|
|
import org.apache.poi.xssf.usermodel.XSSFSheet; |
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
|
|
|
import org.apache.poi.xwpf.usermodel.*; |
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.io.IOException; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.lang.reflect.Array; |
|
|
|
import java.math.BigInteger; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.*; |
|
|
|
import java.util.regex.Matcher; |
|
|
|
import java.util.regex.Pattern; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import static com.zc.business.utils.PoiUtil.*; |
|
|
|
import static com.zc.business.utils.PoiUtil.addDescription; |
|
|
|
|
|
|
|
/** |
|
|
|
* 高速云事件分析Service业务层处理 |
|
|
@ -33,19 +51,21 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public AjaxResult importData(MultipartFile file) throws IOException { |
|
|
|
List<DcSdhsEvent> eventList = new ArrayList<>(); |
|
|
|
List<DcSdhsEvent> importData = new ArrayList<>(); |
|
|
|
try { |
|
|
|
ExcelUtil<DcSdhsEvent> util = new ExcelUtil<DcSdhsEvent>(DcSdhsEvent.class); |
|
|
|
eventList = util.importExcel(file.getInputStream()); |
|
|
|
importData = util.importExcel(file.getInputStream()); |
|
|
|
} catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
return AjaxResult.error("导入失败,请检查数据是否有误"); |
|
|
|
} |
|
|
|
|
|
|
|
redisCache.deleteObject(RedisKeyConstants.SDHS_EVENT); |
|
|
|
if (eventList != null && eventList.size() > 0){ |
|
|
|
|
|
|
|
List<DcSdhsEvent> eventList = new ArrayList<>(); |
|
|
|
if (importData != null && importData.size() > 0){ |
|
|
|
int id = 1; |
|
|
|
for (DcSdhsEvent dcSdhsEvent : eventList) { |
|
|
|
for (DcSdhsEvent dcSdhsEvent : importData) { |
|
|
|
|
|
|
|
//插入id备用
|
|
|
|
dcSdhsEvent.setId(id); |
|
|
@ -68,6 +88,36 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService { |
|
|
|
dcSdhsEvent.setMultiVehicle("否"); |
|
|
|
} |
|
|
|
|
|
|
|
String stakeMark = dcSdhsEvent.getStakeMark(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(stakeMark) && !"无".equals(stakeMark) && !StakeMarkUtils.checkStakeMark(stakeMark)){ |
|
|
|
//尝试桩号补零
|
|
|
|
List<String> numbers = new ArrayList<>(); |
|
|
|
|
|
|
|
// 匹配大小桩号数字
|
|
|
|
Pattern pattern = Pattern.compile("\\d+"); |
|
|
|
Matcher matcher = pattern.matcher(stakeMark); |
|
|
|
while (matcher.find()) { |
|
|
|
numbers.add(matcher.group()); // 将匹配到的数字字符串添加到列表中
|
|
|
|
} |
|
|
|
List<String> formattedNumbers = new ArrayList<>(); |
|
|
|
for (String number : numbers) { |
|
|
|
while (number.length() < 3) { |
|
|
|
number = "0" + number; |
|
|
|
} |
|
|
|
formattedNumbers.add(number); |
|
|
|
} |
|
|
|
stakeMark = "K" + String.join("+",formattedNumbers); |
|
|
|
|
|
|
|
|
|
|
|
//如果还验证不通过 则此条信息作废
|
|
|
|
if (!StakeMarkUtils.checkStakeMark(stakeMark)){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
dcSdhsEvent.setStakeMark(stakeMark); |
|
|
|
} |
|
|
|
|
|
|
|
eventList.add(dcSdhsEvent); |
|
|
|
id++; |
|
|
|
} |
|
|
|
|
|
|
@ -99,4 +149,357 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService { |
|
|
|
|
|
|
|
return numbers; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 事故地市分布 |
|
|
|
* |
|
|
|
* @author liuwenge |
|
|
|
* @date 2024/8/20 9:13 |
|
|
|
* @param dcSdhsEventQuery |
|
|
|
* @return com.ruoyi.common.core.domain.AjaxResult |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public AjaxResult selectRegionAnalysis(DcSdhsEventQuery dcSdhsEventQuery){ |
|
|
|
|
|
|
|
List<DcSdhsEvent> eventList = redisCache.getCacheList(RedisKeyConstants.SDHS_EVENT); |
|
|
|
if (eventList == null || eventList.size() == 0){ |
|
|
|
return AjaxResult.error("请先导入数据"); |
|
|
|
} |
|
|
|
|
|
|
|
//先筛选时间范围
|
|
|
|
eventList = eventList.stream() |
|
|
|
.filter(item -> item.getStartTime() != null |
|
|
|
&& item.getStartTime().getTime() >= dcSdhsEventQuery.getStartTime().getTime() |
|
|
|
&& item.getStartTime().getTime() <= dcSdhsEventQuery.getEndTime().getTime() |
|
|
|
&& item.getEventType().equals("交通事故")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
//筛选方向
|
|
|
|
if (StringUtils.isNotEmpty(dcSdhsEventQuery.getDirection())){ |
|
|
|
if (dcSdhsEventQuery.getDirection().equals("1")){ |
|
|
|
//菏泽方向
|
|
|
|
eventList = eventList.stream() |
|
|
|
.filter(item -> item.getDirection().equals("广州方向") || item.getDirection().equals("双向")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} else if (dcSdhsEventQuery.getDirection().equals("3")){ |
|
|
|
//济南方向
|
|
|
|
eventList = eventList.stream() |
|
|
|
.filter(item -> item.getDirection().equals("济南方向") || item.getDirection().equals("双向")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//地市统计
|
|
|
|
Map<String, Long> region = eventList.stream() |
|
|
|
.collect(Collectors.groupingBy(item -> getRange(item.getStakeMark()), Collectors.counting())); |
|
|
|
List<Map<String,Object>> list = new ArrayList<>(); |
|
|
|
region.forEach((key,count)->{ |
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
|
map.put("regionName",key); |
|
|
|
map.put("num",count); |
|
|
|
list.add(map); |
|
|
|
}); |
|
|
|
return AjaxResult.success(list); |
|
|
|
} |
|
|
|
|
|
|
|
private static String getRange(String stakeMark) { |
|
|
|
Long stakeMarkMetre = StakeMarkUtils.formatMetreLong(stakeMark); |
|
|
|
|
|
|
|
if (stakeMarkMetre == null){ |
|
|
|
return "其他"; |
|
|
|
} |
|
|
|
if (stakeMarkMetre >= 0 && stakeMarkMetre <= 132469) { |
|
|
|
return "济南"; |
|
|
|
} else if (stakeMarkMetre > 132469 && stakeMarkMetre <= 160708) { |
|
|
|
return "泰安"; |
|
|
|
} else if (stakeMarkMetre > 160708 && stakeMarkMetre <= 200752) { |
|
|
|
return "济宁"; |
|
|
|
} else if (stakeMarkMetre > 200752) { |
|
|
|
return "菏泽"; |
|
|
|
} else { |
|
|
|
return "其他"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 导出事故地市分布 |
|
|
|
* |
|
|
|
* @author liuwenge |
|
|
|
* @date 2024/8/20 9:17 |
|
|
|
* @param doc |
|
|
|
* @param dcSdhsEventQuery |
|
|
|
* @return void |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void exportRegionAnalysis(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery){ |
|
|
|
|
|
|
|
AjaxResult ajaxResult = selectRegionAnalysis(dcSdhsEventQuery); |
|
|
|
if (ajaxResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) { |
|
|
|
|
|
|
|
PoiUtil.createHeading2(doc,"事故地市分布"); |
|
|
|
List<Map<String,Object>> data = (List<Map<String,Object>>) ajaxResult.get("data"); |
|
|
|
if (data != null && data.size() != UniversalEnum.ZERO.getNumber()){ |
|
|
|
|
|
|
|
//插入图表
|
|
|
|
try { |
|
|
|
|
|
|
|
// 复制Word模板
|
|
|
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("wordTemplate/sdhsEventChart.docx"); |
|
|
|
|
|
|
|
XWPFDocument copiedTemplate = new XWPFDocument(inputStream); |
|
|
|
|
|
|
|
//获取word中所有图表对象
|
|
|
|
List<XWPFChart> charts = copiedTemplate.getCharts(); |
|
|
|
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber()); |
|
|
|
XSSFWorkbook workbook = chart.getWorkbook(); |
|
|
|
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber()); |
|
|
|
|
|
|
|
//系列信息
|
|
|
|
String[] singleBarSeriesNames = {"数量"}; |
|
|
|
//分类信息
|
|
|
|
for (int i = 0; i < data.size(); i++) { |
|
|
|
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(data.get(i).get("regionName").toString()); |
|
|
|
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(data.get(i).get("num").toString())); |
|
|
|
} |
|
|
|
for (int i = sheet.getLastRowNum(); i > data.size();i--){ |
|
|
|
sheet.removeRow(sheet.getRow(i)); |
|
|
|
} |
|
|
|
PoiUtil.wordExportChar(chart,"事故地市分布" , singleBarSeriesNames,sheet ); |
|
|
|
|
|
|
|
|
|
|
|
// 追加到同一个Word文档中
|
|
|
|
mergeChart(chart,doc); |
|
|
|
|
|
|
|
|
|
|
|
// 关闭复制的模板文档
|
|
|
|
copiedTemplate.close(); |
|
|
|
|
|
|
|
} catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//换行
|
|
|
|
createLineBreak(doc); |
|
|
|
|
|
|
|
|
|
|
|
//插入表格
|
|
|
|
XWPFTable table = doc.createTable(data.size()+1, 2); |
|
|
|
//列宽自动分割
|
|
|
|
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); |
|
|
|
infoTableWidth.setType(STTblWidth.DXA); |
|
|
|
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); |
|
|
|
|
|
|
|
setTableFonts(table.getRow(0).getCell(0), "地市"); |
|
|
|
setTableFonts(table.getRow(0).getCell(1), "数量"); |
|
|
|
for (int i = 0; i < data.size(); i++) { |
|
|
|
setTableFonts(table.getRow(i+1).getCell(0), data.get(i).get("regionName").toString()); |
|
|
|
setTableFonts(table.getRow(i+1).getCell(1), data.get(i).get("num").toString()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
addDescription(doc,UniversalEnum.NO_DATA_AVAILABLE.getValue()); |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
addDescription(doc,UniversalEnum.NO_DATA_AVAILABLE.getValue()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 查询交通管制情况统计 |
|
|
|
* |
|
|
|
* @author liuwenge |
|
|
|
* @date 2024/8/20 11:06 |
|
|
|
* @param dcSdhsEventQuery |
|
|
|
* @return com.ruoyi.common.core.domain.AjaxResult |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public AjaxResult selectStationAnalysis(DcSdhsEventQuery dcSdhsEventQuery){ |
|
|
|
|
|
|
|
List<DcSdhsEvent> eventList = redisCache.getCacheList(RedisKeyConstants.SDHS_EVENT); |
|
|
|
if (eventList == null || eventList.size() == 0){ |
|
|
|
return AjaxResult.error("请先导入数据"); |
|
|
|
} |
|
|
|
|
|
|
|
eventList = eventList.stream().filter(item -> item.getStartTime() != null |
|
|
|
&& item.getStartTime().getTime() >= dcSdhsEventQuery.getStartTime().getTime() |
|
|
|
&& item.getStartTime().getTime() <= dcSdhsEventQuery.getEndTime().getTime()) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
//筛选方向
|
|
|
|
if (StringUtils.isNotEmpty(dcSdhsEventQuery.getDirection())){ |
|
|
|
if (dcSdhsEventQuery.getDirection().equals("1")){ |
|
|
|
//菏泽方向
|
|
|
|
eventList = eventList.stream() |
|
|
|
.filter(item -> item.getDirection().equals("广州方向") |
|
|
|
|| item.getDirection().equals("双向")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} else if (dcSdhsEventQuery.getDirection().equals("3")){ |
|
|
|
//济南方向
|
|
|
|
eventList = eventList.stream() |
|
|
|
.filter(item -> item.getDirection().equals("济南方向") || item.getDirection().equals("双向")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//封闭
|
|
|
|
List<DcSdhsEvent> closeList = eventList.stream() |
|
|
|
.filter(item -> item.getEventType().equals("交通管制") && item.getEventSubclass().equals("收费站封闭")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
//分割站点名称, 然后分组
|
|
|
|
Map<String, Long> closeStation = closeList.stream().collect(Collectors.groupingBy(item -> getStationName(item.getTitle()), |
|
|
|
Collectors.counting())); |
|
|
|
|
|
|
|
//限行
|
|
|
|
List<DcSdhsEvent> restrictionList = eventList.stream() |
|
|
|
.filter(item -> item.getEventType().equals("交通管制") && item.getEventSubclass().equals("收费站限行")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
//分割站点名称, 然后分组
|
|
|
|
Map<String, Long> restrictionStation = restrictionList.stream().collect(Collectors.groupingBy(item -> getStationName(item.getTitle()), |
|
|
|
Collectors.counting())); |
|
|
|
|
|
|
|
//合并 站点名称
|
|
|
|
Set<String> stationSet = new HashSet<>(); |
|
|
|
stationSet.addAll(closeStation.keySet()); |
|
|
|
stationSet.addAll(restrictionStation.keySet()); |
|
|
|
|
|
|
|
//收费站统
|
|
|
|
List<Map<String,Object>> list = new ArrayList<>(); |
|
|
|
for (String stationName : stationSet) { |
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
|
map.put("stationName",stationName); |
|
|
|
if (closeStation.containsKey(stationName)){ |
|
|
|
map.put("close",closeStation.get(stationName)); |
|
|
|
} else { |
|
|
|
map.put("close",0); |
|
|
|
} |
|
|
|
|
|
|
|
if (restrictionStation.containsKey(stationName)){ |
|
|
|
map.put("restriction",restrictionStation.get(stationName)); |
|
|
|
} else { |
|
|
|
map.put("restriction",0); |
|
|
|
} |
|
|
|
list.add(map); |
|
|
|
} |
|
|
|
|
|
|
|
return AjaxResult.success(list); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 从标题中截取收费站名称 |
|
|
|
* |
|
|
|
* @author liuwenge |
|
|
|
* @date 2024/8/19 15:32 |
|
|
|
* @param title |
|
|
|
* @return java.lang.String |
|
|
|
*/ |
|
|
|
private static String getStationName(String title) { |
|
|
|
|
|
|
|
String[] titleStr = title.split(",山东"); |
|
|
|
if (titleStr.length > 1){ |
|
|
|
String[] stationStr = titleStr[1].split("发生"); |
|
|
|
if (stationStr.length > 0){ |
|
|
|
return stationStr[0]; |
|
|
|
} else { |
|
|
|
return "其他"; |
|
|
|
} |
|
|
|
} else { |
|
|
|
return "其他"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 导出交通管制情况统计 |
|
|
|
* |
|
|
|
* @author liuwenge |
|
|
|
* @date 2024/8/20 11:05 |
|
|
|
* @param doc |
|
|
|
* @param dcSdhsEventQuery |
|
|
|
* @return com.ruoyi.common.core.domain.AjaxResult |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void exportStationAnalysis(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery){ |
|
|
|
|
|
|
|
AjaxResult ajaxResult = selectStationAnalysis(dcSdhsEventQuery); |
|
|
|
if (ajaxResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) { |
|
|
|
|
|
|
|
PoiUtil.createHeading2(doc,"交通管制情况统计"); |
|
|
|
List<Map<String,Object>> data = (List<Map<String,Object>>) ajaxResult.get("data"); |
|
|
|
if (data != null && data.size() != UniversalEnum.ZERO.getNumber()){ |
|
|
|
|
|
|
|
//插入图表
|
|
|
|
try { |
|
|
|
|
|
|
|
// 复制Word模板
|
|
|
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.DRAWING_TEMPLATE.getValue()); |
|
|
|
|
|
|
|
XWPFDocument copiedTemplate = new XWPFDocument(inputStream); |
|
|
|
|
|
|
|
//获取word中所有图表对象
|
|
|
|
List<XWPFChart> charts = copiedTemplate.getCharts(); |
|
|
|
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber()); |
|
|
|
XSSFWorkbook workbook = chart.getWorkbook(); |
|
|
|
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber()); |
|
|
|
|
|
|
|
//系列信息
|
|
|
|
String[] singleBarSeriesNames = {UniversalEnum.CLOSE.getValue(),UniversalEnum.TRAFFIC_RESTRICTION.getValue()}; |
|
|
|
//分类信息
|
|
|
|
for (int i = UniversalEnum.ZERO.getNumber(); i < data.size(); i++){ |
|
|
|
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(data.get(i).get("stationName").toString()); |
|
|
|
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(data.get(i).get("close").toString())); |
|
|
|
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.TWO.getNumber()).setCellValue(Long.parseLong(data.get(i).get("restriction").toString())); |
|
|
|
} |
|
|
|
|
|
|
|
for (int i = sheet.getLastRowNum(); i > data.size();i--){ |
|
|
|
sheet.removeRow(sheet.getRow(i)); |
|
|
|
} |
|
|
|
PoiUtil.wordExportChar(chart, "交通管制情况统计", singleBarSeriesNames,sheet ); |
|
|
|
|
|
|
|
|
|
|
|
// 追加到同一个Word文档中
|
|
|
|
mergeChart(chart,doc); |
|
|
|
|
|
|
|
|
|
|
|
// 关闭复制的模板文档
|
|
|
|
copiedTemplate.close(); |
|
|
|
|
|
|
|
} catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//换行
|
|
|
|
createLineBreak(doc); |
|
|
|
|
|
|
|
|
|
|
|
//插入表格
|
|
|
|
XWPFTable table = doc.createTable(data.size()+1, 3); |
|
|
|
//列宽自动分割
|
|
|
|
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); |
|
|
|
infoTableWidth.setType(STTblWidth.DXA); |
|
|
|
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); |
|
|
|
|
|
|
|
setTableFonts(table.getRow(0).getCell(1), "封闭"); |
|
|
|
setTableFonts(table.getRow(0).getCell(2), "限行"); |
|
|
|
|
|
|
|
//excel
|
|
|
|
for (int i = 0; i < data.size(); i++){ |
|
|
|
setTableFonts(table.getRow(i+1).getCell(0), data.get(i).get("stationName").toString()); |
|
|
|
setTableFonts(table.getRow(i+1).getCell(1), data.get(i).get("close").toString()); |
|
|
|
setTableFonts(table.getRow(i+1).getCell(2), data.get(i).get("restriction").toString()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
addDescription(doc,UniversalEnum.NO_DATA_AVAILABLE.getValue()); |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
addDescription(doc,UniversalEnum.NO_DATA_AVAILABLE.getValue()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|