修改获取产量相关接口
This commit is contained in:
@@ -377,7 +377,11 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
line_list_obj = request.env['sf.production.line'].sudo().search([('name', 'ilike', 'CNC')])
|
line_list_obj = request.env['sf.production.line'].sudo().search([('name', 'ilike', 'CNC')])
|
||||||
line_list = list(map(lambda x: x.name, line_list_obj))
|
line_list = list(map(lambda x: x.name, line_list_obj))
|
||||||
# print('line_list: %s' % line_list)
|
# print('line_list: %s' % line_list)
|
||||||
res['LineList'] = line_list
|
res['LineList'] = ['业绩总览']
|
||||||
|
res['LineList'] += line_list
|
||||||
|
res['LineList'].append('人工线下加工中心')
|
||||||
|
# 增加“业绩总览”与“人工线下加工中心”
|
||||||
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
|
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
|
||||||
@@ -401,37 +405,57 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
plan_obj = request.env['sf.production.plan'].sudo()
|
plan_obj = request.env['sf.production.plan'].sudo()
|
||||||
production_obj = request.env['mrp.production'].sudo()
|
# production_obj = request.env['mrp.production'].sudo()
|
||||||
work_order_obj = request.env['mrp.workorder'].sudo()
|
work_order_obj = request.env['mrp.workorder'].sudo()
|
||||||
line_list = ast.literal_eval(kw['line_list'])
|
line_list = ast.literal_eval(kw['line_list'])
|
||||||
|
|
||||||
|
line_list_obj = request.env['sf.production.line'].sudo().search([('name', 'ilike', 'CNC')])
|
||||||
|
cnc_line_list = list(map(lambda x: x.name, line_list_obj))
|
||||||
# print('line_list: %s' % line_list)
|
# print('line_list: %s' % line_list)
|
||||||
for line in line_list:
|
for line in line_list:
|
||||||
|
|
||||||
|
if line == '业绩总览':
|
||||||
|
work_order_domain = [('routing_type', 'in', ['人工线下加工', 'CNC加工'])]
|
||||||
|
plan_domain = []
|
||||||
|
quality_check_domain = [('production_line_id.name', 'in', cnc_line_list + ['人工线下加工中心'])]
|
||||||
|
# production_domain = []
|
||||||
|
elif line == '人工线下加工中心':
|
||||||
|
work_order_domain = [('routing_type', '=', '人工线下加工')]
|
||||||
|
plan_domain = [('production_type', '=', '人工线下加工')]
|
||||||
|
quality_check_domain = [('production_line_id.name', '=', line)]
|
||||||
|
# production_domain = []
|
||||||
|
else:
|
||||||
|
work_order_domain = [
|
||||||
|
('production_line_id.name', '=', line),
|
||||||
|
('routing_type', '=', 'CNC加工')
|
||||||
|
]
|
||||||
|
plan_domain = [('production_line_id.name', '=', line)]
|
||||||
|
quality_check_domain = [('operation_id.name', '=', 'CNC加工')]
|
||||||
|
# production_domain = []
|
||||||
# # 工单计划量
|
# # 工单计划量
|
||||||
# plan_data_total_counts = production_obj.search_count(
|
# plan_data_total_counts = production_obj.search_count(
|
||||||
# [('production_line_id.name', '=', line), ('state', 'not in', ['cancel']),
|
# [('production_line_id.name', '=', line), ('state', 'not in', ['cancel']),
|
||||||
# ('active', '=', True)])
|
# ('active', '=', True)])
|
||||||
|
|
||||||
# 工单计划量切换为CNC工单
|
# 工单计划量切换为CNC工单
|
||||||
plan_data_total_counts = work_order_obj.search_count(
|
plan_data_total_counts = work_order_obj.search_count(work_order_domain + [
|
||||||
[('production_line_id.name', '=', line), ('id', '!=', 8061),
|
('id', '!=', 8061),
|
||||||
('state', 'in', ['ready', 'progress', 'done']), ('routing_type', '=', 'CNC加工')])
|
('state', 'in', ['ready', 'progress', 'done'])
|
||||||
|
])
|
||||||
|
|
||||||
# # 工单完成量
|
# # 工单完成量
|
||||||
# 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(
|
plan_data_finish_counts = work_order_obj.search_count(work_order_domain + [
|
||||||
[('production_line_id.name', '=', line),
|
('state', 'in', ['done'])
|
||||||
('state', 'in', ['done']), ('routing_type', '=', 'CNC加工')])
|
])
|
||||||
|
|
||||||
# 超期完成量
|
# 超期完成量
|
||||||
# 搜索所有已经完成的工单
|
# 搜索所有已经完成的工单
|
||||||
plan_data_overtime = work_order_obj.search([
|
plan_data_overtime = work_order_obj.search(work_order_domain + [
|
||||||
('production_line_id.name', '=', line),
|
('state', 'in', ['done'])
|
||||||
('state', 'in', ['done']),
|
|
||||||
('routing_type', '=', 'CNC加工')
|
|
||||||
])
|
])
|
||||||
|
|
||||||
# 使用 filtered 进行字段比较
|
# 使用 filtered 进行字段比较
|
||||||
@@ -443,24 +467,21 @@ 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 = plan_obj.search([
|
plan_data = plan_obj.search(plan_domain)
|
||||||
('production_line_id.name', '=', line),
|
|
||||||
])
|
|
||||||
|
|
||||||
# 过滤出那些检测结果状态为 '返工' 或 '报废' 的记录
|
# 过滤出那些检测结果状态为 '返工' 或 '报废' 的记录
|
||||||
# faulty_plans = plan_data.filtered(lambda p: any(
|
# faulty_plans = plan_data.filtered(lambda p: any(
|
||||||
# result.test_results in ['返工', '报废'] for result in p.production_id.detection_result_ids
|
# result.test_results in ['返工', '报废'] for result in p.production_id.detection_result_ids
|
||||||
# ))
|
# ))
|
||||||
|
|
||||||
faulty_plans = request.env['quality.check'].sudo().search([
|
faulty_plans = request.env['quality.check'].sudo().search(quality_check_domain + [
|
||||||
('operation_id.name', '=', 'CNC加工'),
|
|
||||||
('quality_state', 'in', ['fail'])
|
('quality_state', 'in', ['fail'])
|
||||||
])
|
])
|
||||||
|
|
||||||
# 查找制造订单取消与归档的数量
|
# 查找制造订单取消与归档的数量
|
||||||
cancel_order_count = production_obj.search_count(
|
# cancel_order_count = production_obj.search_count(
|
||||||
[('production_line_id.name', '=', line), ('state', 'in', ['cancel']),
|
# [('production_line_id.name', '=', line), ('state', 'in', ['cancel']),
|
||||||
('active', '=', False)])
|
# ('active', '=', False)])
|
||||||
|
|
||||||
# 计算符合条件的记录数量
|
# 计算符合条件的记录数量
|
||||||
# plan_data_fault_counts = len(faulty_plans) + cancel_order_count
|
# plan_data_fault_counts = len(faulty_plans) + cancel_order_count
|
||||||
@@ -468,8 +489,9 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
|
|
||||||
# 工单返工数量
|
# 工单返工数量
|
||||||
|
|
||||||
plan_data_rework_counts = plan_obj.search_count(
|
plan_data_rework_counts = plan_obj.search_count(plan_domain + [
|
||||||
[('production_line_id.name', '=', line), ('production_id.state', 'in', ['rework'])])
|
('production_id.state', 'in', ['rework'])
|
||||||
|
])
|
||||||
|
|
||||||
# 工单完成率
|
# 工单完成率
|
||||||
finishe_rate = round(
|
finishe_rate = round(
|
||||||
@@ -479,8 +501,9 @@ class Sf_Dashboard_Connect(http.Controller):
|
|||||||
plan_data_progress_deviation = plan_data_total_counts - plan_data_finish_counts - plan_data_fault_counts
|
plan_data_progress_deviation = plan_data_total_counts - plan_data_finish_counts - plan_data_fault_counts
|
||||||
|
|
||||||
# 完成记录
|
# 完成记录
|
||||||
plan_data_finish_orders = plan_obj.search(
|
plan_data_finish_orders = plan_obj.search(plan_domain + [
|
||||||
[('production_line_id.name', '=', line), ('state', 'in', ['finished'])])
|
('state', 'in', ['finished'])
|
||||||
|
])
|
||||||
|
|
||||||
# # 检测量
|
# # 检测量
|
||||||
# detection_nums = 0
|
# detection_nums = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user