@@ -16,12 +16,9 @@ class BusController(Controller):
|
||||
data = request.httprequest.json
|
||||
user_name = data.get('name')
|
||||
name = data.get('sn')
|
||||
# validity_period = datetime.strptime(data.get('validity_period'), '%Y-%m-%d').date()
|
||||
attendance_iot_id = request.env["attendance.iot"].search([('name', '=', name)])
|
||||
attendance_iot_id = request.env(user=SUPERUSER_ID)["attendance.iot"].search([('name', '=', name)])
|
||||
if not attendance_iot_id:
|
||||
request.env["attendance.iot"].create({
|
||||
'name': name,
|
||||
})
|
||||
request.env(user=SUPERUSER_ID)["attendance.iot"].create({'name': name,})
|
||||
employee = request.env(user=SUPERUSER_ID)["hr.employee"].search([('name', '=', user_name)])
|
||||
# 判断员工是否绑定多台设备
|
||||
if employee and attendance_iot_id not in employee.attendance_iot_ids.mapped('attendance_iot_id'):
|
||||
@@ -29,12 +26,10 @@ class BusController(Controller):
|
||||
'image_1920': data.get('photo'),
|
||||
'attendance_iot_ids': [(0, 0, {
|
||||
'employee_id': employee.id,
|
||||
'attendance_address': self.get_equipment_company(data.get('sn')),
|
||||
'attendance_address': '',
|
||||
'attendance_iot_id': attendance_iot_id.id
|
||||
})]
|
||||
})
|
||||
|
||||
|
||||
print("---------------------------------------------测试成功---------------------------------------")
|
||||
return {"Result": 0, "Msg": "添加成功"}
|
||||
|
||||
@@ -54,9 +49,8 @@ class BusController(Controller):
|
||||
request.env(user=SUPERUSER_ID)["hr.attendance.detail"].create({
|
||||
'employee_id': employee_id.id, # 员工
|
||||
'checkin_time': checkin_time, # 打卡时间
|
||||
'source': 'iot', # 打卡来源
|
||||
'attendance_iot_id': attendance_iot_id.id, # 打卡设备
|
||||
'location_title': data.get('logs')[0].get("location").get('address'), # 打卡地点
|
||||
'source': 'iot', # 打卡来源
|
||||
'attendance_iot_id': attendance_iot_id.id, # 打卡设备
|
||||
'location_title': data.get('logs')[0].get("location").get('address'), # 打卡地点
|
||||
})
|
||||
print("---------------------------------------------测试成功---------------------------------------")
|
||||
return {"Result": 0, "Msg": "添加成功"}
|
||||
|
||||
@@ -69,18 +69,8 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
string="Status",
|
||||
default=_compute_default_state,
|
||||
track_visibility="onchange",
|
||||
store = True
|
||||
store=True
|
||||
)
|
||||
# approve_state = fields.Selection(
|
||||
# [
|
||||
# ("start", "Start"),
|
||||
# ("pending", "Pending"),
|
||||
# ("end", "End"),
|
||||
# ],
|
||||
# default="start",
|
||||
# string="Approve Status",
|
||||
# compute="_compute_node_id",
|
||||
# )
|
||||
workflow_id = fields.Many2one(
|
||||
comodel_name="soong.workflow",
|
||||
string="Workflow Ref.",
|
||||
@@ -159,7 +149,6 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
employee_ids = record.sudo().env['hr.employee'].search([
|
||||
'|', ('user_role_id', 'in', button_id.users_role_group_ids.user_role_ids.ids), ('user_role_ids', 'in', button_id.users_role_group_ids.user_role_ids.ids),
|
||||
'|', ('department_id', '=', record.env.user.employee_id.department_id.id), ('department_ids', 'in', record.env.user.employee_id.department_id.id),])
|
||||
|
||||
if record.env.user.employee_id.id in employee_ids.ids:
|
||||
record.state = button_id.node_id.node_name
|
||||
return res
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
string="综合搜索"
|
||||
filter_domain="['|', '|', '|', ('name', 'ilike', self), ('code', 'ilike', self), ('text', 'ilike', self), ('workflow_id.name', 'ilike', self)]"/>
|
||||
<field name="code"/>
|
||||
<field name="done_by"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<field name="text" optional="hide"/>
|
||||
<field name="documents_ids" optional="hide"/>
|
||||
|
||||
@@ -39,7 +39,7 @@ class PropertyStatementsWizard(models.Model):
|
||||
name_account = row[1].value
|
||||
remake = row[2].value
|
||||
original_amount = row[3].value
|
||||
your_own_account = row[6]
|
||||
your_own_account = row[6].value
|
||||
cleaned_amount = original_amount.replace(',', '') # 移除逗号
|
||||
float_amount = float(cleaned_amount)
|
||||
sequence_number = row[5].value
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
from odoo.http import Controller, request, route
|
||||
from odoo import models, fields, api, http, SUPERUSER_ID, _
|
||||
from datetime import datetime
|
||||
import math
|
||||
import logging
|
||||
from geopy.distance import geodesic
|
||||
from datetime import timedelta
|
||||
import json
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
@@ -14,125 +9,6 @@ class EleWaterReading(Controller):
|
||||
"""
|
||||
水电抄表接口
|
||||
"""
|
||||
@route('/yuthon/ele/reading', methods=['POST'], type='json', auth='none', csrf=False)
|
||||
def yuthon_pro_reading(self, **kw):
|
||||
"""
|
||||
电表抄表
|
||||
:return:
|
||||
{
|
||||
'code': 编号,
|
||||
'property_id': '物业地址'
|
||||
'contract_id': '合同'
|
||||
'lessee_id': '承租方'
|
||||
'last_dosage': '上次用量',
|
||||
'current_meter': '本次用量',
|
||||
'dosage': '用量',
|
||||
'employee_list': [抄表人姓名],
|
||||
}
|
||||
"""
|
||||
ele_ids = request.env['property.electric.reading'].search([('reading_type', '=', '待抄')])
|
||||
employee_list = []
|
||||
for ele_id in ele_ids:
|
||||
code = ele_id.property_id.code
|
||||
property_id = ele_id.property_id.name
|
||||
contract_id = ele_id.contract_id.name
|
||||
lessee_id = ele_id.contract_id.lessee_id.name
|
||||
last_dosage = ele_id.last_dosage
|
||||
current_meter = ele_id.current_meter
|
||||
dosage = ele_id.dosage
|
||||
for employee_id in ele_id.employee_ids:
|
||||
employee_list.append(employee_id.name)
|
||||
employee_list = ", ".join(employee_list)
|
||||
|
||||
return_data = {
|
||||
'data': {
|
||||
'code': code,
|
||||
'property_id': property_id,
|
||||
'contract_id': contract_id,
|
||||
'lessee_id': lessee_id,
|
||||
'last_dosage': last_dosage,
|
||||
'current_meter': current_meter,
|
||||
'dosage': dosage,
|
||||
'employee_list': employee_list,
|
||||
},
|
||||
'code': '200',
|
||||
'message': 'OK',
|
||||
}
|
||||
_logger.info("-----------------测试成功----------------")
|
||||
return json.dumps(return_data)
|
||||
|
||||
@route('/yuthon/pro/dosage', methods=['POST'], type='json', auth='none', csrf=False)
|
||||
def yuthon_pro_dosage(self, **kw):
|
||||
"""
|
||||
:param kw:
|
||||
:return:
|
||||
"""
|
||||
code = kw.get('code') # 编号
|
||||
dosage = kw.get('dosage') # 用量
|
||||
water_reading = request.env['property.water.reading'].search([('code', '=', code)], limit=1)
|
||||
electric_reading = request.env['property.electric.reading'].search([('code', '=', code)], limit=1)
|
||||
if water_reading:
|
||||
water_reading.write({
|
||||
'dosage': dosage
|
||||
})
|
||||
if electric_reading:
|
||||
electric_reading.write({
|
||||
'dosage': dosage
|
||||
})
|
||||
|
||||
return_data = {
|
||||
'data': {},
|
||||
'code': '200',
|
||||
'message': 'OK',
|
||||
}
|
||||
_logger.info("-----------------测试成功----------------")
|
||||
return json.dumps(return_data)
|
||||
|
||||
@route('/yuthon/water/reading', methods=['POST'], type='json', auth='none', csrf=False)
|
||||
def yuthon_water_reading(self, **kw):
|
||||
"""
|
||||
水表抄表
|
||||
:return:
|
||||
{
|
||||
'code': 编号,
|
||||
'property_id': '物业地址'
|
||||
'contract_id': '合同'
|
||||
'lessee_id': '承租方'
|
||||
'last_dosage': '上次用量',
|
||||
'current_meter': '本次用量',
|
||||
'dosage': '用量',
|
||||
'employee_list': [抄表人姓名],
|
||||
}
|
||||
"""
|
||||
ele_ids = self.env['property.water.reading'].search([('reading_type', '=', '待抄')])
|
||||
employee_list = []
|
||||
for ele_id in ele_ids:
|
||||
code = ele_id.property_id.code
|
||||
property_id = ele_id.property_id.name
|
||||
contract_id = ele_id.contract_id.name
|
||||
lessee_id = ele_id.contract_id.lessee_id.name
|
||||
last_dosage = ele_id.last_dosage
|
||||
current_meter = ele_id.current_meter
|
||||
dosage = ele_id.dosage
|
||||
for employee_id in ele_id.employee_ids:
|
||||
employee_list.append(employee_id.name)
|
||||
employee_list = ", ".join(employee_list)
|
||||
return_data = {
|
||||
'data': {
|
||||
'code': code,
|
||||
'property_id': property_id,
|
||||
'contract_id': contract_id,
|
||||
'lessee_id': lessee_id,
|
||||
'last_dosage': last_dosage,
|
||||
'current_meter': current_meter,
|
||||
'dosage': dosage,
|
||||
'employee_list': employee_list,
|
||||
},
|
||||
'code': '200',
|
||||
'message': 'OK',
|
||||
}
|
||||
_logger.info("-----------------测试成功----------------")
|
||||
return json.dumps(return_data)
|
||||
|
||||
@route('/yuthon/meter/reading', methods=['POST'], type='json', auth='none', csrf=False)
|
||||
def yuthon_meter_reading(self, **kw):
|
||||
@@ -141,14 +17,11 @@ class EleWaterReading(Controller):
|
||||
:return:
|
||||
{
|
||||
'code': 编号,
|
||||
'property_id': '物业地址'
|
||||
'contract_id': '合同'
|
||||
'lessee_id': '承租方'
|
||||
'last_dosage': '上次用量',
|
||||
'current_meter': '本次用量',
|
||||
'dosage': '用量',
|
||||
'employee_list': [抄表人姓名],
|
||||
'meter_type': '抄表类型(电表或水表)',
|
||||
'employee_name': 姓名,
|
||||
'meter_type': '抄表类型 ('electric', '电表'), ('water', '水表'),
|
||||
}
|
||||
"""
|
||||
electric_records = request.env['property.electric.reading'].search([('reading_type', '=', '待抄')])
|
||||
@@ -156,40 +29,26 @@ class EleWaterReading(Controller):
|
||||
result_list = []
|
||||
# 处理电表记录
|
||||
for record in electric_records:
|
||||
employee_names = [emp.name for emp in record.employee_ids]
|
||||
employee_list = ", ".join(employee_names)
|
||||
|
||||
record_data = {
|
||||
'code': record.property_id.code,
|
||||
'property_id': record.property_id.name,
|
||||
'contract_id': record.contract_id.name,
|
||||
'lessee_id': record.contract_id.lessee_id.name,
|
||||
'last_dosage': record.last_dosage,
|
||||
'current_meter': record.current_meter,
|
||||
'dosage': record.dosage,
|
||||
'employee_list': employee_list,
|
||||
'employee_name': record.employee_id.name,
|
||||
'meter_type': 'electric', # 添加仪表类型
|
||||
}
|
||||
result_list.append(record_data)
|
||||
|
||||
# 处理水表记录
|
||||
for record in water_records:
|
||||
employee_names = [emp.name for emp in record.employee_ids]
|
||||
employee_list = ", ".join(employee_names)
|
||||
|
||||
record_data = {
|
||||
'code': record.property_id.code,
|
||||
'property_id': record.property_id.name,
|
||||
'contract_id': record.contract_id.name,
|
||||
'lessee_id': record.contract_id.lessee_id.name,
|
||||
'last_dosage': record.last_dosage,
|
||||
'current_meter': record.current_meter,
|
||||
'dosage': record.dosage,
|
||||
'employee_list': employee_list,
|
||||
'employee_list': record.employee_id.name,
|
||||
'meter_type': 'water',
|
||||
}
|
||||
result_list.append(record_data)
|
||||
|
||||
return_data = {
|
||||
'data': result_list,
|
||||
'code': '200',
|
||||
@@ -226,7 +85,6 @@ class EleWaterReading(Controller):
|
||||
message = f"成功更新{meter_type_name}用量: {code}"
|
||||
else:
|
||||
message = f"未找到{meter_type_name}记录: {code}"
|
||||
|
||||
return_data = {
|
||||
'data': {},
|
||||
'code': '200',
|
||||
|
||||
Reference in New Issue
Block a user