{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508973294,"data":{"id":71713562,"title":"14.地理围栏服务","slug":"sgwg9r","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

1、对外接口说明

1.1、围栏枚举量以及数据结构定义

/**\n* @file        bl_geo_fence_define_dto.h\n* @brief       地理围栏服务枚举量以及数据结构定义头文件\n* @details     明确地理围栏服务对外透出的枚举量以及数据结构\n* @version     1.0\n* @author      qingcheng.yqc\n* @date        2020-06-30\n* @copyright   (C) Copyright 2020-2021, AutoNavi Software Co., Ltd.\n*/\n#ifndef __BL_GEO_FENCE_DEFINE_DTO_H__\n#define __BL_GEO_FENCE_DEFINE_DTO_H__\n#include "common/dice_types.h"\n#include "common/dice_coord_3d.h"\n#include "common/dice_hash_map.h"\n#include "utils/bl_util_define.h"\n#include "bl_map_view.h"\n\nBEGIN_SPACE_BL\n\n/**\n* @brief        车辆电源状态定义\n*/\nenum VehiclePowerState\n{\n    VehiclePowerStateUnknow = 0,                /**< 未知 */\n    VehiclePowerStateOn,                        /**< 车辆启动 */\n    VehiclePowerStateOff,                       /**< 车辆熄火 */\n    VehiclePowerStateStandby,                   /**< 车辆待机 */\n};\n\n/**\n* @brief        围栏类型定义\n*/\nenum GeoFenceType\n{\n    GeoFenceTypeUnknow = 0,                     /**< 未知 */\n    GeoFenceTypeCircle,                         /**< 圆形围栏 */\n    GeoFenceTypePolygon,                        /**< 多边形围栏 */\n    GeoFenceTypeLine,                           /**< 线型围栏 */\n};\n\n/**\n * @brief           特殊围栏类型定义\n */\nenum GeoFenceSpecialType\n{\n    GeoFenceSpecialTypeUnknow = 0,                     /**< 未知 */\n    GeoFenceSpecialTypeHome,                           /**< 家 */\n    GeoFenceSpecialTypeCompany,                        /**< 公司 */\n    GeoFenceSpecialTypeFrequentLoc,                    /**< 常去地点 */\n};\n\n/**\n* @brief        围栏生产方式\n*/\nenum GeoFenceGenMode\n{\n    GeoFenceGenModeUnknow = 0,                  /**< 未知 */\n    GeoFenceGenModeManualDraw,                  /**< 围栏web编辑平台手绘 */\n    GeoFenceGenModeImportPoints,                /**< 围栏web编辑平台导入点列表 */\n    GeoFenceGenModeSpecilSetPoint,              /**< 围栏web编辑平台特定点设定 */\n};\n\n/**\n* @brief        围栏形状特征\n*/\nenum GeoFenceShapeFeature\n{\n    GeoFenceShapeFeatureUnknow = 0,             /**< 未知 */\n    GeoFenceShapeFeatureRegular,                /**< 规则 */\n    GeoFenceShapeFeatureUnRegular,              /**< 不规则 */\n};\n\n/**\n* @brief        围栏感知状态定义\n*/\nenum GeoFencePerceptStatus\n{\n    GeoFencePerceptStatusUnknow = 0,                    /**< 未知 */\n    GeoFencePerceptStatusOutside,                       /**< 在围栏外 */\n    GeoFencePerceptStatusEnter,                         /**< 进入围栏 */\n    GeoFencePerceptStatusInside,                        /**< 在围栏内 */\n    GeoFencePerceptStatusExit,                          /**< 出围栏 */\n    GeoFencePerceptStatusCross,                         /**< 穿过围栏 */\n};\n\nclass BL_EXPORT VehicleCondition\n{\npublic:\n    VehicleCondition();\n    \n    float fSpeed;                                   /**<车机真实速度*/\n    float fCharge;                                  /**<当前电量*/\n    float fFuel;                                    /**<当前油量*/\n    bool bLight;                                    /**<车灯信号*/\n    VehiclePowerState ePowerState;                  /**<电源状态*/\n    dice::String16 strExData;                       /**<扩展数据,JSON格式*/\n};\n\nclass BL_EXPORT RegualCondition\n{\npublic:\n    RegualCondition();\n    VehicleCondition vehicleCondition;\n};\n\n/**\n * @brief        围栏生效时间\n */\nclass BL_EXPORT GeoFenceValidTime\n{\npublic:\n    GeoFenceValidTime();\n    dice::String16 mStrStartdateTime;                       /**< 生效起始时间 */\n    dice::String16 mStrEnddateTime;                         /**< 生效终止时间 */\n};\n\n/**\n * @brief        围栏规则动作\n */\nclass BL_EXPORT GeoFenceDetectAction\n{\npublic:\n    GeoFenceDetectAction();\n    \n    bool bEnter;                                   /**< 进入围栏*/\n    bool bInside;                                  /**< 在围栏内部*/\n    bool bExit;                                    /**< 出围栏*/\n    bool bOutside;                                 /**< 在围栏外部*/\n    bool bCross;                                   /**< 穿过围栏*/\n    uint32_t nDuration;                            /**< 停留时长,单位:分钟 */\n};\n\n/**\n * @brief        围栏规则响应动作\n */\nclass BL_EXPORT GeoFenceResponeAction\n{\npublic:\n    GeoFenceResponeAction();\n    \n    dice::String16 responeName;                  /**< 围栏规则条件 */\n    dice::String16 responeType;                  /**< 围栏规则响应类型 */\n    dice::String16 strContent;                   /**< 围栏规则响应内容 */\n};\n\n/**\n * @brief            围栏服务初始化参数\n */\nclass BL_EXPORT GeoFenceInitParam\n{\npublic:\n    GeoFenceInitParam();\n    \npublic:\n    dice::String16 strChannelID;        /**< 猛犸渠道号,请求围栏数据必填参数 */\n    dice::String16 strDbPath;           /**< 围栏数据库存储路径 */\n};\n\n/**\n* @brief        围栏规则\n*/\nclass BL_EXPORT GeoFenceRegual\n{\npublic:\n    GeoFenceRegual();\n\npublic:\n    dice::String8 strGeoFenceGID;                           /**< 围栏组唯一ID */\n    dice::String16 strGeoFenceGName;                        /**< 围栏组名称 */\n    int64_t        geoFenceUpdateTime;                      /**< 围栏组更新时间 */\n    dice::vector<GeoFenceValidTime> validTime;              /**< 围栏生效时间 */\n    dice::String16 mStrCondition;                           /**< 围栏规则条件 */\n    GeoFenceDetectAction detectAction;                      /**< 围栏规则检测动作 */\n    dice::vector<GeoFenceResponeAction> responeAction;      /**< 围栏规则响应动作 */\n};\n\n/**\n* @brief        围栏信息基类\n*/\nclass BL_EXPORT GeoFenceRegionBase\n{\npublic:\n    GeoFenceRegionBase();\n\n    virtual ~GeoFenceRegionBase();\n\npublic:\n    dice::String8 strGeoFenceID;                  /**< 围栏唯一ID */\n    dice::String16 strGeoFencName;                /**< 围栏名称 */\n    dice::vector<dice::String8>  vecGids;         /**< 围栏组列表 */\n    bool bEnable;                                 /**< 是否启用 false 禁用 true 启用 */\n    GeoFencePerceptStatus geoFenceStatus;         /**< 围栏感知状态 */\n    GeoFenceType type;                            /**< 围栏类型 */\n    dice::String16 strUserAccount;                /**< 围栏用户账号 */\n    int64_t updateTime;                           /**< 更新时间 */\n    dice::Coord3D<double> rectangleMin;           /**< 外接矩形左下点坐标 */\n    dice::Coord3D<double> rectangleMax;           /**< 外接矩形右上点坐标 */\n    dice::Coord3D<double> rectangleCenter;        /**< 外接矩形中心点坐标 */\n};\n\n/**\n* @brief        圆形围栏\n*/\nclass BL_EXPORT GeoFenceCircleRegion : public GeoFenceRegionBase\n{\npublic:\n    GeoFenceCircleRegion();\n    virtual ~GeoFenceCircleRegion();\n\npublic:\n    uint32_t radius;                                 /**< 半径,单位:米 */\n    dice::Coord3D<double> centerPt;                  /**< 中心点经纬度 */\n};\n\n/**\n* @brief        多边型围栏\n*/\nclass BL_EXPORT GeoFencePolygonRegion : public GeoFenceRegionBase\n{\npublic:\n    GeoFencePolygonRegion();\n    virtual ~GeoFencePolygonRegion();\n\npublic:\n    dice::vector<dice::Coord3D<double> > coordliates;    /**< 经纬度坐标点列表 */\n};\n\n/**\n* @brief        线型围栏\n*/\nclass BL_EXPORT GeoFenceLineRegion : public GeoFenceRegionBase\n{\npublic:\n    GeoFenceLineRegion();\n    virtual ~GeoFenceLineRegion();\n\npublic:\n    dice::vector<dice::Coord3D<double> > coordliates;    /**< 经纬度坐标点列表 */\n};\n\n/**\n* @brief        围栏信息\n*/\nclass BL_EXPORT GeoFenceRegion\n{\npublic:\n    GeoFenceRegion();\n    \n    GeoFenceRegual regual;                        /**< 围栏规则 */\n    GeoFenceRegionBase* geoFenceRegion;           /**< 当前命中围栏数据 */\n};\n\n/**\n* @brief        围栏绘制样式控制\n*/\nclass BL_EXPORT GeoFenceDrawConfig\n{\npublic:\n    GeoFenceDrawConfig();\n    \n    int32_t levelMax; //显示最大比例尺\n    int32_t levelWhole; //全量显示比例尺比例尺\n    int32_t limitedNumber;// 小于 levelMax && 大于 levelWhole 比例尺的最大围栏显示数量,建议小于10个\n    int32_t cacheAdcodeNumber;//默认3个。缓存的adcode数量,无离线数据状态下adcode最小单位是城市,有离线数据情况下最小单位是区域(城镇)\n    dice::vector<dice::String8> visibleGroups; //默认为空。在设置的情况下只会显示对应围栏组的围栏数据\n};\n\nEND_SPACE_BL\n\n#endif /**< __BL_GEO_FENCE_DEFINE_DTO_H__ */


1.2、围栏规则条件数据适配接口

/**\n* @file        bl_geo_fence_regual_condition.h\n* @brief       围栏规则条件数据适配接口定义\n* @version     1.0\n* @author      qingcheng.yqc\n* @date        2020-6-30\n* @copyright   (C) Copyright 2020-2021, AutoNavi Software Co., Ltd.\n*/\n\n#ifndef __BL_GEO_FENCE_REGUAL_CONDITION_H__\n#define __BL_GEO_FENCE_REGUAL_CONDITION_H__\n\n#include "utils/bl_util_errorcode.h"\n#include "bl_geo_fence_define_dto.h"\n\nBEGIN_SPACE_BL\n\n/**\n* @brief        围栏规则条件数据适配接口\n*/\nclass BL_EXPORT IGeoFenceRegualCondition\n{\npublic:\n    virtual ~IGeoFenceRegualCondition() {}\n    /**\n    * @brief        围栏规则条件数据获取\n    * @details      此接口用来从车机系统获取车机真实速度等相关车身状态数据以及其它规则条件数据\n    * @param[out]   condition           围栏规则条件数据包含车身状态、用户行为等\n    * @return       bool,true : 成功  false : 失败\n    * @note         thread:main\n    */\n    virtual bool GetRegualCondition(RegualCondition& condition) = 0;\n};\nEND_SPACE_BL\n\n#endif /**< __BL_GEO_FENCE_VEHICLE_CONDITION_H__ */

GetRegualCondition:主要用来实时获取车身数据,方便用于围栏进行规则匹配,需要外部实现,并且通过围栏服务接口SetGeoFenceRegualCondition传入。


1.3、围栏感知结果观察者回调接口

/**\n* @brief        围栏感知结果观察者回调接口\n*/\nclass BL_EXPORT IGeoFencePerceptObserver\n{\npublic:\n    virtual ~IGeoFencePerceptObserver() {}\n\n    /**\n    * @brief        围栏位置感知结果通知\n    * @details      此接口通知HMI围栏位置感知结果\n    * @param[in]    strGeoFenceID           围栏唯一ID\n    * @param[in]    geoFenceRegion          围栏以及策略规则信息\n    * @return       void\n    * @note         thread:main\n    */\n    virtual void OnGeoFencePerceptNotify(const dice::String8& strGeoFenceID, const GeoFenceRegion& geoFenceRegion) = 0;\n    \n    /**\n     * @brief        围栏策略规则生效与否通知\n     * @details      此接口通知HMI围栏策略规则感知结果\n     * @param[in]    strGeoFenceID           围栏唯一ID\n     * @param[in]    bValid                  true为在生效时间内,false为不在生效时间内\n     * @param[in]    geoFenceRegion          围栏以及策略规则信息\n     * @return       void\n     * @note         thread:main\n     */\n    virtual void OnGeoFenceValidPerceptNotify(const dice::String8& strGeoFenceID, bool bValid, const GeoFenceRegion& geoFenceRegion) = 0;\n\n    /**\n    * @brief        围栏策略规则感知结果通知\n    * @details      此接口通知HMI围栏策略规则感知结果\n    * @param[in]    strGeoFenceID           围栏唯一ID\n    * @param[in]    bMatch                  规则匹配结果,true为匹配,false为不匹配\n    * @param[in]    geoFenceRegion          围栏以及策略规则信息\n    * @return       void\n    * @note         thread:main\n    */\n    virtual void OnGeoFenceRegualPerceptNotify(const dice::String8& strGeoFenceID, bool bMatch, const GeoFenceRegion& geoFenceRegion) = 0;\n};\n\nEND_SPACE_BL\n\n#endif /**< __BL_GEO_FENCE_PERCEPT_OBSERVER_H__ */

该观察者需要外部进行实现,并通过围栏服务接口AddObserver传入,详细如下:


1.4、围栏感知服务对外接口

/**\n* @file        bl_geo_fence_service.h\n* @brief       地理围栏服务对外接口定义\n* @version     1.0\n* @author      qingcheng.yqc\n* @date        2020-6-30\n* @copyright   (C) Copyright 2020-2021, AutoNavi Software Co., Ltd.\n*/\n\n#ifndef __BL_GEO_FENCE_SERVICE_H__\n#define __BL_GEO_FENCE_SERVICE_H__\n\n#include "servicebase/bl_service.h"\n#include "bl_geo_fence_percept_observer.h"\n#include "bl_geo_fence_regual_condition.h"\n#include "layer/bl_prepare_layer_style.h"\n#include "bl_geo_fence_define_dto.h"\n\nBEGIN_SPACE_BL\n\n/**\n* @brief        路线服务\n*/\nclass BL_EXPORT IGeoFenceService : public IService\n{\npublic:\n    virtual ~IGeoFenceService();\n    /**\n    * @brief        地理围栏服务初始化\n    * @details      此接口用来初始化地理围栏服务,更新围栏信息\n    * @param[in]    strChannelID     渠道号,与web端围栏账号一致\n    * @param[in]    strDbPath        数据库存放路径\n    * @return       ErrorCode        返回错误码\n    *               - GBL_ERR_OK 成功 其他 失败\n    * @note         thread:main\n    */\n    virtual ErrorCode Init(const GeoFenceInitParam& param) = 0;\n\n    /**\n    * @brief        地理围栏服务反初始化\n    * @details      此接口用来反初始化地理围栏\n    * @note         thread:main\n    */\n    virtual void UnInit() = 0;\n\n    /**\n    * @brief        获取当前初始化状态\n    * @return       当前的初始化状态\n    * @note         thread:multi\n    */\n    virtual ServiceInitStatus IsInit() = 0;\n\n    /**\n    * @brief        获取版本号\n    * @details      此接口用来获取BL地理围栏后台服务版本号\n    * @return       const dice::String16  版本号\n    * @note         thread:multi\n    */\n    virtual const dice::String16 GetVersion() = 0;\n\n    /**\n    * @brief        设置围栏规则条件数据适配接口\n    * @param[in]    pCondition   围栏规则条件数据适配接口\n    * @return       void\n    * @note         thread:multi\n    */\n    virtual void SetGeoFenceRegualCondition(IGeoFenceRegualCondition* pCondition) = 0;\n\n    /**\n    * @brief        围栏渲染功能开关\n    * @param[in]    pView   主图句柄,目前只支持单实例\n    * @param[in]    bOpen   开关\n    * @return       void\n    * @note         thread:multi\n    */\n    virtual void OpenGeoFenceLayer(IMapView* pView, bool bOpen) = 0;\n    \n    /**\n    * @brief        围栏渲染图层显隐\n    * @param[in]    pView   主图句柄,目前只支持单实例\n    * @param[in]    bVisible   可见不可见\n    * @return       void\n    * @note         thread:multi\n    */\n    virtual void SetGeoFenceLayerVisible(IMapView* pView, bool bVisible) = 0;\n    \n    /**\n    * @brief        围栏显示样式控制\n    * @param[in]    pView   主图句柄,目前只支持单实例\n    * @param[in]    drawConfig   详见 GeoFenceDrawConfig\n    * @return       void\n    * @note         thread:multi\n    */\n    virtual void SetGeoFenceDrawConfig(IMapView* pView, const GeoFenceDrawConfig& drawConfig) = 0;\n    \n    /**\n    * @brief        围栏图层样式自定义\n    * @param[in]    pView   主图句柄,目前只支持单实例\n    * @param[in]    pStyle   用法和AutoSDK 的 BizLayer服务一致。 当应用层想自定义不同的围栏样式可以通过实现自定义IPrepareLayerStyle。客户端不调用的情况下,AutoSDK有内置默认样式\n     *            内部默认实现的是PolygonItem 和 LineItem 样式,分别区分 在围栏内 和 围栏外的效果。\n     *            激活态的line样式                      "{\\"line_layer_item_style\\":{\\"priority\\":0,\\"use_cap\\":1,\\"use_color\\":1,\\"draw_cover\\":1,\\"can_be_coveredbylabel\\":0,\\"fill_texture\\":{\\"marker_id\\":-1,\\"marker_info\\":\\"\\",\\"color\\":\\"0x773E6EFF\\",\\"width\\":20},\\"texture_info\\":{\\"x1\\":0.0,\\"y1\\":0.5,\\"x2\\":1.0,\\"y2\\":0.5,\\"texture_len\\":32},\\"cap_texture_info\\":{\\"x1\\":0.0,\\"y1\\":0.5,\\"x2\\":1.0,\\"y2\\":0.75}}}"\n     *            非激活态的line样式:{\\"line_layer_item_style\\":{\\"priority\\":0,\\"use_cap\\":1,\\"use_color\\":1,\\"draw_cover\\":1,\\"can_be_coveredbylabel\\":0,\\"fill_texture\\":{\\"marker_id\\":-1,\\"marker_info\\":\\"\\",\\"color\\":\\"0x771EBBDA\\",\\"width\\":10},\\"texture_info\\":{\\"x1\\":0.0,\\"y1\\":0.5,\\"x2\\":1.0,\\"y2\\":0.5,\\"texture_len\\":32},\\"cap_texture_info\\":{\\"x1\\":0.0,\\"y1\\":0.5,\\"x2\\":1.0,\\"y2\\":0.75}}}\n     *            激活态polygon:  {\\"polygon_layer_item_style\\":{\\"priority\\":0,\\"color\\":\\"0x773E6EFF\\"}}\n     *            非激活态polygon:  {\\"polygon_layer_item_style\\":{\\"priority\\":0,\\"color\\":\\"0x771EBBDA\\"}}\n    * @return       void\n    * @note         thread:multi\n    */\n    virtual void SetStyle(IMapView* pView, const IPrepareLayerStyle* pStyle) = 0;\n    \n    /**\n    * @brief        添加围栏感知结果回调观察者\n    * @param[in]    pObserver   围栏感知结果回调观察者\n    * @return       bool true : 成功, false:失败\n    * @note         thread:multi\n    */\n    virtual bool AddObserver(IGeoFencePerceptObserver* pObserver) = 0;\n\n    /**\n    * @brief        移除围栏感知结果回调观察者\n    * @param[in]    pObserver   围栏感知结果回调观察者\n    * @return       bool true : 成功, false:失败\n    * @note         thread:multi\n    */\n    virtual bool RemoveObserver(IGeoFencePerceptObserver* pObserver) = 0;\n\npublic:\n\n    /**\n    * @brief        获取地理围栏服务版本\n    * @details      此接口用来获取BL地理围栏服务版本\n    * @return       dice::String16   版本号\n    * @note         thread:multi\n    */\n    static dice::String16 GetGeoFenceVersion();\n};\nEND_SPACE_BL\n\n#endif /**< __BL_GEO_FENCE_SERVICE_H__ */


2、对接步骤以及示例代码

2.1、C++示例代码

ErrorCode l_code = ErrorCodeUnknown;\n    bl::IGeoFenceService* pGeoFenceService = GetGeoFenceService();\n    if (NULL !=  pGeoFenceService)\n    {\n        bl::GeoFenceInitParam param;\n        dice::String8 key = "dic";\n        dice::String8 value = "";\n        dice::String8 section = "GRestConfig";\n        //gBlConfigPtr->GetRestConfigValue(section, key, value);\n        dice::String16 strChannelID = S16("bl_geofence_test8");\n        param.strChannelID = strChannelID;\n        dice::String8 strDbPath = GeoFencePathFromDataDir("res/").c_str();\n        \n        param.strDbPath = BlToolString::String8ToString16(strDbPath);\n        param.pView = MapMgr::GetInstance().GetMapService()->GetMapView(MapEngineIdMain);\n        \n        l_code = pGeoFenceService->Init(param);\n        if (ErrorCodeOK == l_code)\n        {\n            pGeoFenceService->AddObserver((IGeoFencePerceptObserver*)&GeoFencePerceptObserver::GetInstance());\n            pGeoFenceService->SetGeoFenceRegualCondition((IGeoFenceRegualCondition*)&GeoFenceRegualCondition::GetInstance());\n            pGeoFenceService->OpenGeoFenceLayer(param.pView, true);\n        }\n    }

2.1.1、启动围栏感知

l_code = pGeoFenceService->Init(param);


2.1.2、设置围栏规则数据适配接口

pGeoFenceService->SetGeoFenceRegualCondition((IGeoFenceRegualCondition*)&GeoFenceRegualCondition::GetInstance());


2.1.3、添加围栏结果感知回调观察者

pGeoFenceService->AddObserver((IGeoFencePerceptObserver*)&GeoFencePerceptObserver::GetInstance());


2.1.4、开启围栏区域显示开关

pGeoFenceService->OpenGeoFenceLayer(param.pView, true);



2.2、Java示例代码

GeoFenceService mGeoFenceService = (GeoFenceService) ServiceMgr.getServiceMgrInstance().getBLService(SingleServiceID.GeoFenceSingleServiceID);\nif (mGeoFenceService == null) { // 获取服务失败\n    return false;\n}\n\n// 创建数据目录\nFileUtils.createDIR(AutoConstant.GEOFENCE_DATA_DIR);\n\nGeoFenceInitParam param = new GeoFenceInitParam();\nparam.strChannelID = "bl_geofence_test8"; //  猛犸渠道号,请求围栏数据必填参数\nparam.strDbPath = AutoConstant.GEOFENCE_DATA_DIR; // 围栏数据库存储路径,目录需要先创建\nint success = mGeoFenceService.init(param);\n\nif (success == ErrorCode.ErrorCodeOK) { // 初始化成功\n    mGeoFenceService.setGeoFenceRegualCondition(geoFenceRegualCondition);  // 设置围栏规则条件数据适配接口\n    mGeoFenceService.addObserver(geoFencePerceptObserver);  // 添加围栏感知结果回调观察者\n    mGeoFenceService.openGeoFenceLayer(mapView, true); // 围栏渲染功能开关\n} 

2.2.1、启动围栏感知

mGeoFenceService.init(param);


2.2.2、设置围栏规则数据适配接口

mGeoFenceService.setGeoFenceRegualCondition( new IGeoFenceRegualCondition() {...})


2.2.3、添加围栏结果感知回调观察者

mGeoFenceService.addObserver(new IGeoFencePerceptObserver() {...})


2.2.4、开启围栏区域显示开关

mGeoFenceService.openGeoFenceLayer(mapView, true)


3、特别说明

   围栏服务依赖定位服务,引导服务依赖定位服务,因此销毁引导服务会先销毁定位服务,导致地理围栏服务崩溃。建议通过removeService销毁服务,销毁引导或者定位服务,都会先销毁地理围栏服务,再销毁定位服务和引导服务,销毁地理围栏服务,仅仅只销毁地理围栏服务

","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-04-06 07:06:58","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":209,"collectCount":1,"estimateDate":40,"docStatus":0,"permissions":true,"overView":false}}