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})