python

aggregate 적용 화주 사이즈 별 집계하기

bumychoi 2024. 5. 20. 03:32

from main import *
from flask import Blueprint
from bson.objectid import ObjectId

bp = Blueprint("freight", __name__, url_prefix='/freight')

@bp.route("/")
def freight():
    d_lists = list(db.mv.find({"cago_name": "철근"}))
    return render_template("freight.html",d_lists=d_lists,title="철근상세")

@bp.route('/d_bar_lists',methods=['GET'])
def d_bar_lists():
    data = request.args.get('data')
    d_details = list(db.d_list.find({'mv_id':data}).sort({"number": -1}))
    for d_detail in d_details:
        d_detail["_id"] = str(d_detail['_id'])
    return jsonify({"result": d_details})

@bp.route('/d_bar_input',methods=['POST'])
def d_bar_input():
    list_id_receive = request.form["list_id_give"]
    number_receive = int(request.form["number_give"])
    tc_no_receive = request.form["tc_no_give"]
    bundle_receive = int(request.form["bundle_give"])
    offer_receive = request.form["offer_give"]
    gangjung_receive = request.form["gangjung_give"]
    size_receive = request.form["size_give"]
    hauju_receive = request.form["hauju_give"]
    bundle_mt_recevive = float(request.form['bundle_mt_give'])
    doc ={
        "list_id":list_id_receive,
        "number":number_receive,
        "tc_no":tc_no_receive,
        "bundle":bundle_receive,
        "offer":offer_receive,
        "gangjung":gangjung_receive,
        "size":size_receive,
        "hauju":hauju_receive,
        "bundle_mt":bundle_mt_recevive
    }
    db.d_input.insert_one(doc)

    return jsonify({"msg":"저장완료"})

@bp.route('/d_list_input_list')
def d_list_input_list():
    data = request.args.get('list')
    input_lists = list(db.d_input.find({'list_id':data}))
    for input_list in input_lists:
        input_list["_id"] = str(input_list['_id'])
    return jsonify({"result1":input_lists})

@bp.route('/d_bar_modify',methods=['POST'])
def d_bar_modify():
    id_receive = request.form["id_give"]
    number_receive = int(request.form["number_give"])
    tc_no_receive = request.form["tc_no_give"]
    bundle_receive = int(request.form["bundle_give"])
    hauju_receive = request.form["hauju_give"]
    mt_receive = float(request.form["mt_give"])
    gangjung_receive = request.form["gangjung_give"]
    offer_receive = request.form["offer_give"]
    size_receive = request.form["size_give"]
    id_receive = ObjectId(id_receive)
    print(hauju_receive)
    db.d_input.update_one({'_id':id_receive},{'$set':{
                            "number":number_receive,
                            "to_no":tc_no_receive,
                            "bundle":bundle_receive,
                            "hauju":hauju_receive,
                            "mt":mt_receive,
                            "gangjung":gangjung_receive,
                            "offer":offer_receive,
                            "size":size_receive,
                            }})

    return jsonify({"msg":"수정완료"})

@bp.route("/d_bar_delete",methods=["POST"])
def d_bar_delete():
    id_receive = request.form["id_give"]
    id_receive = ObjectId(id_receive)
    db.d_input.delete_one({'_id':id_receive})

    return jsonify({"msg":"삭제완료"})

@bp.route('/d_bar_sum',methods=['GET'])
def d_bar_sum():
    data = request.args.get('data')
    mv_lists = list(db.d_list.aggregate([
        {'$match':{'mv_id':data}},
        {'$group':{'_id':{"size":{"_id":"$size"},
                         "hauju":{"_id":"$hauju"}},
                         "total":{"$sum":"$bundle"}}}
]))

    for mv_list in mv_lists:
        mv_list["_id"] = str(mv_list['_id'])
        # mv_list['bundle'] = int(mv_list['bundle'])
        # mv_list['mt']=float(mv_list['mt'])

    return jsonify({"msg":mv_lists})


 

from main import *
from flask import Blueprint
from bson.objectid import ObjectId

bp = Blueprint("freight", __name__, url_prefix='/freight')

@bp.route("/")
def freight():
    d_lists = list(db.mv.find({"cago_name": "철근"}))
    return render_template("freight.html",d_lists=d_lists,title="철근상세")

@bp.route('/d_bar_lists',methods=['GET'])
def d_bar_lists():
    data = request.args.get('data')
    d_details = list(db.d_list.find({'mv_id':data}).sort({"number": -1}))
    for d_detail in d_details:
        d_detail["_id"] = str(d_detail['_id'])
    return jsonify({"result": d_details})

@bp.route('/d_bar_input',methods=['POST'])
def d_bar_input():
    list_id_receive = request.form["list_id_give"]
    number_receive = int(request.form["number_give"])
    tc_no_receive = request.form["tc_no_give"]
    bundle_receive = int(request.form["bundle_give"])
    offer_receive = request.form["offer_give"]
    gangjung_receive = request.form["gangjung_give"]
    size_receive = request.form["size_give"]
    hauju_receive = request.form["hauju_give"]
    bundle_mt_recevive = float(request.form['bundle_mt_give'])
    doc ={
        "list_id":list_id_receive,
        "number":number_receive,
        "tc_no":tc_no_receive,
        "bundle":bundle_receive,
        "offer":offer_receive,
        "gangjung":gangjung_receive,
        "size":size_receive,
        "hauju":hauju_receive,
        "bundle_mt":bundle_mt_recevive
    }
    db.d_input.insert_one(doc)

    return jsonify({"msg":"저장완료"})

@bp.route('/d_list_input_list')
def d_list_input_list():
    data = request.args.get('list')
    input_lists = list(db.d_input.find({'list_id':data}))
    for input_list in input_lists:
        input_list["_id"] = str(input_list['_id'])
    return jsonify({"result1":input_lists})

@bp.route('/d_bar_modify',methods=['POST'])
def d_bar_modify():
    id_receive = request.form["id_give"]
    number_receive = int(request.form["number_give"])
    tc_no_receive = request.form["tc_no_give"]
    bundle_receive = int(request.form["bundle_give"])
    hauju_receive = request.form["hauju_give"]
    mt_receive = float(request.form["mt_give"])
    gangjung_receive = request.form["gangjung_give"]
    offer_receive = request.form["offer_give"]
    size_receive = request.form["size_give"]
    id_receive = ObjectId(id_receive)
    print(hauju_receive)
    db.d_input.update_one({'_id':id_receive},{'$set':{
                            "number":number_receive,
                            "to_no":tc_no_receive,
                            "bundle":bundle_receive,
                            "hauju":hauju_receive,
                            "mt":mt_receive,
                            "gangjung":gangjung_receive,
                            "offer":offer_receive,
                            "size":size_receive,
                            }})

    return jsonify({"msg":"수정완료"})

@bp.route("/d_bar_delete",methods=["POST"])
def d_bar_delete():
    id_receive = request.form["id_give"]
    id_receive = ObjectId(id_receive)
    db.d_input.delete_one({'_id':id_receive})

    return jsonify({"msg":"삭제완료"})

@bp.route('/d_bar_sum',methods=['GET'])
def d_bar_sum():
    data = request.args.get('data')
    mv_lists = list(db.d_list.aggregate([
        {'$match':{'mv_id':data}},
        {'$group':{'_id':{"size":{"_id":"$size"},
                         "hauju":{"_id":"$hauju"},
                         "offer":{"_id":"$offer"},
                         "gangjung":{"_id":"$gangjung"}},

                         "total":{"$sum":"$bundle"}}}
]))

    for mv_list in mv_lists:
        mv_list["_id"] = str(mv_list['_id'])
        # mv_list['bundle'] = int(mv_list['bundle'])
        # mv_list['mt']=float(mv_list['mt'])

    return jsonify({"msg":mv_lists})


 

@bp.route('/d_bar_sum',methods=['GET'])
def d_bar_sum():
    data = request.args.get('data')
    mv_lists = list(db.d_list.aggregate([
        {'$match':{'mv_id':data}},
        {'$group':{'_id':{"size"::"$size"},
                         "hauju":"$hauju"},
                         "offer":"$offer"},
                         "gangjung":"$gangjung"}},

 

                         "total":{"$sum":"$bundle"}}}

 

]))

 

    return jsonify({"msg":mv_lists})