diff --git a/sf_message/__init__.py b/sf_message/__init__.py
new file mode 100644
index 00000000..9a7e03ed
--- /dev/null
+++ b/sf_message/__init__.py
@@ -0,0 +1 @@
+from . import models
\ No newline at end of file
diff --git a/sf_message/__manifest__.py b/sf_message/__manifest__.py
new file mode 100644
index 00000000..3a0f37d8
--- /dev/null
+++ b/sf_message/__manifest__.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+{
+ 'name': '机企猫智能工厂 消息提醒',
+ 'version': '1.0',
+ 'summary': '智能工厂消息提醒模块',
+ 'sequence': 1,
+ 'description': """
+
+ """,
+ 'category': 'sf',
+ 'website': 'https://www.sf.jikimo.com',
+ 'depends': ['base', 'sf_base'],
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'views/sf_message_template_view.xml',
+ ],
+ 'test': [
+ ],
+ 'license': 'LGPL-3',
+ 'installable': True,
+ 'auto_install': False,
+ 'application': False,
+}
diff --git a/sf_message/models/__init__.py b/sf_message/models/__init__.py
new file mode 100644
index 00000000..ec5b1c2f
--- /dev/null
+++ b/sf_message/models/__init__.py
@@ -0,0 +1 @@
+from . import sf_message_template
diff --git a/sf_message/models/sf_message_template.py b/sf_message/models/sf_message_template.py
new file mode 100644
index 00000000..4d89cc2a
--- /dev/null
+++ b/sf_message/models/sf_message_template.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api
+
+
+class SfMessageTemplate(models.Model):
+ _name = "sf.message.template"
+ _description = u'消息模板'
+
+ name = fields.Char(string=u"名称", required=True)
+ type = fields.Selection([
+ ('待接单', '待接单'),
+ ('待排程', '待排程'),
+ ('坯料采购', '坯料采购'),
+ ('坯料发料', '坯料发料'),
+ ('待编程', '待编程'),
+ ('调拨入库', '调拨入库'),
+ ('功能刀具组装', '功能刀具组装'),
+ ('功能刀具寿命到期', '功能刀具寿命到期'),
+ ('程序用刀计划异常', '程序用刀计划异常'),
+ ('工单无CNC程序', '工单无CNC程序'),
+ ('生产线无功能刀具', '生产线无功能刀具'),
+ ('工单无定位数据', '工单无定位数据'),
+ ('工单FTP无文件', '工单FTP无文件'),
+ ('工单加工失败', '工单加工失败'),
+ ('设备故障及异常', '设备故障及异常'),
+ ('工单逾期预警', '工单逾期预警'),
+ ('工单已逾期', '工单已逾期'),
+ ('销售订单逾期', '销售订单逾期'),
+ ('销售订单已逾期', '销售订单已逾期'),
+ ('待质量判定', '待质量判定'),
+ ('生产完工待入库', '生产完工待入库'),
+ ('订单发货', '订单发货')
+ ], string='类型', required=True)
+ description = fields.Char(string=u"描述")
+ content = fields.Html(string=u"内容", render_engine='qweb', translate=True, prefetch=True, sanitize=False)
+ msgtype = fields.Selection(
+ [('text', u'文字'), ('markdown', u'Markdown')], u'消息类型',
+ required=True, default='markdown')
+ notification_department_id = fields.Many2one('hr.department', u'通知部门', required=True)
+ notification_employee_ids = fields.Many2many('hr.employee', string=u'员工',
+ domain="[('department_id', '=',notification_department_id)]",
+ required=True)
+ active = fields.Boolean(string=u"是否有效", default=True)
+
+ @api.onchange('notification_department_id')
+ def _clear_employee_ids(self):
+ if self.notification_department_id:
+ self.notification_employee_ids = False
diff --git a/sf_message/security/group_security.xml b/sf_message/security/group_security.xml
new file mode 100644
index 00000000..fdbc3ae5
--- /dev/null
+++ b/sf_message/security/group_security.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_message/security/ir.model.access.csv b/sf_message/security/ir.model.access.csv
new file mode 100644
index 00000000..dbb2d6af
--- /dev/null
+++ b/sf_message/security/ir.model.access.csv
@@ -0,0 +1,15 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_sf_message_template_group_sale_salemanager,sf_message_template,model_sf_message_template,sf_base.group_sale_salemanager,1,1,1,0
+access_sf_message_template_group_purchase,sf_message_template,model_sf_message_template,sf_base.group_purchase,1,1,1,0
+access_sf_message_template_group_sf_stock_user,sf_message_template,model_sf_message_template,sf_base.group_sf_stock_user,1,1,1,0
+access_sf_message_template_group_sf_order_user,sf_message_template,model_sf_message_template,sf_base.group_sf_order_user,1,1,1,0
+access_sf_message_template_group_sf_tool_user,sf_message_template,model_sf_message_template,sf_base.group_sf_tool_user,1,1,1,0
+
+
+
+
+
+
+
+
+
diff --git a/sf_message/views/sf_message_template_view.xml b/sf_message/views/sf_message_template_view.xml
new file mode 100644
index 00000000..ac412589
--- /dev/null
+++ b/sf_message/views/sf_message_template_view.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+ sf.message.template.view.form
+ sf.message.template
+
+
+
+
+
+
+ sf.message.template.view.tree
+ sf.message.template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sf.message.template.search.view
+ sf.message.template
+
+
+
+
+
+
+
+
+
+
+
+ 消息模板
+ sf.message.template
+ tree,form
+
+
+
+
+
+
+
\ No newline at end of file