!9842 添加功能

Merge pull request !9842 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2026-03-17 09:40:58 +00:00
committed by Gitee
3 changed files with 78 additions and 11 deletions
+51 -4
View File
@@ -20,16 +20,32 @@ class RoomBooking(models.Model):
if record.issue_meeting_line_ids:
for meet in record.issue_meeting_line_ids:
if meet.issue_library_id:
meeting_type_name = str(self.meeting_type_id.name).strip()
meeting_type_name = str(record.meeting_type_id.name).strip()
if '党' in meeting_type_name:
meet.issue_library_id.party_char = str(self.start_datetime.date()) + self.meeting_type_id.name
meet.issue_library_id.party_char = str(
record.start_datetime.date()) + record.meeting_type_id.name
meet.issue_library_id.issue_state_party = 'meeting'
if '班子' in meeting_type_name:
meet.issue_library_id.class_char = str(self.start_datetime.date()) + f'第{self.number_of_meetings}' + self.meeting_type_id.name
meet.issue_library_id.class_char = str(
record.start_datetime.date()) + f'第{record.number_of_meetings}' + record.meeting_type_id.name
meet.issue_library_id.issue_state_class = 'meeting'
if '董事' in meeting_type_name:
meet.issue_library_id.boss_char = str(self.start_datetime.date()) + self.meeting_type_id.name
meet.issue_library_id.boss_char = str(
record.start_datetime.date()) + record.meeting_type_id.name
meet.issue_library_id.issue_state_boss = 'meeting'
elif '套' in meeting_type_name:
if meet.issue_library_id.is_party and (meet.issue_library_id.is_party_passed == 'reject' or not meet.issue_library_id.is_party_passed):
meet.issue_library_id.party_char = str(
record.start_datetime.date()) + record.meeting_type_id.name
meet.issue_library_id.issue_state_party = 'meeting'
elif meet.issue_library_id.is_class and (meet.issue_library_id.is_class_passed == 'reject' or not meet.issue_library_id.is_class_passed):
meet.issue_library_id.class_char = str(
record.start_datetime.date()) + f'第{record.number_of_meetings}' + record.meeting_type_id.name
meet.issue_library_id.issue_state_class = 'meeting'
if self.code:
self.env['issue.library.approval.line'].create({
'issue_library_id': meet.issue_library_id.id,
@@ -300,3 +316,34 @@ class IssueMeetingLine(models.Model):
self.issue_library_id.issue_state_boss = 'on_meet'
else:
self.issue_library_id.issue_state_boss = 'will'
if '套' in meeting_type_name:
if (self.issue_library_id.is_party and
(self.issue_library_id.is_party_passed == 'reject' or not self.issue_library_id.is_party_passed)):
if self.issue_library_id.is_class:
self.issue_library_id.is_push_class = is_push
self.issue_library_id.is_party_passed = is_agree
original_party_char = self.issue_library_id.party_char or ""
clean_party_char = original_party_char
for suffix in suffix_list:
clean_party_char = clean_party_char.removesuffix(suffix)
self.issue_library_id.party_char = clean_party_char + agree_name
if is_push:
self.issue_library_id.issue_state_party = 'on_meet'
else:
self.issue_library_id.issue_state_party = 'will'
elif (self.issue_library_id.is_class and
(self.issue_library_id.is_class_passed == 'reject' or not self.issue_library_id.is_class_passed)):
# 复用班子会的修改逻辑
self.issue_library_id.is_class_passed = is_agree
original_class_char = self.issue_library_id.class_char or ""
clean_class_char = original_class_char
for suffix in suffix_list:
clean_class_char = clean_class_char.removesuffix(suffix)
self.issue_library_id.class_char = clean_class_char + agree_name
if is_push:
self.issue_library_id.issue_state_class = 'on_meet'
else:
self.issue_library_id.issue_state_class = 'will'
+20
View File
@@ -591,6 +591,26 @@ class IssueLibrary(models.Model):
break
elif passed_result == 'pass':
continue
if len(issue_active_ids) == 2 and all(ras.company_id.name == "天河粮储" for ras in issue_active_ids):
record_a, record_b = issue_active_ids
# 定义核心判断条件:
# 场景1:A党勾 + B党未勾且班子勾 OR 场景2:B党勾 + A党未勾且班子勾
condition = ((getattr(record_a, 'is_party', False) and not getattr(record_b, 'is_party', False) and getattr(record_b, 'is_class', False))
or
(getattr(record_b, 'is_party', False) and not getattr(record_a, 'is_party',False) and getattr(record_a,'is_class', False)))
all_char_empty = (
not getattr(record_a, 'party_char', '') and not getattr(record_a, 'class_char', '')
and
not getattr(record_b, 'party_char', '') and not getattr(record_b, 'class_char', '')
)
if condition and all_char_empty:
meeting_type_with_tao = self.env['room.meeting.type'].search([
('name', 'ilike', '套')# 模糊匹配含「套」的会议类型
], limit=1)
if meeting_type_with_tao:
target_meeting_type_id = meeting_type_with_tao.id
form_id = self.env.ref("room.room_booking_view_form", raise_if_not_found=False)
return {
"type": "ir.actions.act_window",
+7 -7
View File
@@ -53,9 +53,9 @@
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<!-- <header>-->
<!-- <button name="all_issue_pull" string="提交议题审批" type="object"/>-->
<!-- </header>-->
<header>
<button name="all_meeting_issue" type="object" string="会议安排" class="oe_highlight" groups="yuthon_salary.group_lc_user"/>
</header>
<field name="name" column_invisible="1"/>
<field name="department_id"/>
<field name="name_text" class="list_width"/>
@@ -358,7 +358,7 @@
decoration-success="issue_state_party == 'done'"
decoration-muted="issue_state_party == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
<button name="all_meeting_issue" type="object" string="会议安排" class="oe_highlight"/>
<button name="issue_party1_approval" type="object" string="批量审批" class="oe_highlight"/>
</header>
<field name="name"/>
@@ -396,7 +396,7 @@
decoration-success="issue_state_party == 'done'"
decoration-muted="issue_state_party == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
<button name="all_meeting_issue" type="object" string="会议安排" class="oe_highlight"/>
<button name="issue_party_approval" type="object" string="批量审批" class="oe_highlight"/>
</header>
<field name="name"/>
@@ -574,7 +574,7 @@
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
<button name="all_meeting_issue" type="object" string="会议安排" class="oe_highlight"/>
<button name="issue_class_approval" type="object" string="批量审批" class="oe_highlight"/>
</header>
<field name="name"/>
@@ -735,7 +735,7 @@
decoration-success="issue_state_boss == 'done'"
decoration-muted="issue_state_boss == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
<button name="all_meeting_issue" type="object" string="会议安排" class="oe_highlight"/>
<button name="issue_boss_approval" type="object" string="批量审批" class="oe_highlight"/>
</header>
<field name="name"/>