|
|
@@ -15,6 +15,7 @@ import com.xunmei.system.api.domain.AccessDataVo;
|
|
|
import com.xunmei.system.api.domain.CheckDataVo;
|
|
|
import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
|
|
|
import com.xunmei.system.api.domain.SysDictData;
|
|
|
+import com.xunmei.system.api.enums.ProtectionStatus;
|
|
|
import io.netty.util.internal.StringUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
@@ -241,46 +242,8 @@ public class PdfUtil {
|
|
|
}
|
|
|
|
|
|
// ------------------------------------------------------------------------------------------------------------
|
|
|
-
|
|
|
- List<Map<String, List<Map<String, Object>>>> protectionList = (List<Map<String, List<Map<String, Object>>>>) data.get("protection");
|
|
|
- if (ObjectUtil.isNotEmpty(protectionList)) {
|
|
|
- for (Map<String, List<Map<String, Object>>> listMap : protectionList) {
|
|
|
- for (Map.Entry<String, List<Map<String, Object>>> listEntry : listMap.entrySet()) {
|
|
|
- IotAlarmSubsystem subsystem = JSON.parseObject(listEntry.getKey(), IotAlarmSubsystem.class);
|
|
|
- List<Map<String, Object>> value = listEntry.getValue();
|
|
|
- //布防状态,0:撤防,1:布防
|
|
|
- if (value.isEmpty()) {
|
|
|
- //子系统名称
|
|
|
- PdfUtil.createPDFCell(tableFont, table, subsystem.getName(), Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, "撤防时间", Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, "布防时间", Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- } else {
|
|
|
- long num = getNum(value);//可能出现布防两次,撤防一次的情况,避免登记簿异常,取最大值
|
|
|
- List<Long> ingoreIdList = new ArrayList<>();
|
|
|
- for (long i = 0; i < num; i++) {
|
|
|
- // 子系统名称
|
|
|
- PdfUtil.createPDFCell(tableFont, table, subsystem.getName(), Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- // 撤防时间
|
|
|
- PdfUtil.createPDFCell(tableFont, table, "撤防时间", Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, getStatusTime(value, 0, ingoreIdList), Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- // 布防时间
|
|
|
- PdfUtil.createPDFCell(tableFont, table, "布防时间", Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, getStatusTime(value, 1, ingoreIdList), Element.ALIGN_MIDDLE, 3, 1);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //子系统名称
|
|
|
- PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, "撤防时间", Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, "布防时间", Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 2, 1);
|
|
|
- }
|
|
|
-
|
|
|
+ //日常登记簿-布撤防数据
|
|
|
+ resumptionProtectionData(document, table, tableFont, data);
|
|
|
|
|
|
// ------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
@@ -321,17 +284,70 @@ public class PdfUtil {
|
|
|
|
|
|
}
|
|
|
|
|
|
- private static long getNum(List<Map<String, Object>> value) {
|
|
|
- long num;
|
|
|
- List<Integer> statusList = value.stream().map(m -> (Integer) m.get("status")).collect(Collectors.toList());
|
|
|
- num = statusList.stream().filter(r -> ObjectUtil.equal(0, r)).count();
|
|
|
- long bfNums = statusList.stream().filter(r -> ObjectUtil.equal(1, r)).count();
|
|
|
- if (bfNums > num) {
|
|
|
- num = bfNums;
|
|
|
+ private static void resumptionProtectionData(Document document, PdfPTable table, Font tableFont, Map<String, Object> data) throws DocumentException {
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "布撤防情况", Element.ALIGN_MIDDLE, 10, 1);
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "控制器", Element.ALIGN_MIDDLE, 4, 1);
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "状态", Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "时间", Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+
|
|
|
+ List<Map<String, List<Map<String, Object>>>> protectionList = (List<Map<String, List<Map<String, Object>>>>) data.get("protection");
|
|
|
+ if (ObjectUtil.isEmpty(protectionList)) {
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "/", Element.ALIGN_MIDDLE, 4, 1);
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "/", Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, "/", Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ document.add(table);
|
|
|
+ } else {
|
|
|
+ for (Map<String, List<Map<String, Object>>> listMap : protectionList) {
|
|
|
+ for (Map.Entry<String, List<Map<String, Object>>> listEntry : listMap.entrySet()) {
|
|
|
+ IotAlarmSubsystem subsystem = JSON.parseObject(listEntry.getKey(), IotAlarmSubsystem.class);
|
|
|
+ List<Map<String, Object>> value = listEntry.getValue();
|
|
|
+ //布防状态,0:撤防,1:布防
|
|
|
+ if (value.isEmpty()) {
|
|
|
+ //子系统名称
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, subsystem.getName(), Element.ALIGN_MIDDLE, 4, 1);
|
|
|
+ //状态
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ // 时间
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, StringUtil.EMPTY_STRING, Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ } else {
|
|
|
+ //子系统名称
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, subsystem.getName(), Element.ALIGN_MIDDLE, 4, value.size());
|
|
|
+ for (Map<String, Object> map : value) {
|
|
|
+ //状态
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, getStatusText(map), Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ //时间
|
|
|
+ PdfUtil.createPDFCell(tableFont, table, getStatusTime(map), Element.ALIGN_MIDDLE, 3, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private static String getStatusTime(Map<String, Object> value) {
|
|
|
+ if (value == null) {
|
|
|
+ return StringUtil.EMPTY_STRING;
|
|
|
}
|
|
|
- return num;
|
|
|
+ Object status = value.get("date");
|
|
|
+ return status == null ? StringUtil.EMPTY_STRING : status.toString();
|
|
|
}
|
|
|
|
|
|
+ private static String getStatusText(Map<String, Object> value) {
|
|
|
+ if (value == null) {
|
|
|
+ return StringUtil.EMPTY_STRING;
|
|
|
+ }
|
|
|
+ Object status = value.get("status");
|
|
|
+ if (status == null) {
|
|
|
+ return StringUtil.EMPTY_STRING;
|
|
|
+ }
|
|
|
+ for (ProtectionStatus protectionStatus : ProtectionStatus.values()) {
|
|
|
+ if (ObjectUtil.equal(protectionStatus.ordinal(), Integer.parseInt(status.toString()))) {
|
|
|
+ return protectionStatus.getText();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return StringUtil.EMPTY_STRING;
|
|
|
+ }
|
|
|
public static String getLineStr(String str) {
|
|
|
StringBuilder result = new StringBuilder();
|
|
|
for (int i = 0; i < str.length(); i++) {
|