Merge pull request !3353 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-06-16 01:32:41 +00:00
committed by Gitee
5 changed files with 13 additions and 171 deletions
+6 -12
View File
@@ -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": "添加成功"}
+1 -12
View File
@@ -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',