Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
pengyuthon
2026-03-11 10:19:42 +08:00
6 changed files with 17 additions and 36 deletions
@@ -185,7 +185,8 @@ class SoongWorkflowRecord(models.Model):
emp_to_user = {emp.id: emp.user_id.id for emp in all_employees if emp.user_id}
for record in self:
record.is_to_do = False
if record.approve_state == 'start' and set(active_employee_ids) & set(record.employee_ids.ids) and not record.reclaim_state:
all_record_emp_ids = record.employee_ids.ids + record.employee2_ids.ids
if record.approve_state == 'start' and set(active_employee_ids) & set(all_record_emp_ids) and not record.reclaim_state:
record.is_to_do = True
continue
# 原有逻辑:仅当新增条件不满足时,才执行原有log_ids/log_ids2判断
@@ -236,7 +237,7 @@ class SoongWorkflowRecord(models.Model):
active_employee_ids = current_employees.ids if current_employees else []
if not active_employee_ids:
return [('id', '=', False)]
base_domain = [('employee_ids', 'in', active_employee_ids)]
base_domain = ['|', ('employee_ids', 'in', active_employee_ids), ('employee2_ids', 'in', active_employee_ids)]
if (operator == '=' and value) or (operator == '!=' and not value):
candidate_records = self.search(base_domain)
valid_ids = []
@@ -277,7 +278,8 @@ class SoongWorkflowRecord(models.Model):
for rec in candidate_records:
# 标记满足条件1的记录
if rec.approve_state == 'start':
all_rec_emp_ids = rec.employee_ids.ids + rec.employee2_ids.ids
if rec.approve_state == 'start' and set(active_employee_ids) & set(all_rec_emp_ids) and not rec.reclaim_state:
invalid_ids.append(rec.id)
continue
if rec.res_model and rec.res_id:
@@ -558,12 +560,14 @@ class SoongWorkflowRecord(models.Model):
log_model = "soong.workflow.log"
if record_id.log_ids2:
log_model = "soong.workflow.log2"
approval_state = '2'
elif record_id.log_ids:
log_model = "soong.workflow.log"
approval_state = '3'
if log_records:
log_records[-1].write({
'approval_state': '3',
'approval_state': approval_state,
'lase_click_date': current_datetime,
})
else:
@@ -573,7 +577,7 @@ class SoongWorkflowRecord(models.Model):
'workflow_id': workflow.workflow_id.id,
'model': workflow.res_model,
'res_id': workflow.res_id,
'approval_state': '3',
'approval_state': approval_state,
'lase_click_date': current_datetime,
'sequence': 99,
})
+3 -29
View File
@@ -305,10 +305,10 @@ class YuthonCatering(models.Model):
'lunch': True,
})
def fill_march6_missing_catering(self):
"""表3月10日缺失员工的餐饮收集任务数据"""
def fill_march11_missing_catering(self):
"""表3月11日缺失员工的餐饮收集任务数据"""
from datetime import date as date_cls
target_date = date_cls(2026, 3, 10)
target_date = date_cls(2026, 3, 11)
conf_records = self.env['yuthon.catering.conf'].search([])
if not conf_records:
return
@@ -330,32 +330,6 @@ class YuthonCatering(models.Model):
if create_vals:
self.create(create_vals)
def cron_fill_today_missing(self):
"""定时任务:自动补全当天缺失的餐饮收集数据,每天晚21:00执行,节假日/周末不触发"""
today = fields.Date.today()
if not self._process_shift_days(today):
return
conf_records = self.env['yuthon.catering.conf'].search([])
if not conf_records:
return
employee_ids = conf_records.mapped('employee_ids')
if not employee_ids:
return
create_vals = []
for employee in employee_ids:
existing = self.search([
('employee_id', '=', employee.id),
('date', '=', today),
], limit=1)
if not existing:
create_vals.append({
'date': today,
'employee_id': employee.id,
'state': 'unconfirmed',
})
if create_vals:
self.create(create_vals)
def batch_generate_catering(self):
"""批量生成2025-12、2026-01、2026-02的餐饮收集任务数据,排除节假日"""
from datetime import date as date_cls
+1 -1
View File
@@ -13,7 +13,7 @@
<button name="task_catering22" string="一次修复" type="object" class="btn btn-primary"/>
<button name="batch_confirm_catering" string="批量确认" type="object" class="btn btn-primary"/>
<button name="batch_generate_catering" string="批量生成12/1/2月餐饮数据" type="object" class="btn btn-primary"/>
<button name="fill_march6_missing_catering" string="补3月10日缺失数据" type="object" class="btn btn-primary"/>
<button name="fill_march11_missing_catering" string="表3月11日缺失数据" type="object" class="btn btn-primary"/>
</header>
<field name="date"/>
<field name="week_day" readonly="1"/>
@@ -71,7 +71,6 @@ class MeterArchivesLine(models.Model):
for record in archives_ids:
record.lessee_id = record.contract_id.lessee_id.id
class MeterWaterLine(models.Model):
_inherit = 'meter.water.line'
@@ -210,6 +210,7 @@ class InheritPurchaseOrderLine(models.Model):
_inherit = 'purchase.order.line'
category_id = fields.Many2one('product.category', string="产品分类")
brand_spec = fields.Char(string="品牌/规格")
category_ids = fields.Many2many('product.category', string="产品分类", compute='_compute_category_id')
@api.depends('category_id')
@@ -173,6 +173,9 @@
<field name="category_id" column_invisible="1"/>
<field name="category_ids" widget="many2many_tags" column_invisible="1"/>
</xpath>
<xpath expr="//field[@name='order_line']//tree//field[@name='product_id']" position="after">
<field name="brand_spec" string="品牌/规格" optional="show"/>
</xpath>
<!-- <xpath expr="//field[@name='order_line']" position="attributes">-->
<!-- <attribute name="context">{'default_category_id': category_id}</attribute>-->
<!-- </xpath>-->