Эх сурвалжийг харах

新增UWB室内定位数据处理功能

- 添加BdDevcTrailUwb实体类,用于存储UWB室内定位数据
- 实现BdDevcTrailUwb相关的Service接口和实现类
- 新增BdDevcTrailUwbMapper及XML映射文件,处理数据库操作
- 在PointFusionEngine中集成UWB数据处理逻辑,自动保存定位数据到数据库
- 修复DateTimeUtil类,增加时间步长计算方法
chen.cheng 9 сар өмнө
parent
commit
4a50c0c998

+ 135 - 0
bd-location/src/main/java/com/ruoyi/bd/domain/BdDevcTrailUwb.java

@@ -0,0 +1,135 @@
+package com.ruoyi.bd.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 室内坐标定位对象 bd_devc_trail_uwb
+ *
+ * @author ruoyi
+ * @date 2024-10-16
+ */
+public class BdDevcTrailUwb extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 设备唯一键 */
+    @Excel(name = "设备唯一键")
+    private String devcKey;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private Double lat;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private Double lng;
+
+    /** 日期 */
+    @Excel(name = "日期")
+    private String dt;
+
+    private Integer stepIndex;
+
+    private Integer tp;
+
+    /** 所在空间唯一键 */
+    @Excel(name = "所在空间唯一键")
+    private String roomIndex;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setDevcKey(String devcKey)
+    {
+        this.devcKey = devcKey;
+    }
+
+    public String getDevcKey()
+    {
+        return devcKey;
+    }
+    public void setLat(Double lat)
+    {
+        this.lat = lat;
+    }
+
+    public Double getLat()
+    {
+        return lat;
+    }
+    public void setLng(Double lng)
+    {
+        this.lng = lng;
+    }
+
+    public Double getLng()
+    {
+        return lng;
+    }
+    public void setDt(String dt)
+    {
+        this.dt = dt;
+    }
+
+    public String getDt()
+    {
+        return dt;
+    }
+    public void setStepIndex(Integer stepIndex)
+    {
+        this.stepIndex = stepIndex;
+    }
+
+    public Integer getStepIndex()
+    {
+        return stepIndex;
+    }
+    public void setTp(Integer tp)
+    {
+        this.tp = tp;
+    }
+
+    public Integer getTp()
+    {
+        return tp;
+    }
+    public void setRoomIndex(String roomIndex)
+    {
+        this.roomIndex = roomIndex;
+    }
+
+    public String getRoomIndex()
+    {
+        return roomIndex;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("devcKey", getDevcKey())
+            .append("lat", getLat())
+            .append("lng", getLng())
+            .append("dt", getDt())
+            .append("stepIndex", getStepIndex())
+            .append("tp", getTp())
+            .append("roomIndex", getRoomIndex())
+            .append("updateTime", getUpdateTime())
+            .append("createTime", getCreateTime())
+            .append("createBy", getCreateBy())
+            .append("updateBy", getUpdateBy())
+            .toString();
+    }
+}

+ 61 - 0
bd-location/src/main/java/com/ruoyi/bd/mapper/BdDevcTrailUwbMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.bd.mapper;
+
+import java.util.List;
+import com.ruoyi.bd.domain.BdDevcTrailUwb;
+
+/**
+ * 室内坐标定位Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-10-16
+ */
+public interface BdDevcTrailUwbMapper 
+{
+    /**
+     * 查询室内坐标定位
+     * 
+     * @param id 室内坐标定位主键
+     * @return 室内坐标定位
+     */
+    public BdDevcTrailUwb selectBdDevcTrailUwbById(Long id);
+
+    /**
+     * 查询室内坐标定位列表
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 室内坐标定位集合
+     */
+    public List<BdDevcTrailUwb> selectBdDevcTrailUwbList(BdDevcTrailUwb bdDevcTrailUwb);
+
+    /**
+     * 新增室内坐标定位
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 结果
+     */
+    public int insertBdDevcTrailUwb(BdDevcTrailUwb bdDevcTrailUwb);
+
+    /**
+     * 修改室内坐标定位
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 结果
+     */
+    public int updateBdDevcTrailUwb(BdDevcTrailUwb bdDevcTrailUwb);
+
+    /**
+     * 删除室内坐标定位
+     * 
+     * @param id 室内坐标定位主键
+     * @return 结果
+     */
+    public int deleteBdDevcTrailUwbById(Long id);
+
+    /**
+     * 批量删除室内坐标定位
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBdDevcTrailUwbByIds(Long[] ids);
+}

+ 61 - 0
bd-location/src/main/java/com/ruoyi/bd/service/IBdDevcTrailUwbService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.bd.service;
+
+import java.util.List;
+import com.ruoyi.bd.domain.BdDevcTrailUwb;
+
+/**
+ * 室内坐标定位Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-10-16
+ */
+public interface IBdDevcTrailUwbService 
+{
+    /**
+     * 查询室内坐标定位
+     * 
+     * @param id 室内坐标定位主键
+     * @return 室内坐标定位
+     */
+    public BdDevcTrailUwb selectBdDevcTrailUwbById(Long id);
+
+    /**
+     * 查询室内坐标定位列表
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 室内坐标定位集合
+     */
+    public List<BdDevcTrailUwb> selectBdDevcTrailUwbList(BdDevcTrailUwb bdDevcTrailUwb);
+
+    /**
+     * 新增室内坐标定位
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 结果
+     */
+    public int insertBdDevcTrailUwb(BdDevcTrailUwb bdDevcTrailUwb);
+
+    /**
+     * 修改室内坐标定位
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 结果
+     */
+    public int updateBdDevcTrailUwb(BdDevcTrailUwb bdDevcTrailUwb);
+
+    /**
+     * 批量删除室内坐标定位
+     * 
+     * @param ids 需要删除的室内坐标定位主键集合
+     * @return 结果
+     */
+    public int deleteBdDevcTrailUwbByIds(Long[] ids);
+
+    /**
+     * 删除室内坐标定位信息
+     * 
+     * @param id 室内坐标定位主键
+     * @return 结果
+     */
+    public int deleteBdDevcTrailUwbById(Long id);
+}

+ 1 - 1
bd-location/src/main/java/com/ruoyi/bd/service/engine/EvtFusionEngine.java

@@ -69,8 +69,8 @@ public abstract class EvtFusionEngine {
                         LocationInfo locationInfoNew = new LocationInfo(msg.getDouble("latitude"), msg.getDouble("longitude"), msg.getLong("srcTimestamp"));
                         String key = getKey(locationInfoNew);
                         LocationInfo locationInfo = evtBucket.get(key);
+                        locationInfoNew.setEvtTimestamp(DateTimeUtil.timestampMillis());
                         if (ObjectUtils.isEmpty(locationInfo)) {
-                            locationInfoNew.setEvtTimestamp(DateTimeUtil.timestampMillis());
                             getBizId(locationInfoNew);
                             evtBucket.put(key, locationInfoNew);
                             continue;

+ 23 - 1
bd-location/src/main/java/com/ruoyi/bd/service/engine/impl/PointFusionEngine.java

@@ -1,7 +1,10 @@
 package com.ruoyi.bd.service.engine.impl;
 
+import com.ruoyi.bd.domain.BdDevcTrailUwb;
+import com.ruoyi.bd.service.IBdDevcTrailUwbService;
 import com.ruoyi.bd.service.engine.EvtFusionEngine;
 import com.ruoyi.bd.service.engine.LocationInfo;
+import com.ruoyi.common.utils.DateTimeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -15,6 +18,9 @@ import javax.annotation.PostConstruct;
 @Service
 public class PointFusionEngine extends EvtFusionEngine {
 
+    @Autowired
+    private IBdDevcTrailUwbService bdDevcTrailUwbService;
+
     /**
      * The constant MAX_POINT_DISTANCE.
      * 单位米
@@ -51,9 +57,25 @@ public class PointFusionEngine extends EvtFusionEngine {
 
     @Override
     public void getBizId(LocationInfo msg) {
-
+        long evtTimestamp = msg.getEvtTimestamp();
+        BdDevcTrailUwb bdDevcTrailUwb = new BdDevcTrailUwb();
+        bdDevcTrailUwb.setDevcKey(msg.getMsg().getString("deviceId"));
+        bdDevcTrailUwb.setLat(msg.getLatitude());
+        bdDevcTrailUwb.setLng(msg.getLongitude());
+        bdDevcTrailUwb.setDt(DateTimeUtil.currentDateTime(DateTimeUtil.DateFormatter.yyyyMMdd));
+        bdDevcTrailUwb.setTp(MAX_POINT_TIME_GAP);
+        bdDevcTrailUwb.setStepIndex(DateTimeUtil.getStepIndexFromMills(MAX_POINT_TIME_GAP, evtTimestamp));
+        bdDevcTrailUwbService.insertBdDevcTrailUwb(bdDevcTrailUwb);
+        msg.setBizId(bdDevcTrailUwb.getId().toString());
     }
 
+    /**
+     * Process older data.
+     * 可以做事件消散等事务
+     *
+     * @param msg the msg
+     * @author chen.cheng
+     */
     @Override
     public void processOlderData(LocationInfo msg) {
 

+ 96 - 0
bd-location/src/main/java/com/ruoyi/bd/service/impl/BdDevcTrailUwbServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.bd.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.bd.mapper.BdDevcTrailUwbMapper;
+import com.ruoyi.bd.domain.BdDevcTrailUwb;
+import com.ruoyi.bd.service.IBdDevcTrailUwbService;
+
+/**
+ * 室内坐标定位Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-10-16
+ */
+@Service
+public class BdDevcTrailUwbServiceImpl implements IBdDevcTrailUwbService 
+{
+    @Autowired
+    private BdDevcTrailUwbMapper bdDevcTrailUwbMapper;
+
+    /**
+     * 查询室内坐标定位
+     * 
+     * @param id 室内坐标定位主键
+     * @return 室内坐标定位
+     */
+    @Override
+    public BdDevcTrailUwb selectBdDevcTrailUwbById(Long id)
+    {
+        return bdDevcTrailUwbMapper.selectBdDevcTrailUwbById(id);
+    }
+
+    /**
+     * 查询室内坐标定位列表
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 室内坐标定位
+     */
+    @Override
+    public List<BdDevcTrailUwb> selectBdDevcTrailUwbList(BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        return bdDevcTrailUwbMapper.selectBdDevcTrailUwbList(bdDevcTrailUwb);
+    }
+
+    /**
+     * 新增室内坐标定位
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 结果
+     */
+    @Override
+    public int insertBdDevcTrailUwb(BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        bdDevcTrailUwb.setCreateTime(DateUtils.getNowDate());
+        return bdDevcTrailUwbMapper.insertBdDevcTrailUwb(bdDevcTrailUwb);
+    }
+
+    /**
+     * 修改室内坐标定位
+     * 
+     * @param bdDevcTrailUwb 室内坐标定位
+     * @return 结果
+     */
+    @Override
+    public int updateBdDevcTrailUwb(BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        bdDevcTrailUwb.setUpdateTime(DateUtils.getNowDate());
+        return bdDevcTrailUwbMapper.updateBdDevcTrailUwb(bdDevcTrailUwb);
+    }
+
+    /**
+     * 批量删除室内坐标定位
+     * 
+     * @param ids 需要删除的室内坐标定位主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBdDevcTrailUwbByIds(Long[] ids)
+    {
+        return bdDevcTrailUwbMapper.deleteBdDevcTrailUwbByIds(ids);
+    }
+
+    /**
+     * 删除室内坐标定位信息
+     * 
+     * @param id 室内坐标定位主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBdDevcTrailUwbById(Long id)
+    {
+        return bdDevcTrailUwbMapper.deleteBdDevcTrailUwbById(id);
+    }
+}

+ 104 - 0
bd-location/src/main/java/com/ruoyi/web/controller/bd/BdDevcTrailUwbController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.bd;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.bd.domain.BdDevcTrailUwb;
+import com.ruoyi.bd.service.IBdDevcTrailUwbService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 室内坐标定位Controller
+ *
+ * @author ruoyi
+ * @date 2024-10-16
+ */
+@RestController
+@RequestMapping("/bd/devcTrailUwb")
+public class BdDevcTrailUwbController extends BaseController
+{
+    @Autowired
+    private IBdDevcTrailUwbService bdDevcTrailUwbService;
+
+    /**
+     * 查询室内坐标定位列表
+     */
+    @PreAuthorize("@ss.hasPermi('bd:devcTrailUwb:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        startPage();
+        List<BdDevcTrailUwb> list = bdDevcTrailUwbService.selectBdDevcTrailUwbList(bdDevcTrailUwb);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出室内坐标定位列表
+     */
+    @PreAuthorize("@ss.hasPermi('bd:devcTrailUwb:export')")
+    @Log(title = "室内坐标定位", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        List<BdDevcTrailUwb> list = bdDevcTrailUwbService.selectBdDevcTrailUwbList(bdDevcTrailUwb);
+        ExcelUtil<BdDevcTrailUwb> util = new ExcelUtil<BdDevcTrailUwb>(BdDevcTrailUwb.class);
+        util.exportExcel(response, list, "室内坐标定位数据");
+    }
+
+    /**
+     * 获取室内坐标定位详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('bd:devcTrailUwb:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(bdDevcTrailUwbService.selectBdDevcTrailUwbById(id));
+    }
+
+    /**
+     * 新增室内坐标定位
+     */
+    @PreAuthorize("@ss.hasPermi('bd:devcTrailUwb:add')")
+    @Log(title = "室内坐标定位", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        return toAjax(bdDevcTrailUwbService.insertBdDevcTrailUwb(bdDevcTrailUwb));
+    }
+
+    /**
+     * 修改室内坐标定位
+     */
+    @PreAuthorize("@ss.hasPermi('bd:devcTrailUwb:edit')")
+    @Log(title = "室内坐标定位", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BdDevcTrailUwb bdDevcTrailUwb)
+    {
+        return toAjax(bdDevcTrailUwbService.updateBdDevcTrailUwb(bdDevcTrailUwb));
+    }
+
+    /**
+     * 删除室内坐标定位
+     */
+    @PreAuthorize("@ss.hasPermi('bd:devcTrailUwb:remove')")
+    @Log(title = "室内坐标定位", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bdDevcTrailUwbService.deleteBdDevcTrailUwbByIds(ids));
+    }
+}

+ 97 - 0
bd-location/src/main/resources/mapper/bd/BdDevcTrailUwbMapper.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.bd.mapper.BdDevcTrailUwbMapper">
+    
+    <resultMap type="BdDevcTrailUwb" id="BdDevcTrailUwbResult">
+        <result property="id"    column="id"    />
+        <result property="devcKey"    column="devc_key"    />
+        <result property="lat"    column="lat"    />
+        <result property="lng"    column="lng"    />
+        <result property="dt"    column="dt"    />
+        <result property="stepIndex"    column="step_index"    />
+        <result property="tp"    column="tp"    />
+        <result property="roomIndex"    column="room_index"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateBy"    column="update_by"    />
+    </resultMap>
+
+    <sql id="selectBdDevcTrailUwbVo">
+        select id, devc_key, lat, lng, dt, step_index, tp, room_index, update_time, create_time, create_by, update_by from bd_devc_trail_uwb
+    </sql>
+
+    <select id="selectBdDevcTrailUwbList" parameterType="BdDevcTrailUwb" resultMap="BdDevcTrailUwbResult">
+        <include refid="selectBdDevcTrailUwbVo"/>
+        <where>  
+            <if test="devcKey != null  and devcKey != ''"> and devc_key = #{devcKey}</if>
+            <if test="dt != null  and dt != ''"> and dt = #{dt}</if>
+        </where>
+    </select>
+    
+    <select id="selectBdDevcTrailUwbById" parameterType="Long" resultMap="BdDevcTrailUwbResult">
+        <include refid="selectBdDevcTrailUwbVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBdDevcTrailUwb" parameterType="BdDevcTrailUwb" useGeneratedKeys="true" keyProperty="id">
+        insert into bd_devc_trail_uwb
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="devcKey != null">devc_key,</if>
+            <if test="lat != null">lat,</if>
+            <if test="lng != null">lng,</if>
+            <if test="dt != null">dt,</if>
+            <if test="stepIndex != null">step_index,</if>
+            <if test="tp != null">tp,</if>
+            <if test="roomIndex != null">room_index,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="devcKey != null">#{devcKey},</if>
+            <if test="lat != null">#{lat},</if>
+            <if test="lng != null">#{lng},</if>
+            <if test="dt != null">#{dt},</if>
+            <if test="stepIndex != null">#{stepIndex},</if>
+            <if test="tp != null">#{tp},</if>
+            <if test="roomIndex != null">#{roomIndex},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBdDevcTrailUwb" parameterType="BdDevcTrailUwb">
+        update bd_devc_trail_uwb
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="devcKey != null">devc_key = #{devcKey},</if>
+            <if test="lat != null">lat = #{lat},</if>
+            <if test="lng != null">lng = #{lng},</if>
+            <if test="dt != null">dt = #{dt},</if>
+            <if test="stepIndex != null">step_index = #{stepIndex},</if>
+            <if test="tp != null">tp = #{tp},</if>
+            <if test="roomIndex != null">room_index = #{roomIndex},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBdDevcTrailUwbById" parameterType="Long">
+        delete from bd_devc_trail_uwb where id = #{id}
+    </delete>
+
+    <delete id="deleteBdDevcTrailUwbByIds" parameterType="String">
+        delete from bd_devc_trail_uwb where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 10 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateTimeUtil.java

@@ -113,6 +113,14 @@ public class DateTimeUtil {
         return now.format(formatter);
     }
 
+    public static Integer getStepIndexFromMills(Integer step, long mills) {
+        LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(mills), ZoneId.systemDefault());
+        int hour = localDateTime.getHour();
+        int second = localDateTime.getSecond();
+        return hour * 60 * 60 / step + second / step;
+    }
+
+
     /**
      * Parse local date local date time.
      *
@@ -578,9 +586,10 @@ public class DateTimeUtil {
     }
 
     public static void main(String[] args) {
-
+        System.out.println(DateTimeUtil.getStepIndexFromMills(10, System.currentTimeMillis()));
     }
 
+
     /**
      * The interface Date formatter.
      *