ke
2024-07-26 cf119adeab46dcc843c4c7b28a719a0c027d7c88
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/impl/SjztmdServiceImpl.java
@@ -10,6 +10,7 @@
import cn.gistack.sm.sjztmd.service.*;
import cn.gistack.sm.sjztmd.word.enums.*;
import cn.gistack.sm.sjztmd.word.service.ISjztmdService;
import cn.gistack.sm.sjztmd.word.util.WordUtil;
import cn.gistack.sm.sjztmd.word.vo.*;
import cn.gistack.sm.sjztods.constant.ZtApiUrlConstant;
import cn.gistack.sm.sjztods.constant.ZtConfigConstant;
@@ -182,34 +183,34 @@
      }
      tableMap.put("resFunc", resFunc);
      //水文特征
      tableMap.put("conArea", tbAttResStagChar==null?"":tbAttResStagChar.getConArea());
      tableMap.put("moyearRainAvg", tbAttResStagChar==null?"":tbAttResStagChar.getMoyearRainAvg());
      tableMap.put("moyearFlAvg", tbAttResStagChar==null?"":tbAttResStagChar.getMoyearFlAvg());
      tableMap.put("downWacoSafeDisc", tbAttResStagChar==null?"":tbAttResStagChar.getDownWacoSafeDisc());
      tableMap.put("desFlSta", tbAttResStagChar==null?"":tbAttResStagChar.getDesFlSta());
      tableMap.put("desFlFlow", tbAttResStagChar==null?"":tbAttResStagChar.getDesFlFlow());
      tableMap.put("desFl1dayCap", tbAttResStagChar==null?"":tbAttResStagChar.getDesFl1dayCap());
      tableMap.put("desFl3dayCap", tbAttResStagChar==null?"":tbAttResStagChar.getDesFl3dayCap());
      tableMap.put("checFlSta", tbAttResStagChar==null?"":tbAttResStagChar.getChecFlSta());
      tableMap.put("checFlFlow", tbAttResStagChar==null?"":tbAttResStagChar.getChecFlFlow());
      tableMap.put("checFl1dayCap", tbAttResStagChar==null?"":tbAttResStagChar.getChecFl1dayCap());
      tableMap.put("checFl3dayCap", tbAttResStagChar==null?"":tbAttResStagChar.getChecFl3dayCap());
      tableMap.put("conArea", tbAttResStagChar==null || tbAttResStagChar.getConArea()==null?"": WordUtil.removeTrailingZero(tbAttResStagChar.getConArea().toString()));
      tableMap.put("moyearRainAvg", tbAttResStagChar==null || tbAttResStagChar.getMoyearRainAvg()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getMoyearRainAvg().toString()));
      tableMap.put("moyearFlAvg", tbAttResStagChar==null || tbAttResStagChar.getMoyearFlAvg()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getMoyearFlAvg().toString()));
      tableMap.put("downWacoSafeDisc", tbAttResStagChar==null || tbAttResStagChar.getDownWacoSafeDisc()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getDownWacoSafeDisc().toString()));
      tableMap.put("desFlSta", tbAttResStagChar==null || tbAttResStagChar.getDesFlSta()==null?"":tbAttResStagChar.getDesFlSta());
      tableMap.put("desFlFlow", tbAttResStagChar==null || tbAttResStagChar.getDesFlFlow()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getDesFlFlow().toString()));
      tableMap.put("desFl1dayCap", tbAttResStagChar==null || tbAttResStagChar.getDesFl1dayCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getDesFl1dayCap().toString()));
      tableMap.put("desFl3dayCap", tbAttResStagChar==null || tbAttResStagChar.getDesFl3dayCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getDesFl3dayCap().toString()));
      tableMap.put("checFlSta", tbAttResStagChar==null || tbAttResStagChar.getChecFlSta()==null?"":tbAttResStagChar.getChecFlSta());
      tableMap.put("checFlFlow", tbAttResStagChar==null || tbAttResStagChar.getChecFlFlow()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getChecFlFlow().toString()));
      tableMap.put("checFl1dayCap", tbAttResStagChar==null || tbAttResStagChar.getChecFl1dayCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getChecFl1dayCap().toString()));
      tableMap.put("checFl3dayCap", tbAttResStagChar==null || tbAttResStagChar.getChecFl3dayCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getChecFl3dayCap().toString()));
      //水库特征
      tableMap.put("adjustProp", tbAttResStagChar==null?"":AdjustPropEnum.find(tbAttResStagChar.getAdjustProp()).getLabel());
      tableMap.put("checFlStag", tbAttResStagChar==null?"":tbAttResStagChar.getChecFlStag());
      tableMap.put("totalCap", tbAttResStagChar==null?"":tbAttResStagChar.getTotalCap());
      tableMap.put("desFlStag", tbAttResStagChar==null?"":tbAttResStagChar.getDesFlStag());
      tableMap.put("flprCap", tbAttResStagChar==null?"":tbAttResStagChar.getFlprCap());
      tableMap.put("flConTopStag", tbAttResStagChar==null?"":tbAttResStagChar.getFlConTopStag());
      tableMap.put("flSortCap", tbAttResStagChar==null?"":tbAttResStagChar.getFlStorCap());
      tableMap.put("corNormStag", tbAttResStagChar==null?"":tbAttResStagChar.getCorNormStag());
      tableMap.put("adjustStorCap", tbAttResStagChar==null?"":tbAttResStagChar.getAdjustStorCap());
      tableMap.put("deadStag", tbAttResStagChar==null?"":tbAttResStagChar.getDeadStag());
      tableMap.put("deadCap", tbAttResStagChar==null?"":tbAttResStagChar.getDeadCap());
      tableMap.put("beforeFloodStag", tbAttResStagChar==null?"":tbAttResStagChar.getBeforeFloodStag());
      tableMap.put("midFloodStag", tbAttResStagChar==null?"":tbAttResStagChar.getMidFloodStag());
      tableMap.put("afterFloodStag", tbAttResStagChar==null?"":tbAttResStagChar.getAfterFloodStag());
      tableMap.put("adjustProp", tbAttResStagChar==null || tbAttResStagChar.getAdjustProp()==null?"":AdjustPropEnum.find(tbAttResStagChar.getAdjustProp()).getLabel());
      tableMap.put("checFlStag", tbAttResStagChar==null || tbAttResStagChar.getChecFlStag()==null?"":tbAttResStagChar.getChecFlStag());
      tableMap.put("totalCap", tbAttResStagChar==null || tbAttResStagChar.getTotalCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getTotalCap().toString()));
      tableMap.put("desFlStag", tbAttResStagChar==null || tbAttResStagChar.getDesFlStag()==null?"":tbAttResStagChar.getDesFlStag());
      tableMap.put("flprCap", tbAttResStagChar==null || tbAttResStagChar.getFlprCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getFlprCap().toString()));
      tableMap.put("flConTopStag", tbAttResStagChar==null || tbAttResStagChar.getFlConTopStag()==null?"":tbAttResStagChar.getFlConTopStag());
      tableMap.put("flSortCap", tbAttResStagChar==null || tbAttResStagChar.getFlStorCap()==null?"":tbAttResStagChar.getFlStorCap());
      tableMap.put("corNormStag", tbAttResStagChar==null || tbAttResStagChar.getCorNormStag()==null?"":String.format("%.2f",tbAttResStagChar.getCorNormStag()));
      tableMap.put("adjustStorCap", tbAttResStagChar==null || tbAttResStagChar.getAdjustStorCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getAdjustStorCap().toString()));
      tableMap.put("deadStag", tbAttResStagChar==null || tbAttResStagChar.getDeadStag()==null?"":String.format("%.2f",tbAttResStagChar.getDeadStag()));
      tableMap.put("deadCap", tbAttResStagChar==null || tbAttResStagChar.getDeadCap()==null?"":WordUtil.removeTrailingZero(tbAttResStagChar.getDeadCap().toString()));
      tableMap.put("beforeFloodStag", tbAttResStagChar==null || tbAttResStagChar.getBeforeFloodStag()==null?"":String.format("%.2f",tbAttResStagChar.getBeforeFloodStag()));
      tableMap.put("midFloodStag", tbAttResStagChar==null || tbAttResStagChar.getMidFloodStag()==null?"":String.format("%.2f",tbAttResStagChar.getMidFloodStag()));
      tableMap.put("afterFloodStag", tbAttResStagChar==null || tbAttResStagChar.getAfterFloodStag()==null?"":String.format("%.2f",tbAttResStagChar.getAfterFloodStag()));
      //new SimpleDateFormat("yyyy年MM月").format(tbAttResBase.getStartTime());
@@ -225,8 +226,8 @@
      tableMap.put("midFloodEnd", mfe);
      tableMap.put("afterFloodStart", afs);
      tableMap.put("afterFloodEnd", afe);
      tableMap.put("desFloodFlow", tbAttResStagChar==null?"":tbAttResStagChar.getDesFloodFlowMax());
      tableMap.put("checFloodFlowMax", tbAttResStagChar==null?"":tbAttResStagChar.getChecFloodFlowMax());
      tableMap.put("desFloodFlowMax", tbAttResStagChar==null || tbAttResStagChar.getDesFloodFlowMax()==null?"":tbAttResStagChar.getDesFloodFlowMax());
      tableMap.put("checFloodFlowMax", tbAttResStagChar==null || tbAttResStagChar.getChecFloodFlowMax()==null?"":tbAttResStagChar.getChecFloodFlowMax());
      String mainDamType = "";
      String mainDamMainFoundation = "";
@@ -254,18 +255,18 @@
         mainDamType = DamTypeEnum.find(tbAttResWaterBlock.getDamType()).getLabel();
         mainDamMainFoundation = tbAttResWaterBlock.getDamMainFoundation();
         mainDamTopElevation = isNullObject(tbAttResWaterBlock.getDamTopElevation());
         mainDamTopElevation = StringUtil.isBlank(isNullObject(tbAttResWaterBlock.getDamTopElevation()))?"":String.format("%.2f",tbAttResWaterBlock.getDamTopElevation());
         mainDamHeight = isNullObject(tbAttResWaterBlock.getDamHeight());
         mainDamTopLength = isNullObject(tbAttResWaterBlock.getDamTopLength());
         mainDamWidth = isNullObject(tbAttResWaterBlock.getDamWidth());
         mainIsTraffic = tbAttResWaterBlock.getIsTraffic();
         mainWaveWallTopElevation = isNullObject(tbAttResWaterBlock.getWaveWallTopElevation());
         mainWaveWallTopElevation = StringUtil.isBlank(isNullObject(tbAttResWaterBlock.getWaveWallTopElevation()))?"":String.format("%.2f",tbAttResWaterBlock.getWaveWallTopElevation());
         mainUpDamProtectType = convertType(tbAttResWaterBlock.getUpDamProtectType(), "Explain");
         mainDownDamProtectType = convertType(tbAttResWaterBlock.getDownDamProtectType(), "Explain");
         damMainBodyType = convertType(tbAttResWaterBlock.getDamMainBodyType(), "Explain");
         damMainBodyTopElevation = isNullObject(tbAttResWaterBlock.getDamTopElevation());
         damMainDrainType = convertType(tbAttResWaterBlock.getDamMainDrainType(), "Explain");
         mainDamBodyType = convertType(isNullObject(tbAttResWaterBlock.getDamBodyType()), "Explain");
         mainDamBodyType = DamBodyTypeEnum.find(convertType(isNullObject(tbAttResWaterBlock.getDamBodyType()), "Explain")).getLabel();
         //副坝
         subDamNum = isNullObject(tbAttResWaterBlock.getSubDamNum());
@@ -290,10 +291,31 @@
      tableMap.put("damMainBodyTopElevation", damMainBodyTopElevation);
      tableMap.put("damMainDrainType", damMainDrainType);
      tableMap.put("mainDamBodyType", mainDamBodyType);
      tableMap.put("subDamNum", subDamNum);
      tableMap.put("subDamTotLength", subDamTotLength);
      tableMap.put("subDamMaxHeight", subDamMaxHeight);
      tableMap.put("subDamTopWidth", subDamTopWidth);
      int subDamNumNew = tbAttResWaterBlockList.size() - 1;
      tableMap.put("subDamNum", subDamNumNew);
      if (subDamNumNew > 0) {
         double damHeight = 0.0;
         int index = 0;
         double damTopLength = 0.0;
         for (int i = 1; i < tbAttResWaterBlockList.size(); i++) {
            TbAttResWaterBlock waterBlock = tbAttResWaterBlockList.get(i);
            if (waterBlock.getDamHeight() > damHeight) {
               damHeight = waterBlock.getDamHeight();
               index = i;
            }
            damTopLength += waterBlock.getDamTopLength();
         }
         tableMap.put("subDamMaxHeight", damHeight);//副坝最大坝高
         tableMap.put("subDamTopWidth", tbAttResWaterBlockList.get(index).getDamWidth());//坝顶宽引用最高那座的坝顶宽
         tableMap.put("subDamTotLength", damTopLength);//坝长算所有副坝的总长度
      } else {
         tableMap.put("subDamMaxHeight", "");//副坝最大坝高
         tableMap.put("subDamTopWidth", "");//坝顶宽引用最高那座的坝顶宽
         tableMap.put("subDamTotLength", "");
      }
      //正常溢洪道
      List<TbAttResRsbNorspi> tbAttResRsbNorspiList = (List<TbAttResRsbNorspi>) resRsbNorsipiVerspiMionitorDetailByGuid.get("tbAttResRsbNorspiList");
@@ -321,7 +343,19 @@
         } else if (tbAttResRsbNorspi.getIsGate() == "是") {
            // 平板闸门,3X3
            String typeName = RsbWorkingGateEnum.find(tbAttResRsbNorspi.getWorkingGateType().toString()).getLabel();
            norWorkingGateType = StringUtil.format("{},{}X{}", typeName, tbAttResRsbNorspi.getGateWide(), tbAttResRsbNorspi.getGateLength());
            String norwgtStr = "";
            if (StringUtil.isNotBlank(typeName)) {
               norwgtStr = typeName;
            }
            if (null != tbAttResRsbNorspi.getGateWide()) {
               if (StringUtil.isNotBlank(typeName)) {
                  norwgtStr += "," + tbAttResRsbNorspi.getGateWide() + "×" + tbAttResRsbNorspi.getGateLength();
               } else {
                  norwgtStr += tbAttResRsbNorspi.getGateWide() + "×" + tbAttResRsbNorspi.getGateLength();
               }
            }
//            norWorkingGateType = StringUtil.format("{},{}X{}", typeName, tbAttResRsbNorspi.getGateWide(), tbAttResRsbNorspi.getGateLength());
            norWorkingGateType = norwgtStr;
         }
         norCheckingFloodDischarge = isNullObject(tbAttResRsbNorspi.getCheckingFloodDischarge());
@@ -336,8 +370,12 @@
         String ocType = OcTypeEnum.find(isNullObject(tbAttResRsbNorspi.getOcType())).getLabel();
         list.add(ocType);
         list.add(tbAttResRsbNorspi.getOcPower());
         if (StringUtil.isNotBlank(ocType)) {
            list.add(ocType);
         }
         if (StringUtil.isNotBlank(tbAttResRsbNorspi.getOcPower())) {
            list.add(tbAttResRsbNorspi.getOcPower());
         }
         norOc = String.join(",", list);
      }
@@ -425,90 +463,156 @@
      String workingGateType = "";
      String deliverOc = "";
      if (tbAttResWaterDeliveryList != null && tbAttResWaterDeliveryList.size() > 0 && tbAttResWaterDeliveryList.get(0).getNum() > 0) {
         //取设计流量大的进行描述
//         List<TbAttResWaterDelivery> sortList = tbAttResWaterDeliveryList.stream().sorted((a, b) -> b.getDesignFlow().compareTo(a.getDesignFlow())).collect(Collectors.toList());
         List<TbAttResWaterDelivery> sortList =
            tbAttResWaterDeliveryList.stream()
               .sorted((a, b) -> {
                  Optional<Double> flowA = Optional.ofNullable(a.getDesignFlow());
                  Optional<Double> flowB = Optional.ofNullable(b.getDesignFlow());
                  return flowA.isPresent() && flowB.isPresent() ? flowA.get().compareTo(flowB.get()) : (flowA.isPresent() ? 1 : (flowB.isPresent() ? -1 : 0));
               })
               .collect(Collectors.toList());
         TbAttResWaterDelivery tbAttResWaterDelivery = sortList.get(0);
      tableMap.put("输水建筑物名称1", "输水建筑物");
      tableMap.put("输水建筑物名称2", "输水建筑物");
      tableMap.put("输水建筑物名称3", "输水建筑物");
      for (int i = 0; i < tbAttResWaterDeliveryList.size(); i++) {
         TbAttResWaterDelivery tbAttResWaterDelivery = tbAttResWaterDeliveryList.get(i);
         aqueductType = convertType(tbAttResWaterDelivery.getAqueductType(), "AqueductTypeEnum");
         aqueductLength = isNullObject(tbAttResWaterDelivery.getAqueductLength());
         thresholdElevation = isNullObject(tbAttResWaterDelivery.getThresholdElevation());
         exportElevation = isNullObject(tbAttResWaterDelivery.getExportElevation());
         deliverSection = StringUtil.format("{}×{}", tbAttResWaterDelivery.getSectionWide(), tbAttResWaterDelivery.getSectionHigh());
         if (null != tbAttResWaterDelivery.getSectionHigh())
            deliverSection = StringUtil.format("{}×{}", tbAttResWaterDelivery.getSectionWide(), tbAttResWaterDelivery.getSectionHigh());
         else
            deliverSection = StringUtil.format("φ{}", tbAttResWaterDelivery.getSectionWide());
         designFlow = isNullObject(tbAttResWaterDelivery.getDesignFlow());
         workingGateType = tbAttResWaterDelivery.getWorkingGateType();
         List<String> list = new ArrayList<>();
         list.add(tbAttResWaterDelivery.getOcType());
         list.add(tbAttResWaterDelivery.getOcPower());
         deliverOc = String.join(",", list);
      }
      tableMap.put("aqueductType", aqueductType);
      tableMap.put("aqueductLength", aqueductLength);
      tableMap.put("thresholdElevation", thresholdElevation);
      tableMap.put("exportElevation", exportElevation);
      tableMap.put("deliverSection", deliverSection);
      tableMap.put("designFlow", designFlow);
      tableMap.put("workingGateType", workingGateType);
      tableMap.put("deliverOc", deliverOc);
         if (i == 0) {
            tableMap.put("输水建筑物名称1", StringUtil.isBlank(tbAttResWaterDelivery.getName())?"输水建筑物":tbAttResWaterDelivery.getName());
            tableMap.put("aqueductType1", aqueductType);
            tableMap.put("aqueductLength1", aqueductLength);
            tableMap.put("thresholdElevation1", thresholdElevation);
            tableMap.put("exportElevation1", exportElevation);
            tableMap.put("deliverSection1", deliverSection);
            tableMap.put("designFlow1", designFlow);
            tableMap.put("workingGateType1", workingGateType);
            tableMap.put("deliverOc1", deliverOc);
         }
         else if (i == 1) {
            tableMap.put("输水建筑物名称2", StringUtil.isBlank(tbAttResWaterDelivery.getName())?"输水建筑物":tbAttResWaterDelivery.getName());
            tableMap.put("aqueductType2", aqueductType);
            tableMap.put("aqueductLength2", aqueductLength);
            tableMap.put("thresholdElevation2", thresholdElevation);
            tableMap.put("exportElevation2", exportElevation);
            tableMap.put("deliverSection2", deliverSection);
            tableMap.put("designFlow2", designFlow);
            tableMap.put("workingGateType2", workingGateType);
            tableMap.put("deliverOc2", deliverOc);
         }
         else if (i == 3) {
            tableMap.put("输水建筑物名称3", StringUtil.isBlank(tbAttResWaterDelivery.getName())?"输水建筑物":tbAttResWaterDelivery.getName());
            tableMap.put("aqueductType3", aqueductType);
            tableMap.put("aqueductLength3", aqueductLength);
            tableMap.put("thresholdElevation3", thresholdElevation);
            tableMap.put("exportElevation3", exportElevation);
            tableMap.put("deliverSection3", deliverSection);
            tableMap.put("designFlow3", designFlow);
            tableMap.put("workingGateType3", workingGateType);
            tableMap.put("deliverOc", deliverOc);
         }
      }
//      if (tbAttResWaterDeliveryList != null && tbAttResWaterDeliveryList.size() > 0 && tbAttResWaterDeliveryList.get(0).getNum() > 0) {
//         //取设计流量大的进行描述   2024-07-18取消,修改为展示3个列表 ,没有空着
////         List<TbAttResWaterDelivery> sortList = tbAttResWaterDeliveryList.stream().sorted((a, b) -> b.getDesignFlow().compareTo(a.getDesignFlow())).collect(Collectors.toList());
////         List<TbAttResWaterDelivery> sortList =
////            tbAttResWaterDeliveryList.stream()
////               .sorted((a, b) -> {
////                  Optional<Double> flowA = Optional.ofNullable(a.getDesignFlow());
////                  Optional<Double> flowB = Optional.ofNullable(b.getDesignFlow());
////                  return flowA.isPresent() && flowB.isPresent() ? flowA.get().compareTo(flowB.get()) : (flowA.isPresent() ? 1 : (flowB.isPresent() ? -1 : 0));
////               })
////               .collect(Collectors.toList());
//
//         TbAttResWaterDelivery tbAttResWaterDelivery = tbAttResWaterDeliveryList.get(0);
//
//         aqueductType = convertType(tbAttResWaterDelivery.getAqueductType(), "AqueductTypeEnum");
//         aqueductLength = isNullObject(tbAttResWaterDelivery.getAqueductLength());
//         thresholdElevation = isNullObject(tbAttResWaterDelivery.getThresholdElevation());
//         exportElevation = isNullObject(tbAttResWaterDelivery.getExportElevation());
//         deliverSection = StringUtil.format("{}×{}", tbAttResWaterDelivery.getSectionWide(), tbAttResWaterDelivery.getSectionHigh());
//         designFlow = isNullObject(tbAttResWaterDelivery.getDesignFlow());
//         workingGateType = tbAttResWaterDelivery.getWorkingGateType();
//         List<String> list = new ArrayList<>();
//         list.add(tbAttResWaterDelivery.getOcType());
//         list.add(tbAttResWaterDelivery.getOcPower());
//         deliverOc = String.join(",", list);
//
//         tableMap.put("输水建筑物名称1", StringUtil.isBlank(tbAttResWaterDelivery.getName())?"输水建筑物":tbAttResWaterDelivery.getName());
//
//      }
      //水电站
      String plantLayoutType = "";
      String installedCapacity = "";
      double installedCapacity = 0d;
      String yearAvgHour = "";
      //当电站列表不为空 且 电站列表数量大于0 且num大于0
      if (tbAttResPowerStationList != null && tbAttResPowerStationList.size() > 0 && tbAttResPowerStationList.get(0).getNum()!=null && tbAttResPowerStationList.get(0).getNum() > 0) {
         TbAttResPowerStation tbAttResPowerStation = tbAttResPowerStationList.get(0);
      //当电站列表不为空 且 电站列表数量大于0 且num大于0  -- 2024-07-18修改,展示多个
//      if (tbAttResPowerStationList != null && tbAttResPowerStationList.size() > 0 && tbAttResPowerStationList.get(0).getNum()!=null && tbAttResPowerStationList.get(0).getNum() > 0) {
//         TbAttResPowerStation tbAttResPowerStation = tbAttResPowerStationList.get(0);
//
//         //取第一个电站
//         plantLayoutType = PlantLayoutTypeEnum.find(tbAttResPowerStation.getPlantLayoutType()).getLabel();
//         installedCapacity = isNullObject(tbAttResPowerStation.getInstalledCapacity());
//         yearAvgHour = isNullObject(tbAttResPowerStation.getYearAvgHour());
//      }
         //取第一个电站
         plantLayoutType = PlantLayoutTypeEnum.find(tbAttResPowerStation.getPlantLayoutType()).getLabel();
         installedCapacity = isNullObject(tbAttResPowerStation.getInstalledCapacity());
         yearAvgHour = isNullObject(tbAttResPowerStation.getYearAvgHour());
      for (int i=0;i < tbAttResPowerStationList.size(); i++) {
         TbAttResPowerStation tbAttResPowerStation = tbAttResPowerStationList.get(i);
         if (StringUtil.isBlank(plantLayoutType)) {
            plantLayoutType = PlantLayoutTypeEnum.find(tbAttResPowerStation.getPlantLayoutType()).getLabel();
         } else {
            plantLayoutType = plantLayoutType + "、" + PlantLayoutTypeEnum.find(tbAttResPowerStation.getPlantLayoutType()).getLabel();
         }
         installedCapacity = installedCapacity + tbAttResPowerStation.getInstalledCapacity();
         if (StringUtil.isBlank(yearAvgHour)) {
            yearAvgHour = WordUtil.removeTrailingZero(isNullObject(tbAttResPowerStation.getYearAvgHour()));
         } else {
            yearAvgHour = yearAvgHour + "、" + WordUtil.removeTrailingZero(isNullObject(tbAttResPowerStation.getYearAvgHour()));
         }
      }
      tableMap.put("plantLayoutType", plantLayoutType);
      tableMap.put("installedCapacity", installedCapacity);
      tableMap.put("installedCapacity", WordUtil.removeTrailingZero(installedCapacity + ""));
      tableMap.put("yearAvgHour", yearAvgHour);
      //水库效益
      List<String> protectList = new ArrayList<>();
      if (null != tbAttResEngBene) {
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getCity().equals("无") ) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getCity().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getCity())) {
         protectList.add(tbAttResEngBene.getCity());
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getTown().equals("无")) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getTown().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getTown())) {
         protectList.add(tbAttResEngBene.getTown());
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getRailway().equals("无")) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getRailway().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getRailway())) {
         protectList.add(tbAttResEngBene.getRailway());
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getHighway().equals("无")) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getHighway().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getHighway())) {
         protectList.add(tbAttResEngBene.getHighway());
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getImportCommunication().equals("无")) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getImportCommunication().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getImportCommunication())) {
         protectList.add(tbAttResEngBene.getImportCommunication());
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getImportFactory().equals("无")) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getImportFactory().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getImportFactory())) {
         protectList.add(tbAttResEngBene.getImportFactory());
      }
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getImportOtherFac().equals("无")) {
      if (tbAttResEngBene!=null &&!tbAttResEngBene.getImportOtherFac().equals("无") && StringUtil.isNotBlank(tbAttResEngBene.getImportOtherFac())) {
         protectList.add(tbAttResEngBene.getImportOtherFac());
      }
      //只留前四个
@@ -522,26 +626,31 @@
      double person = 0;
      if (tbAttResEngBene !=null && tbAttResEngBene.getFlControlPerson() != null) {
         person = tbAttResEngBene.getFlControlPerson() / 10000.0;
         tableMap.put("flControlPerson", String.format("%.2f", person));
         tableMap.put("flControlPerson", WordUtil.removeTrailingZero(String.format("%.2f", person)));
      } else {
         tableMap.put("flControlPerson", "");
      }
      tableMap.put("flControlLand", tbAttResEngBene==null?"":tbAttResEngBene.getFlControlLand()==null?"":String.format("%.2f", tbAttResEngBene.getFlControlLand() / 10000));
      tableMap.put("flControlLand", tbAttResEngBene==null?"":tbAttResEngBene.getFlControlLand()==null?"":
         WordUtil.removeTrailingZero(String.format("%.2f", tbAttResEngBene.getFlControlLand() / 10000)));
      tableMap.put("irrObject", tbAttResEngBene==null?"":tbAttResEngBene.getIrrObject()==null?"":tbAttResEngBene.getIrrObject());
      tableMap.put("moyearIrrAvg", tbAttResEngBene==null?"":tbAttResEngBene.getMoyearIrrAvg() == null?"":tbAttResEngBene.getMoyearIrrAvg());
      tableMap.put("desIrrArea", tbAttResEngBene==null?"":tbAttResEngBene.getDesIrrArea() == null ?"":String.format("%.2f", tbAttResEngBene.getDesIrrArea() / 10000));
      tableMap.put("checIrrArea", tbAttResEngBene==null?"":tbAttResEngBene.getChecIrrArea()==null?"":String.format("%.2f", tbAttResEngBene.getChecIrrArea() / 10000));
      tableMap.put("supplyObject", tbAttResEngBene==null?"":tbAttResEngBene.getSupplyObject()==null?"":tbAttResEngBene.getSupplyObject());
      tableMap.put("moyearIrrAvg", tbAttResEngBene==null?"":tbAttResEngBene.getMoyearIrrAvg() == null?"":
         WordUtil.removeTrailingZero(tbAttResEngBene.getMoyearIrrAvg().toString()));
      tableMap.put("desIrrArea", tbAttResEngBene==null?"":tbAttResEngBene.getDesIrrArea() == null ?"":
         WordUtil.removeTrailingZero(String.format("%.2f", tbAttResEngBene.getDesIrrArea() / 10000)));
      tableMap.put("checIrrArea", tbAttResEngBene==null?"":tbAttResEngBene.getChecIrrArea()==null?"":
         WordUtil.removeTrailingZero(String.format("%.2f", tbAttResEngBene.getChecIrrArea() / 10000)));
      tableMap.put("supplyObject", tbAttResEngBene==null?"":tbAttResEngBene.getSupplyObject()==null?"":
         tbAttResEngBene.getSupplyObject());
      Double sup = 0.0;
      String supS = "";
      if (tbAttResEngBene!=null && StringUtil.isNotBlank(tbAttResEngBene.getSupplyPopulation())) {
         sup = Double.parseDouble(tbAttResEngBene.getSupplyPopulation()) / 10000;
         supS = String.format("%.2f", sup);
      }
//      Double sup = 0.0;
//      String supS = "";
//      if (tbAttResEngBene!=null && StringUtil.isNotBlank(tbAttResEngBene.getSupplyPopulation())) {
//         sup = Double.parseDouble(tbAttResEngBene.getSupplyPopulation());
//         supS = String.format("%.2f", sup);
//      }
      tableMap.put("supplyPopulation", supS);
      tableMap.put("supplyPopulation", tbAttResEngBene.getSupplyPopulation());
      tableMap.put("moyearSupplyAvg", tbAttResEngBene==null?"":tbAttResEngBene.getMoyearSupplyAvg()==null?"":tbAttResEngBene.getMoyearSupplyAvg());
      tableMap.put("moyearPowerAvg", tbAttResEngBene==null?"":tbAttResEngBene.getMoyearPowerAvg()==null?"":tbAttResEngBene.getMoyearPowerAvg());
      tableMap.put("ecologicalFlow", tbAttResEngBene==null?"":tbAttResEngBene.getEcologicalFlow()==null?"":tbAttResEngBene.getEcologicalFlow());