<?xml version="1.0" encoding="UTF-8" ?>
|
|
<sqls>
|
<dataSpace name="position-target">
|
|
<sql name="createPositionTarget">
|
INSERT INTO tgt_planning_position (
|
id, idx, planning_id, state_code, state_name, year, quarter, quarter_no,
|
position_type, position_id, position_code, position_name, territory_id, parent_territory_id,
|
employee_id, employee_code, employee_name, has_empty_position,has_joint_manager,
|
init_rate, actual_rate, init_qty, init_amt, issue_qty, issue_amt,
|
history_qty, history_amt, final_qty, final_amt , vbp_productivity_amt,no_vbp_productivity_amt,
|
is_modified, creator_id, creator_name, create_time, update_time, updator_id, updator_name)
|
select
|
MD5(UUID_SHORT())id, null idx, tgt_planning.id planning_id, tgt_planning.state_code, '初版' state_name, tgt_planning.year,
|
tgt_planning.quarter, tgt_planning.quarter_no,md_position.duty positon_level, md_position.id position_id,
|
md_position.code position_code,md_position.name position_name,hm_territory.id territory_id ,
|
hm_territory.parent_id parent_territory_id, organization_employee.id employee_id, organization_employee.employee_code,
|
organization_employee.name employee_name, 'F' has_empty_position, 'F' has_joint_manager,
|
0 init_rate,0 actual_rate, 0 init_qty, 0 init_amt, 0 issue_qty, 0 issue_amt,
|
0 history_qty, 0 history_amt, 0 final_qty, 0 final_amt , 0 vbp_productivity_amt, 0 no_vbp_productivity_amt,
|
'F' is_modified, '@{creator_id}' creator_id, '@{creator_name}' creator_name,now() create_time, now() update_time, '@{creator_id}' updator_id, '@{creator_name}' updator_name
|
from dscn_crm.hm_territory
|
left join tgt_planning on tgt_planning.id = '@{planning_id}'
|
left join dscn_crm.hm_position_territory on hm_position_territory.territory_id = hm_territory.id
|
left join md_position on md_position.id = hm_position_territory.position_id
|
left join md_position_employee on md_position.id = md_position_employee.position_id
|
left join dscn_crm.organization_employee on organization_employee.id = md_position_employee.employee_id
|
</sql>
|
|
<sql name="setTargetPositionDetailConnection">
|
update tgt_planning_detail
|
inner join tgt_planning_position target_table on target_table.planning_id = tgt_planning_detail.planning_id
|
and target_table.position_id = tgt_planning_detail.position_id
|
and target_table.territory_id = tgt_planning_detail.territory_id
|
set tgt_planning_detail.planning_position_id =target_table.id
|
where tgt_planning_detail.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setTargetPositionMR">
|
update tgt_planning_position
|
inner join (
|
select planning_id, position_id, territory_id,
|
sum(init_amt) init_amt, sum(init_qty) init_qty,
|
sum(issue_amt) issue_amt, sum(issue_qty) issue_qty,
|
sum(history_amt) history_amt, sum(history_qty) history_qty,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt,
|
sum(final_amt) final_amt, sum(final_qty) final_qty,
|
sum(pre_amt) pre_amt, sum(pre_qty) pre_qty,
|
sum(mom_amt) mom_amt, sum(mom_qty) mom_qty,
|
sum(sales_amt) sales_amt, sum(sales_qty) sales_qty
|
from tgt_planning_detail
|
where tgt_planning_detail.planning_id = '@{planning_id}'
|
group by planning_id, position_id, territory_id
|
) v_planning_position on tgt_planning_position.planning_id = v_planning_position.planning_id and tgt_planning_position.position_id = v_planning_position.position_id and tgt_planning_position.territory_id = v_planning_position.territory_id
|
set tgt_planning_position.init_amt = v_planning_position.init_amt, tgt_planning_position.init_qty = v_planning_position.init_qty,
|
tgt_planning_position.issue_amt = v_planning_position.issue_amt, tgt_planning_position.issue_qty = v_planning_position.issue_qty,
|
tgt_planning_position.no_vbp_productivity_amt = v_planning_position.no_vbp_productivity_amt,
|
tgt_planning_position.vbp_productivity_amt = v_planning_position.vbp_productivity_amt,
|
tgt_planning_position.pre_amt = v_planning_position.pre_amt, tgt_planning_position.pre_qty = v_planning_position.pre_qty,
|
tgt_planning_position.sales_amt = v_planning_position.sales_amt, tgt_planning_position.sales_qty = v_planning_position.sales_qty,
|
tgt_planning_position.history_amt = v_planning_position.history_amt, tgt_planning_position.history_qty = v_planning_position.history_qty,
|
tgt_planning_position.mom_amt = v_planning_position.mom_amt, tgt_planning_position.mom_qty = v_planning_position.mom_qty,
|
tgt_planning_position.final_amt = v_planning_position.final_amt, tgt_planning_position.final_qty = v_planning_position.final_qty
|
where tgt_planning_position.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionDSM">
|
update tgt_planning_position
|
inner join (
|
select
|
planning_id, parent_position_id position_id,
|
sum(init_amt) init_amt, sum(init_qty) init_qty,
|
sum(issue_amt) issue_amt, sum(issue_qty) issue_qty,
|
sum(history_amt) history_amt, sum(history_qty) history_qty,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt,
|
sum(final_amt) final_amt, sum(final_qty) final_qty,
|
sum(pre_amt) pre_amt, sum(pre_qty) pre_qty,
|
sum(mom_amt) mom_amt, sum(mom_qty) mom_qty,
|
sum(sales_amt) sales_amt, sum(sales_qty) sales_qty
|
from tgt_planning_position
|
where position_type = 'MR' and tgt_planning_position.planning_id = '@{planning_id}'
|
group by planning_id, parent_position_id
|
) v_planning_position on tgt_planning_position.planning_id = v_planning_position.planning_id and tgt_planning_position.position_id = v_planning_position.position_id
|
set tgt_planning_position.init_amt = v_planning_position.init_amt, tgt_planning_position.init_qty = v_planning_position.init_qty,
|
tgt_planning_position.issue_amt = v_planning_position.issue_amt, tgt_planning_position.issue_qty = v_planning_position.issue_qty,
|
tgt_planning_position.no_vbp_productivity_amt = v_planning_position.no_vbp_productivity_amt,
|
tgt_planning_position.vbp_productivity_amt = v_planning_position.vbp_productivity_amt,
|
tgt_planning_position.pre_amt = v_planning_position.pre_amt, tgt_planning_position.pre_qty = v_planning_position.pre_qty,
|
tgt_planning_position.sales_amt = v_planning_position.sales_amt, tgt_planning_position.sales_qty = v_planning_position.sales_qty,
|
tgt_planning_position.history_amt = v_planning_position.history_amt, tgt_planning_position.history_qty = v_planning_position.history_qty,
|
tgt_planning_position.mom_amt = v_planning_position.mom_amt, tgt_planning_position.mom_qty = v_planning_position.mom_qty,
|
tgt_planning_position.final_amt = v_planning_position.final_amt, tgt_planning_position.final_qty = v_planning_position.final_qty
|
where tgt_planning_position.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionRSD">
|
update tgt_planning_position
|
inner join (
|
select
|
planning_id, parent_position_id position_id,
|
sum(init_amt) init_amt, sum(init_qty) init_qty,
|
sum(issue_amt) issue_amt, sum(issue_qty) issue_qty,
|
sum(history_amt) history_amt, sum(history_qty) history_qty,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt,
|
sum(final_amt) final_amt, sum(final_qty) final_qty,
|
sum(pre_amt) pre_amt, sum(pre_qty) pre_qty,
|
sum(mom_amt) mom_amt, sum(mom_qty) mom_qty,
|
sum(sales_amt) sales_amt, sum(sales_qty) sales_qty
|
from tgt_planning_position
|
where position_type = 'DSM' and tgt_planning_position.planning_id = '@{planning_id}'
|
group by planning_id, parent_position_id
|
) v_planning_position on tgt_planning_position.planning_id = v_planning_position.planning_id and tgt_planning_position.position_id = v_planning_position.position_id
|
set tgt_planning_position.init_amt = v_planning_position.init_amt, tgt_planning_position.init_qty = v_planning_position.init_qty,
|
tgt_planning_position.issue_amt = v_planning_position.issue_amt, tgt_planning_position.issue_qty = v_planning_position.issue_qty,
|
tgt_planning_position.no_vbp_productivity_amt = v_planning_position.no_vbp_productivity_amt,
|
tgt_planning_position.vbp_productivity_amt = v_planning_position.vbp_productivity_amt,
|
tgt_planning_position.pre_amt = v_planning_position.pre_amt, tgt_planning_position.pre_qty = v_planning_position.pre_qty,
|
tgt_planning_position.sales_amt = v_planning_position.sales_amt, tgt_planning_position.sales_qty = v_planning_position.sales_qty,
|
tgt_planning_position.history_amt = v_planning_position.history_amt, tgt_planning_position.history_qty = v_planning_position.history_qty,
|
tgt_planning_position.mom_amt = v_planning_position.mom_amt, tgt_planning_position.mom_qty = v_planning_position.mom_qty,
|
tgt_planning_position.final_amt = v_planning_position.final_amt, tgt_planning_position.final_qty = v_planning_position.final_qty
|
where tgt_planning_position.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionSD">
|
update tgt_planning_position
|
inner join (
|
select
|
planning_id, parent_position_id position_id,
|
sum(init_amt) init_amt, sum(init_qty) init_qty,
|
sum(issue_amt) issue_amt, sum(issue_qty) issue_qty,
|
sum(history_amt) history_amt, sum(history_qty) history_qty,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt,
|
sum(final_amt) final_amt, sum(final_qty) final_qty,
|
sum(pre_amt) pre_amt, sum(pre_qty) pre_qty,
|
sum(mom_amt) mom_amt, sum(mom_qty) mom_qty,
|
sum(sales_amt) sales_amt, sum(sales_qty) sales_qty
|
from tgt_planning_position
|
where position_type = 'RSD' and tgt_planning_position.planning_id = '@{planning_id}'
|
group by planning_id, parent_position_id
|
) v_planning_position on tgt_planning_position.planning_id = v_planning_position.planning_id and tgt_planning_position.position_id = v_planning_position.position_id
|
set tgt_planning_position.init_amt = v_planning_position.init_amt, tgt_planning_position.init_qty = v_planning_position.init_qty,
|
tgt_planning_position.issue_amt = v_planning_position.issue_amt, tgt_planning_position.issue_qty = v_planning_position.issue_qty,
|
tgt_planning_position.no_vbp_productivity_amt = v_planning_position.no_vbp_productivity_amt,
|
tgt_planning_position.vbp_productivity_amt = v_planning_position.vbp_productivity_amt,
|
tgt_planning_position.pre_amt = v_planning_position.pre_amt, tgt_planning_position.pre_qty = v_planning_position.pre_qty,
|
tgt_planning_position.sales_amt = v_planning_position.sales_amt, tgt_planning_position.sales_qty = v_planning_position.sales_qty,
|
tgt_planning_position.history_amt = v_planning_position.history_amt, tgt_planning_position.history_qty = v_planning_position.history_qty,
|
tgt_planning_position.mom_amt = v_planning_position.mom_amt, tgt_planning_position.mom_qty = v_planning_position.mom_qty,
|
tgt_planning_position.final_amt = v_planning_position.final_amt, tgt_planning_position.final_qty = v_planning_position.final_qty
|
where tgt_planning_position.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionGM">
|
update tgt_planning_position
|
inner join (
|
select
|
planning_id, parent_position_id position_id,
|
sum(init_amt) init_amt, sum(init_qty) init_qty,
|
sum(issue_amt) issue_amt, sum(issue_qty) issue_qty,
|
sum(history_amt) history_amt, sum(history_qty) history_qty,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt,
|
sum(final_amt) final_amt, sum(final_qty) final_qty,
|
sum(pre_amt) pre_amt, sum(pre_qty) pre_qty,
|
sum(mom_amt) mom_amt, sum(mom_qty) mom_qty,
|
sum(sales_amt) sales_amt, sum(sales_qty) sales_qty
|
from tgt_planning_position
|
where position_type = 'SD' and tgt_planning_position.planning_id = '@{planning_id}'
|
group by planning_id, parent_position_id
|
) v_planning_position on tgt_planning_position.planning_id = v_planning_position.planning_id and tgt_planning_position.position_id = v_planning_position.position_id
|
set tgt_planning_position.init_amt = v_planning_position.init_amt, tgt_planning_position.init_qty = v_planning_position.init_qty,
|
tgt_planning_position.issue_amt = v_planning_position.issue_amt, tgt_planning_position.issue_qty = v_planning_position.issue_qty,
|
tgt_planning_position.no_vbp_productivity_amt = v_planning_position.no_vbp_productivity_amt,
|
tgt_planning_position.vbp_productivity_amt = v_planning_position.vbp_productivity_amt,
|
tgt_planning_position.pre_amt = v_planning_position.pre_amt, tgt_planning_position.pre_qty = v_planning_position.pre_qty,
|
tgt_planning_position.sales_amt = v_planning_position.sales_amt, tgt_planning_position.sales_qty = v_planning_position.sales_qty,
|
tgt_planning_position.history_amt = v_planning_position.history_amt, tgt_planning_position.history_qty = v_planning_position.history_qty,
|
tgt_planning_position.mom_amt = v_planning_position.mom_amt, tgt_planning_position.mom_qty = v_planning_position.mom_qty,
|
tgt_planning_position.final_amt = v_planning_position.final_amt, tgt_planning_position.final_qty = v_planning_position.final_qty
|
where tgt_planning_position.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetChildrenContribution">
|
update tgt_planning_position
|
inner join tgt_planning_position tgt_planning_parent_position on tgt_planning_parent_position.planning_id = tgt_planning_position.planning_id and tgt_planning_parent_position.position_id = tgt_planning_position.parent_position_id
|
set tgt_planning_position.init_rate_team = tgt_planning_position.init_qty / tgt_planning_parent_position.init_qty,
|
tgt_planning_position.actual_rate_team = tgt_planning_position.final_qty / tgt_planning_parent_position.final_qty
|
where tgt_planning_position.planning_id = '@{planning_id}'
|
</sql>
|
</dataSpace>
|
|
<dataSpace name="position-customer-target">
|
|
<sql name="createPositionCustomerTarget">
|
INSERT INTO tgt_planning_customer (
|
id, idx, planning_id, state_code, state_name, year, quarter, quarter_no,
|
position_type, position_id, position_code, position_name, territory_id, parent_territory_id,
|
customer_code, has_joint_manager, init_rate, actual_rate, init_qty, init_amt, issue_qty, issue_amt,
|
history_qty, history_amt, final_qty, final_amt , vbp_productivity_amt,no_vbp_productivity_amt,
|
is_modified, creator_id, creator_name, create_time, update_time, updator_id, updator_name)
|
select
|
MD5(UUID_SHORT())id, null idx, tgt_planning.id planning_id, tgt_planning.state_code, '初版' state_name, tgt_planning.year, tgt_planning.quarter, tgt_planning.quarter_no,
|
organization_position.position_type positon_level, organization_position.id position_id, organization_position.position_code, organization_position.name position_name,
|
hm_territory.id territory_id, hm_territory.parent_id parent_territory_id,
|
v_territory_hospital.hospital_code customer_code, 'F' has_joint_manager,
|
0 init_rate,0 actual_rate, 0 init_qty, 0 init_amt, 0 issue_qty, 0 issue_amt, 0 history_qty, 0 history_amt, 0 final_qty, 0 final_amt , 0 vbp_productivity_amt, 0 no_vbp_productivity_amt,
|
'F' is_modified, '@{creator_id}' creator_id, '@{creator_name}' creator_name, now() create_time, now()update_time, '@{creator_id}' updator_id, '@{creator_name}' updator_name
|
from dscn_crm.hm_territory
|
left join tgt_planning on tgt_planning.id = '@{planning_id}'
|
left join dscn_crm.hm_position_territory on hm_position_territory.territory_id = hm_territory.id
|
left join dscn_crm.organization_position on organization_position.id = hm_position_territory.position_id
|
inner join (
|
select hospital_code, territory_code from dscn_crm.hm_territory_hospital_product_relation
|
group by hospital_code, territory_code) v_territory_hospital on v_territory_hospital.territory_code = hm_territory.code
|
</sql>
|
|
<sql name="setTargetCustomerInfo">
|
update tgt_planning_customer
|
inner join dscn_crm.hm_institution on hm_institution.institution_code = tgt_planning_customer.customer_code
|
set tgt_planning_customer.customer_id = hm_institution.id,
|
tgt_planning_customer.customer_name = hm_institution.institution_name,
|
tgt_planning_customer.city_code = hm_institution.city_id,
|
tgt_planning_customer.province_code = hm_institution.province_id
|
where tgt_planning_customer.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionCustomerDetailConnection">
|
update tgt_planning_detail
|
inner join tgt_planning_customer on tgt_planning_customer.planning_id = tgt_planning_detail.planning_id and tgt_planning_customer.position_id = tgt_planning_detail.position_id and tgt_planning_customer.territory_id = tgt_planning_detail.territory_id and tgt_planning_customer.customer_id = tgt_planning_detail.customer_id
|
set tgt_planning_detail.planning_customer_id =tgt_planning_customer.id
|
where tgt_planning_detail.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setTargetPositionCustomerPositionConnection">
|
update tgt_planning_customer
|
inner join tgt_planning_position on tgt_planning_position.planning_id = tgt_planning_customer.planning_id and tgt_planning_position.position_id = tgt_planning_customer.position_id and tgt_planning_position.territory_id = tgt_planning_customer.territory_id
|
set tgt_planning_customer.planning_position_id =tgt_planning_position.id
|
where tgt_planning_customer.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setPositionCustomerTarget">
|
update tgt_planning_customer
|
inner join (
|
select planning_customer_id,
|
sum(init_qty) init_qty, sum(init_amt) init_amt, sum(issue_qty) issue_qty, sum(issue_amt) issue_amt,
|
sum(final_qty) final_qty, sum(final_amt) final_amt, sum(pre_qty) pre_qty, sum(pre_amt) pre_amt,
|
sum(sales_qty) sales_qty, sum(sales_amt) sales_amt, sum(history_qty) history_qty, sum(history_amt) history_amt,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt
|
from tgt_planning_detail group by planning_customer_id) v_planning_customer on tgt_planning_customer.id = v_planning_customer.planning_customer_id
|
set tgt_planning_customer.init_amt = v_planning_customer.init_amt, tgt_planning_customer.init_qty = v_planning_customer.init_qty,
|
tgt_planning_customer.issue_amt = v_planning_customer.issue_amt, tgt_planning_customer.issue_qty = v_planning_customer.issue_qty,
|
tgt_planning_customer.pre_amt = v_planning_customer.pre_amt, tgt_planning_customer.pre_qty = v_planning_customer.pre_qty,
|
tgt_planning_customer.final_amt = v_planning_customer.final_amt, tgt_planning_customer.final_qty = v_planning_customer.final_qty ,
|
tgt_planning_customer.sales_amt = v_planning_customer.sales_amt, tgt_planning_customer.sales_qty = v_planning_customer.sales_qty ,
|
tgt_planning_customer.history_amt = v_planning_customer.history_amt, tgt_planning_customer.history_qty = v_planning_customer.history_qty ,
|
tgt_planning_customer.vbp_productivity_amt = v_planning_customer.vbp_productivity_amt, tgt_planning_customer.no_vbp_productivity_amt = v_planning_customer.no_vbp_productivity_amt
|
where tgt_planning_customer.planning_id = '@{planning_id}'
|
</sql>
|
</dataSpace>
|
|
<dataSpace name="position-product-target">
|
|
<sql name="createPositionProductTarget">
|
INSERT INTO tgt_planning_product (
|
id, idx, planning_id, state_code, state_name, year, quarter, quarter_no,
|
position_type, position_id, position_code, position_name, territory_id, parent_territory_id, product_code, has_joint_manager,
|
init_rate, actual_rate, init_rate_team, actual_rate_team, init_qty, init_amt, issue_qty, issue_amt, history_qty, history_amt, final_qty, final_amt , vbp_productivity_amt,no_vbp_productivity_amt,
|
is_modified, creator_id, creator_name, create_time, update_time, updator_id, updator_name)
|
select
|
MD5(UUID_SHORT())id, null idx, tgt_planning.id planning_id, tgt_planning.state_code, '初版' state_name, tgt_planning.year, tgt_planning.quarter, tgt_planning.quarter_no,
|
organization_position.position_type, organization_position.id position_id, organization_position.position_code, organization_position.name position_name,
|
hm_territory.id territory_id ,hm_territory.parent_id parent_territory_id, hm_territory_product_relation.product_code, 'F'has_joint_manager,
|
0 init_rate,0 actual_rate, 0 init_rate_team,0 actual_rate_team, 0 init_qty, 0 init_amt, 0 issue_qty, 0 issue_amt, 0 history_qty, 0 history_amt, 0 final_qty, 0 final_amt, 0 vbp_productivity_amt, 0 no_vbp_productivity_amt,
|
'F' is_modified, '@{creator_id}' creator_id, '@{creator_name}' creator_name,now() create_time, now()update_time, '@{creator_id}' updator_id, '@{creator_name}' updator_name
|
from dscn_crm.hm_territory
|
left join tgt_planning on tgt_planning.id = '@{planning_id}'
|
left join dscn_crm.hm_position_territory on hm_position_territory.territory_id = hm_territory.id
|
left join dscn_crm.organization_position on organization_position.id = hm_position_territory.position_id
|
left join dscn_crm.hm_territory_product_relation on hm_territory_product_relation.territory_code = hm_territory.code
|
</sql>
|
|
<sql name="setTargetProductInfo">
|
update tgt_planning_product
|
inner join (
|
select product_code, max(product_name) product_name, max(id) id, sort
|
from dscn_crm.hm_product group by product_code
|
) hm_product on hm_product.product_code = tgt_planning_product.product_code
|
set tgt_planning_product.product_id = hm_product.id,
|
tgt_planning_product.product_name = hm_product.product_name,
|
tgt_planning_product.product_type = hm_product.sort
|
where tgt_planning_product.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionProductDetailConnection">
|
update tgt_planning_detail
|
inner join tgt_planning_product on tgt_planning_product.planning_id = tgt_planning_detail.planning_id
|
and tgt_planning_product.position_id = tgt_planning_detail.position_id
|
and tgt_planning_product.territory_id = tgt_planning_detail.territory_id
|
and tgt_planning_product.customer_id = tgt_planning_detail.customer_id
|
set tgt_planning_detail.planning_customer_id = tgt_planning_product.id
|
where tgt_planning_detail.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setTargetPositionProductPositionConnection">
|
update tgt_planning_product
|
inner join tgt_planning_position on tgt_planning_position.planning_id = tgt_planning_product.planning_id
|
and tgt_planning_position.position_id = tgt_planning_product.position_id
|
and tgt_planning_position.territory_id = tgt_planning_product.territory_id
|
set tgt_planning_product.planning_position_id = tgt_planning_position.id
|
where tgt_planning_product.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setPositionProductTarget">
|
update tgt_planning_product
|
inner join (
|
select planning_product_id,
|
sum(init_qty) init_qty, sum(init_amt) init_amt, sum(issue_qty) issue_qty, sum(issue_amt) issue_amt,
|
sum(final_qty) final_qty, sum(final_amt) final_amt, sum(pre_qty) pre_qty, sum(pre_amt) pre_amt,
|
sum(sales_qty) sales_qty, sum(sales_amt) sales_amt, sum(history_qty) history_qty, sum(history_amt) history_amt,
|
sum(vbp_productivity_amt) vbp_productivity_amt, sum(no_vbp_productivity_amt) no_vbp_productivity_amt
|
from tgt_planning_detail group by planning_product_id) v_planning_product on tgt_planning_product.id = v_planning_product.planning_product_id
|
set tgt_planning_product.init_amt = v_planning_product.init_amt, tgt_planning_product.init_qty = v_planning_product.init_qty,
|
tgt_planning_product.issue_amt = v_planning_product.issue_amt, tgt_planning_product.issue_qty = v_planning_product.issue_qty,
|
tgt_planning_product.pre_amt = v_planning_product.pre_amt, tgt_planning_product.pre_qty = v_planning_product.pre_qty,
|
tgt_planning_product.final_amt = v_planning_product.final_amt, tgt_planning_product.final_qty = v_planning_product.final_qty ,
|
tgt_planning_product.sales_amt = v_planning_product.sales_amt, tgt_planning_product.sales_qty = v_planning_product.sales_qty ,
|
tgt_planning_product.history_amt = v_planning_product.history_amt, tgt_planning_product.history_qty = v_planning_product.history_qty ,
|
tgt_planning_product.vbp_productivity_amt = v_planning_product.vbp_productivity_amt, tgt_planning_product.no_vbp_productivity_amt = v_planning_product.no_vbp_productivity_amt
|
where tgt_planning_product.planning_id = '@{planning_id}'
|
</sql>
|
</dataSpace>
|
|
<dataSpace name="position-sku-target">
|
|
<sql name="createPositionSkuTarget">
|
INSERT INTO tgt_planning_sku (
|
id, idx, planning_id, state_code, state_name, year, quarter, quarter_no,
|
position_type, position_id, position_code, position_name, territory_id, parent_territory_id, spec_code, has_joint_manager,
|
init_rate,init_rate_team,actual_rate,actual_rate_team,init_qty,init_amt,issue_qty,issue_amt,
|
final_qty,final_amt,pre_qty,pre_amt,sales_qty ,sales_amt, history_qty, history_amt, vbp_productivity_amt,no_vbp_productivity_amt,
|
is_modified, creator_id, creator_name, create_time, update_time, updator_id, updator_name)
|
select
|
MD5(UUID_SHORT())id, null idx, tgt_planning.id planning_id, tgt_planning.state_code, '初版' state_name, tgt_planning.year, tgt_planning.quarter, tgt_planning.quarter_no,
|
organization_position.position_type, organization_position.id position_id, organization_position.position_code, organization_position.name position_name,
|
hm_territory.id territory_id ,hm_territory.parent_id parent_territory_id, md_product_sku.sku_code spec_code, 'F'has_joint_manager,
|
0 init_rate, 0 init_rate_team, 0 actual_rate, 0 actual_rate_team, 0 init_qty, 0 init_amt, 0 issue_qty, 0 issue_amt, 0 final_qty, 0 final_amt, 0 pre_qty, 0 pre_amt, 0 sales_qty , 0 sales_amt, 0 history_qty, 0 history_amt, 0 vbp_productivity_amt, 0 no_vbp_productivity_amt,
|
'F' is_modified, '@{creator_id}' creator_id, '@{creator_name}' creator_name,now() create_time, now()update_time, '@{creator_id}' updator_id, '@{creator_name}' updator_name
|
from dscn_crm.hm_territory
|
left join tgt_planning on tgt_planning.id = '@{planning_id}'
|
left join dscn_crm.hm_position_territory on hm_position_territory.territory_id = hm_territory.id
|
left join dscn_crm.organization_position on organization_position.id = hm_position_territory.position_id
|
inner join hm_territory_product_relation on hm_territory_product_relation.territory_code = hm_territory.code
|
left join dscn_crm.md_product_sku on md_product_sku.product_code = hm_territory_product_relation.product_code
|
</sql>
|
|
<sql name="setTargetSkuInfo">
|
update tgt_planning_sku
|
inner join dscn_crm.md_product_sku on md_product_sku.sku_code= tgt_planning_sku.spec_code
|
set tgt_planning_sku.sku_id = md_product_sku.sku_id,
|
tgt_planning_sku.spec_name = md_product_sku.sku_code,
|
tgt_planning_sku.product_id = md_product_sku.product_id,
|
tgt_planning_sku.product_code = md_product_sku.product_code,
|
tgt_planning_sku.product_name = md_product_sku.product_name
|
where tgt_planning_sku.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionSkuDetailConnection">
|
update tgt_planning_detail
|
inner join tgt_planning_sku on tgt_planning_sku.planning_id = tgt_planning_detail.planning_id and tgt_planning_sku.position_id = tgt_planning_detail.position_id
|
and tgt_planning_sku.territory_id = tgt_planning_detail.territory_id
|
and tgt_planning_sku.spec_code = tgt_planning_detail.sku_code
|
set tgt_planning_detail.planning_sku_id =tgt_planning_sku.id
|
where tgt_planning_detail.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setTargetPositionSkuPositionConnection">
|
update tgt_planning_sku
|
inner join tgt_planning_position on tgt_planning_position.planning_id = tgt_planning_sku.planning_id
|
and tgt_planning_position.position_id = tgt_planning_sku.position_id and tgt_planning_position.territory_id = tgt_planning_sku.territory_id
|
set tgt_planning_sku.planning_position_id =tgt_planning_position.id
|
where tgt_planning_sku.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setPositionSkuTarget">
|
update tgt_planning_sku
|
inner join (
|
select planning_sku_id,
|
sum(init_qty) init_qty, sum(init_amt) init_amt , sum(issue_qty) issue_qty, sum(issue_amt) issue_amt,
|
sum(final_qty) final_qty, sum(final_amt) final_amt , sum(pre_qty) pre_qty , sum(pre_amt) pre_amt,
|
sum(sales_qty) sales_qty, sum(sales_amt) sales_amt, sum(history_qty) history_qty , sum(history_amt) history_amt,
|
sum(vbp_productivity_amt) vbp_productivity_amt , sum(no_vbp_productivity_amt) no_vbp_productivity_amt
|
from tgt_planning_detail group by planning_sku_id) v_planning_sku on tgt_planning_sku.id = v_planning_sku.planning_sku_id
|
set tgt_planning_sku.init_amt = v_planning_sku.init_amt, tgt_planning_sku.init_qty = v_planning_sku.init_qty,
|
tgt_planning_sku.issue_amt = v_planning_sku.issue_amt, tgt_planning_sku.issue_qty = v_planning_sku.issue_qty,
|
tgt_planning_sku.pre_amt = v_planning_sku.pre_amt, tgt_planning_sku.pre_qty = v_planning_sku.pre_qty,
|
tgt_planning_sku.final_amt = v_planning_sku.final_amt, tgt_planning_sku.final_qty = v_planning_sku.final_qty ,
|
tgt_planning_sku.sales_amt = v_planning_sku.sales_amt, tgt_planning_sku.sales_qty = v_planning_sku.sales_qty ,
|
tgt_planning_sku.history_amt = v_planning_sku.history_amt, tgt_planning_sku.history_qty = v_planning_sku.history_qty ,
|
tgt_planning_sku.vbp_productivity_amt = v_planning_sku.vbp_productivity_amt, tgt_planning_sku.no_vbp_productivity_amt = v_planning_sku.no_vbp_productivity_amt
|
where tgt_planning_sku.planning_id = '@{planning_id}'
|
</sql>
|
</dataSpace>
|
|
<dataSpace name="target-common-action">
|
<sql name="clearTarget">
|
truncate table @{tableName}
|
</sql>
|
|
<sql name="setTargetParentPosition">
|
update @{tableName} doc
|
inner join dscn_crm.hm_position_territory on hm_position_territory.territory_id = doc.parent_territory_id
|
set doc.parent_position_id = hm_position_territory.position_id
|
where doc.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetPositionEmpty">
|
update @{tableName} doc
|
set doc.has_empty_position = 'T'
|
where employee_id is null and doc.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetJointManager">
|
update @{tableName} doc
|
inner join (
|
select territory_id
|
from dscn_crm.hm_position_territory
|
group by territory_id HAVING count(*) >1
|
) join_manager_territory on join_manager_territory.territory_id = doc.territory_id
|
set doc.has_joint_manager = 'T'
|
where doc.planning_id = '@{planning_id}';
|
</sql>
|
|
<sql name="setTargetProductPrice">
|
update @{tableName} doc
|
left join (
|
select product_code, quarter_no, max(unit_price) unit_price
|
from dscn_crm.hm_rsm_product_province group by product_code, quarter_no
|
) hm_rsm_product_province on hm_rsm_product_province.product_code = doc.sku_id and hm_rsm_product_province.quarter_no = doc.quarter_no
|
set doc.price = ifnull(hm_rsm_product_province.unit_price,0)
|
where doc.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetContribution">
|
update @{tableName} doc
|
inner join tgt_planning on tgt_planning.id = doc.planning_id
|
set doc.init_rate = doc.init_qty/tgt_planning.init_qty,
|
doc.actual_rate = doc.final_qty/ tgt_planning.final_qty
|
where doc.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetMRContribution">
|
update @{tableName} doc
|
inner join (
|
select planning_position_id, sum(init_qty) init_qty, sum(final_qty) final_qty
|
from @{tableName} doc
|
group by planning_position_id ) v_planning_position on v_planning_position.planning_position_id = doc.planning_position_id
|
set doc.init_rate_team = if(v_planning_position.init_qty = 0 , 0, doc.init_qty / v_planning_position.init_qty),
|
doc.actual_rate_team = if(v_planning_position.final_qty = 0 , 0, doc.final_qty / v_planning_position.final_qty)
|
where doc.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setTargetGeo">
|
update tgt_planning_customer doc
|
inner join md_geo_city on md_geo_city.code = doc.city_code
|
set doc.city = md_geo_city.name,
|
doc.province = md_geo_city.province
|
where doc.planning_id = '@{planning_id}'
|
</sql>
|
</dataSpace>
|
|
<dataSpace name="target-active-action">
|
<sql name="insertWorkingDetail">
|
INSERT INTO tgt_working_detail (
|
id, idx, planning_id, planning_position_id, planning_customer_id, planning_product_id,
|
planning_sku_id, state_code, state_name, year, quarter, quarter_no, month, month_no, month_ratio,
|
position_type, position_id, position_code, position_name, parent_position_id, territory_id, parent_territory_id,
|
co_manage_ratio, co_manage_type_code, co_manage_type_name, customer_id, customer_code, customer_name,
|
product_id, product_code, product_name, sku_id, sku_code, sku_name,
|
city_code, city, province_code, province, price,
|
init_rate, init_rate_team, actual_rate, actual_rate_team, init_qty, init_amt,
|
issue_qty, issue_amt, final_qty, final_amt, pre_qty, pre_amt, sales_qty, sales_amt,
|
create_time, update_time, creator_id, creator_name, updator_id, updator_name)
|
select
|
MD5(UUID_SHORT()) id, tgt_planning_detail.idx, planning_id, planning_position_id, planning_customer_id, planning_product_id,
|
planning_sku_id, state_code, state_name, tgt_planning_detail.year, tgt_planning_detail.quarter, tgt_planning_detail.quarter_no,
|
tgt_month_contribute.month, tgt_month_contribute.month_no, tgt_month_contribute.rate month_ratio,
|
position_type, position_id, position_code, position_name, parent_position_id, territory_id, parent_territory_id,
|
co_manage_ratio, co_manage_type_code, co_manage_type_name, customer_id, customer_code, customer_name,
|
product_id, product_code, product_name, tgt_planning_detail.sku_id, sku_code, sku_name,
|
city_code, city, province_code, province, price,
|
init_rate, init_rate_team, actual_rate, actual_rate_team, tgt_month_contribute.rate *init_qty, tgt_month_contribute.rate *init_amt,
|
tgt_month_contribute.rate *issue_qty, tgt_month_contribute.rate *issue_amt, tgt_month_contribute.rate *final_qty,
|
tgt_month_contribute.rate *final_amt, tgt_month_contribute.rate *pre_qty, tgt_month_contribute.rate *pre_amt,
|
tgt_month_contribute.rate *sales_qty, tgt_month_contribute.rate *sales_amt,
|
create_time, update_time, creator_id, creator_name, updator_id, updator_name
|
from tgt_planning_detail
|
inner join tgt_month_contribute on tgt_month_contribute.quarter_no = tgt_planning_detail.quarter_no
|
where tgt_planning_detail.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setMonthProductivity">
|
update tgt_working_detail
|
inner join tgt_productity_month on tgt_productity_month.institution_id = tgt_working_detail.customer_id
|
and tgt_productity_month.sku_id = tgt_working_detail.sku_id
|
and tgt_productity_month.`data_version` = tgt_working_detail.month_no
|
set tgt_working_detail.vbp_productivity_amt = if(tgt_productity_month.productivity is null and tgt_productity_month.tag != 'VBP', 0, tgt_productity_month.productivity),
|
tgt_working_detail.no_vbp_productivity_amt = if(tgt_productity_month.productivity is null and tgt_productity_month.tag != 'NoVBP', 0, tgt_productity_month.productivity)
|
where tgt_working_detail.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setMonthHistory">
|
update tgt_working_detail
|
left join (
|
select year, month, territory_id, position_id, customer_id, sku_id,sum(final_amt) final_amt, sum(final_qty) final_qty
|
from tgt_working_detail group by year, month, territory_id, position_id,customer_id,sku_id
|
) history_planning_detail on history_planning_detail.year + 1 = tgt_working_detail.year
|
and history_planning_detail.month = tgt_working_detail.month
|
and history_planning_detail.territory_id = tgt_working_detail.territory_id
|
and history_planning_detail.position_id = tgt_working_detail.position_id
|
and history_planning_detail.sku_id = tgt_working_detail.sku_id
|
and history_planning_detail.customer_id = tgt_working_detail.customer_id
|
set tgt_working_detail.history_amt = ifnull(history_planning_detail.final_amt, 0) ,
|
tgt_working_detail.history_qty = ifnull(history_planning_detail.final_qty, 0)
|
where tgt_working_detail.planning_id = '@{planning_id}'
|
</sql>
|
|
<sql name="setMonthMom">
|
update tgt_working_detail
|
left join (
|
select year, month, territory_id, position_id, customer_id, sku_id,sum(final_amt) final_amt, sum(final_qty) final_qty
|
from tgt_working_detail group by year, month, territory_id, position_id,customer_id,sku_id
|
) history_planning_detail on history_planning_detail.year*4 + history_planning_detail.month + 1= tgt_working_detail.year*4 + tgt_working_detail.month
|
and history_planning_detail.territory_id = tgt_working_detail.territory_id
|
and history_planning_detail.position_id = tgt_working_detail.position_id
|
and history_planning_detail.sku_id = tgt_working_detail.sku_id
|
and history_planning_detail.customer_id = tgt_working_detail.customer_id
|
set tgt_working_detail.mom_amt = ifnull(history_planning_detail.final_amt, 0) ,
|
tgt_working_detail.mom_qty = ifnull(history_planning_detail.final_qty, 0)
|
where tgt_working_detail.planning_id = '@{planning_id}'
|
</sql>
|
</dataSpace>
|
</sqls>
|