diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py
index 3354c239f..41e0147b5 100644
--- a/soong_workflow/models/soong_workflow_record.py
+++ b/soong_workflow/models/soong_workflow_record.py
@@ -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,
})
diff --git a/yuthon_catering/models/yuthon_catering.py b/yuthon_catering/models/yuthon_catering.py
index d79413d10..74c902a8a 100644
--- a/yuthon_catering/models/yuthon_catering.py
+++ b/yuthon_catering/models/yuthon_catering.py
@@ -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
diff --git a/yuthon_catering/views/yuthon_catering.xml b/yuthon_catering/views/yuthon_catering.xml
index f7c4fa97a..769a2f2c2 100644
--- a/yuthon_catering/views/yuthon_catering.xml
+++ b/yuthon_catering/views/yuthon_catering.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py
index 624ea8e03..9c4d9477b 100644
--- a/yuthon_property_approval/models/inherit_yuthon_property.py
+++ b/yuthon_property_approval/models/inherit_yuthon_property.py
@@ -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'
diff --git a/yuthon_purchase/models/inherit_purchase_order.py b/yuthon_purchase/models/inherit_purchase_order.py
index 7016e03bf..61eac7e4e 100644
--- a/yuthon_purchase/models/inherit_purchase_order.py
+++ b/yuthon_purchase/models/inherit_purchase_order.py
@@ -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')
diff --git a/yuthon_purchase/views/inherit_purchase_order_views.xml b/yuthon_purchase/views/inherit_purchase_order_views.xml
index 911d272fe..b98b9872e 100644
--- a/yuthon_purchase/views/inherit_purchase_order_views.xml
+++ b/yuthon_purchase/views/inherit_purchase_order_views.xml
@@ -173,6 +173,9 @@
+
+
+