Quellcode durchsuchen

1.同步pdf与后台页面查询显示风切变和湍流数据核对

wangt vor 11 Monaten
Ursprung
Commit
fadca15130

+ 10 - 10
TwoParameterWeibullProbabilityPlotOutput.txt

@@ -1,25 +1,25 @@
 Two Parameter Weibull Probability Plot
 
-Friday, 24 May 2024, 17.03
+Monday, 27 May 2024, 14.44
 
 Unweighted constrained simplex regression
 
-Gradient:  1.0171        s.e. 0.0064
-Intercept: -0.1419       s.e. 0.0473
+Gradient:  1.0491        s.e. 0.0227
+Intercept: -0.4655       s.e. 0.1925
 
-Correlation Coefficient, r: 0.9943
-Critical Value for r:       0.0352
+Correlation Coefficient, r: 0.9531
+Critical Value for r:       0.1422
 Significance level used:    5.0%
-Sum of squares:             145.8259
+Sum of squares:             104.9815
 
 Best Estimates of the Parameters
-sigma:  7.4393      'pseudo-linear' s.e. 0.0239
-gamma:  2.0655      'pseudo-linear' s.e. 0.0149
+sigma:  8.5755      'pseudo-linear' s.e. 0.0954
+gamma:  2.0737      'pseudo-linear' s.e. 0.0514
 
 The 'pseudo-linear' s.e.s are a lower limit to the s.e. and may significantly underestimate the s.e.
 See documentation, http://www.ee.ucl.ac.uk/~mflanaga/java/ProbabilityPlot.html, for details
 
 'Pseudo-linear' Parameter-Parameter Correlation Coefficients
         sigma       gamma       
-sigma   1.0         0.4351      
-gamma   0.4351      1.0         
+sigma   1.0         0.4092      
+gamma   0.4092      1.0         

+ 50 - 30
neim-biz/src/main/java/com/jiayue/biz/service/impl/PdfServiceImpl.java

@@ -10,6 +10,7 @@ import com.jiayue.biz.util.CalculationUtil;
 import com.jiayue.biz.util.DateMomentUtil;
 import com.jiayue.biz.util.DateTimeUtil;
 import com.jiayue.common.core.redis.RedisCache;
+import com.jiayue.common.core.text.Convert;
 import com.jiayue.common.utils.DateUtil;
 import flanagan.analysis.ProbabilityPlot;
 import lombok.AllArgsConstructor;
@@ -145,15 +146,15 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
         Map<String, Object> airDensity = getAirDensity(weatherCollectMonthMap, equipmentAttributeMap, startDay, endDay);
         map.put("airDensity", airDensity);
         log.info("设备:{} 生成报告,空气密度 完成时间:{}", equipmentId, cn.hutool.core.date.DateUtil.now());
-        //获取风切变指数(风向玫瑰图)
+        //6.获取风切变指数(风向玫瑰图)
         List<Map<String, Object>> windShearRose = getWindShearRose(windDirectionStatisticsDataList, equipmentAttributeMap, height);
         map.put("windShearRose", windShearRose);
         log.info("设备:{} 生成报告,获取风切变指数(风向玫瑰图) 完成时间:{}", equipmentId, cn.hutool.core.date.DateUtil.now());
-        //风切变日/年变化
+        //6.风切变日/年变化
         Map<String, Object> windShear = getWindShear(weatherCollectMonthMap, equipmentAttributeMap, height);
         map.put("windShear", windShear);
         log.info("设备:{} 生成报告,风切变日/年变化 完成时间:{}", equipmentId, cn.hutool.core.date.DateUtil.now());
-        //湍流曲线
+        //7.湍流曲线
         List<List<BigDecimal>> turIntensityCharts = getTurIntensityCharts(weatherCollectMonthMap, equipmentAttributeMap, height);
         map.put("turIntensityCharts", turIntensityCharts);
         log.info("设备:{} 生成报告,湍流曲线 完成时间:{}", equipmentId, cn.hutool.core.date.DateUtil.now());
@@ -1389,7 +1390,7 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             }
             // 获取风向统计数据
             List<WindDirectionStatisticsData> shearList = windDirectionStatisticsData.stream()
-                    .filter(e -> e.getEbId().equals(shearEquipmentAttribute.getId()) && null != e.getValue() && e.getValue().doubleValue() > 0).collect(Collectors.toList());
+                    .filter(e -> e.getEbId().equals(shearEquipmentAttribute.getId()) && null != e.getValue() && e.getValue().doubleValue() >= 0).collect(Collectors.toList());
 
             for (WindDirectionEnum value : WindDirectionEnum.values()) {
                 Map<String, Object> map = new HashMap<>();
@@ -1401,8 +1402,11 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
                 BigDecimal sumShear = null;
                 if (!filterShearValueList.isEmpty()) {
                     sumShear = filterShearValueList.stream().reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+                    map.put(value.name(), sumShear);
+                } else {
+                    map.put(value.name(), BigDecimal.ZERO);
                 }
-                map.put(value.name(), sumShear.divide(BigDecimal.valueOf(filterShearValueList.size()), 2, RoundingMode.HALF_UP));
+
                 list.add(map);
             }
         } catch (Exception e) {
@@ -1425,8 +1429,6 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             List<BigDecimal> dayResults = new ArrayList<>();//日变化
             List<BigDecimal> yearResults = new ArrayList<>();//年变化
             List<String> monthTimeList = new ArrayList<>();
-            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH");
-            SimpleDateFormat sdf = new SimpleDateFormat("M");
 
             String shearFieldName = "windShear";
             EquipmentAttribute shearEquipmentAttribute = equipmentAttributeMap.get(shearFieldName);
@@ -1444,20 +1446,20 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
                 log.error("空气密度 查询 tAVEData 为空");
                 return map;
             }
+            windTowerCalculationDataList = windTowerCalculationDataList.stream().filter(s -> null != s.getValue() && s.getValue().doubleValue() > 0).collect(Collectors.toList());
             /*日变化*/
-            long startTime1 = DateMomentUtil.getDayStartTime(DateUtils.addDays(new Date(), -1).getTime());
-            long endTime1 = startTime1 + 86399000L;
-            for (long time = startTime1; time <= endTime1; time += 3600000L) {
-                Long finalTime = time;
-                String format = simpleDateFormat.format(finalTime);
-                List<BigDecimal> collect = windTowerCalculationDataList.stream().filter(s -> simpleDateFormat.format(s.getTime())
-                                .equals(format) && s.getValue() != null && s.getValue().compareTo(new BigDecimal(-99)) != 0)
-                        .map(WindTowerCalculationData::getValue).collect(Collectors.toList());
-                BigDecimal ave = new BigDecimal(0);
-                if (!collect.isEmpty()) {
-                    ave = collect.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(collect.size()), 3, RoundingMode.HALF_UP);
-                }
+            Map<String, List<WindTowerCalculationData>> collectDayHour = windTowerCalculationDataList.stream().collect(Collectors.groupingBy(x -> DateTimeUtil.getFormatDateStrForHour(x.getTime().getTime())));
 
+            String dayHour = "";
+            for (int i = 0; i < 24; i++) {
+                if (i < 10) {
+                    dayHour = "0" + i;
+                } else {
+                    dayHour = Convert.toStr(i, "25");
+                }
+                List<WindTowerCalculationData> windTowerCalculationDataHour = collectDayHour.get(dayHour);
+                List<BigDecimal> collect = windTowerCalculationDataHour.stream().map(WindTowerCalculationData::getValue).collect(Collectors.toList());
+                BigDecimal ave = collect.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(collect.size()), 3, RoundingMode.HALF_UP);
                 dayResults.add(ave);
             }
             BigDecimal dayAve = new BigDecimal(0);
@@ -1467,18 +1469,36 @@ public class PdfServiceImpl extends ServiceImpl<WindTowerDataParentTableMapper,
             map.put("dayShear", dayResults);
             map.put("aveDayShear", dayAve);
             /*年变化*/
-            for (int i = 1; i <= 12; i++) {
-                //过滤时间区间集合
-                List<WindTowerCalculationData> filterList = new ArrayList<>();
-                BigDecimal yearShear = new BigDecimal(0);
-                int finalI = i;
-                filterList = windTowerCalculationDataList.stream().filter(w -> sdf.format(w.getTime()).equals(String.valueOf(finalI))).collect(Collectors.toList());
-                if (!filterList.isEmpty()) {
-                    List<BigDecimal> collect = filterList.stream().map(WindTowerCalculationData::getValue).collect(Collectors.toList());
-                    yearShear = collect.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(collect.size()), 3, RoundingMode.HALF_UP);
+            String shearDayFieldName = "windShearDay";
+            EquipmentAttribute shearDayEquipmentAttribute = equipmentAttributeMap.get(shearDayFieldName);
+            if (null == shearEquipmentAttribute) {
+                log.error("获取风切变指数(风向玫瑰图) 属性:{} 不存在数据", shearDayFieldName);
+                return map;
+            }
+
+            String dayEbId = shearDayEquipmentAttribute.getId(); //属性id
+            List<WindTowerCalculationData> windTowerDayCalculationDataList = weatherCollectMonthMap.get(dayEbId);
+            if (null != windTowerDayCalculationDataList && windTowerDayCalculationDataList.size() > 0) {
+                Map<String, List<WindTowerCalculationData>> collectMonth = windTowerDayCalculationDataList.stream().collect(Collectors.groupingBy(x -> DateTimeUtil.getFormatDateStrForMonthStr(x.getTime().getTime())));
+                String month = "";
+                for (int i = 1; i <= 12; i++) {
+                    if (i < 10) {
+                        month = "0" + i;
+                    } else {
+                        month = Convert.toStr(i, "00");
+                    }
+                    List<WindTowerCalculationData> windTowerCalculationDataMonth = collectMonth.get(month);
+                    if (null == windTowerCalculationDataMonth || windTowerCalculationDataMonth.size() == 0) {
+                        //yearResults.add(BigDecimal.ZERO);
+                        monthTimeList.add(i + "月");
+                    } else {
+                        List<BigDecimal> collect = windTowerCalculationDataMonth.stream().map(WindTowerCalculationData::getValue).collect(Collectors.toList());
+                        BigDecimal yearShear = collect.stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(collect.size()), 3, RoundingMode.HALF_UP);
+                        yearResults.add(yearShear);
+                        monthTimeList.add(i + "月");
+                    }
+
                 }
-                yearResults.add(yearShear);
-                monthTimeList.add(i + "月");
             }
             BigDecimal aveYearShear = new BigDecimal(0);
             List<BigDecimal> collect = yearResults.stream().filter(w -> w.compareTo(new BigDecimal(0)) != 0).collect(Collectors.toList());

+ 26 - 18
neim-biz/src/main/java/com/jiayue/biz/service/impl/RealTimeDisplayServiceImpl.java

@@ -751,40 +751,48 @@ public class RealTimeDisplayServiceImpl implements RealTimeDisplayService {
      * @param eqId
      * @param height
      */
-    public List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String height, String heightMin) {
+    public List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String heightMax, String heightMin) {
         List<ProphaseAnemometryData> anemometryData = prophaseAnemometryDataService.selectWdAveAndWdAveAndWsSta(eqId, new Timestamp(startTime), new Timestamp(endTime));
         anemometryData = anemometryData.stream().filter(p -> null != p.getWsAve() && p.getWsAve() > 0 && p.getWsAve() < 30).collect(Collectors.toList());
+        Map<String, List<ProphaseAnemometryData>> anemometryDataMap = anemometryData.stream().collect(Collectors.groupingBy(ProphaseAnemometryData::getLayerHeight));
         BigDecimal zero = new BigDecimal(0);
         List<Map<String, Object>> list = new ArrayList<>();
         //获取低层高风速所有数据
-        List<ProphaseAnemometryData> mixWindOrgList = anemometryData.stream().filter(a -> a.getLayerHeight().equals(heightMin)).collect(Collectors.toList());
+        List<ProphaseAnemometryData> mixWindOrgList = anemometryDataMap.get(heightMin);
 
         Map<Long, List<ProphaseAnemometryData>> prooAnMap = mixWindOrgList.stream()
                 .collect(Collectors.groupingBy(x -> x.getTs().getTime()));
 
         for (WindDirectionEnum value : WindDirectionEnum.values()) {
             Map<String, Object> map = new HashMap<>();
-            List<ProphaseAnemometryData> heightAndWindDirectionEnum = CalculationUtil.getForHeightAndWindDirectionEnum(anemometryData, value);
+
             //筛选出高层高风数据
-            List<ProphaseAnemometryData> maxWindList = heightAndWindDirectionEnum.stream().filter(val -> val.getLayerHeight().equals(height)).collect(Collectors.toList());
-            ArrayList<ProphaseAnemometryData> minWindList = new ArrayList<>();
-            //遍历获取同一时间点 低层高的数据
-            for (ProphaseAnemometryData wind : maxWindList) {
-                List<ProphaseAnemometryData> prophaseAnemometryData = prooAnMap.get(wind.getTs().getTime());
-                if (null != prophaseAnemometryData && prophaseAnemometryData.size() > 0) {
-                    minWindList.add(prophaseAnemometryData.get(0));
+            List<ProphaseAnemometryData> maxWindList = anemometryDataMap.get(heightMax);
+            if (null != maxWindList && maxWindList.size() > 0) {
+                maxWindList = CalculationUtil.getForHeightAndWindDirectionEnum(maxWindList, value);
+                ArrayList<ProphaseAnemometryData> minWindList = new ArrayList<>();
+                //遍历获取同一时间点 低层高的数据
+                for (ProphaseAnemometryData wind : maxWindList) {
+                    List<ProphaseAnemometryData> prophaseAnemometryData = prooAnMap.get(wind.getTs().getTime());
+                    if (null != prophaseAnemometryData && prophaseAnemometryData.size() > 0) {
+                        minWindList.add(prophaseAnemometryData.get(0));
+                    }
                 }
-            }
-            //获取平均风速
-            BigDecimal avgWindSpeed = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(maxWindList, height));
+                //获取平均风速
+                BigDecimal avgWindSpeed = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(maxWindList, heightMax));
+
+                BigDecimal avgWindSpeed10 = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(minWindList, heightMin));
 
-            BigDecimal avgWindSpeed10 = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(minWindList, heightMin));
-            BigDecimal bigDecimal = new BigDecimal(-99);
-            if (avgWindSpeed10.compareTo(BigDecimal.ZERO) != 0) {
-                bigDecimal = CalculationUtil.caWindShear(avgWindSpeed, avgWindSpeed10, new BigDecimal(height), new BigDecimal(heightMin));
+                BigDecimal bigDecimal = new BigDecimal(-99);
+                if (avgWindSpeed10.compareTo(BigDecimal.ZERO) != 0) {
+                    bigDecimal = CalculationUtil.caWindShear(avgWindSpeed, avgWindSpeed10, new BigDecimal(heightMax), new BigDecimal(heightMin));
+                    if (bigDecimal.doubleValue() < 0) {
+                        bigDecimal = BigDecimal.ZERO;
+                    }
+                }
+                map.put(value.name(), bigDecimal.equals(new BigDecimal(-99)) ? zero : bigDecimal);
             }
 
-            map.put(value.name(), bigDecimal.equals(new BigDecimal(-99)) ? zero : bigDecimal);
 
             list.add(map);
         }

+ 34 - 35
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindDataCalculationServiceImpl.java

@@ -67,6 +67,7 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
 
         //按层高分map
         Map<String, List<ProphaseAnemometryData>> proAnemomentryDataHMap = anemometryDataList.stream().collect(Collectors.groupingBy(ProphaseAnemometryData::getLayerHeight));
+
         Map<String, List<ProphaseWeatherData>> weatherDataHMap = weatherDataList.stream().collect(Collectors.groupingBy(x -> DateTimeUtil.getFormatDateStrForHH(x.getTs().getTime())));
 
         //小时平均风速风功率密度
@@ -1299,51 +1300,49 @@ public class WindDataCalculationServiceImpl implements WindDataCalculationServic
                     heightMin = Integer.parseInt(height);
                 }
             }
+            Map<String, List<ProphaseAnemometryData>> heightAndWindDirectionEnumMap = anemometryDataList.stream().collect(Collectors.groupingBy(ProphaseAnemometryData::getLayerHeight));
+
             for (String height : heights) {
                 //如果层高等于最小增高则跳出循环
                 if (height.equals(String.valueOf(heightMin))) {
                     continue;
                 }
                 String ebIdMonth = equipmentAttributeMap.get(height + "monthShearRose").getId();
+                List<ProphaseAnemometryData> anemometryDatas = heightAndWindDirectionEnumMap.get(height);
                 for (WindDirectionEnum value : WindDirectionEnum.values()) {
 
-                    List<ProphaseAnemometryData> heightAndWindDirectionList = CalculationUtil.getForHeightAndWindDirectionEnum(anemometryDataList, value);
-                    if (!heightAndWindDirectionList.isEmpty()) {
-
-                        Map<String, List<ProphaseAnemometryData>> heightAndWindDirectionEnumMap = heightAndWindDirectionList.stream().collect(Collectors.groupingBy(ProphaseAnemometryData::getLayerHeight));
-                        //获取指定层高风速数据
-                        List<ProphaseAnemometryData> height1List = heightAndWindDirectionEnumMap.get(height);
-                        if (null != height1List && height1List.size() > 0) {
-                            //计算当前层高平均风速
-                            BigDecimal avgWindSpeed = BigDecimal.valueOf(height1List.stream().collect(Collectors.averagingDouble(ProphaseAnemometryData::getWsAve))).setScale(2, RoundingMode.HALF_UP);
-
-                            //获取指定最小层高风速数据
-                            String finalHeightMin = String.valueOf(heightMin);
-                            List<ProphaseAnemometryData> height2List = heightAndWindDirectionEnumMap.get(finalHeightMin);
-                            if (null != height2List && height2List.size() > 0) {
-                                //计算当前层高平均风速
-                                BigDecimal minAvgWindSpeed = BigDecimal.valueOf(height2List.stream().collect(Collectors.averagingDouble(ProphaseAnemometryData::getWsAve))).setScale(2, RoundingMode.HALF_UP);
-                                BigDecimal bigDecimal = BigDecimal.ZERO;
-
-                                if (minAvgWindSpeed.compareTo(BigDecimal.ZERO) != 0) {
-                                    //计算风切变值
-                                    bigDecimal = CalculationUtil.caWindShear(avgWindSpeed, minAvgWindSpeed, new BigDecimal(height), new BigDecimal(heightMin));
-                                }
-                                // 数据集合
-                                WindDirectionStatisticsData windDirectionStatisticsData = new WindDirectionStatisticsData();
-                                windDirectionStatisticsData.setEbId(ebIdMonth);
-                                windDirectionStatisticsData.setTime(time);
-                                windDirectionStatisticsData.setEquipmentId(equipmentId);
-                                windDirectionStatisticsData.setDirection(value.name());
-                                windDirectionStatisticsData.setValue(bigDecimal);
-                                list.add(windDirectionStatisticsData);
-                            } else {
-                                log.warn("计算设备:{} 风切变玫瑰图 未查询到最小层高:{} 时间:{} 的数据", equipmentId, finalHeightMin, time);
-                            }
-                        } else {
-                            log.warn("计算设备:{} 风切变玫瑰图 未查询到指定层高:{} 时间:{} 的数据", equipmentId, height, time);
+                    //获取指定最小层高风速数据
+                    String finalHeightMin = String.valueOf(heightMin);
+                    List<ProphaseAnemometryData> height2List = heightAndWindDirectionEnumMap.get(finalHeightMin);
+                    Map<Long, List<ProphaseAnemometryData>> prooAnMap = height2List.stream()
+                            .collect(Collectors.groupingBy(x -> x.getTs().getTime()));
+                    //筛选出高层高风数据
+                    List<ProphaseAnemometryData> maxWindList = CalculationUtil.getForHeightAndWindDirectionEnum(anemometryDatas, value);
+
+                    ArrayList<ProphaseAnemometryData> minWindList = new ArrayList<>();
+                    //遍历获取同一时间点 低层高的数据
+                    for (ProphaseAnemometryData wind : maxWindList) {
+                        List<ProphaseAnemometryData> prophaseAnemometryData = prooAnMap.get(wind.getTs().getTime());
+                        if (null != prophaseAnemometryData && prophaseAnemometryData.size() > 0) {
+                            minWindList.add(prophaseAnemometryData.get(0));
                         }
                     }
+                    //获取平均风速
+                    BigDecimal avgWindSpeed = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(maxWindList, height));
+
+                    BigDecimal avgWindSpeed10 = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(minWindList, finalHeightMin));
+                    BigDecimal bigDecimal = new BigDecimal(-99);
+                    if (avgWindSpeed10.compareTo(BigDecimal.ZERO) != 0) {
+                        bigDecimal = CalculationUtil.caWindShear(avgWindSpeed, avgWindSpeed10, new BigDecimal(height), new BigDecimal(finalHeightMin));
+                    }
+                    // 数据集合
+                    WindDirectionStatisticsData windDirectionStatisticsData = new WindDirectionStatisticsData();
+                    windDirectionStatisticsData.setEbId(ebIdMonth);
+                    windDirectionStatisticsData.setTime(time);
+                    windDirectionStatisticsData.setEquipmentId(equipmentId);
+                    windDirectionStatisticsData.setDirection(value.name());
+                    windDirectionStatisticsData.setValue(bigDecimal);
+                    list.add(windDirectionStatisticsData);
                 }
             }
         } catch (Exception e) {

+ 1 - 1
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindTowerCalculationDataServiceImpl.java

@@ -162,7 +162,7 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
             String ebId = shearFieldNameList.get(0).getId(); //属性id
             //查询风切变 月平均数据 根据时间,层高,设备id 并根据时间升序排列
             List<WindTowerCalculationData> windTowerCalculationDataLists = getByBetweenTimeAndEquipmentId(new Date(startTime), new Date(endTime), eqId);
-            List<WindTowerCalculationData> windTowerCalculationDataList = windTowerCalculationDataLists.stream().filter(w -> ebId.equals(w.getEbId())).sorted(Comparator.comparing(WindTowerCalculationData::getTime)).collect(Collectors.toList());
+            List<WindTowerCalculationData> windTowerCalculationDataList = windTowerCalculationDataLists.stream().filter(w -> null != w.getValue() && w.getValue().doubleValue() >= 0 && ebId.equals(w.getEbId())).sorted(Comparator.comparing(WindTowerCalculationData::getTime)).collect(Collectors.toList());
             BigDecimal sum = BigDecimal.ZERO;
             BigDecimal avgShear = BigDecimal.ZERO;
             if (!windTowerCalculationDataList.isEmpty()) {

+ 12 - 0
neim-biz/src/main/java/com/jiayue/biz/util/DateTimeUtil.java

@@ -265,6 +265,18 @@ public class DateTimeUtil {
     }
 
     /**
+     * 将长时间格式时间转换为字符串 yyyy-MM-dd
+     *
+     * @param dateDate
+     * @return
+     */
+    public static String getFormatDateStrForMonthStr(Long dateDate) {
+        SimpleDateFormat formatter = new SimpleDateFormat("MM");
+        String dateString = formatter.format(dateDate);
+        return dateString;
+    }
+
+    /**
      * 将时间格式字符串转换为时间 HH:mm
      *
      * @param strDate