修复产品需规保存与表格布局问题
This commit is contained in:
@@ -88,6 +88,87 @@ from app.services.system_permissions import list_employee_options
|
||||
|
||||
router = APIRouter(dependencies=[Depends(require_authenticated_user)])
|
||||
|
||||
DEFAULT_PROCESS_CODE = "PROC-DEFAULT"
|
||||
DEFAULT_PROCESS_NAME = "系统默认工序"
|
||||
DEFAULT_WORK_CENTER_CODE = "WC-DEFAULT"
|
||||
DEFAULT_WORK_CENTER_NAME = "系统默认工作中心"
|
||||
DEFAULT_ORG_ROOT_CODE = "ORG_ROOT"
|
||||
|
||||
|
||||
def _default_operation_department(db: Session) -> Department:
|
||||
department = db.scalar(select(Department).where(Department.dept_code == DEFAULT_ORG_ROOT_CODE).limit(1))
|
||||
if department:
|
||||
return department
|
||||
|
||||
department = db.scalar(select(Department).order_by(Department.id.asc()).limit(1))
|
||||
if department:
|
||||
return department
|
||||
|
||||
now = datetime.now()
|
||||
department = Department(
|
||||
dept_code=DEFAULT_ORG_ROOT_CODE,
|
||||
dept_name="总公司",
|
||||
parent_id=None,
|
||||
org_node_type="COMPANY",
|
||||
dept_type="ADMIN",
|
||||
manager_name=None,
|
||||
manager_employee_id=None,
|
||||
status="ACTIVE",
|
||||
sort_no=0,
|
||||
remark="系统自动创建的默认组织根节点",
|
||||
created_at=now,
|
||||
updated_at=now,
|
||||
)
|
||||
db.add(department)
|
||||
db.flush()
|
||||
return department
|
||||
|
||||
|
||||
def _ensure_default_operation_foundation(db: Session) -> None:
|
||||
changed = False
|
||||
now = datetime.now()
|
||||
process_exists = db.scalar(select(Process.id).limit(1))
|
||||
if not process_exists:
|
||||
db.add(
|
||||
Process(
|
||||
process_code=DEFAULT_PROCESS_CODE,
|
||||
process_name=DEFAULT_PROCESS_NAME,
|
||||
process_type="INTERNAL",
|
||||
is_report_required=1,
|
||||
is_quality_gate=0,
|
||||
status="ACTIVE",
|
||||
remark="系统自动创建,用于产品需规快速建档时生成默认工艺路线",
|
||||
created_at=now,
|
||||
updated_at=now,
|
||||
)
|
||||
)
|
||||
changed = True
|
||||
|
||||
work_center_exists = db.scalar(select(WorkCenter.id).limit(1))
|
||||
if not work_center_exists:
|
||||
department = _default_operation_department(db)
|
||||
db.add(
|
||||
WorkCenter(
|
||||
center_code=DEFAULT_WORK_CENTER_CODE,
|
||||
center_name=DEFAULT_WORK_CENTER_NAME,
|
||||
dept_id=department.id,
|
||||
center_type="INTERNAL",
|
||||
shift_pattern="默认班次",
|
||||
capacity_hours_per_day=Decimal("8.00"),
|
||||
status="ACTIVE",
|
||||
remark="系统自动创建,用于产品需规快速建档时生成默认工艺路线",
|
||||
created_at=now,
|
||||
updated_at=now,
|
||||
)
|
||||
)
|
||||
changed = True
|
||||
|
||||
if changed:
|
||||
try:
|
||||
db.commit()
|
||||
except IntegrityError:
|
||||
db.rollback()
|
||||
|
||||
MATERIAL_EXCEL_HEADERS = ["原材料编码", "原材料名称", "材质", "规格", "废料单价", "性能要求", "状态"]
|
||||
MATERIAL_EXCEL_REQUIRED_HEADERS = ["原材料名称", "材质", "规格"]
|
||||
MATERIAL_STATUS_LABELS = {
|
||||
@@ -597,6 +678,7 @@ def list_work_centers(
|
||||
limit: int = Query(default=100, ge=1, le=500),
|
||||
db: Session = Depends(get_db),
|
||||
) -> list[WorkCenterRead]:
|
||||
_ensure_default_operation_foundation(db)
|
||||
stmt = (
|
||||
select(
|
||||
WorkCenter.id.label("id"),
|
||||
@@ -766,6 +848,7 @@ def list_processes(
|
||||
limit: int = Query(default=100, ge=1, le=500),
|
||||
db: Session = Depends(get_db),
|
||||
) -> list[ProcessRead]:
|
||||
_ensure_default_operation_foundation(db)
|
||||
rows = db.execute(
|
||||
select(
|
||||
Process.id.label("process_id"),
|
||||
|
||||
Reference in New Issue
Block a user