fwerfgerf
This commit is contained in:
@@ -609,6 +609,49 @@ def get_approvers_from_record(business_record, approval=None):
|
||||
return []
|
||||
|
||||
|
||||
def ensure_case_for_approved_project(project, approval=None):
|
||||
"""
|
||||
立项审批通过后,若该立项尚未在案件管理中有对应案件,则自动创建一条案件记录。
|
||||
立案时间使用审批通过时间(approval.completeTiem),案件会出现在案件管理列表中。
|
||||
|
||||
Args:
|
||||
project: ProjectRegistration 实例,且 state 已为「已通过」
|
||||
approval: 可选,立项登记的 Approval 记录,用于取 completeTiem;不传则按 user_id 查询
|
||||
"""
|
||||
from business.models import Case, ProjectRegistration
|
||||
from .models import Approval as ApprovalModel
|
||||
if not project or getattr(project, 'state', None) != "已通过":
|
||||
return
|
||||
if Case.objects.filter(project_id=project.id, is_deleted=False).exists():
|
||||
return
|
||||
if approval is None:
|
||||
approval = ApprovalModel.objects.filter(
|
||||
type='立项登记', user_id=str(project.id), state='已通过', is_deleted=False
|
||||
).order_by('-id').first()
|
||||
if approval and getattr(approval, 'completeTiem', None):
|
||||
filing_time = approval.completeTiem.strftime('%Y-%m-%d')
|
||||
else:
|
||||
filing_time = date.today().strftime('%Y-%m-%d')
|
||||
Case.objects.create(
|
||||
project_id=project.id,
|
||||
contract_no=getattr(project, 'ContractNo', None) or '',
|
||||
project_type=getattr(project, 'type', None) or '',
|
||||
client_name=getattr(project, 'client_info', None) or '',
|
||||
party_name=getattr(project, 'party_info', None) or '',
|
||||
project_description=getattr(project, 'description', None) or '',
|
||||
responsiblefor=getattr(project, 'responsiblefor', None) or '',
|
||||
charge=getattr(project, 'charge', None) or '',
|
||||
times=filing_time,
|
||||
AgencyContract='[]',
|
||||
Contractreturn='[]',
|
||||
Closingapplication='[]',
|
||||
ChangeRequest='',
|
||||
state='已通过',
|
||||
invoice_status='0',
|
||||
paymentcollection='0',
|
||||
)
|
||||
|
||||
|
||||
def process_approval_flow(approval, business_record, current_approver, state,
|
||||
approval_type, final_state_map=None, rejection_reason=None):
|
||||
"""
|
||||
@@ -667,6 +710,9 @@ def process_approval_flow(approval, business_record, current_approver, state,
|
||||
if business_record and hasattr(business_record, 'state'):
|
||||
business_record.state = final_state_map.get("已通过", "已通过")
|
||||
business_record.save(update_fields=['state'])
|
||||
# 立项审批通过后,自动在案件管理中创建案件(立案时间=审批通过时间)
|
||||
if approval_type == "立项登记" and business_record:
|
||||
ensure_case_for_approved_project(business_record, approval=approval)
|
||||
return True, None
|
||||
if state == "未通过":
|
||||
approval.state = "未通过"
|
||||
|
||||
@@ -2894,6 +2894,9 @@ class ApprovalStatusCheck(APIView):
|
||||
project.save(update_fields=['state'])
|
||||
business_state = "已通过"
|
||||
is_approved = True
|
||||
# 立项审批通过后,自动在案件管理中创建案件
|
||||
from User.utils import ensure_case_for_approved_project
|
||||
ensure_case_for_approved_project(project, approval=approval)
|
||||
except ProjectRegistration.DoesNotExist:
|
||||
pass
|
||||
elif type == "待办":
|
||||
|
||||
Reference in New Issue
Block a user