Browse Source

v3.1.8|

try_support_dt100n
zhaohe 4 weeks ago
parent
commit
4bc1a45960
  1. 7
      README.md
  2. 8
      appsrc/appbase/appevent/app_disinfection_finished_event.hpp
  3. 2
      appsrc/appconfig/basic/zappversion.hpp
  4. 5
      appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp
  5. 2
      appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.hpp
  6. 1
      appsrc/service/app/disinfection_ctrl/disinfection_state_machine.hpp
  7. 4
      appsrc/service/disinfection_logs_service.cpp
  8. 9
      appsrc/service/user_mgr_service.cpp

7
README.md

@ -189,7 +189,12 @@ V 3.1.6
2. 修改预热时间最小值从0分钟到120分钟,默认值2分钟 2. 修改预热时间最小值从0分钟到120分钟,默认值2分钟
3. 支持修改风机默认速度 3. 支持修改风机默认速度
4. 打开预热时,打开风机 4. 打开预热时,打开风机
v3.1.8|
1. 任何时刻都允许用户登出, 登出时,除了审计,不执行任何设备操作.
2. 有屏,和无屏, 都允许用户在消毒过程中登出.
3. 重复登录会挤掉已登录的用户
4. 审计记录实时用户对象
5. csv文件中,和打印的日志, 均以启动消毒那一刻为准. 那一刻操作员是谁, 就记录谁.
TODO: TODO:
1.添加用户增加用户查重检查 1.添加用户增加用户查重检查
2.测试如果数据库文件损坏,设备的执行逻辑 2.测试如果数据库文件损坏,设备的执行逻辑

8
appsrc/appbase/appevent/app_disinfection_finished_event.hpp

@ -1,9 +1,13 @@
#pragma once #pragma once
#include <string>
#include "iapp_event.hpp" #include "iapp_event.hpp"
namespace iflytop { namespace iflytop {
using namespace std;
class DisinfectionStatistics { class DisinfectionStatistics {
public: public:
string deviceOperator;
zsystem_tp start_tp = {}; zsystem_tp start_tp = {};
zsystem_tp complete_tp = {}; zsystem_tp complete_tp = {};
int disinfectantVolume_g = {}; // 消毒剂量 int disinfectantVolume_g = {}; // 消毒剂量
@ -26,7 +30,7 @@ class AppDisinfectionFinishedEvent : public IAppEvent {
string getSessionId() { return sessionId; } string getSessionId() { return sessionId; }
shared_ptr<DisinfectionStatistics> getDisinfectionStatistics() { return disinfectionStatistics; } shared_ptr<DisinfectionStatistics> getDisinfectionStatistics() { return disinfectionStatistics; }
NLOHMANN_DEFINE_TYPE_INTRUSIVE(AppDisinfectionFinishedEvent, uuid, type,sessionId);
NLOHMANN_DEFINE_TYPE_INTRUSIVE(AppDisinfectionFinishedEvent, uuid, type, sessionId);
virtual json toJson() { return json(*this); } virtual json toJson() { return json(*this); }
}; };

2
appsrc/appconfig/basic/zappversion.hpp

@ -1,3 +1,3 @@
#pragma once #pragma once
#define VERSION "3.1.7"
#define VERSION "3.1.8"
#define PROJECT_NAME "TRANSMIT_DM" #define PROJECT_NAME "TRANSMIT_DM"

5
appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp

@ -298,7 +298,8 @@ shared_ptr<DisinfectionStateSnapshot> DisinfectionCtrlService::createSnapshot(bo
snapshot->ecode = 0; snapshot->ecode = 0;
snapshot->forcelog = forceLog; snapshot->forcelog = forceLog;
snapshot->isDisinfectionTakeBreak = s_isDisinfectionTakeBreak; snapshot->isDisinfectionTakeBreak = s_isDisinfectionTakeBreak;
snapshot->inJectionRate = getSettingAsInt(SettingId::injection_pump_speed);
snapshot->inJectionRate = getSettingAsInt(SettingId::injection_pump_speed);
return snapshot; return snapshot;
} }
shared_ptr<DisinfectionStateSnapshot> DisinfectionCtrlService::createErrorSnapshot(int32_t errorcode) { shared_ptr<DisinfectionStateSnapshot> DisinfectionCtrlService::createErrorSnapshot(int32_t errorcode) {
@ -424,6 +425,7 @@ void DisinfectionCtrlService::processStateInit(DisinfectionEvent* event) {
s_start_steady_tp = zsteady_clock().now(); s_start_steady_tp = zsteady_clock().now();
s_afterDisinfectantVolume_g = 0; s_afterDisinfectantVolume_g = 0;
s_beforeDisinfectantVolume_g = dwus->getWeight(); s_beforeDisinfectantVolume_g = dwus->getWeight();
s_operator = ds->getLoginName();
AppEventBus::ins()->push(make_shared<AppDisinfectionStartEvent>(s_sessionId)); AppEventBus::ins()->push(make_shared<AppDisinfectionStartEvent>(s_sessionId));
GET_SERVICE(WarningLightControler)->setworkFlag(true); GET_SERVICE(WarningLightControler)->setworkFlag(true);
changeToNextState(); changeToNextState();
@ -737,6 +739,7 @@ void DisinfectionCtrlService::processStateFinished(DisinfectionEvent* event) {
statistice->disinfectantVolume_g = s_afterDisinfectantVolume_g - s_beforeDisinfectantVolume_g; statistice->disinfectantVolume_g = s_afterDisinfectantVolume_g - s_beforeDisinfectantVolume_g;
statistice->tLog = m_tlog; statistice->tLog = m_tlog;
statistice->finalLog = s_nlog; statistice->finalLog = s_nlog;
statistice->deviceOperator = s_operator;
AppEventBus::ins()->push(make_shared<AppDisinfectionFinishedEvent>(s_sessionId, statistice)); AppEventBus::ins()->push(make_shared<AppDisinfectionFinishedEvent>(s_sessionId, statistice));
return; return;

2
appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.hpp

@ -46,6 +46,8 @@ class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlS
unique_ptr<Thread> m_thread; unique_ptr<Thread> m_thread;
// 实时任务状态 // 实时任务状态
string s_operator; // 操作人
string s_sessionId = {}; string s_sessionId = {};
zsystem_tp s_start_tp = {}; zsystem_tp s_start_tp = {};
zsystem_tp s_complete_tp = {}; zsystem_tp s_complete_tp = {};

1
appsrc/service/app/disinfection_ctrl/disinfection_state_machine.hpp

@ -26,6 +26,7 @@ class DisinfectionStateMachine {
recursive_mutex lock_; recursive_mutex lock_;
recursive_mutex actionLock_; recursive_mutex actionLock_;
map<string, function<void(DisinfectionEvent* event)>> m_state_processer_map; map<string, function<void(DisinfectionEvent* event)>> m_state_processer_map;
function<void()> m_bf_state_processer; function<void()> m_bf_state_processer;

4
appsrc/service/disinfection_logs_service.cpp

@ -17,8 +17,8 @@
#include "appbase/appbean/disinfection_record_csv_header.hpp" #include "appbase/appbean/disinfection_record_csv_header.hpp"
#include "appbase/utils/zsimplepdf.hpp" #include "appbase/utils/zsimplepdf.hpp"
#include "appdep/components/ziconv.hpp" #include "appdep/components/ziconv.hpp"
#include "utils/app_timeid_generator.hpp"
#include "internationalization.hpp" #include "internationalization.hpp"
#include "utils/app_timeid_generator.hpp"
using namespace std; using namespace std;
using namespace iflytop; using namespace iflytop;
typedef DisinfectionRecordCSVHeader CSVHeader; typedef DisinfectionRecordCSVHeader CSVHeader;
@ -340,7 +340,7 @@ void DisinfectionLogsService::dumpDisinfectionToPrinterLog(string sessionId, lis
content += fmt::format("= = = = = = = = = = = = = = = \n"); content += fmt::format("= = = = = = = = = = = = = = = \n");
content += fmt::format(" 全思美特 \n"); content += fmt::format(" 全思美特 \n");
content += fmt::format("消毒ID: {}\n", sessionId); content += fmt::format("消毒ID: {}\n", sessionId);
content += fmt::format("操作人员: {}\n", GET_SERVICE(DeviceStateService)->getLoginName());
content += fmt::format("操作人员: {}\n", m_statistics->deviceOperator);
content += fmt::format("开始时间: {}\n", AppTimeIdGenerator::format_zsystem_tp(m_statistics->start_tp)); content += fmt::format("开始时间: {}\n", AppTimeIdGenerator::format_zsystem_tp(m_statistics->start_tp));
content += fmt::format("结束时间: {}\n", AppTimeIdGenerator::format_zsystem_tp(m_statistics->complete_tp)); content += fmt::format("结束时间: {}\n", AppTimeIdGenerator::format_zsystem_tp(m_statistics->complete_tp));
content += fmt::format("总耗时: {}:{}:{}\n", total_hours, total_mins, total_secs); content += fmt::format("总耗时: {}:{}:{}\n", total_hours, total_mins, total_secs);

9
appsrc/service/user_mgr_service.cpp

@ -27,10 +27,6 @@ void UserMgrService::login(shared_ptr<MsgProcessContext> cxt, string name, strin
// return; // return;
// } // }
if(m_deviceStateService->isLogin()){
THROW_APP_EXCEPTION(err::kappe_user_exist, "用户已登录");
}
if (!UserDao::ins()->isUserExist(name)) // if (!UserDao::ins()->isUserExist(name)) //
THROW_APP_EXCEPTION(err::kappe_user_not_exist, ""); THROW_APP_EXCEPTION(err::kappe_user_not_exist, "");
if (!UserDao::ins()->ispasswdCorrect(name, pwd)) // if (!UserDao::ins()->ispasswdCorrect(name, pwd)) //
@ -45,11 +41,6 @@ void UserMgrService::login(shared_ptr<MsgProcessContext> cxt, string name, strin
return; return;
} }
void UserMgrService::unlogin(shared_ptr<MsgProcessContext> cxt) { void UserMgrService::unlogin(shared_ptr<MsgProcessContext> cxt) {
if (!m_deviceStateService->getDeviceState().eq(DeviceState::kIdle)) {
THROW_APP_EXCEPTION(err::kappe_state_is_busy, //
Internationalization::deviceBusyError2description(err::kappe_state_is_busy, m_deviceStateService->getDeviceState()));
}
string name = m_deviceStateService->getLoginName(); string name = m_deviceStateService->getLoginName();
m_deviceStateService->unlogin(); m_deviceStateService->unlogin();
logger->info("user unlogin success"); logger->info("user unlogin success");

Loading…
Cancel
Save