pansen
2019-01-28 61a8166ed71b881863de8c62e45ae3e7803a455e
添加布控等级。对比暂未添加本字段。
17个文件已修改
183 ■■■■ 已修改文件
QiaoJiaSystem/DataManagerServer/http_configserver.cpp 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/DataManagerServer/http_configserver.h 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/LocalDBTool/SqliteFaceEncap.cpp 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/LocalDBTool/SqliteToolkit.hpp 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/AppPipeController.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/DataWebServer 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/FaceSearchServer 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/StructureApp 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/VideoAnalysFromHC 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/configjson说明.md 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/syncDBClient 补丁 | 查看 | 原始文档 | blame | 历史
syncDBTool/ErlangDbTool.cpp 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
syncDBTool/ErlangDbTool.h 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
syncDBTool/SyncDB.hpp 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -2123,11 +2123,13 @@
        std::string strUUID = value["uuid"].asString();
        std::string Enabled = value["enabled"].asString();
        Enabled = Enabled.empty() ? "1" : Enabled;
        std::string TableType = value["TableType"].asString();
        std::string SyncType = value["SyncType"].asString();
        std::string TableId = value["TableId"].asString();
        std::string BwType = value["BwType"].asString();
        std::string createBy = value["createBy"].asString();
        std::string monLevel = value["monLevel"].asString();
        std::string UploadFlag = "-1";
        if (SyncType == "1") {
@@ -2209,7 +2211,8 @@
//        std::string uuid = "";
        bool ret_addPerson = false;
        addPersonMToDB(TableName, img_url, SyncType, feature_base64, faceResults, idcard, strUUID, ret_addPerson);
        addPersonMToDB(TableName, img_url, SyncType, feature_base64, faceResults, idcard, strUUID, monLevel, Enabled,
                       ret_addPerson);
        if (ret_addPerson && strUUID.size() > 0) {
            std::string str_result = std::string("{\"uuid\":").append(
@@ -2266,6 +2269,7 @@
        std::string TableId = value["TableId"].asString();
        std::string BwType = value["BwType"].asString();
        std::string CreateBy = value["createBy"].asString();
        std::string monLevel = value["monLevel"].asString();
//        std::string BwType = value["BwType"].asString();
        std::string UploadFlag = "-1";
        if (SyncType == "1") {
@@ -2363,12 +2367,14 @@
                fieldValues.insert(make_pair("uuid", strUUID));
                fieldValues.insert(make_pair("idCard", idcard));
                fieldValues.insert(make_pair("enabled", Enabled));
                fieldValues.insert(make_pair("monitorLevel", monLevel));
                ret_addPerson = m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues);
            }
        } else {
            fieldValues.insert(make_pair("uuid", strUUID));
            fieldValues.insert(make_pair("idCard", idcard));
            fieldValues.insert(make_pair("enabled", Enabled));
            fieldValues.insert(make_pair("monitorLevel", monLevel));
            ret_addPerson = erlangDbTool->updatePerson(strUUID, addFaceData, fieldValues);
        }
@@ -2424,41 +2430,48 @@
void devHttpServer_c::addPersonMToDB(const string &TableName, const string &img_url, const string &SyncType,
                                     const string &feature_base64, const Features &faceResults, string &idcard,
                                     string &strUUID, bool &ret_addPerson) {
                                     string &strUUID, string &monLevel, string &Enabled, bool &ret_addPerson) {
    FieldValues fieldValues;
    AddFaceData addFaceData;
    addFaceData.uuid = strUUID;
    addFaceData.faceUrl = img_url;
    fieldValues.insert(make_pair("monitorLevel", monLevel));
    fieldValues.insert(make_pair("enabled", Enabled));
    fieldValues.insert(make_pair("idCard", idcard));
    if (SyncType == "0") {
        FieldValues fieldValues;
        AddFaceData addFaceData;
        addFaceData.feature.resize(faceResults[0].feature.size());
        memcpy(addFaceData.feature.data(), faceResults[0].feature.data(), faceResults[0].feature.size());
        //#todo uuid have value is update
        if (strUUID.size() <= 0) {
            // get Person id
            strUUID = AppUtil::getPersonId(m_batch, m_SerialNumber);
            addFaceData.uuid = strUUID;
            addFaceData.faceUrl = img_url;
            fieldValues.insert(make_pair("uuid", strUUID));
            fieldValues.insert(make_pair("idCard", idcard));
            auto t_id = m_SqliteFaceEncap.addFace(TableName, addFaceData, fieldValues);
            ret_addPerson = t_id.size() > 0 ? true : false;
        } else {
            //#todo update table
            addFaceData.uuid = strUUID;
            addFaceData.faceUrl = img_url;
            fieldValues.insert(make_pair("uuid", strUUID));
            fieldValues.insert(make_pair("idCard", idcard));
            ret_addPerson = m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues);
        }
    } else {
        //#todo update data
        // get Person id
        strUUID = strUUID.size() > 0 ? strUUID : AppUtil::getPersonId(m_batch, m_SerialNumber);
        ret_addPerson = ret_addPerson = erlangDbTool->addPerson(strUUID, TableName, feature_base64, img_url,
                                                                idcard);
        if (strUUID.size() <= 0) {
//                insert
            strUUID = AppUtil::getPersonId(m_batch, m_SerialNumber);
//            ret_addPerson = ret_addPerson = erlangDbTool->addPerson(strUUID, TableName, feature_base64, img_url,
//                                                                    idcard);
            fieldValues.insert(make_pair("uuid", strUUID));
            addFaceData.feature_base64 = feature_base64;
            ret_addPerson = erlangDbTool->addPerson(TableName, addFaceData, fieldValues);
        } else {
//                update
            fieldValues.insert(make_pair("uuid", strUUID));
            addFaceData.feature_base64 = feature_base64;
            ret_addPerson = erlangDbTool->updatePerson(strUUID, addFaceData, fieldValues);
        }
    }
}
@@ -2642,6 +2655,7 @@
                    subJson.append("\"tableName\":\"" + TableName + "\",");
                    subJson.append("\"idcard\":\"" + item.second.idcard + "\",");
                    subJson.append("\"enable\":\"" + item.second.enable + "\",");
                    subJson.append("\"monLevel\":\"" + item.second.monLevel + "\",");
                    subJson.append("\"imgUrl\":\"" + item.second.img + "\"");
//                subJson.append("\"feature\":\"" + item.second.feature + "\",");
                    //#todo modifysvn upda  svn comm
QiaoJiaSystem/DataManagerServer/http_configserver.h
@@ -203,7 +203,8 @@
    void
    addPersonMToDB(const string &TableName, const string &img_url, const string &SyncType, const string &feature_base64,
                   const Features &faceResults, string &idcard, string &strUUID, bool &ret_addPerson);
                   const Features &faceResults, string &idcard, string &strUUID, string &monLevel, string &Enabled,
                   bool &ret_addPerson);
    void getMat(string &img_url, const string &img_base64, cv::Mat &image) const;
};
QiaoJiaSystem/FaceSearchServer/AlarmServer.hpp
@@ -28,6 +28,7 @@
    std::string faceUrl;
    std::string idcard;
    std::string enabled;
    std::string monLevel;
};
static std::vector<std::string> AlarmServerPropertyAnalyseByComma(std::string str_list) {
QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp
@@ -156,6 +156,8 @@
                    test.features.push_back(t_fea);
                    test.faceUrl = it.img;
                    test.idcard = it.idcard;
                    test.enabled = it.enable;
                    test.monLevel = it.monLevel;
                }
//                //#todo
//                for (auto it = mymap->begin(); it != mymap->end(); it++) {
@@ -200,6 +202,7 @@
                test.faceUrl = t_sen.faceurl;
                test.idcard = t_faceInfoCache[t_sen.uuid].idCard;
                test.enabled = t_sen.enable;
                test.monLevel = t_faceInfoCache[t_sen.uuid].monLevel;
            }
        }
//            å‘Šè¯‰åˆ·æ–°å‡½æ•°ï¼Œå½“前底库的数据准备完成
QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
@@ -68,7 +68,7 @@
::FaceSearch::FaceResults
FaceFeatureSearchServerI::faceSearchTopN(const ::FaceSearch::Data &feature, const ::std::string &info_json,
                                         ::Ice::Int topN, ::Ice::Float score, const ::Ice::Current &) {
    ClockTimer clockTimer("faceSearchTopN  " + to_string(score) + "  :");
    ClockTimer clockTimer("faceSearchTopN  ");
    INFO("faceSearchTopN start");
//    #获取线程id去找资源句柄
    thread::id key = std::this_thread::get_id();
@@ -112,7 +112,8 @@
//                }
//                score
//                å¯¹æ¯”函数
                t_FaceFC->compare(key, &featureData, topN,);
                float t_score = atoi(t_tableInfo.cmpThreshold.c_str()) / 100;
                t_FaceFC->compare(key, &featureData, topN, t_score);
                DBG("m_faceFCMAP compare end " << it.first);
//                èŽ·å–å¯¹æ¯”ç»“æžœ
                auto t_results = t_FaceFC->getTopResult(key);
@@ -206,6 +207,8 @@
                value["likePer"] = item.confidence > 0 ? item.confidence : 0.0;
                value["personPicUrl"] = item.imgUrl.size() > 0 ? item.imgUrl : "";//diku tupian
//                string strC = item.idcard+ item.
                value["idcard"] = item.idcard.size() > 0 ? item.idcard : "";//diku tupian
                //如果 alarmRet ä¸ä¸ºç©ºæŠŠ ä»–的值 æ”¾å…¥ personIsHub,否则为4
//                #TODO å¦‚果启用则正常判断,未布控则认为是未知?
@@ -251,7 +254,7 @@
        std::thread thd(dataUpdate, faceFea);
        thd.detach();
    }
    auto typeInfoCache = faceFea->m_erlangDbTool.findAllTypeInfo();
//    auto typeInfoCache = faceFea->m_erlangDbTool.findAllTypeInfo();
    faceFea->m_tableType.clear();
    string str_config = faceFea->m_erlangDbTool.getConfigJsonString();
@@ -270,6 +273,8 @@
//            tabInfo.bwType = item.second.bwType = typeInfoCache.find(item.first)->second.bwType;
            tabInfo.bwType = item.second.bwType;//= typeInfoCache.find(item.first)->second.bwType;
            tabInfo.createBy = item.second.create_by;
            tabInfo.enabled = item.second.enabled;
            tabInfo.cmpThreshold = item.second.cmpThreshold;
            if ((tabInfo.tableName.find("lt_") == 0) && (tabInfo.createBy != appConfig.getStringProperty("erlNode"))) {
                continue;
QiaoJiaSystem/LocalDBTool/SqliteFaceEncap.cpp
@@ -409,6 +409,8 @@
            tableInfo.sex = query.value(3).toString().toStdString();
            tableInfo.idCard = query.value(4).toString().toStdString();
            tableInfo.phoneNum = query.value(5).toString().toStdString();
            tableInfo.enable = query.value(10).toString().toStdString();
            tableInfo.monLevel = query.value(11).toString().toStdString();
            faceInfosCache.insert(std::make_pair(tableInfo.uuid, tableInfo));
        }
    }
QiaoJiaSystem/LocalDBTool/SqliteToolkit.hpp
@@ -28,6 +28,7 @@
    std::string uuid;
    FaceFeature feature;
    std::string faceUrl;
    std::string feature_base64;
};
struct FaceInfo {
@@ -37,6 +38,8 @@
    std::string sex;
    std::string idCard;
    std::string phoneNum;
    std::string enable;
    std::string monLevel;
};
typedef std::vector<FaceInfo> FaceInfos;
typedef std::map<std::string, FaceInfo> FaceInfosCache;
@@ -86,6 +89,7 @@
    //
    std::string getFacesFromTableSql(std::string tableName) {
//        #todo get monLevel è”合查询
        std::string sql =
            "select uuid,feature,create_time,faceUrl,del_flag,enabled from '" + tableName +
            "_fea' where feature is not null ";
@@ -179,7 +183,7 @@
        std::string sqlTemp = sql;
        std::string sql2 = ") VALUES('";
        for (auto item : fieldValues) {
            if (item.first.size() != 0) {
            if (item.first.size() != 0 && item.second.size() != 0) {
                sql.append(item.first + ",");
                sql2.append(item.second + "','");
            }
@@ -243,6 +247,7 @@
        sql.append("update_time DATETIME     DEFAULT NULL,");
        sql.append("create_by   varchar(255) DEFAULT NULL,");
        sql.append("del_flag    INTEGER      DEFAULT 0,");
        sql.append("monitorLevel    varchar(255)      DEFAULT 0,");
        sql.append("    enabled     varchar(255) DEFAULT 1");
        sql.append(");");
        // äººè„¸ç‰¹å¾è¡¨
QiaoJiaSystem/StructureApp/AppPipeController.h
@@ -84,6 +84,7 @@
    void initPerHub();
private:
    ffmpeg::VideoCaptureElement videoCaptureElement;
    YoloRpcElement yoloRpcElement;
    FaceRpcElement faceRpcElement;
    FaceExtractElement faceExtractElement;
QiaoJiaSystem/build/DataWebServer
Binary files differ
QiaoJiaSystem/build/FaceSearchServer
Binary files differ
QiaoJiaSystem/build/StructureApp
Binary files differ
QiaoJiaSystem/build/VideoAnalysFromHC
Binary files differ
QiaoJiaSystem/build/configjson˵Ã÷.md
@@ -1,31 +1,34 @@
##json文件模板及参数含义
    {
       "DEV_ID" : "DSVAD010120181119",
       "clusterID" : "",
       "webPort" : 11111,
       "netIfName" : "enp3s0",
       "localPasswd" : "123456",
       "ES_IP" : "192.168.1.122",
       "ES_PORT" : 9200,
       "mainServerIp" : "192.168.1.182",
       "mainServerPort" : "3697",
       "mainServerrUrl" : "/addPerson/uploadToTemporary",
       "TotalLoadSize" : "500",
       "buildAddr" : "/home/bsk/Apps/QiaoJiaSystem/build/",
       "cutPath" : "/home/bsk/work/qiaojia/cut",
       "loadPath" : "/home/bsk/work/qiaojia/load",
       "logPath" : "/home/bsk/work/log/",
       "FaceDetectionSampleSize" : 720,
       "FaceSeachSleepTime" : 60,
       "encode_thread_num" : 3,
       "erlCookie" : "123",
       "erlFatherNode" : " ",
       "erlNode" : "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148",
       "erlPath" : "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628",
       "redis_buf_len" : 750,
       "redis_ip" : "127.0.0.1",
       "srsAddr" : "rtmp://192.168.1.122:1934/live/"
        "DEV_ID" : "DSVAD010120181119",
        "clusterID" : "",
        "webPort" : 11111,
        "netIfName" : "enp3s0",
        "localPasswd" : "123456",
        "ES_IP" : "192.168.1.122",
        "ES_PORT" : 9200,
        "mainServerIp" : "192.168.1.182",
        "mainServerPort" : "3697",
        "mainServerrUrl" : "/addPerson/uploadToTemporary",
        "addFromAnalyUrl":"192.168.1.182:3699/data/api-c/taskUser/addFromAnaly",
        "updateFromAnalyUrl":"192.168.1.182::3699/data/api-c/taskUser/updateFromC",
        "addTaskAnalyUrl":"192.168.1.182:3699/addTaskByNode",
        "TotalLoadSize" : "500",
        "buildAddr" : "/home/bsk/Apps/QiaoJiaSystem/build/",
        "cutPath" : "/home/bsk/work/qiaojia/cut",
        "loadPath" : "/home/bsk/work/qiaojia/load",
        "logPath" : "/home/bsk/work/log/",
        "FaceDetectionSampleSize" : 720,
        "FaceSeachSleepTime" : 60,
        "encode_thread_num" : 3,
        "erlCookie" : "123",
        "erlFatherNode" : " ",
        "erlNode" : "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148",
        "erlPath" : "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628",
        "redis_buf_len" : 750,
        "redis_ip" : "127.0.0.1",
        "srsAddr" : "rtmp://192.168.1.122:1934/live/"
    }
----
@@ -62,6 +65,15 @@
* mainServerrUrl
    >人员上传的接口url
* addFromAnalyUrl
    >布控人员上传的接口url
* updateFromAnalyUrl
    >布控人员更新上传的接口url
* addTaskAnalyUrl
    >黑名单底库创建和更新的上传接口url
---
---
QiaoJiaSystem/build/syncDBClient
Binary files differ
syncDBTool/ErlangDbTool.cpp
@@ -1185,10 +1185,32 @@
    return false;
}
bool ErlangTool::ErlangDbTool::addPerson(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues) {
//    #todo è®°å¾—测试中文
    std::string strSql = getInsertSql(t_tableName, fieldValues);
    fieldValues.clear();
    fieldValues.insert(make_pair("uuid", faceData.uuid));
    fieldValues.insert(make_pair("faceUrl", faceData.faceUrl));
    fieldValues.insert(make_pair("feature", faceData.feature_base64));
    std::string strSqlFea = getInsertSql(t_tableName + "_fea", fieldValues);
    strSql.append(strSqlFea);
    //    #todo è®°å¾—测试中文  åªæœ‰äººå‘˜ä¿¡æ¯è¡¨æ›´æ–°ï¼Œç‰¹å¾æ›´æ–°æš‚时没做
    return getExecSqlResult(strSql);
}
bool ErlangTool::ErlangDbTool::updatePerson(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues) {
//    #todo è®°å¾—测试中文
    std::string strSql = getUpdateFaceTableSql(t_tableName, fieldValues);
    //    #todo è®°å¾—测试中文  åªæœ‰äººå‘˜ä¿¡æ¯è¡¨æ›´æ–°ï¼Œç‰¹å¾æ›´æ–°æš‚时没做
    fieldValues.clear();
    fieldValues.insert(make_pair("uuid", faceData.uuid));
    fieldValues.insert(make_pair("faceUrl", faceData.faceUrl));
    fieldValues.insert(make_pair("feature", faceData.feature_base64));
    std::string strSqlFea = getInsertSql(t_tableName + "_fea", fieldValues);
    strSql.append(strSqlFea);
    return getExecSqlResult(strSql);
}
@@ -1592,7 +1614,7 @@
    }
    if (str_tableUuid.size() > 0) {
        QString sql = QString::fromStdString(
            "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,a.enable from '" + str_tableUuid +
            "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,a.enable,a.monitorLevel from '" + str_tableUuid +
            "_fea' as a ,'" + str_tableUuid + "' as b  where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);");
        QSqlQuery query(g_syncDbFile);
        query.prepare(sql);
@@ -1606,6 +1628,7 @@
                t_feature_info.feature = query.value(2).toString().toStdString();
                t_feature_info.idcard = query.value(3).toString().toStdString();
                t_feature_info.enable = query.value(4).toString().toStdString();
                t_feature_info.monLevel = query.value(5).toString().toStdString();
                dataCache.insert(std::make_pair(t_feature_info.id, t_feature_info));
            }
@@ -1631,8 +1654,8 @@
    }
    if (str_tableUuid.size() > 0) {
        QString sql = QString::fromStdString(
            "Select b.uuid as id,b.faceUrl as img,a.idCard as idcard,a.enable from '" + str_tableUuid + "' as a, '" +
            str_tableUuid + "_fea' As b  where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);");
            "Select b.uuid as id,b.faceUrl as img,a.idCard as idcard,a.enable,a.monitorLevel from '" + str_tableUuid +
            "' as a, '" + str_tableUuid + "_fea' As b  where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);");
        QSqlQuery query(g_syncDbFile);
        query.prepare(sql);
        if (!query.exec()) {
@@ -1644,6 +1667,7 @@
                t_feature_info.img = query.value(1).toString().toStdString();
                t_feature_info.idcard = query.value(2).toString().toStdString();
                t_feature_info.enable = query.value(3).toString().toStdString();
                t_feature_info.monLevel = query.value(4).toString().toStdString();
                dataCache.insert(std::make_pair(t_feature_info.id, t_feature_info));
            }
syncDBTool/ErlangDbTool.h
@@ -266,6 +266,9 @@
                       std::string IdCard = " ", std::string PersonName = " ", std::string Age = " ",
                       std::string Sex = " ", std::string PhoneNum = " ");
        bool
        ErlangTool::ErlangDbTool::addPerson(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues);
        bool updatePerson(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues);
        vec_AddDataCache addPersons(std::string TableUuid, std::vector<SyncDB::AddPersonInfo> &tmpPer);
syncDBTool/SyncDB.hpp
@@ -22,6 +22,7 @@
        img,
        idcard,
        enable,
        monLevel,
        evEnd
    };
@@ -38,6 +39,7 @@
        map_Fea_InfoString2Values["img"] = Feature_InfoStringValue::img;
        map_Fea_InfoString2Values["idcard"] = Feature_InfoStringValue::idcard;
        map_Fea_InfoString2Values["enable"] = Feature_InfoStringValue::enable;
        map_Fea_InfoString2Values["monitorLevel"] = Feature_InfoStringValue::monLevel;
        map_Fea_InfoString2Values["end"] = evEnd;
    }
@@ -86,6 +88,9 @@
                    case Feature_InfoStringValue::enable:
                        enable = value;
                        break;
                    case Feature_InfoStringValue::monLevel:
                        monLevel = value;
                        break;
                    default:
                        ERR(key << " is an invalid string. s_mapStringValues now contains "
                                << map_Fea_InfoString2Values.size() << " entries.");
@@ -108,6 +113,7 @@
        std::string img;
        std::string idcard;
        std::string enable;
        std::string monLevel;
//        value is a atom: atomSize:19, atomValue:test@192.168.50.216