@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user