#include "autopackform.h" #include "ui_autopackform.h" #include "globalinfo.h" AutoPackForm::AutoPackForm(QWidget *parent) : QWidget(parent), ui(new Ui::AutoPackForm) { ui->setupUi(this); } AutoPackForm::~AutoPackForm() { delete ui; } void AutoPackForm::on_pushBack_clicked() { doSend(packinfo); emit back(); } void AutoPackForm::init() { // TODO: 页面进入初始化 ui->pushStart->setChecked(false); ui->widget->setEnabled(true); packConfig.refConfig(); connect(&packConfig,&RemotePackConfig::configUpdate,this,&AutoPackForm::upconfig); connect(&packConfig,&RemotePackConfig::dengJIConfigUp,this,&AutoPackForm::upDengjiInfo); connect(&_request,&HttpRequest::result,this,&AutoPackForm::httpResult); ui->comboBox->clear(); for(int i = 1;i<20;i++){ ui->comboBox->addItem(QString::number(i)); } on_addPackList_clicked(); } void AutoPackForm::on_addPackList_clicked() { //TODO: 缓存箱单数据,页面显示情空 doSend(packinfo); //TODO: 初始化码单信息 packinfo.reset(new PackInfo(_info)); packinfo->operator_id = GlobalInfo::this_()->user().userId; } void AutoPackForm::upconfig(const DaBaoConfig &config) { // TODO:打包配置更新 //机台 ui->jitai->clear(); ui->jitai->addItems(config.jitai); //打包工班次 ui->comboBox_2->clear(); ui->comboBox_2->addItems(config.daBaoGongBanCi); //皮重 ui->pizhong->clear(); for(int i = 0;ipizhong->addItem(QString::number(config.xiangzhong.at(i))); } //管色 ui->guanse->clear(); ui->guanse->addItems(config.guanse); //捻向 ui->nianxiang->clear(); ui->nianxiang->addItems(config.nianxiang); //纸箱 ui->zhixiang->clear(); ui->zhixiang->addItems(config.zhixiang); //筒重 ui->tongzhong->clear(); for(int i = 0;itongzhong->addItem(QString::number(config.tongZhong.at(i))); } } void AutoPackForm::upDengjiInfo(const QList & dengJis) { // TODO: 等级信息更新 ui->dengji->clear(); for(int i = 0;idengji->addItem(dengJis.at(i).value,dengJis.at(i).id); } } } void AutoPackForm::on_pushStart_clicked() { if(ui->pushStart->isChecked()){ ui->pushStart->setChecked(true); ui->widget->setEnabled(false); ui->handleRead->setEnabled(true); } else { init(); } } void AutoPackForm::doSend(QSharedPointer &info) { if(info.isNull()) return; //把数据添加到数据库里 insertProductSQL(info); //TODO:发送码单 packinfo 数据, 转换为 json数据发送 QJsonObject json = this->toJson(info); _request.setUserToken(QString::number(GlobalInfo::this_()->user().accountId),GlobalInfo::this_()->user().acessToken); // _request.post("http://doc.vanlai.net:3001/web/#/1?page_id=64",json); } // http://doc.vanlai.net:3001/web/#/1?page_id=64 void AutoPackForm::on_addBoxList_clicked() { if(packinfo.isNull()) return; auto box = packinfo->addBoxInfo(); //TODO: 添加箱单 数据 box->box_weight = ui->pizhong->currentText().toInt(); box->tube_number = ui->tongshu->text().toInt(); box->bucket_weight = ui->pizhong->currentText().toInt()*ui->tongshu->text().toInt(); box->gross_weight = ui->grossWeight_2->text().toInt(); box->box_weight = ui->netWeight_2->text().toInt(); box->sort = "1"; box->remark = ui->beizhu->toPlainText(); packinfo->level = ui->dengji->currentText(); packinfo->level_id = ui->dengji->currentData().toInt(); //TODO: 缓存数据,显示数据 // emit djmbbox(djmb.printBoxInfo(box->caseNumber(),box)); // qDebug()<boxes().size(); // doSend(packinfo); //把box数据添加到packinfo的boxes数据表里; packinfo->addBoxInfoList(box); //添加数据库 insertDetailsSQL(box,packinfo->codeSingle()); //packinfo其他数据在new时已经定义好的,需要时直接调就可以了,所以这里只要箱数,等级,机台和类型 if(packinfo->boxes().size()>=ui->comboBox->currentText().toInt()){ packinfo->quantity = packinfo->boxes().size(); packinfo->level_id = ui->dengji->currentData().toInt(); packinfo->machine_no = ui->jitai->currentText(); packinfo->carton_type = ui->zhixiang->currentText(); on_addPackList_clicked(); } } void AutoPackForm::httpResult(int emitcode, const QJsonObject body) { qDebug()<codeSingle()); } //把BoxInfo数据添加到deetails数据库里; void AutoPackForm::insertDetailsSQL(QSharedPointer boxes,QString codeSingle) { qDebug()<caseNumber(); detailsData.code_single = codeSingle; detailsData.case_number = boxes->caseNumber(); detailsData.box_weight = boxes->box_weight; detailsData.tube_number = boxes->tube_number; detailsData.bucket_weight = boxes->bucket_weight; detailsData.gross_weight = boxes->gross_weight; detailsData.net_weight = boxes->net_weight; detailsData.sort = boxes->sort; detailsData.remark = boxes->remark; if(database.insertDetails(detailsData)){ qDebug()<<"details数据库添加成功"; return; } qDebug()<<"details数据库添加失败"; } //把PackInfo添加到product数据库里; void AutoPackForm::insertProductSQL(QSharedPointer packes) { productData.goods_id = packes->goodsID(); productData.code_single = packes->codeSingle(); productData.quantity = packes->quantity; productData.level_id = packes->level_id; productData.tube_number = packes->tube_number(); productData.gross_weight = packes->gross_weight(); productData.net_weight = packes->net_weight(); productData.machine_no = packes->machine_no; productData.packing_time = packes->packing_time; productData.packing_type = packes->packing_type; productData.carton_type = packes->carton_type; productData.operator_id = packes->operator_id; productData.remark = packes->remark; if(database.insertProduct(productData)){ qDebug()<<"product数据库添加成功"; return; } qDebug()<<"product数据库添加失败"; } //将打包数据转换为json数据 QJsonObject AutoPackForm::toJson(QSharedPointer &info) { QJsonObject json; QJsonObject detailsjson; QJsonArray jsonarray; // for(int i = 0;iboxes().size();i++){ // detailsjson.insert("case_number",info->boxes().at(i)->caseNumber()); // detailsjson.insert("box_weight",info->boxes().at(i)->box_weight); // detailsjson.insert("tube_number",info->boxes().at(i)->tube_number); // detailsjson.insert("bucket_weight",info->boxes().at(i)->bucket_weight); // detailsjson.insert("gross_weight",info->boxes().at(i)->gross_weight); // detailsjson.insert("net_weight",info->boxes().at(i)->net_weight); // detailsjson.insert("box_weight",info->boxes().at(i)->box_weight); // detailsjson.insert("sort",info->boxes().at(i)->sort); // detailsjson.insert("remark",info->boxes().at(i)->remark); // jsonarray.append(detailsjson); // } // json.insert("goods_id",packes->goodsID()); // json.insert("code_single",info->codeSingle()); // json.insert("quantity",info->quantity); // json.insert("level_id",info->level_id); // json.insert("tube_number",info->tube_number()); // json.insert("gross_weight",info->gross_weight()); // json.insert("net_weight",info->net_weight()); // json.insert("machine_no",info->machine_no); // json.insert("packing_time",info->packing_time); // json.insert("packing_type",info->packing_type); // json.insert("carton_type",info->carton_type); // json.insert("operator",info->operator_id); // json.insert("details",jsonarray); // json.insert("remark",info->remark); for(int i = 0;i<1;i++){ detailsjson.insert("case_number","11234123"); detailsjson.insert("box_weight","123"); detailsjson.insert("tube_number","12"); detailsjson.insert("bucket_weight","23"); detailsjson.insert("gross_weight","412"); detailsjson.insert("net_weight","312"); detailsjson.insert("box_weight","12"); detailsjson.insert("sort","32"); detailsjson.insert("remark","23"); jsonarray.append(detailsjson); } json.insert("goods_id","115"); json.insert("code_single","232"); json.insert("quantity","23"); json.insert("level_id","412"); json.insert("tube_number","134"); json.insert("gross_weight","1234"); json.insert("net_weight","1242"); json.insert("machine_no","2341"); json.insert("packing_time","134"); json.insert("packing_type","1234"); json.insert("carton_type","1234"); json.insert("operator","1001"); json.insert("details",jsonarray); json.insert("remark","1"); return json; }