From c65cbaadfe1ee748a39ffcbc140cadaf19514807 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 7 Dec 2024 23:48:56 +0800 Subject: [PATCH] v2.1.4 --- README.md | 2 + .../components/zenum_template/zenum_template.hpp | 5 +- appsrc/appbase/appbean/setting_id.hpp | 36 +++---- appsrc/appconfig/basic/project_constant.hpp | 2 +- appsrc/appconfig/basic/zappversion.hpp | 2 +- appsrc/baseservice/db/bean/user_behavior_des.cpp | 106 ++++++++++----------- appsrc/baseservice/db/bean/user_behavior_des.hpp | 48 +++++----- appsrc/baseservice/db/user_behavior_record_dao.cpp | 39 ++++---- appsrc/baseservice/db/user_behavior_record_dao.hpp | 7 +- .../disinfection_ctrl_service.cpp | 14 +-- .../service/app/disinfection_ctrl_service_ext.cpp | 15 ++- appsrc/service/app_core.cpp | 17 +++- appsrc/service/audit_mgr_service.cpp | 21 +--- ...o2_liquid_weight_sensor_calibration_service.cpp | 2 +- appsrc/service/setting_mgr_service.cpp | 7 ++ appsrc/service/user_mgr_service.cpp | 11 ++- 16 files changed, 179 insertions(+), 155 deletions(-) diff --git a/README.md b/README.md index 86bc390..7ea44bd 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,8 @@ VERSION 2.1.2 1. 增加 排空管路时间可配 2. 增i加 排液条件判定设置(即少于多少算排液完成) 3. 增加 手动设置H2O2称重偏移。 +VERSION 2.1.3 + 1.修复去皮功能的BUG TODO: 1. 设备使用时间维护(UI接口已经准备好,考虑是否使用文件袋放在设备中的方案) diff --git a/appdep/iflytop/core/components/zenum_template/zenum_template.hpp b/appdep/iflytop/core/components/zenum_template/zenum_template.hpp index eccdcf4..85715ad 100644 --- a/appdep/iflytop/core/components/zenum_template/zenum_template.hpp +++ b/appdep/iflytop/core/components/zenum_template/zenum_template.hpp @@ -42,11 +42,14 @@ public: \ typedef enum { elist(name, ZENUM_IMPL1) kunkown } enum_val_t; \ enum_val_t id; \ - elist(name, ZENUM_IMPL2) public : name() {} \ + elist(name, ZENUM_IMPL2) public : name() {} \ name(enum_val_t id) : id(id) {} \ name(int id) : id((enum_val_t)id) {} \ name(string str) : id(toEnum(str)) {} \ enum_val_t getId() const { return id; } \ + bool eq(string val) { return (toString(id) == val); } \ + bool eq(enum_val_t id) { return (this->id == id); } \ + bool eq(int id) { return (this->id == id); } \ static string toString(enum_val_t enu) { \ switch (enu) { elist(name, ZENUM_TO_STR_IMPL) default : return "unknown"; } \ } \ diff --git a/appsrc/appbase/appbean/setting_id.hpp b/appsrc/appbase/appbean/setting_id.hpp index 803e561..f645fbc 100644 --- a/appsrc/appbase/appbean/setting_id.hpp +++ b/appsrc/appbase/appbean/setting_id.hpp @@ -2,26 +2,28 @@ #include "iflytop/core/components/zenum_template/zenum_template.hpp" #define SettingId_ZENUM_IMPL ZENUM_IMPL(SettingId, SettingId_LIST) -#define SettingId_LIST(type, marco) /**/ \ - marco(type, stoped_gs) /**/ \ - marco(type, continued_gs) /**/ \ - marco(type, stoped_satur) /**/ \ - marco(type, continued_satur) /**/ \ - marco(type, max_humidity) /**/ \ - marco(type, drainage_pump_speed) /**/ \ - marco(type, injection_pump_speed) /**/ \ - marco(type, pre_heat_time_s) /**/ \ - marco(type, stoped_humi) /**/ \ - marco(type, continued_humi) /**/ \ - marco(type, proportional_valve_default_value) /**/ \ - marco(type, record_period_min) /**/ \ - marco(type, record_printer_period_min) /**/ \ - marco(type, loglevel) /*消毒等级*/ \ +#define SettingId_LIST(type, marco) /**/ \ + marco(type, stoped_gs) /**/ \ + marco(type, continued_gs) /**/ \ + marco(type, stoped_satur) /**/ \ + marco(type, continued_satur) /**/ \ + marco(type, max_humidity) /**/ \ + marco(type, drainage_pump_speed) /**/ \ + marco(type, injection_pump_speed) /**/ \ + marco(type, pre_heat_time_s) /**/ \ + marco(type, stoped_humi) /**/ \ + marco(type, continued_humi) /**/ \ + marco(type, proportional_valve_default_value) /**/ \ + marco(type, record_period_min) /**/ \ + marco(type, record_printer_period_min) /**/ \ + marco(type, loglevel) /*消毒等级*/ \ marco(type, enable_bd_dehumidify) /*是否启用BD除湿*/ \ - marco(type, bd_dehumidify_threshold) /*BD除湿阈值*/ \ + marco(type, bd_dehumidify_threshold) /*BD除湿阈值*/ \ marco(type, enable_ad_dehumidify) /*是否启用AD除湿*/ \ - marco(type, ad_dehumidify_threshold) /*AD除湿阈值*/ \ + marco(type, ad_dehumidify_threshold) /*AD除湿阈值*/ \ marco(type, enable_ad_degrade) /*是否启用AD降解*/ \ marco(type, ad_degrade_threshold) /*AD降解阈值*/ ZENUM_DECLAR(SettingId, SettingId_LIST); + + diff --git a/appsrc/appconfig/basic/project_constant.hpp b/appsrc/appconfig/basic/project_constant.hpp index 2255bf7..853b6b8 100644 --- a/appsrc/appconfig/basic/project_constant.hpp +++ b/appsrc/appconfig/basic/project_constant.hpp @@ -11,7 +11,7 @@ #define EMTPTY_LINE_WHEN_DISINFECTION 60 #define MAX_DISINFECTIONLOGGER_FILE_NUM 10 // 最大日志文件数量 -#define USER_BEHAVIOR_RECORD_DB_MAX_RECORDS 3000 // +#define USER_BEHAVIOR_RECORD_DB_MAX_RECORDS 8000 // #define SENSOR_PREHEART_TIME_S (5 * 60) // 传感器预热时间 #define MAX_SUPPORT_SENSOR 3 diff --git a/appsrc/appconfig/basic/zappversion.hpp b/appsrc/appconfig/basic/zappversion.hpp index 3d8271c..f22a9d1 100644 --- a/appsrc/appconfig/basic/zappversion.hpp +++ b/appsrc/appconfig/basic/zappversion.hpp @@ -1,3 +1,3 @@ #pragma once -#define VERSION "2.1.2" +#define VERSION "2.1.4" #define PROJECT_NAME "TRANSMIT_DM" \ No newline at end of file diff --git a/appsrc/baseservice/db/bean/user_behavior_des.cpp b/appsrc/baseservice/db/bean/user_behavior_des.cpp index d0fdd20..0bb7df9 100644 --- a/appsrc/baseservice/db/bean/user_behavior_des.cpp +++ b/appsrc/baseservice/db/bean/user_behavior_des.cpp @@ -1,58 +1,58 @@ #include "user_behavior_des.hpp" -using namespace iflytop; -using namespace iflytop::db; +// using namespace iflytop; +// using namespace iflytop::db; -namespace iflytop { -namespace db { +// namespace iflytop { +// namespace db { -string user_behavior_to_str(user_behavior_t behavior) { - switch (behavior) { - case kbehavior_login: - return "登陆"; - case kbehavior_logout: - return "登出"; - case kbehavior_add_user: - return "添加用户"; - case kbehavior_del_user: - return "删除用户"; - case kbehavior_update_user_permission_level: - return "更新用户权限"; - case kbehavior_update_user_passwd: - return "更新用户密码"; - case kbehavior_update_user_uid: - return "更新用户ID"; - case kbehavior_set_setting_val: - return "设置参数"; - case kbehavior_add_formula: - return "添加配方"; - case kbehavior_del_formula: - return "删除配方"; - case kbehavior_update_formula: - return "更新配方"; - case kbehavior_update_formula_name: - return "更新配方名称"; - case kbehavior_do_disinfection: - return "开始消毒"; - case kbehavior_stop_disinfection: - return "停止消毒"; - case kbehavior_do_formula: - return "执行配方"; - case kbehavior_update_setting_val_on_disinfection: - return "消毒中更新参数"; - case kbehavior_export_disinfection_data: - return "导出消毒数据"; - case kbehavior_export_user_action_data: - return "导出用户操作数据"; - case kbehavior_warning_prompt: - return "警告信息"; - case kbehavior_warning_prompt_confirm: - return "警告信息确认"; - default: - break; - } - return "未知行为"; -} +// string user_behavior_to_str(user_behavior_t behavior) { +// switch (behavior) { +// case kbehavior_login: +// return "登陆"; +// case kbehavior_logout: +// return "登出"; +// case kbehavior_add_user: +// return "添加用户"; +// case kbehavior_del_user: +// return "删除用户"; +// case kbehavior_update_user_permission_level: +// return "更新用户权限"; +// case kbehavior_update_user_passwd: +// return "更新用户密码"; +// case kbehavior_update_user_uid: +// return "更新用户ID"; +// case kbehavior_set_setting_val: +// return "设置参数"; +// case kbehavior_add_formula: +// return "添加配方"; +// case kbehavior_del_formula: +// return "删除配方"; +// case kbehavior_update_formula: +// return "更新配方"; +// case kbehavior_update_formula_name: +// return "更新配方名称"; +// case kbehavior_do_disinfection: +// return "开始消毒"; +// case kbehavior_stop_disinfection: +// return "停止消毒"; +// case kbehavior_do_formula: +// return "执行配方"; +// case kbehavior_update_setting_val_on_disinfection: +// return "消毒中更新参数"; +// case kbehavior_export_disinfection_data: +// return "导出消毒数据"; +// case kbehavior_export_user_action_data: +// return "导出用户操作数据"; +// case kbehavior_warning_prompt: +// return "警告信息"; +// case kbehavior_warning_prompt_confirm: +// return "警告信息确认"; +// default: +// break; +// } +// return "未知行为"; +// } -} // namespace db -} // namespace iflytop +// } // namespace db +// } // namespace iflytop diff --git a/appsrc/baseservice/db/bean/user_behavior_des.hpp b/appsrc/baseservice/db/bean/user_behavior_des.hpp index 51f7767..5d148f9 100644 --- a/appsrc/baseservice/db/bean/user_behavior_des.hpp +++ b/appsrc/baseservice/db/bean/user_behavior_des.hpp @@ -13,30 +13,32 @@ namespace iflytop { using namespace std; namespace db { -typedef enum { - kbehavior_login = 0, - kbehavior_logout = 1, - kbehavior_add_user = 2, - kbehavior_del_user = 3, - kbehavior_update_user_uid = 5, - kbehavior_update_user_permission_level = 6, - kbehavior_update_user_passwd = 7, - kbehavior_set_setting_val = 8, - kbehavior_add_formula = 9, - kbehavior_del_formula = 10, - kbehavior_update_formula = 11, - kbehavior_do_disinfection = 12, - kbehavior_stop_disinfection = 13, - kbehavior_do_formula = 14, - kbehavior_update_setting_val_on_disinfection = 15, - kbehavior_export_disinfection_data = 16, - kbehavior_export_user_action_data = 17, - kbehavior_update_formula_name = 18, - kbehavior_warning_prompt = 19, - kbehavior_warning_prompt_confirm = 20, -} user_behavior_t; +// typedef enum { +// kbehavior_login = 0, +// kbehavior_logout = 1, +// kbehavior_add_user = 2, +// kbehavior_del_user = 3, +// kbehavior_update_user_uid = 5, +// kbehavior_update_user_permission_level = 6, +// kbehavior_update_user_passwd = 7, +// kbehavior_set_setting_val = 8, +// kbehavior_add_formula = 9, +// kbehavior_del_formula = 10, +// kbehavior_update_formula = 11, +// kbehavior_do_disinfection = 12, +// kbehavior_stop_disinfection = 13, +// kbehavior_do_formula = 14, +// kbehavior_update_setting_val_on_disinfection = 15, +// kbehavior_export_disinfection_data = 16, +// kbehavior_export_user_action_data = 17, +// kbehavior_update_formula_name = 18, +// kbehavior_warning_prompt = 19, +// kbehavior_warning_prompt_confirm = 20, +// kbehavior_add_liquid = 21, +// kbehavior_drain_liquid = 22, +// } user_behavior_t; -string user_behavior_to_str(user_behavior_t behavior); +// string user_behavior_to_str(user_behavior_t behavior); } // namespace db diff --git a/appsrc/baseservice/db/user_behavior_record_dao.cpp b/appsrc/baseservice/db/user_behavior_record_dao.cpp index f3af624..9e19313 100644 --- a/appsrc/baseservice/db/user_behavior_record_dao.cpp +++ b/appsrc/baseservice/db/user_behavior_record_dao.cpp @@ -50,15 +50,15 @@ int UserBehaviorRecordDao::getUserBehaviorRecordCount() { return storage.count(where(c(&UserBehaviorRecord::id) > 0)); } -int UserBehaviorRecordDao::getUserBehaviorRecordTheFirstId() { - lock_guard lock(lock_); +// int UserBehaviorRecordDao::getUserBehaviorRecordTheFirstId() { +// lock_guard lock(lock_); - auto all = storage.get_all(order_by(&UserBehaviorRecord::id).asc()); - if (all.size() == 0) { - return -1; - } - return all[0].id; -} +// auto all = storage.get_all(order_by(&UserBehaviorRecord::id).asc()); +// if (all.size() == 0) { +// return -1; +// } +// return all[0].id; +// } list> UserBehaviorRecordDao::getAllUserBehaviorRecord() { lock_guard lock(lock_); @@ -87,10 +87,10 @@ json UserBehaviorRecordDao::getUserBehaviorRecordDescJson(int page, int page_siz for (auto& u : all) { if (i >= from && i < to) { json j_user_behavior_record; - j_user_behavior_record["id"] = u.id; - j_user_behavior_record["usrName"] = u.usrName; - j_user_behavior_record["behavior"] = u.behavior; - j_user_behavior_record["behaviorZH"] = user_behavior_to_str((user_behavior_t)u.behavior); + j_user_behavior_record["id"] = u.id; + j_user_behavior_record["usrName"] = u.usrName; + // j_user_behavior_record["behavior"] = u.behavior; + j_user_behavior_record["behaviorZH"] = u.behaviorinfo; j_user_behavior_record["behaviorinfo"] = u.behaviorinfo; j_user_behavior_record["date"] = u.date; j_user_behavior_records["items"].push_back(j_user_behavior_record); @@ -118,26 +118,31 @@ static string getTime() { tm.tm_min, tm.tm_sec); } -void UserBehaviorRecordDao::addUserBehaviorRecord(string name, int behavior, string behaviorinfo) { +int UserBehaviorRecordDao::addUserBehaviorRecord(string name, string behaviorinfo, string extinfo) { lock_guard lock(lock_); UserBehaviorRecord u; u.usrName = name; - u.behavior = behavior; u.behaviorinfo = behaviorinfo; + u.extinfo = extinfo; + u.behavior = 0; u.date = getTime(); storage.insert(u); + // auto size = storage.count(); auto all = storage.get_all(order_by(&UserBehaviorRecord::id).asc()); + /** * @brief 如果记录总数量大于5000条,删除第一条 */ + logger->info("all.size()={}", all.size()); if (all.size() > USER_BEHAVIOR_RECORD_DB_MAX_RECORDS) { - storage.remove_all(where(c(&UserBehaviorRecord::id) == all[0].id)); + storage.remove(all[0].id); } - return; + return all.size(); } void UserBehaviorRecordDao::cleanUserBehaviorRecord() { lock_guard lock(lock_); - system(fmt::format("rm -rf {}", USER_BEHAVIOR_RECORD_DB).c_str()); + + // system(fmt::format("rm -rf {}", USER_BEHAVIOR_RECORD_DB).c_str()); } \ No newline at end of file diff --git a/appsrc/baseservice/db/user_behavior_record_dao.hpp b/appsrc/baseservice/db/user_behavior_record_dao.hpp index 1bfb242..0524277 100644 --- a/appsrc/baseservice/db/user_behavior_record_dao.hpp +++ b/appsrc/baseservice/db/user_behavior_record_dao.hpp @@ -36,6 +36,7 @@ struct UserBehaviorRecord { string date; int behavior; string behaviorinfo; + string extinfo; }; #define USER_BEHAVIOR_RECORD_TABLE \ @@ -81,10 +82,10 @@ class UserBehaviorRecordDao : public enable_shared_from_this> getAllUserBehaviorRecord(); int getUserBehaviorRecordCount(); - int getUserBehaviorRecordTheFirstId(); + // int getUserBehaviorRecordTheFirstId(); json getUserBehaviorRecordDescJson(int page, int page_size); - void addUserBehaviorRecord(string name, int behavior, string behaviorinfo); + int addUserBehaviorRecord(string name, string behaviorinfo, string extinfo); void cleanUserBehaviorRecord(); private: @@ -93,4 +94,4 @@ class UserBehaviorRecordDao : public enable_shared_from_thisaddUserBehaviorRecord(name, behavior, behaviorinfo) \ No newline at end of file +#define ADD_USER_BEHAVIOR(name, behaviorinfo) UserBehaviorRecordDao::ins()->addUserBehaviorRecord(name, behaviorinfo,"") \ No newline at end of file diff --git a/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp b/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp index cc618fe..609fe78 100644 --- a/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp +++ b/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp @@ -139,6 +139,8 @@ void DisinfectionCtrlService::initialize() { *******************************************************************************/ void DisinfectionCtrlService::start(int loglevel) { + stop(); + logger->info("start loglevel:{}", loglevel); checkBeforeStart(); m_tlog = loglevel; @@ -159,6 +161,8 @@ void DisinfectionCtrlService::start(int loglevel) { startWorkThread(); } json DisinfectionCtrlService::startWithFormula(string formulaid) { + stop(); + logger->info("startWithFormula formulaid:{}", formulaid); checkBeforeStart(); m_formulaid = formulaid; @@ -241,8 +245,8 @@ void DisinfectionCtrlService::startWorkThread() { } void DisinfectionCtrlService::stop() { - if (sm.getState() == DisinfectionState::finished) return; - if (sm.getState() == DisinfectionState::idle) return; + // if (sm.getState() == DisinfectionState::finished) return; + // if (sm.getState() == DisinfectionState::idle) return; if (m_thread) { m_thread->join(); @@ -524,7 +528,6 @@ void DisinfectionCtrlService::processStateDisinfection(DisinfectionEvent* event) */ auto coefficient = DeviceExtSettingDAO::ins()->getDeviceExtSetting().dvalueCoefficient; - s_dvalue = DValueComputer().computeDValue(coefficient, s_h2o2Snapshot->minH2O2); if (zsteady_clock().elapsedTimeS(s_lastComputeDvalueTp) > DVALUE_COMPUTEPERIOD_TIME_S) { @@ -581,7 +584,6 @@ void DisinfectionCtrlService::processStateDisinfection(DisinfectionEvent* event) if (PORT.isHasDisinfectantBucket()) { if (dwus->getWeight() < 10) { logger->error("DisinfectantBucket is empty"); - AppEventBus::ins()->push(make_shared(err::kappe_disinfectant_insufficient)); pushSnapshot(createErrorSnapshot(err::kappe_disinfectant_insufficient)); changeToNextState(); } @@ -599,7 +601,7 @@ void DisinfectionCtrlService::processStateDisinfection(DisinfectionEvent* event) void DisinfectionCtrlService::processStateEmpytLiquidFromTheLine(DisinfectionEvent* event) { if (event->event == kevent_enter_state) { tryLogState(true); - dics->AC_ctrl(1); + // dics->AC_ctrl(1); dics->SprayPump_startInRPM(-PORT.getSprayLiquidPumpMaxRPM()); s_remaintime = EMTPTY_LINE_WHEN_DISINFECTION; @@ -705,5 +707,3 @@ void DisinfectionCtrlService::processStateFinished(DisinfectionEvent* event) { } } } - -// AppEventBus::ins()->push(make_shared(s_error)); diff --git a/appsrc/service/app/disinfection_ctrl_service_ext.cpp b/appsrc/service/app/disinfection_ctrl_service_ext.cpp index ba75800..acdc209 100644 --- a/appsrc/service/app/disinfection_ctrl_service_ext.cpp +++ b/appsrc/service/app/disinfection_ctrl_service_ext.cpp @@ -56,17 +56,17 @@ void DisinfectionCtrlServiceExt::start(shared_ptr cxt, string // 从setting中获取实时参数 int level = atoi(loglevel.c_str()); dcs->start(level); - ADD_USER_BEHAVIOR(ds->getLoginName(), kbehavior_do_disinfection, fmt::format("开始消毒,level:{}", level)); + ADD_USER_BEHAVIOR(ds->getLoginName(), fmt::format("开始消毒Log{}", level)); // m_state = DisinfectionState::preheat; if (stateUpdateThread) stateUpdateThread->wake(); } void DisinfectionCtrlServiceExt::startWithFormula(shared_ptr cxt, string formulaid) { // json formula = dcs->startWithFormula(formulaid); - ADD_USER_BEHAVIOR(ds->getLoginName(), kbehavior_do_formula, fmt::format("启动配置方,{}", formula["name"])); + ADD_USER_BEHAVIOR(ds->getLoginName(), fmt::format("启动配置方{}Log{}", formula["name"], formula[SettingId::toString(SettingId::kloglevel)])); if (stateUpdateThread) stateUpdateThread->wake(); } void DisinfectionCtrlServiceExt::stop(shared_ptr cxt) { - ADD_USER_BEHAVIOR(ds->getLoginName(), kbehavior_stop_disinfection, ""); + ADD_USER_BEHAVIOR(ds->getLoginName(), "停止消毒"); dcs->stop(); if (stateUpdateThread) stateUpdateThread->wake(); } @@ -78,10 +78,17 @@ void DisinfectionCtrlServiceExt::getRealtimeConfig(shared_ptr } } -void DisinfectionCtrlServiceExt::updateTargetLogLevel(shared_ptr cxt, float loglevel) { dcs->updateTargetLogLevel(loglevel); } +void DisinfectionCtrlServiceExt::updateTargetLogLevel(shared_ptr cxt, float loglevel) { + auto tLog = dcs->getTlog(); + dcs->updateTargetLogLevel(loglevel); + ADD_USER_BEHAVIOR(ds->getLoginName(), fmt::format("实时修改LOG{}->{}", int(tLog + 0.5), (int)(loglevel + 0.5))); +} void DisinfectionCtrlServiceExt::setRealtimeConfig(shared_ptr cxt, string key, string val) { logger->info("setRealtimeConfig key:{} val:{}", key, val); + auto setting = SETTING_DB->getSetting(key); + + ADD_USER_BEHAVIOR(ds->getLoginName(), fmt::format("实时修改运行时配置{}{}", setting ? setting->name_ch : key, val)); dcs->getRealtimeCfg()[key] = val; dcs->updateCfg(); } diff --git a/appsrc/service/app_core.cpp b/appsrc/service/app_core.cpp index 332acd7..85696ca 100644 --- a/appsrc/service/app_core.cpp +++ b/appsrc/service/app_core.cpp @@ -170,6 +170,14 @@ void AppCore::initialize() { BUILD_AND_REG_SERRVICE(ExtSettingMgrService); BUILD_AND_REG_SERRVICE(EquipmentUsageInfoMgrService); + // int cnt = 0; + // while (true) { + // uint64_t tp = zsys_get_ticket(); + // int cnt = ADD_USER_BEHAVIOR("AAAA", fmt::format("CNT {}", cnt++)); + // uint64_t tpend = zsys_get_ticket(); + // logger->info("time cost:{} {}", tpend - tp,cnt); + // } + // GET_SERVICE(IflytopFrontEndService)->startListen(); GET_SERVICE(IflytopFrontEndService)->onMessage.connect([this](weak_ptr webSocket, json& cmd, json& receipt) { @@ -219,12 +227,12 @@ void AppCore::appEventConfirm(shared_ptr cxt, string evenid) for (auto it = appEventList.begin(); it != appEventList.end(); it++) { if ((*it)->uuid == evenid) { if (dynamic_pointer_cast(*it)) { - ADD_USER_BEHAVIOR(DS->getLoginName(), kbehavior_warning_prompt_confirm, dynamic_pointer_cast(*it)->getDescription()); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("确认警告-{}", dynamic_pointer_cast(*it)->getDescription())); } if (dynamic_pointer_cast(*it)) { vector checkPoints = dynamic_pointer_cast(*it)->errCheckPoints; for (auto& cp : checkPoints) { - ADD_USER_BEHAVIOR(DS->getLoginName(), kbehavior_warning_prompt_confirm, cp.ecodeInfo); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("确认警告-{}", cp.ecodeInfo)); } } appEventList.erase(it); @@ -243,12 +251,13 @@ void AppCore::insertAppEvent(shared_ptr event) { if (dynamic_pointer_cast(event)) { GET_SERVICE(WarningLightControler)->setwarningFlag(true); - ADD_USER_BEHAVIOR(DS->getLoginName(), kbehavior_warning_prompt, dynamic_pointer_cast(event)->getDescription()); + // ADD_USER_BEHAVIOR(DS->getLoginName(), kbehavior_warning_prompt, dynamic_pointer_cast(event)->getDescription()); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("警告-{}", dynamic_pointer_cast(event)->getDescription())); } else if (dynamic_pointer_cast(event)) { GET_SERVICE(WarningLightControler)->setwarningFlag(true); vector checkPoints = dynamic_pointer_cast(event)->errCheckPoints; for (auto& cp : checkPoints) { - ADD_USER_BEHAVIOR(DS->getLoginName(), kbehavior_warning_prompt, cp.ecodeInfo); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("警告-{}", cp.ecodeInfo)); } } } diff --git a/appsrc/service/audit_mgr_service.cpp b/appsrc/service/audit_mgr_service.cpp index 311670f..bc3518e 100644 --- a/appsrc/service/audit_mgr_service.cpp +++ b/appsrc/service/audit_mgr_service.cpp @@ -52,7 +52,7 @@ int AuditMgrService::callExportData() { ofs << "Date,UsrName,Operation" << endl; for (auto& record : records) { - ofs << fmt::format("{},{},\"{}{}\"", record->date, record->usrName, db::user_behavior_to_str((user_behavior_t)record->behavior), record->behaviorinfo) << endl; + ofs << fmt::format("{},{},\"{}\"", record->date, record->usrName, record->behaviorinfo) << endl; } ofs.close(); // 文件编码转换 @@ -89,24 +89,7 @@ void AuditMgrService::getRecords(shared_ptr cxt, int page, in cxt->rely = UserBehaviorRecordDao::ins()->getUserBehaviorRecordDescJson(page, page_size); } void AuditMgrService::pushTestData(shared_ptr cxt) { - ADD_USER_BEHAVIOR("123", kbehavior_login, ""); - ADD_USER_BEHAVIOR("123", kbehavior_logout, ""); - ADD_USER_BEHAVIOR("123", kbehavior_add_user, ""); - ADD_USER_BEHAVIOR("123", kbehavior_del_user, ""); - ADD_USER_BEHAVIOR("123", kbehavior_update_user_uid, ""); - ADD_USER_BEHAVIOR("123", kbehavior_update_user_permission_level, ""); - ADD_USER_BEHAVIOR("123", kbehavior_update_user_passwd, ""); - ADD_USER_BEHAVIOR("123", kbehavior_set_setting_val, ""); - ADD_USER_BEHAVIOR("123", kbehavior_add_formula, ""); - ADD_USER_BEHAVIOR("123", kbehavior_del_formula, ""); - ADD_USER_BEHAVIOR("123", kbehavior_update_formula, ""); - ADD_USER_BEHAVIOR("123", kbehavior_do_disinfection, ""); - ADD_USER_BEHAVIOR("123", kbehavior_stop_disinfection, ""); - ADD_USER_BEHAVIOR("123", kbehavior_do_formula, ""); - ADD_USER_BEHAVIOR("123", kbehavior_update_setting_val_on_disinfection, ""); - ADD_USER_BEHAVIOR("123", kbehavior_export_disinfection_data, ""); - ADD_USER_BEHAVIOR("123", kbehavior_export_user_action_data, ""); - ADD_USER_BEHAVIOR("123", kbehavior_update_formula_name, ""); + } bool AuditMgrService::dosystem(string cmd) { diff --git a/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp b/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp index 36b976a..cec9f1a 100644 --- a/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp +++ b/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp @@ -13,7 +13,7 @@ void H2O2LiquidWeightSensorCalibrationService::initialize() { REG_EXTFN_VOID(getBias, void(void)); // } void H2O2LiquidWeightSensorCalibrationService::tare(shared_ptr cxt) { // - float weight = m_disinfectantWeightUpdateService->getWeight(); + float weight = m_disinfectantWeightUpdateService->getRoughWeight(); CalibrationInfoDao::ins()->setH2O2LiquidWeightSensorZeroBias(weight + 10); } void H2O2LiquidWeightSensorCalibrationService::getWeight(shared_ptr cxt) { diff --git a/appsrc/service/setting_mgr_service.cpp b/appsrc/service/setting_mgr_service.cpp index 753c53b..8caa0b0 100644 --- a/appsrc/service/setting_mgr_service.cpp +++ b/appsrc/service/setting_mgr_service.cpp @@ -28,16 +28,22 @@ void SettingMgrService::getAllSetting(shared_ptr cxt) { void SettingMgrService::setSettingVal(shared_ptr cxt, string settingName, string settingVal) { bool suc = SETTING_DB->setSettingVal(settingName, settingVal); APPCHECK(suc, err::kappe_db_operate_error, "setSettingVal failed"); + + auto setting = SETTING_DB->getSetting(settingName); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("设置{}为{}", setting ? setting->name_ch : settingName, settingVal)); } void SettingMgrService::getAllFormula(shared_ptr cxt) { cxt->rely = FORMULA_DB->getAllFormula(); } void SettingMgrService::addNewFormula(shared_ptr cxt) { auto formula = FORMULA_DB->newFormula(); cxt->rely = formula; + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("添加配方 {}", formula["name"])); } void SettingMgrService::delFormula(shared_ptr cxt, string formula_id) { + auto oldformulaName = FORMULA_DB->getFormula(formula_id, "name"); FORMULA_DB->deleteFormula(formula_id); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("删除配方 {}", oldformulaName)); return; } void SettingMgrService::updateFormula(shared_ptr cxt, string formula_id, json formula) { @@ -50,5 +56,6 @@ void SettingMgrService::updateFormulaIterm(shared_ptr cxt, st } void SettingMgrService::factoryResetSettings(shared_ptr cxt) { SETTING_DB->factoryReset(); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("恢复出厂设置")); cxt->rely = SETTING_DB->getAllSetting(); } diff --git a/appsrc/service/user_mgr_service.cpp b/appsrc/service/user_mgr_service.cpp index 3f246a4..9fa9bef 100644 --- a/appsrc/service/user_mgr_service.cpp +++ b/appsrc/service/user_mgr_service.cpp @@ -31,39 +31,42 @@ void UserMgrService::login(shared_ptr cxt, string name, strin if (!UserDao::ins()->ispasswdCorrect(name, pwd)) // THROW_APP_EXCEPTION(err::kappe_passwd_error, ""); - m_deviceStateService->setLoginState(name, UserDao::ins()->getUser(name)->roleType); logger->info("user {} login success", name); - ADD_USER_BEHAVIOR(name, kbehavior_login, ""); + ADD_USER_BEHAVIOR(name, "登陆"); return; } void UserMgrService::unlogin(shared_ptr cxt) { string name = m_deviceStateService->getLoginName(); m_deviceStateService->unlogin(); logger->info("user unlogin success"); - ADD_USER_BEHAVIOR(name, kbehavior_logout, ""); + ADD_USER_BEHAVIOR(name, "登出"); return; } void UserMgrService::chpasswd(shared_ptr cxt, int id, string newpasswd, string passwd) { auto user = UserDao::ins()->changePasswd(id, newpasswd); } void UserMgrService::changeUsrRoleType(shared_ptr cxt, int id, UsrRoleType roleType) { auto user = UserDao::ins()->updateUserRoleType(id, roleType); - + APPCHECK(user, err::kappe_user_not_exist, fmt::format("user {} not exist", id)); } void UserMgrService::addUser(shared_ptr cxt, string name, string passwd, UsrRoleType roleType) { // UserDao::ins()->addUser(name, passwd, roleType); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("添加用户{}", name)); } void UserMgrService::delUser(shared_ptr cxt, int id) { auto user = UserDao::ins()->delUser(id); APPCHECK(user, err::kappe_user_not_exist, fmt::format("user {} not exist", id)); + + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("删除用户{}", user->name)); } void UserMgrService::updateUserName(shared_ptr cxt, int id, string name) { string oldname; auto user = UserDao::ins()->updateUserUid(id, name, oldname); APPCHECK(user, err::kappe_user_not_exist, fmt::format("user {} not exist", id)); + ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("修改用户名{}->{}", oldname, name)); } void UserMgrService::getAllUser(shared_ptr cxt) { auto users = UserDao::ins()->getAllUserJson();