insert into crm_sales_expansion (
employee_no,
candidate_name,
office_name,
mobile,
email,
target_dept,
industry,
title,
intent_level,
stage,
has_desktop_exp,
in_progress,
employment_status,
expected_join_date,
owner_user_id,
remark
) values (
#{request.employeeNo},
#{request.candidateName},
#{request.officeName},
#{request.mobile},
#{request.email},
#{request.targetDept},
#{request.industry},
#{request.title},
#{request.intentLevel},
#{request.stage},
#{request.hasDesktopExp},
#{request.inProgress},
#{request.employmentStatus},
#{request.expectedJoinDate},
#{userId},
#{request.remark}
)
insert into crm_channel_expansion (
channel_code,
province,
channel_name,
office_address,
channel_industry,
annual_revenue,
staff_size,
contact_established_date,
intent_level,
has_desktop_exp,
contact_name,
contact_title,
contact_mobile,
channel_attribute,
internal_attribute,
stage,
landed_flag,
expected_sign_date,
owner_user_id,
remark
) values (
'QD-' || to_char(current_date, 'YYYYMMDD') || '-' || lpad((
coalesce((
select count(1)
from crm_channel_expansion
where created_at::date = current_date
), 0) + 1
)::text, 3, '0'),
#{request.province},
#{request.channelName},
#{request.officeAddress},
#{request.channelIndustry},
#{request.annualRevenue},
#{request.staffSize},
#{request.contactEstablishedDate},
#{request.intentLevel},
#{request.hasDesktopExp},
null,
null,
null,
#{request.channelAttribute},
#{request.internalAttribute},
#{request.stage},
#{request.landedFlag},
#{request.expectedSignDate},
#{userId},
#{request.remark}
)
insert into crm_channel_expansion_contact (
channel_expansion_id,
contact_name,
contact_mobile,
contact_title,
sort_order,
created_at,
updated_at
) values (
#{channelExpansionId},
#{contact.name},
#{contact.mobile},
#{contact.title},
#{sortOrder},
now(),
now()
)
delete from crm_channel_expansion_contact
where channel_expansion_id = #{channelExpansionId}
update crm_sales_expansion s
set employee_no = #{request.employeeNo},
candidate_name = #{request.candidateName},
office_name = #{request.officeName},
mobile = #{request.mobile},
email = #{request.email},
target_dept = #{request.targetDept},
industry = #{request.industry},
title = #{request.title},
intent_level = #{request.intentLevel},
stage = #{request.stage},
has_desktop_exp = #{request.hasDesktopExp},
in_progress = #{request.inProgress},
employment_status = #{request.employmentStatus},
expected_join_date = #{request.expectedJoinDate},
remark = #{request.remark}
where s.id = #{id}
update crm_channel_expansion c
set channel_name = #{request.channelName},
province = #{request.province},
office_address = #{request.officeAddress},
channel_industry = #{request.channelIndustry},
annual_revenue = #{request.annualRevenue},
staff_size = #{request.staffSize},
contact_established_date = #{request.contactEstablishedDate},
intent_level = #{request.intentLevel},
has_desktop_exp = #{request.hasDesktopExp},
contact_name = null,
contact_title = null,
contact_mobile = null,
channel_attribute = #{request.channelAttribute},
internal_attribute = #{request.internalAttribute},
stage = #{request.stage},
landed_flag = #{request.landedFlag},
expected_sign_date = #{request.expectedSignDate},
remark = #{request.remark}
where c.id = #{id}
insert into crm_expansion_followup (
biz_type,
biz_id,
followup_time,
followup_type,
content,
next_action,
followup_user_id,
visit_start_time,
evaluation_content,
next_plan
) values (
#{bizType},
#{bizId},
#{request.followUpTime},
#{request.followUpType},
#{request.content},
#{request.nextAction},
#{userId},
#{request.visitStartTime},
#{request.evaluationContent},
#{request.nextPlan}
)