60 lines
3.3 KiB
Python
60 lines
3.3 KiB
Python
# -*- coding: utf-8 -*-
|
||
|
||
from odoo import models, fields, api
|
||
from odoo.addons.jikimo_system_order.models.constant import STATE_SELECTION
|
||
import datetime
|
||
import logging
|
||
|
||
|
||
class OrderTechnicianWizard(models.TransientModel):
|
||
_name = 'order.technician.wizard'
|
||
|
||
order_id = fields.Many2one('system.work.order', string=u'工单ID',
|
||
default=lambda self: self.env.context.get('active_id'))
|
||
# 解决人
|
||
solve_people_id = fields.Many2one('res.users', string=u'解决人', default=lambda self: self.env.user)
|
||
# 用户实际问题
|
||
users_problem = fields.Text(string=u'用户实际问题')
|
||
# 最终解决方案
|
||
solution = fields.Text(string=u'最终解决方案')
|
||
# 状态
|
||
state = fields.Selection(STATE_SELECTION, default='processed', string=u'状态')
|
||
|
||
def sure(self):
|
||
self.order_id.solve_people_id = self.solve_people_id
|
||
self.order_id.users_problem = self.users_problem
|
||
self.order_id.solution = self.solution
|
||
if self.order_id.state == 'pending':
|
||
state_remark = u'待处理 --> 已处理待评分'
|
||
# self.order_id.message_post(u'操作人:%s,操作时间:%s,状态变更过程:%s' % (
|
||
# self.env.user.name,
|
||
# (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S'), state_remark))
|
||
self.order_id.state = self.state
|
||
# 获取通知人
|
||
# objs = self.env['system.order.notice'].search([])
|
||
# user_ids = objs.notice_user_ids.filtered(lambda item: item.we_employee_id not in ['', False])
|
||
# we_employee_ids = user_ids.mapped('we_employee_id')
|
||
we_employee_ids = []
|
||
if self.order_id.initiator_id.we_employee_id:
|
||
we_employee_ids.append(self.order_id.initiator_id.we_employee_id)
|
||
print(we_employee_ids)
|
||
lost_agent_id = self.env['ir.config_parameter'].sudo().get_param('lost_agent_id')
|
||
wechat = self.env['we.config'].sudo().get_wechat(agent_id=lost_agent_id)
|
||
# agent_id, user_ids, content
|
||
content = """您提交的工单-**工单标题:{0}**-<font color=\"info\">**已处理**</font>
|
||
>提交时间:{1}
|
||
>处理反馈:{4}
|
||
>处理时间:{2}
|
||
>处理人:{3}
|
||
如有问题,请联系系统管理员!
|
||
""".format(self.order_id.title,
|
||
(self.order_id.date + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'), (datetime.datetime.now() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'), self.env.user.name or '', self.solution or '')
|
||
# wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_ids, content=content)
|
||
for we_employee_id in we_employee_ids:
|
||
try:
|
||
wechat.message.send_markdown(agent_id=lost_agent_id, user_ids=we_employee_id, content=content)
|
||
except Exception as e:
|
||
logging.error('工单处理发送消息异常%s' % str(e))
|
||
|
||
return {}
|