!10096 添加功能

Merge pull request !10096 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2026-03-23 09:27:04 +00:00
committed by Gitee
3 changed files with 33 additions and 6 deletions
@@ -64,11 +64,17 @@ class PropertyMeterArchives(models.Model):
def meter_tasks(self):
current_date = fields.Date.today()
current_date = current_date.replace(day=15)
month_start = current_date.replace(day=1)
if current_date.month == 12:
month_end = current_date.replace(year=current_date.year + 1, month=1, day=1) - timedelta(days=1)
else:
month_end = current_date.replace(month=current_date.month + 1, day=1) - timedelta(days=1)
meter_archives = self.search([])
for archive in meter_archives:
existing_lines = self.env["meter.archives.line"].search([
("archives_id", "=", archive.id),
("meter_date", "=", current_date),
("meter_date", ">=", month_start),
("meter_date", "<=", month_end),
], limit=1)
if not existing_lines:
self.env["meter.archives.line"].create({
@@ -77,7 +83,7 @@ class PropertyMeterArchives(models.Model):
"meter_date": current_date,
"state": "unreading",
"archives_state": "use",
"unit": archive.unit or 0.0,
"unit": archive.unit or 0.0,
"gauge_magnification": archive.gauge_magnification or 1,
"line_loss": 0.02,
"type": archive.type,
@@ -65,11 +65,17 @@ class PropertyMeterWater(models.Model):
def water_task(self):
current_date = fields.Date.today()
current_date = current_date.replace(day=15)
month_start = current_date.replace(day=1)
if current_date.month == 12:
month_end = current_date.replace(year=current_date.year + 1, month=1, day=1) - timedelta(days=1)
else:
month_end = current_date.replace(month=current_date.month + 1, day=1) - timedelta(days=1)
water_archives = self.search([])
for water in water_archives:
existing_lines = self.env["meter.water.line"].search([
("water_id", "=", water.id),
("meter_date", "=", current_date),
("meter_date", ">=", month_start),
("meter_date", "<=", month_end),
], limit=1)
if not existing_lines:
self.env["meter.water.line"].create({
@@ -12,6 +12,14 @@ class ElectricWaterWizard(models.TransientModel):
water_ids = fields.Many2many('property.meter.water', string='水表库')
def confirm(self):
push_date = self.push_date
# 当月第一天
month_start = push_date.replace(day=1)
# 当月最后一天(处理12月边界)
if push_date.month == 12:
month_end = push_date.replace(year=push_date.year + 1, month=1, day=1) - datetime.timedelta(days=1)
else:
month_end = push_date.replace(month=push_date.month + 1, day=1) - datetime.timedelta(days=1)
# 处理电表推送
if self.meter_ids:
is_acc = False
@@ -51,8 +59,11 @@ class ElectricWaterWizard(models.TransientModel):
# 查找上个月的记录,上次用量,上次读数,上次抄表日期
last_month_line = meter.line_ids.search([('meter_date', '<', self.push_date)]).sorted('meter_date')[-1]
# 如果当前数据不存在,则新建任务,按照天的纬度
self_month_line = meter.line_ids.search(
[('meter_date', '=', self.push_date), ('archives_id', '=', meter.id)])
self_month_line = meter.line_ids.search([
('meter_date', '>=', month_start),
('meter_date', '<=', month_end),
('archives_id', '=', meter.id)
])
if not self_month_line:
meter.line_ids.create({
'archives_id': meter.id,
@@ -113,7 +124,11 @@ class ElectricWaterWizard(models.TransientModel):
# 查找上个月的记录,上次用量,上次读数,上次抄表日期
last_month_line = water.line_ids.search([('meter_date', '<', self.push_date)]).sorted('meter_date')[-1]
# 如果当前数据不存在,则新建任务,按照天的纬度
self_month_line = water.line_ids.search([('meter_date', '=', self.push_date), ('water_id', '=', water.id)])
self_month_line = water.line_ids.search([
('meter_date', '>=', month_start),
('meter_date', '<=', month_end),
('water_id', '=', water.id)
])
if not self_month_line:
water.line_ids.create({
'water_id': water.id,