diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py
index 991b26ab..612577c2 100644
--- a/sf_manufacturing/__manifest__.py
+++ b/sf_manufacturing/__manifest__.py
@@ -24,6 +24,7 @@
'wizard/production_wizard_views.xml',
'wizard/production_technology_wizard_views.xml',
'wizard/production_technology_re_adjust_wizard_views.xml',
+ 'wizard/mrp_workorder_batch_replan_wizard_views.xml',
'views/mrp_views_menus.xml',
'views/agv_scheduling_views.xml',
'views/stock_lot_views.xml',
@@ -38,6 +39,7 @@
'views/sf_maintenance_equipment.xml',
'views/res_config_settings_views.xml',
'views/sale_order_views.xml',
+ 'views/mrp_workorder_batch_replan.xml',
],
'assets': {
diff --git a/sf_manufacturing/security/ir.model.access.csv b/sf_manufacturing/security/ir.model.access.csv
index 2880e662..f096b449 100644
--- a/sf_manufacturing/security/ir.model.access.csv
+++ b/sf_manufacturing/security/ir.model.access.csv
@@ -182,3 +182,5 @@ access_sf_manual_product_model_type_routing_sort_group_sf_mrp_user,sf_manual_pro
access_sf_manual_product_model_type_routing_sort_manager,sf_manual_product_model_type_routing_sort,model_sf_manual_product_model_type_routing_sort,sf_base.group_sf_mrp_manager,1,1,1,1
access_sf_manual_product_model_type_routing_sort_group_plan_dispatch,sf_manual_product_model_type_routing_sort_group_plan_dispatch,model_sf_manual_product_model_type_routing_sort,sf_base.group_plan_dispatch,1,0,0,0
access_sf_detection_result_manager,sf_detection_result_manager,model_sf_detection_result,,1,1,1,1
+
+access_mrp_workorder_batch_replan_wizard_group_plan_dispatch,mrp_workorder_batch_replan_wizard_group_plan_dispatch,model_mrp_workorder_batch_replan_wizard,sf_base.group_plan_dispatch,1,1,1,0
\ No newline at end of file
diff --git a/sf_manufacturing/views/mrp_workorder_batch_replan.xml b/sf_manufacturing/views/mrp_workorder_batch_replan.xml
new file mode 100644
index 00000000..a09b1a0e
--- /dev/null
+++ b/sf_manufacturing/views/mrp_workorder_batch_replan.xml
@@ -0,0 +1,17 @@
+
+
+
+ >mrp.workorder.tree.editable.inherit
+ mrp.workorder
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_manufacturing/wizard/__init__.py b/sf_manufacturing/wizard/__init__.py
index e2206a5f..89bdc09b 100644
--- a/sf_manufacturing/wizard/__init__.py
+++ b/sf_manufacturing/wizard/__init__.py
@@ -3,3 +3,4 @@ from . import rework_wizard
from . import production_wizard
from . import production_technology_wizard
from . import production_technology_re_adjust_wizard
+from . import mrp_workorder_batch_replan_wizard
diff --git a/sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard.py b/sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard.py
new file mode 100644
index 00000000..f9511040
--- /dev/null
+++ b/sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+import logging
+from datetime import datetime, timedelta
+from odoo import models, api, fields, _
+
+
+class MrpWorkorderBatchReplanWizard(models.TransientModel):
+ _name = 'mrp.workorder.batch.replan.wizard'
+ _description = '制造订单批量重新安排向导'
+
+ def _get_date_planned_start(self):
+ planned_start_date = datetime.now() + timedelta(hours=2)
+ logging.info('计划开始加工时间: %s', planned_start_date)
+ return planned_start_date
+
+ def _get_default_workorder_count(self):
+ active_ids = self.env.context.get('active_ids', [])
+ return len(active_ids)
+
+ def _get_default_workorder_type(self):
+ active_ids = self.env.context.get('active_ids', [])
+ if active_ids:
+ workorders = self.env['mrp.workorder'].browse(active_ids)
+ if workorders:
+ unique_types = set(workorders.mapped('type'))
+ return '/'.join(sorted(unique_types)) if unique_types else None
+ return None
+
+ workorder_type = fields.Char(string='工单类型', default=_get_default_workorder_type, readonly=True)
+
+ date_planned_start = fields.Datetime(string='计划开始加工时间', index=True, copy=False,
+ default=_get_date_planned_start)
+
+ workorder_count = fields.Integer(string='工单数量',
+ default=_get_default_workorder_count,
+ readonly=True)
+
+ workorder_id = fields.Many2many('mrp.workorder', string=u'工单')
+
+ def confirm(self):
+ print("ddd")
+ pass
diff --git a/sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard_views.xml b/sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard_views.xml
new file mode 100644
index 00000000..e004cd6e
--- /dev/null
+++ b/sf_manufacturing/wizard/mrp_workorder_batch_replan_wizard_views.xml
@@ -0,0 +1,32 @@
+
+
+
+ mrp.workorder.batch.replan.wizard.form.view
+ mrp.workorder.batch.replan.wizard
+
+
+
+
+
+
+
+ 重新安排
+ ir.actions.act_window
+ mrp.workorder.batch.replan.wizard
+ form
+
+ new
+ {'default_workorder_id': active_ids}
+
+
+
\ No newline at end of file