# -*- 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}**-**已处理** >提交时间:{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 {}