<?xml version="1.0" encoding="UTF-8" ?>
|
|
<sqls>
|
<dataSpace name="updateSaleFramework">
|
|
<sql name="deleteNotExistsSalesPosition">
|
<![CDATA[
|
delete from md_position
|
where category_code = 'Sales' and
|
not exists (
|
select 1 from temp_position
|
where temp_position.position_code = md_position.name
|
and @{IfEmpty}(is_error, '') <> 'T'
|
and io_batch_id = '@{batchNo}'
|
)
|
]]>
|
</sql>
|
|
<sql name="updatePositionSalesPosition">
|
<![CDATA[
|
update md_position
|
inner join (
|
select * from temp_position
|
where @{IfEmpty}(is_error, '') <> 'T' and io_batch_id = '@{batchNo}'
|
) temp_position on md_position.id = temp_position.position_id and md_position.category_code = 'Sales'
|
set md_position.company_id = temp_position.company_id,
|
md_position.division_id = temp_position.division_id,
|
md_position.parent_id = temp_position.parent_id,
|
md_position.code = temp_position.position_code,
|
md_position.name = temp_position.position_name,
|
md_position.type_code = temp_position.type_code,
|
md_position.type_name = temp_position.type_name,
|
md_position.remark = temp_position.remark,
|
md_position.region = temp_position.region,
|
md_position.index_no = temp_position.index_no
|
]]>
|
</sql>
|
|
<sql name="appendNewSalesPosition">
|
<![CDATA[
|
insert into md_position (
|
id, company_id, division_id, parent_id, category_code, code, name,
|
type_code, type_name, remark, region, index_no,
|
superior_1, superior_2, superior_3, superior_4
|
)
|
select position_id, company_id, division_id, parent_id, 'Sales' category_code, position_code, position_name,
|
type_code, type_name, remark, region, index_no,
|
superior_1, superior_2, superior_3, superior_4
|
from temp_position where io_batch_id = '@{batchNo}'
|
and not exists (
|
select 1 from md_position
|
where temp_position.position_id = md_position.id
|
)
|
]]>
|
</sql>
|
|
<sql name="inactiveNotExistsSalesEmployee">
|
<![CDATA[
|
update md_employee
|
set is_active = 'F', update_time = now()
|
where id is not null and actor_code like '%Sales%' and is_active = 'T' and not exists (
|
select 1 from temp_position
|
where io_batch_id = '@{batchNo}'
|
and md_employee.id = temp_position.employee_id
|
)
|
]]>
|
</sql>
|
|
<sql name="appendNewSalesEmployee">
|
<![CDATA[
|
insert into md_employee (
|
id, org_id, org_name, account_type_code, actor_code, code, name,
|
job_title, mail, phone, nc_org_id, nc_department_id, nc_employee_id,
|
is_error, error_message, is_active, creator_id, creator_name, create_time, update_time
|
)
|
select employee_id, company_id, company_name, account_type_code, actor_code, employee_code , remark,
|
job_title, employee_mail, employee_phone, nc_company_id, nc_department_id, nc_employee_id,
|
is_employee_match_error, employee_match_error_message, is_active, '@{creatorId}', '@{creatorName}',
|
create_time,update_time
|
from temp_position where io_batch_id = '@{batchNo}' and not exists (
|
select 1 from md_employee
|
where md_employee.id = temp_position.employee_id
|
)
|
]]>
|
</sql>
|
|
<sql name="deleteNotExistsPositionEmployee">
|
<![CDATA[
|
delete from md_position_employee where not exists (
|
select 1 from md_position
|
where md_position.id = md_position_employee.position_id
|
)
|
or not exists (
|
select 1 from md_employee
|
where md_employee.id = md_position_employee.employee_id
|
)
|
]]>
|
</sql>
|
|
<sql name="inValidNotExistsEmployeeUser">
|
<![CDATA[
|
update sys_user
|
set is_active = 'F'
|
where not exists (
|
select 1 from md_employee
|
where md_employee.id = sys_user.employee_id
|
and md_employee.is_active = 'T'
|
) and employee_id is not null and id != 'admin'
|
]]>
|
</sql>
|
|
<sql name="validExistsEmployeeUser">
|
<![CDATA[
|
update sys_user
|
set is_active = 'T'
|
where exists (
|
select 1 from md_employee
|
where md_employee.id = sys_user.employee_id
|
and md_employee.is_active = 'T'
|
)
|
]]>
|
</sql>
|
|
<sql name="appendNewEmployeeUser">
|
<![CDATA[
|
insert into sys_user ( id, org_id, code, name, password, employee_id, pass_need_change,
|
is_active, secret, remark, create_time, update_time )
|
select md_employee.id, md_employee.org_id, md_employee.code, md_employee.code name, '123456' password,
|
md_employee.id employee_id, 'F' , 'T', mirror_oa_v_gmd_hrmresource.SECRET, md_employee.name remark,
|
md_employee.create_time,md_employee.update_time
|
from md_employee
|
left join mirror_oa_v_gmd_hrmresource on mirror_oa_v_gmd_hrmresource.主键 = md_employee.id
|
where md_employee.is_active = 'T' and not exists (
|
select 1 from sys_user where md_employee.id = sys_user.employee_id and sys_user.is_active = 'T'
|
)
|
]]>
|
</sql>
|
|
<sql name="appendNewUserOrg">
|
<![CDATA[
|
insert into sys_user_org (id,idx,org_id,user_id, division_id)
|
select @{guid} id, null idx, md_employee.org_id, sys_user.id user_id, md_division.id division_id
|
from md_employee
|
inner join md_division on md_division.company_id = md_employee.org_id
|
inner join sys_user on sys_user.employee_id = md_employee.id
|
left join sys_user_org on sys_user_org.org_id =md_employee.org_id and sys_user.id = sys_user_org.user_id
|
where sys_user_org.id is null and sys_user.is_active = 'T'
|
and md_employee.is_active = 'T' and md_employee.actor_code like '%Sales%'
|
]]>
|
</sql>
|
|
|
<sql name = "queryEmployeeMatchNCError">
|
<![CDATA[
|
select *
|
from md_employee
|
where is_error = 'T' and actor_code like '%Sales%'
|
]]>
|
</sql>
|
|
<sql name="deleteNotExistsRightActorTarget">
|
<![CDATA[
|
delete from sys_right_actor_target
|
where type_code = 'Position' and actor_id like '%Sales%' and not EXISTS (
|
select 1 from md_position
|
where is_delete != 'T' and sys_right_actor_target.target_id = md_position.id )
|
|
]]>
|
|
</sql> <sql name="getNewRightActorTarget">
|
<![CDATA[
|
select md_position.id, null actor_id, md_position.duty, 'Position' type_code ,
|
md_position.company_id, md_position.division_id, md_position.id target_id, remark
|
from md_position
|
where is_delete != 'T' and not EXISTS (
|
select 1 from sys_right_actor_target
|
where sys_right_actor_target.target_id = md_position.id ) and category_code = 'Sales'
|
]]>
|
</sql>
|
|
<sql name="refreshHospitalPosition">
|
<![CDATA[
|
update md_position_hospital
|
left join temp_position_hospital on md_position_hospital.hospital_id = temp_position_hospital.hospital_id
|
and md_position_hospital.bu_id = temp_position_hospital.bu_id
|
and md_position_hospital.company_id = temp_position_hospital.company_id
|
set md_position_hospital.position_id = temp_position_hospital.position_id,
|
md_position_hospital.department = temp_position_hospital.department,
|
md_position_hospital.remark = temp_position_hospital.remark
|
where io_batch_id = '@{batchNo}'
|
]]>
|
</sql>
|
|
</dataSpace>
|
|
<dataSpace name="checkTempSaleFramework">
|
<sql name = "getParentPositionEmployee">
|
<![CDATA[
|
select parent_position.id parent_position_id , parent_position.company_id parent_position_company_id,
|
parent_position.division_id parent_position_division_id, parent_position.parent_id parent_position_parent_id,
|
parent_position.category_code parent_position_category_code, parent_position.code parent_position_code,
|
parent_position.name parent_position_name, parent_position.type_code parent_position_type_code,
|
parent_position.type_name parent_position_type_name, parent_position.remark parent_position_remark,
|
parent_position.region parent_position_region, parent_position.index_no parent_position_index_no,
|
parent_position.level_no parent_position_level_no, parent_position.superior_1 parent_position_superior_1,
|
parent_position.superior_2 parent_position_superior_2, parent_position.superior_3 parent_position_superior_3,
|
parent_position.superior_4 parent_position_superior_4, md_position_hierarchy.level2 parent_position_region_id,
|
md_employee.id md_employee__id,
|
md_employee.org_id md_employee_org_id, md_employee.org_name md_employee_org_name,
|
md_employee.account_type_code md_employee_account_type_code, md_employee.actor_code md_employee_actor_code,
|
md_employee.code md_employee_code, md_employee.name md_employee__name,
|
md_employee.job_title md_employee_job_title,
|
md_employee.mail md_employee_mail, md_employee.account_type_code md_employee_account_type_code,
|
md_employee.actor_code md_employee_actor_code, md_employee.code md_employee_code,
|
md_employee.name md_employee_name, md_employee.phone md_employee_phone,
|
md_employee.avatar md_employee__avatar, md_employee.phone md_employee__phone, md_position.id
|
from md_position
|
left join md_position parent_position on md_position.parent_id = parent_position.id and md_position.category_code = 'Sales'
|
left join md_position_employee ON parent_position.id = md_position_employee.position_id
|
left join md_position_hierarchy ON md_position.parent_id = md_position_hierarchy.position_id
|
LEFT JOIN md_employee md_employee ON md_position_employee.employee_id = md_employee.id
|
where @{filter} @{orderby} @{limit}
|
]]>
|
</sql>
|
|
</dataSpace>
|
|
<dataSpace name="salesHierarchy">
|
<sql name = "getLeaderPosition">
|
<![CDATA[
|
select md_position.parent_id as parent_position_id, md_position.id as position_id,
|
md_position.name as position_title, md_position.level_code, md_position.duty,
|
md_employee.id as employee_id, md_employee.name as employee_name, sys_user.id as user_id
|
from md_position
|
left join md_position_employee on md_position_employee.position_id = md_position.id
|
left join md_employee on md_employee.id = md_position_employee.employee_id
|
left join sys_user_employee on sys_user_employee.employee_id = md_employee.id
|
left join sys_user on sys_user.id = sys_user_employee.user_id
|
where @{filter}
|
]]>
|
</sql>
|
|
<sql name = "getOALeader">
|
<![CDATA[
|
select DISTINCT md_department.parent_id as parent_position_id, md_department.id as position_id,
|
md_department.name as position_title, md_department.level_code, md_department.duty,
|
md_employee.id as employee_id, md_employee.name as employee_name, sys_user.id as user_id
|
from md_department
|
inner join md_employee on md_department.dept_manager_userid_list = md_employee.dingtalk_id
|
left join sys_user_employee on sys_user_employee.employee_id = md_employee.id
|
left join sys_user on sys_user.id = sys_user_employee.user_id
|
where @{filter}
|
]]>
|
</sql>
|
|
</dataSpace>
|
|
</sqls>
|