int Administrative_affaires_dao::add(QSharedPointer<AdministrativeAffaires> obj)
{
QSqlQuery query(database_);
// 先查询是否有一条一样的记录(根据时间)
quint32 udsn = 0;
QString cmd = QString("SELECT count(*) FROM %1 WHERE GenerateTime=:generateTime")
.arg(QString::fromStdString(kTableAdminAffaires));
bool prepare_flag = query.prepare(cmd);
if (!prepare_flag) return -1;
query.bindValue(":generateTime",obj->generateTime());
query.exec();
if(query.next())
{
udsn = query.value(0).toInt();
}
cmd = QString("INSERT INTO %1").arg(QString::fromStdString(kTableAdminAffaires));
prepare_flag = query.prepare(
cmd + " (Udsn,GenerateTime,StationId,OperatorId,WatchId," +
"AffairsType,TransAmount,ActualAmount,ReasonType," +
"FaultDeviceId,Payment,Note,BatchNum,Flag) " +
"VALUES (:Udsn,:GenerateTime,:StationId,:OperatorId,:WatchId," +
":AffairsType,:TransAmount,:ActualAmount,:ReasonType," +
":FaultDeviceId,:Payment,:Note,:batch,:flag);");
qDebug() << query.executedQuery();
if(!prepare_flag) return -1;
query.bindValue(":Udsn", udsn);
query.bindValue(":GenerateTime",obj->generateTime());
query.bindValue(":StationId",obj->stationId());
query.bindValue(":OperatorId",obj->operatorId());
query.bindValue(":WatchId",obj->watchId());
query.bindValue(":AffairsType",obj->affairsType());
query.bindValue(":TransAmount",obj->transAmount());
query.bindValue(":ActualAmount",obj->actualAmount());
query.bindValue(":ReasonType",obj->reasonType());
query.bindValue(":FaultDeviceId",obj->faultDeviceId());
query.bindValue(":Payment",obj->payment());
query.bindValue(":Note",obj->note());
query.bindValue(":batch",obj->batchNum());
query.bindValue(":flag", 0);
bool ret = query.exec();
return ret ? 0 : -2;
}