2026年5月23日暂存
This commit is contained in:
+86
-86
@@ -28,6 +28,7 @@ InkJetPrinter::InkJetPrinter(QWidget* parent)
|
||||
|
||||
// 初始化业务逻辑(仅保留原init中的非UI创建部分)
|
||||
init();
|
||||
initRunTimeCtrl();
|
||||
|
||||
QThread::sleep(3);
|
||||
qApp->installEventFilter(this);
|
||||
@@ -95,6 +96,7 @@ void InkJetPrinter::init()
|
||||
jd_timer->start(500);
|
||||
|
||||
msgtest = new QMessageBox(this);
|
||||
msgtest->setWindowTitle(tr("提示"));
|
||||
connect(msgtest, SIGNAL(finished(int)), this, SLOT(OnFinished(int)));
|
||||
|
||||
// 信号槽连接(原逻辑完全不变)
|
||||
@@ -278,35 +280,6 @@ void InkJetPrinter::init()
|
||||
connect(m_QRCodeDlg, &dlgQrCode::sig_qrCodeClose,
|
||||
m_TestPrintWidget, &TestPrintWidget::slt_QRCodeItemDone);
|
||||
|
||||
#ifdef __RFID_CARD
|
||||
curPowerOnDateTime = QDateTime::currentDateTime();
|
||||
QDate curDate = QDate::currentDate();
|
||||
unsigned int curDateInt = curDate.toString("yyMMdd").toInt();
|
||||
if(sysPara->RFIDPara.maintenanceDate == 0){
|
||||
sysPara->RFIDPara.maintenanceDate = curDateInt;
|
||||
sysPara->RFIDPara.maintenanceInterval = 6;
|
||||
QDate mtEndDate = curDate.addMonths(sysPara->RFIDPara.maintenanceInterval);
|
||||
sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt();
|
||||
}
|
||||
QString mtEndDatestr = "20" + QString::number(sysPara->RFIDPara.maintenanceEndDate);
|
||||
QDate mtEndDate = QDate::fromString(mtEndDatestr,"yyyyMMdd");
|
||||
timeoutDay = curDate.daysTo(mtEndDate);
|
||||
LogInfo::setRunStatusText(tr("mtDate: %1").arg(sysPara->RFIDPara.maintenanceDate));
|
||||
LogInfo::setRunStatusText(tr("mtInterval: %1").arg(sysPara->RFIDPara.maintenanceInterval));
|
||||
LogInfo::setRunStatusText(tr("mtEndDate: %1").arg(sysPara->RFIDPara.maintenanceEndDate));
|
||||
LogInfo::setRunStatusText(tr("mtFlag: %1").arg(sysPara->RFIDPara.needMaintenance));
|
||||
LogInfo::setRunStatusText(tr("timeoutDay: %1").arg(timeoutDay));
|
||||
qDebug()<<"mtDate: "<<sysPara->RFIDPara.maintenanceDate;
|
||||
qDebug()<<"mtInterval: "<<sysPara->RFIDPara.maintenanceInterval;
|
||||
qDebug()<<"mtEndDate: "<<sysPara->RFIDPara.maintenanceEndDate;
|
||||
qDebug()<<"mtFlog: "<<sysPara->RFIDPara.needMaintenance;
|
||||
qDebug()<<"timeoutDay: "<<timeoutDay;
|
||||
if(timeoutDay <= 0 && !sysPara->RFIDPara.needMaintenance)
|
||||
sysPara->RFIDPara.needMaintenance = true;
|
||||
if(timeoutDay <= 30)
|
||||
sysPara->status.needMaintenanceRemind = true;
|
||||
#endif
|
||||
|
||||
sysPara->status.machineMac = m_MainInstruction->dlgInputAddr->jd.addr;
|
||||
sysPara->para.rfidCountDown = 5;
|
||||
}
|
||||
@@ -354,6 +327,33 @@ void InkJetPrinter::slt_editCounter(CounterViewModel vm)
|
||||
}
|
||||
}
|
||||
|
||||
void InkJetPrinter::slt_warningMaintenance()
|
||||
{
|
||||
// 新逻辑的时间跨度更短,优先判断
|
||||
if (timeoutDay >= 30) {
|
||||
double runHours = sysPara->RFIDPara.runTime / 60.0 / 60.0;
|
||||
double hours = sysPara->RFIDPara.maintenanceHours - runHours;
|
||||
QString str;
|
||||
if (hours >= 0) {
|
||||
str = tr("保养期还有%1小时到期,请及时保养,否则喷码机容易损坏")
|
||||
.arg(QString::number(hours, 'f', 2));
|
||||
} else {
|
||||
hours = hours * (-1);
|
||||
str = tr("保养期已超过%1小时,请及时保养,否则喷码机容易损坏")
|
||||
.arg(QString::number(hours, 'f', 2));
|
||||
}
|
||||
msgtest->setText(str);
|
||||
msgtest->show();
|
||||
// m_MainWidget->setRunStatus(str);
|
||||
LogInfo::setRunStatusText(str);
|
||||
return;
|
||||
} else {
|
||||
warningHandler(3);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void InkJetPrinter::enableInkJetTabClick(bool flag){
|
||||
this->setEnabled(flag);
|
||||
}
|
||||
@@ -681,7 +681,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
if(m_MainWidget->getCurrPrintStatus() != 1){
|
||||
m_MainWidget->_on_pushButtonPowerOff_pressed(false);
|
||||
LogInfo::setRunStatusText(tr("测试时间结束,准备关机"));
|
||||
// m_MainWidget->setRunStatus(tr("测试时间结束,准备关机")); hlp
|
||||
}
|
||||
}
|
||||
if(sysPara->status.selfCheckDone && sysPara->para.Reciclar && test_flag){
|
||||
@@ -874,9 +873,8 @@ void InkJetPrinter::timerHandler(void){
|
||||
{
|
||||
if(!sysPara->status.selfCheckDone && sysPara->status.isPrinting){
|
||||
sysPara->status.selfCheckDone = true;
|
||||
// m_MainWidget->updatePrintDisplayLabel();hlp
|
||||
m_MainWidget->updatePrintDisplayLabel();
|
||||
// sysPara->status.flagOfAbnormalStatus = true;
|
||||
// LogInfo::setRunStatusText(tr("打印过程中死机了!!!"));
|
||||
qDebug()<<"打印过程中死机了!!!";
|
||||
}
|
||||
if(!sysPara->status.selfCheckDone)
|
||||
@@ -888,7 +886,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
/*-----------------------------------------------------*/
|
||||
if(!sysPara->status.selfCheckCnt) {
|
||||
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..............."));
|
||||
LogInfo::setRunStatusText(tr("开始自检,请等待60秒..."));
|
||||
m_MainWidget->enableReclaimCtrlButton(false);
|
||||
m_MainWidget->enablePrintButton(false);
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
@@ -912,7 +910,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
LogInfo::setRunStatusText(tr("自检完成!!!"));
|
||||
m_MainWidget->setRunStatus(tr("自检完成!!!"));
|
||||
qDebug()<<"自检完成!!!";
|
||||
// ui->tabPrintSetting->PrintSettingLog();
|
||||
m_MainWidget->enableReclaimCtrlButton(true);
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
sysPara->status.canRunAirPushing = true;
|
||||
@@ -922,7 +919,6 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
else {
|
||||
if((sysPara->status.selfCheckCnt % 200) == 0)
|
||||
// sysPara->devOp->controlReclaimTankOpen(false);
|
||||
m_MainWidget->enableReclaimCtrlButton(false);
|
||||
}
|
||||
|
||||
@@ -1032,7 +1028,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
sysPara->saveRFIDPara();
|
||||
msgtest->setText(tr("刷墨水卡成功!"));
|
||||
msgtest->show();
|
||||
// m_MainWidget->setRunStatus(tr("刷墨水卡成功!")); hlp
|
||||
m_MainWidget->setRunStatus(tr("刷墨水卡成功!"));
|
||||
LogInfo::setRunStatusText(tr("刷墨水卡成功!"));
|
||||
qDebug()<<"刷墨水卡成功";
|
||||
sysPara->para.flagOfInkWarning = false;
|
||||
@@ -1070,7 +1066,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
sysPara->saveRFIDPara();
|
||||
msgtest->setText(tr("刷溶剂卡成功!"));
|
||||
msgtest->show();
|
||||
// m_MainWidget->setRunStatus(tr("刷溶剂卡成功!")); hlp
|
||||
m_MainWidget->setRunStatus(tr("刷溶剂卡成功!"));
|
||||
LogInfo::setRunStatusText(tr("刷溶剂卡成功!"));
|
||||
qDebug()<<"刷溶剂卡成功";
|
||||
sysPara->para.flagOfSolventWarning = false;
|
||||
@@ -1092,14 +1088,15 @@ void InkJetPrinter::timerHandler(void){
|
||||
|
||||
sysPara->RFIDPara.needMaintenance = false;
|
||||
sysPara->status.needMaintenanceRemind = false;
|
||||
|
||||
QDate curDate = QDate::currentDate();
|
||||
sysPara->RFIDPara.maintenanceDate = curDate.toString("yyMMdd").toInt();
|
||||
QDate mtEndDate = curDate.addMonths(sysPara->RFIDPara.maintenanceInterval);
|
||||
sysPara->RFIDPara.maintenanceEndDate = mtEndDate.toString("yyMMdd").toInt();
|
||||
sysPara->RFIDPara.runTime = 0;
|
||||
ctrl_runTime->updatePara(&sysPara->RFIDPara);
|
||||
sysPara->saveRFIDPara();
|
||||
// msgtest->setText(tr("刷保养卡成功!"));
|
||||
// msgtest->show();
|
||||
// m_MainWidget->setRunStatus(tr("刷保养卡成功!")); hlp
|
||||
m_MainWidget->setRunStatus(tr("刷保养卡成功!"));
|
||||
LogInfo::setRunStatusText(tr("刷保养卡成功!"));
|
||||
qDebug()<<"刷保养卡成功";
|
||||
}
|
||||
@@ -1121,7 +1118,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
else
|
||||
{
|
||||
LogInfo::setRunStatusText(tr("card data: %1").arg(sysPara->devOp->strRevdata));
|
||||
// LogInfo::setRunStatusText(tr("card data: %1").arg(sysPara->devOp->strRevdata));
|
||||
QString str1 = QString::number(sysPara->devOp->strRevdata.mid(0,2).toInt(0,16)).rightJustified(2,'0');
|
||||
QString str2 =QString::number(sysPara->devOp->strRevdata.mid(2,2).toInt(0,16)).rightJustified(2,'0');
|
||||
QString str3 = QString::number(sysPara->devOp->strRevdata.mid(4,2).toInt(0,16)).rightJustified(2,'0');
|
||||
@@ -1253,8 +1250,9 @@ void InkJetPrinter::timerHandler(void){
|
||||
}
|
||||
|
||||
#ifdef __RFID_CARD
|
||||
// hlp 0513 :甲方要求提示越来越频繁
|
||||
if(sysPara->status.needMaintenanceRemind){
|
||||
warningHandler(3);
|
||||
// warningHandler(3);
|
||||
}
|
||||
static bool logFlagCard1 = 1;
|
||||
if(!sysPara->para.flagOfInkWarning){
|
||||
@@ -1379,7 +1377,7 @@ void InkJetPrinter::timerHandler(void){
|
||||
sysPara->status.beeperOnFlag = true;
|
||||
if(sysPara->status.gearPumpRunStopFlag && pushButtonStartFlag)
|
||||
{
|
||||
// m_MainWidget->setRunStatus(tr("压力泄漏或压力传感器故障!")); hlp
|
||||
m_MainWidget->setRunStatus(tr("压力泄漏或压力传感器故障!"));
|
||||
}
|
||||
if(!resumeFlag)
|
||||
{
|
||||
@@ -1839,16 +1837,16 @@ void InkJetPrinter::slt_counterVarUpdate()
|
||||
// m_TestPrintWidget->onEditItemCounterDone();
|
||||
}
|
||||
|
||||
void InkJetPrinter::showScheduleShiftsEditor(PicScheduleShiftItem* item)
|
||||
void InkJetPrinter::showScheduleShiftsEditor(QVector<ScheduleModel> schedules, TextItemModel txtModel)
|
||||
{
|
||||
m_StackedWidget->setCurrentWidget(m_scheduleShiftsEditor);
|
||||
m_scheduleShiftsEditor->edit(item);
|
||||
m_scheduleShiftsEditor->setItemModel(schedules, txtModel);
|
||||
}
|
||||
|
||||
void InkJetPrinter::onScheduleShiftsEditDone()
|
||||
{
|
||||
m_StackedWidget->setCurrentWidget(m_TestPrintWidget);
|
||||
m_TestPrintWidget->addScheduleShiftsItem(m_scheduleShiftsEditor->dataModel());
|
||||
m_TestPrintWidget->addScheduleShiftsItem(m_scheduleShiftsEditor->scheduleModel(), m_scheduleShiftsEditor->textItemModel());
|
||||
}
|
||||
|
||||
bool InkJetPrinter::eventFilter(QObject *watched, QEvent *event)
|
||||
@@ -1897,7 +1895,7 @@ void InkJetPrinter::saveFPGAStatus(unsigned char *data){
|
||||
}
|
||||
if(sysPara->status.dummy != sysPara->status.isPrinting){
|
||||
sysPara->status.isPrinting = sysPara->status.dummy;
|
||||
// m_MainWidget->updatePrintDisplayLabel(); hlp
|
||||
m_MainWidget->updatePrintDisplayLabel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2500,21 +2498,15 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
sysPara->status.reclaimTankBlockedAppending =0;
|
||||
if(sysPara->status.reclaimTankstatus == 0x10) //7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
LogInfo::setRunStatusText(tr("电机故障"));
|
||||
m_MainWidget->setRunStatus(tr("电机故障"));
|
||||
if(sysPara->devOp->isReclaimTankCloseEnable())
|
||||
{
|
||||
LogInfo::setRunStatusText(tr("电机故障"));
|
||||
// m_MainWidget->setRunStatus(tr("电机故障")); hlp
|
||||
sysPara->devOp->controlReclaimTankClose(false);
|
||||
// ui->tabMainWindow->resetReclaimCtrlButtonText();
|
||||
// emit reclaimTankBlock();
|
||||
}
|
||||
else {
|
||||
LogInfo::setRunStatusText(tr("电机故障"));
|
||||
// m_MainWidget->setRunStatus(tr("电机故障!!!")); hlp
|
||||
if(sysPara->devOp->isReclaimTankOpenEnable())
|
||||
sysPara->devOp->controlReclaimTankOpen(false);
|
||||
// ui->tabMainWindow->resetReclaimCtrlButtonText();
|
||||
// emit reclaimTankBlock();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2523,10 +2515,9 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
if(sysPara->devOp->isReclaimTankOpenEnable())
|
||||
sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭
|
||||
sysPara->status.reclainTankReachEnd = true;
|
||||
/*应要求去掉多余到信息 LogInfo::setRunStatusText(tr("回收槽到头"));*/
|
||||
m_MainWidget->setRunStatus(tr("回收槽到头"));
|
||||
m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮
|
||||
// ui->tabMainWindow->resetReclaimCtrlButtonText();
|
||||
// m_MainWidget->setRunStatus(tr("回收槽到头"));
|
||||
m_MainWidget->setReclaimStatus(true, 100);
|
||||
m_MainWidget->enablePrintButton(true); //仅仅在此时能使能打印按钮
|
||||
sysPara->devOp->highVoltageCtrl(1);
|
||||
// emit reclaimTankOpenDone();
|
||||
/*回收槽开关时间校正*/
|
||||
@@ -2539,14 +2530,10 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
else if(sysPara->status.reclaimTankstatus == 0x11 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
sysPara->devOp->controlReclaimTankOpen(false); //卡住,关闭
|
||||
// ui->tabMainWindow->resetReclaimCtrlButtonText();
|
||||
// LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
// ui->tabMainWindow->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
// emit reclaimTankBlock();
|
||||
}
|
||||
else if(sysPara->status.reclaimTankstatus == 1 || sysPara->status.reclaimTankstatus == 2)//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
// emit setReclaimTankCurrentPos(sysPara->status.currReclaimTankPos);
|
||||
sysPara->status.reclaimBlockedCnt = 0;
|
||||
|
||||
}
|
||||
@@ -2554,10 +2541,8 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
{
|
||||
if(sysPara->devOp->isReclaimTankCloseEnable())
|
||||
sysPara->devOp->controlReclaimTankClose(false); //到头,关闭
|
||||
/*应要求去掉多余到信息 LogInfo::setRunStatusText(tr("回收槽到头"));*/
|
||||
m_MainWidget->setRunStatus(tr("回收槽到头"));
|
||||
m_MainWidget->setReclaimStatus(false, 0);
|
||||
//sysPara->status.currReclaimTankPos = 0; //将回收槽的时间置为零
|
||||
// ui->tabMainWindow->resetReclaimCtrlButtonText();
|
||||
// emit reclaimTankCloseDone();
|
||||
sysPara->status.lastRecycleWarn = 0;
|
||||
sysPara->status.HVFaultCloseEn=0;
|
||||
@@ -2572,13 +2557,7 @@ void InkJetPrinter::detectAndcontrolReclaimTank(){
|
||||
{
|
||||
sysPara->devOp->controlReclaimTankOpen(false); //到头,关闭
|
||||
LogInfo::setRunStatusText(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
// m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误")); hlp
|
||||
// ui->tabMainWindow->resetReclaimCtrlButtonText();
|
||||
// emit reclaimTankBlock();
|
||||
}
|
||||
else // if(sysPara->status.reclaimTankstatus == 7 )//7 故障,6 关完成,5开完成,4 保持, 3 停止, 2 关, 1 开,0-无操作
|
||||
{
|
||||
// emit setReclaimTankCurrentPos(sysPara->status.currReclaimTankPos);
|
||||
m_MainWidget->setRunStatus(tr("回收槽卡住或者回收槽开关时间设置错误"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2627,7 +2606,7 @@ void InkJetPrinter::showMessage(QString str){
|
||||
qDebug()<<str;
|
||||
}
|
||||
sysPara->devOp->color_flag = 2;
|
||||
// m_MainWidget->setRunStatus(str); hlp
|
||||
m_MainWidget->setRunStatus(str);
|
||||
}
|
||||
|
||||
void InkJetPrinter::resetPressureCnt(){
|
||||
@@ -2739,7 +2718,7 @@ void InkJetPrinter::warningShow(int type,int num){
|
||||
str = tr("墨水液位报警超过48小时,机器无法正常打印,请先添加原厂墨水再刷墨水卡,以恢复喷码机的正常工作!");
|
||||
msgtest->setText(str);
|
||||
msgtest->show();
|
||||
// m_MainWidget->setRunStatus(str); hlp
|
||||
// m_MainWidget->setRunStatus(str);
|
||||
LogInfo::setRunStatusText(str);
|
||||
qDebug()<<str;
|
||||
}
|
||||
@@ -2750,7 +2729,7 @@ void InkJetPrinter::warningShow(int type,int num){
|
||||
str = tr("溶剂液位报警超过48小时,机器无法正常打印,请先添加溶剂再刷溶剂卡以恢复喷码机的正常工作!");
|
||||
msgtest->setText(str);
|
||||
msgtest->show();
|
||||
// m_MainWidget->setRunStatus(str); hlp
|
||||
// m_MainWidget->setRunStatus(str);
|
||||
LogInfo::setRunStatusText(str);
|
||||
qDebug()<<str;
|
||||
}
|
||||
@@ -2761,7 +2740,7 @@ void InkJetPrinter::warningShow(int type,int num){
|
||||
str = tr("保养期已超过%1天,请进行保养以恢复喷码机的正常使用").arg(num*(-1));
|
||||
msgtest->setText(str);
|
||||
msgtest->show();
|
||||
// m_MainWidget->setRunStatus(str); hlp
|
||||
// m_MainWidget->setRunStatus(str);
|
||||
LogInfo::setRunStatusText(str);
|
||||
qDebug()<<str;
|
||||
}
|
||||
@@ -2799,7 +2778,7 @@ bool InkJetPrinter::cardTouchConfirm(QString msgTxt, QString variableMsgTxt)
|
||||
{
|
||||
QMessageBox box(QMessageBox::Warning, tr("警告"),
|
||||
msgTxt, QMessageBox::Ok | QMessageBox::Cancel,
|
||||
this, Qt::Dialog | Qt::Tool | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint );
|
||||
this);
|
||||
|
||||
int rfidCountDown = sysPara->para.rfidCountDown;
|
||||
QTimer msgTimer;
|
||||
@@ -2818,15 +2797,36 @@ bool InkJetPrinter::cardTouchConfirm(QString msgTxt, QString variableMsgTxt)
|
||||
msgTimer.start(1000);
|
||||
}
|
||||
|
||||
// 为边框设置圆角和边框颜色
|
||||
box.setStyleSheet(R"(
|
||||
QDialog {
|
||||
border-radius: 5px;
|
||||
border: 2px solid #333333;
|
||||
}
|
||||
)");
|
||||
|
||||
box.exec();
|
||||
|
||||
return box.result() == QMessageBox::Ok || box.result() == QMessageBox::Accepted;
|
||||
}
|
||||
|
||||
void InkJetPrinter::initRunTimeCtrl()
|
||||
{
|
||||
if (ctrl_runTime == nullptr) {
|
||||
ctrl_runTime = RunTimeCtrl::instance();
|
||||
#ifdef __RFID_CARD
|
||||
connect(ctrl_runTime, &RunTimeCtrl::sig_updateTimeoutDay, this, [=](int days) {
|
||||
// timeoutDay:仅适用于原来月份的处理
|
||||
this->timeoutDay = days;
|
||||
if(timeoutDay <= 30)
|
||||
sysPara->status.needMaintenanceRemind = true;
|
||||
});
|
||||
connect(ctrl_runTime, &RunTimeCtrl::sig_saveRunTime, this, [=]() {
|
||||
// 运行时间处理
|
||||
sysPara->RFIDPara.runTime += 30;
|
||||
sysPara->saveRFIDPara();
|
||||
});
|
||||
// 弹窗提示
|
||||
connect(ctrl_runTime, &RunTimeCtrl::sig_alertTimeout,
|
||||
this, &InkJetPrinter::slt_warningMaintenance);
|
||||
|
||||
curPowerOnDateTime = QDateTime::currentDateTime();
|
||||
if (sysPara)
|
||||
ctrl_runTime->loadConfig(&sysPara->RFIDPara);
|
||||
|
||||
ctrl_runTime->start();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user