#include "packinfo.h" #include "globalinfo.h" #include int PackInfo::lastMin = 0; int PackInfo::lastNum = 1; QString getDecimalbit(double v, int i) { QString tmp; switch(i) { case 0 : tmp.sprintf("%.0lf",v); break; case 1: tmp.sprintf("%.1lf",v); break; case 2: tmp.sprintf("%.2lf",v); break; case 3: tmp.sprintf("%.3lf",v); break; case 4: tmp.sprintf("%.4lf",v); break; case 5: tmp.sprintf("%.5lf",v); break; case 6: tmp.sprintf("%.6lf",v); break; case 7: tmp.sprintf("%.7lf",v); break; case 8: tmp.sprintf("%.8lf",v); break; default: tmp.sprintf("%.9lf",v); break; } return tmp; } PackInfo::PackInfo(const QSharedPointer & info) : _info(info) { code_single = buildPackId(); if(!info.isNull()) goods_id = info->goods_id; _time = QDateTime::currentSecsSinceEpoch(); } BoxInfo::BoxInfo(QSharedPointer pack,QString code):case_number(code),parent(pack) {} QJsonObject BoxInfo::toObject() { QJsonObject ret; //todo: 小宋 return ret; } QSharedPointer BoxInfo::fromObject(QSharedPointer & pack,QJsonObject & obj) { QString case_number = obj.value("case_number").toString(); if(case_number.isEmpty()) return QSharedPointer(); QSharedPointer ret(new BoxInfo(pack,"")); ret->case_number = case_number; // TODO 小宋 return ret; } QJsonObject PackInfo::toObject() { QJsonObject ret; ret.insert("time",QString::number(this->time())); //todo: 小宋 return ret; } QSharedPointer PackInfo::fromObject(QJsonObject &obj) { QSharedPointer ret; QString code_single = obj.value("code_single").toString(); QString batch_no = obj.value("batch_no").toString(); auto project = GlobalInfo::this_()->project(batch_no); if(code_single.isEmpty()) return ret; ret.reset(new PackInfo(project)); ret->code_single = code_single; ret->_time = obj.value("time").toString().toLongLong(); //todo: 小宋 return ret; } QString PackInfo::buildPackId() { QDateTime now = QDateTime::currentDateTime(); int min = now.time().minute(); if(min != lastMin) lastNum = 1; else lastNum ++; QString packId = GlobalInfo::this_()->packNum() + now.toString("yyMMddhhmmss") + QString::asprintf("%03d",lastNum); if(lastNum > 999) return QString(); return packId; } QString PackInfo::buildBoxId() { int nowNum = boxes().size() + 1; QDateTime now = QDateTime::currentDateTime(); QString id = now.toString("yyMMddhhmmss") + /*GlobalInfo::this_()->packNum() +*/ QString::asprintf("%03d",nowNum); return id; } int PackInfo::tube_number() { int ret = 0; for(int i = 0; i < _boxes.size();++i){ ret += _boxes.at(i)->tube_number; } return ret; } int PackInfo::gross_weight() { int ret = 0; for(int i = 0; i < _boxes.size();++i){ ret += _boxes.at(i)->gross_weight; } return ret; } int PackInfo::net_weight() { int ret = 0; for(int i = 0; i < _boxes.size();++i){ ret += _boxes.at(i)->net_weight; } return ret; } QSharedPointer PackInfo::addBoxInfo() { QSharedPointer ret(new BoxInfo(sharedFromThis(),buildBoxId())); return ret; } void PackInfo::addBoxInfoList(QSharedPointer boxes) { _boxes.append(boxes); } void PackInfo::delBoxInfoAt(int num) { qDebug()<<"size"<<_boxes.size(); qDebug()<<"num"< PackInfo::boxInfoAt(int num) { return _boxes.at(num); } int PackInfo::boxInfoSize() { return _boxes.size(); }