调整数据获取逻辑
This commit is contained in:
@@ -438,20 +438,24 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
# ('active', '=', True)])
|
# ('active', '=', True)])
|
||||||
|
|
||||||
# 工单计划量切换为CNC工单
|
# 工单计划量切换为CNC工单
|
||||||
plan_data_total_counts = work_order_obj.search_count(work_order_domain + [
|
plan_data_total = work_order_obj.search(work_order_domain + [
|
||||||
('id', '!=', 8061),
|
('id', '!=', 8061),
|
||||||
('state', 'in', ['ready', 'progress', 'done'])
|
('state', 'in', ['ready', 'progress', 'done'])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
plan_data_total_counts = sum(plan_data_total.mapped('qty_produced'))
|
||||||
|
|
||||||
# # 工单完成量
|
# # 工单完成量
|
||||||
# plan_data_finish_counts = plan_obj.search_count(
|
# plan_data_finish_counts = plan_obj.search_count(
|
||||||
# [('production_line_id.name', '=', line), ('state', 'in', ['finished'])])
|
# [('production_line_id.name', '=', line), ('state', 'in', ['finished'])])
|
||||||
|
|
||||||
# 工单完成量切换为CNC工单
|
# 工单完成量切换为CNC工单
|
||||||
plan_data_finish_counts = work_order_obj.search_count(work_order_domain + [
|
plan_data_finish = work_order_obj.search(work_order_domain + [
|
||||||
('state', 'in', ['done'])
|
('state', 'in', ['done'])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
plan_data_finish_counts = sum(plan_data_finish.mapped('qty_produced'))
|
||||||
|
|
||||||
# 超期完成量
|
# 超期完成量
|
||||||
# 搜索所有已经完成的工单
|
# 搜索所有已经完成的工单
|
||||||
plan_data_overtime = work_order_obj.search(work_order_domain + [
|
plan_data_overtime = work_order_obj.search(work_order_domain + [
|
||||||
@@ -464,7 +468,8 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# 获取数量
|
# 获取数量
|
||||||
plan_data_overtime_counts = len(plan_data_overtime_counts)
|
# plan_data_overtime_counts = len(plan_data_overtime_counts)
|
||||||
|
plan_data_overtime_counts = sum(plan_data_overtime_counts.mapped('qty_produced'))
|
||||||
|
|
||||||
# 查找符合条件的生产计划记录
|
# 查找符合条件的生产计划记录
|
||||||
plan_data = plan_obj.search(plan_domain)
|
plan_data = plan_obj.search(plan_domain)
|
||||||
@@ -485,7 +490,8 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
|
|
||||||
# 计算符合条件的记录数量
|
# 计算符合条件的记录数量
|
||||||
# plan_data_fault_counts = len(faulty_plans) + cancel_order_count
|
# plan_data_fault_counts = len(faulty_plans) + cancel_order_count
|
||||||
plan_data_fault_counts = len(faulty_plans)
|
# plan_data_fault_counts = len(faulty_plans)
|
||||||
|
plan_data_fault_counts = sum(faulty_plans.workorder_id.mapped('qty_produced'))
|
||||||
|
|
||||||
# 工单返工数量
|
# 工单返工数量
|
||||||
|
|
||||||
@@ -631,11 +637,22 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
date_list.append(current_date)
|
date_list.append(current_date)
|
||||||
current_date += timedelta(days=1)
|
current_date += timedelta(days=1)
|
||||||
return date_list
|
return date_list
|
||||||
|
|
||||||
|
|
||||||
for line in line_list:
|
for line in line_list:
|
||||||
date_field_name = 'date_finished' # 替换为你模型中的实际字段名
|
date_field_name = 'date_finished' # 替换为你模型中的实际字段名
|
||||||
order_counts = []
|
order_counts = []
|
||||||
|
|
||||||
|
if line == '业绩总览':
|
||||||
|
work_order_domain = [('routing_type', 'in', ['人工线下加工', 'CNC加工'])]
|
||||||
|
elif line == '人工线下加工中心':
|
||||||
|
work_order_domain = [('routing_type', '=', '人工线下加工')]
|
||||||
|
else:
|
||||||
|
work_order_domain = [
|
||||||
|
('production_line_id.name', '=', line),
|
||||||
|
('routing_type', '=', 'CNC加工')
|
||||||
|
]
|
||||||
|
|
||||||
if time_unit == 'hour':
|
if time_unit == 'hour':
|
||||||
time_intervals = get_time_intervals(begin_time, end_time, time_unit)
|
time_intervals = get_time_intervals(begin_time, end_time, time_unit)
|
||||||
print('============================= %s' % time_intervals)
|
print('============================= %s' % time_intervals)
|
||||||
@@ -652,9 +669,7 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
# (date_field_name, '<=', end_time.strftime('%Y-%m-%d %H:%M:%S')) # 包括结束时间
|
# (date_field_name, '<=', end_time.strftime('%Y-%m-%d %H:%M:%S')) # 包括结束时间
|
||||||
# ])
|
# ])
|
||||||
|
|
||||||
orders = request.env['mrp.workorder'].sudo().search([
|
orders = request.env['mrp.workorder'].sudo().search(work_order_domain + [
|
||||||
('routing_type', '=', 'CNC加工'), # 将第一个条件合并进来
|
|
||||||
('production_line_id.name', '=', line),
|
|
||||||
('state', 'in', ['done']),
|
('state', 'in', ['done']),
|
||||||
(date_field_name, '>=', start_time.strftime('%Y-%m-%d %H:%M:%S')),
|
(date_field_name, '>=', start_time.strftime('%Y-%m-%d %H:%M:%S')),
|
||||||
(date_field_name, '<=', end_time.strftime('%Y-%m-%d %H:%M:%S'))
|
(date_field_name, '<=', end_time.strftime('%Y-%m-%d %H:%M:%S'))
|
||||||
@@ -674,25 +689,22 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
|
|
||||||
for date in date_list:
|
for date in date_list:
|
||||||
next_day = date + timedelta(days=1)
|
next_day = date + timedelta(days=1)
|
||||||
orders = request.env['mrp.workorder'].sudo().search(
|
orders = request.env['mrp.workorder'].sudo().search(work_order_domain + [
|
||||||
[('production_id.production_line_id.name', '=', line), ('state', 'in', ['done']),
|
('state', 'in', ['done']),
|
||||||
('routing_type', '=', 'CNC加工'),
|
(date_field_name, '>=', date.strftime('%Y-%m-%d 00:00:00')),
|
||||||
(date_field_name, '>=', date.strftime('%Y-%m-%d 00:00:00')),
|
(date_field_name, '<', next_day.strftime('%Y-%m-%d 00:00:00'))
|
||||||
(date_field_name, '<', next_day.strftime('%Y-%m-%d 00:00:00'))
|
])
|
||||||
])
|
|
||||||
|
|
||||||
rework_orders = request.env['mrp.workorder'].sudo().search(
|
rework_orders = request.env['mrp.workorder'].sudo().search(work_order_domain + [
|
||||||
[('production_id.production_line_id.name', '=', line), ('state', 'in', ['rework']),
|
('state', 'in', ['rework']),
|
||||||
('routing_type', '=', 'CNC加工'),
|
(date_field_name, '>=', date.strftime('%Y-%m-%d 00:00:00')),
|
||||||
(date_field_name, '>=', date.strftime('%Y-%m-%d 00:00:00')),
|
(date_field_name, '<', next_day.strftime('%Y-%m-%d 00:00:00'))
|
||||||
(date_field_name, '<', next_day.strftime('%Y-%m-%d 00:00:00'))
|
])
|
||||||
])
|
not_passed_orders = request.env['mrp.workorder'].sudo().search(work_order_domain + [
|
||||||
not_passed_orders = request.env['mrp.workorder'].sudo().search(
|
('state', 'in', ['scrap', 'cancel']),
|
||||||
[('production_id.production_line_id.name', '=', line), ('state', 'in', ['scrap', 'cancel']),
|
(date_field_name, '>=', date.strftime('%Y-%m-%d 00:00:00')),
|
||||||
('routing_type', '=', 'CNC加工'),
|
(date_field_name, '<', next_day.strftime('%Y-%m-%d 00:00:00'))
|
||||||
(date_field_name, '>=', date.strftime('%Y-%m-%d 00:00:00')),
|
])
|
||||||
(date_field_name, '<', next_day.strftime('%Y-%m-%d 00:00:00'))
|
|
||||||
])
|
|
||||||
order_counts.append({
|
order_counts.append({
|
||||||
'date': date.strftime('%Y-%m-%d'),
|
'date': date.strftime('%Y-%m-%d'),
|
||||||
'order_count': len(orders),
|
'order_count': len(orders),
|
||||||
|
|||||||
Reference in New Issue
Block a user