(no commit message provided)

Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
dxc
2026-02-09 15:19:19 +08:00
parent 40abb53721
commit b61072eea0
4 changed files with 173 additions and 8 deletions

View File

@ -1,5 +1,6 @@
from flask import Blueprint, request, jsonify, current_app
from app.services.bom_service import BomService
from app.models.base import MaterialBase
from flask_jwt_extended import jwt_required
bom_bp = Blueprint('bom', __name__)
@ -35,3 +36,19 @@ def save_bom():
except Exception as e:
current_app.logger.error(f'保存BOM失败: {str(e)}')
return jsonify({'code': 500, 'msg': '内部服务器错误'}), 500
@bom_bp.route('/base/list', methods=['GET'])
@jwt_required()
def get_material_base_list():
"""获取所有基础物料列表,用于前端下拉框"""
try:
materials = MaterialBase.query.filter_by(is_enabled=True).order_by(MaterialBase.id.desc()).all()
data = [item.to_dict() for item in materials]
return jsonify({
'code': 200,
'msg': 'success',
'data': data
})
except Exception as e:
current_app.logger.error(f'获取基础物料列表失败: {str(e)}')
return jsonify({'code': 500, 'msg': '内部服务器错误'}), 500

View File

@ -9,7 +9,7 @@ class BomService:
def create_or_update_bom(parent_id, child_list):
"""
保存/更新父件的BOM子件关系
child_list: [{"child_id": int, "dosage": float, "remark": str}, ...]
child_list: [{"child_id": int, "dosage": float, "loss_rate": float, "remark": str}, ...]
"""
# 删除该父件原有的BOM记录
BomTable.query.filter_by(parent_id=parent_id).delete()
@ -19,6 +19,7 @@ class BomService:
parent_id=parent_id,
child_id=item['child_id'],
dosage=item.get('dosage', 0),
loss_rate=item.get('loss_rate', 0),
remark=item.get('remark', '')
)
db.session.add(bom)