Files
income_payments_management/db/统计视图(新).sql
T

2134 lines
108 KiB
SQL

drop view v_statistical;
create view v_statistical as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
receivableAmount,
allMoney,
comeAllMoney,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
paidNoTaxAmount,
invoiceNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
estimatedArrivalDate,
pp.pack
from (SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.receivable_amount as receivableAmount,
pwgs.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
GROUP_CONCAT(DISTINCT DATE_FORMAT(vcpr.payment_date,'%Y-%m')) as confirmDate,
pwgs.estimated_arrival_date as estimatedArrivalDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join v_confirm_payment_record vcpr on pwgs.id = vcpr.project_id
left join v_payment_record vpr on pwgs.id = vpr.project_id
left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.receivable_amount as receivableAmount,
pcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
vcpr.payment_date as confirmDate,
pcp.estimated_arrival_date as estimatedArrivalDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pcp.id = vcpr.project_id
left join v_payment_record vpr on pcp.id = vpr.project_id
left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.amount_receivable as receivableAmount,
pmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pmps.estimated_arrival_date as estimatedArrivalDate,
pmps.create_time as createTime
FROM pay_member_project_subitem pmps
left join pay_member_project pmp on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pmps.id = vcpr.project_id
left join v_payment_record vpr on pmps.id = vpr.project_id
left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.amount_receivable as receivableAmount,
pms.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pms.estimated_arrival_date as estimatedArrivalDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pms.id = vcpr.project_id
left join v_payment_record vpr on pms.id = vpr.project_id
left join v_mail_bill_project vmbp on pms.id = vmbp.project_id
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.amount_receivable as receivableAmount,
tmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tmps.id = vcpr.project_id
left join v_payment_record vpr on tmps.id = vpr.project_id
left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.amount_receivable as receivableAmount,
tcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tcp.id = vcpr.project_id
left join v_payment_record vpr on tcp.id = vpr.project_id
left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
group by tcp.id
) pp
where pp.allMoney is not null
and pp.allMoney != 0
order by pp.createTime;
drop view v_statistical_confirm;
create view v_statistical_confirm as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
receivableAmount,
allMoney,
comeAllMoney,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
invoiceNoTaxAmount,
paidNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
estimatedArrivalDate,
pp.pack
from (SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.receivable_amount as receivableAmount,
pwgs.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
(select GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) from pay_working_group_subitem_contacts pwgsc where pwgsc.working_group_sub_id = pwgs.id) as contactsName,
vcpr.payment_date as confirmDate,
pwgs.estimated_arrival_date as estimatedArrivalDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join v_confirm_payment_record vcpr on pwgs.id = vcpr.project_id
left join v_payment_record vpr on pwgs.id = vpr.project_id
left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.receivable_amount as receivableAmount,
pcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
vcpr.payment_date as confirmDate,
pcp.estimated_arrival_date as estimatedArrivalDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pcp.id = vcpr.project_id
left join v_payment_record vpr on pcp.id = vpr.project_id
left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.amount_receivable as receivableAmount,
pmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pmps.estimated_arrival_date as estimatedArrivalDate,
pmps.create_time as createTime
FROM pay_member_project pmp
right join pay_member_project_subitem pmps on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pmps.id = vcpr.project_id
left join v_payment_record vpr on pmps.id = vpr.project_id
left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.amount_receivable as receivableAmount,
pms.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pms.estimated_arrival_date as estimatedArrivalDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pms.id = vcpr.project_id
left join v_payment_record vpr on pms.id = vpr.project_id
left join v_mail_bill_project vmbp on pms.id = vmbp.project_id
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.amount_receivable as receivableAmount,
tmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tmps.id = vcpr.project_id
left join v_payment_record vpr on tmps.id = vpr.project_id
left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.amount_receivable as receivableAmount,
tcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tcp.id = vcpr.project_id
left join v_payment_record vpr on tcp.id = vpr.project_id
left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
group by tcp.id
) pp
where pp.allMoney is not null
and pp.allMoney != 0
order by pp.createTime;
drop view v_statistical_all;
create view v_statistical_all as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
receivableAmount,
allMoney,
comeAllMoney,
billMoney as invoiceAmount,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
invoiceNoTaxAmount,
paidNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
pp.pack
from (SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.receivable_amount as receivableAmount,
pwgs.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
vcpr.payment_date as confirmDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join v_confirm_payment_record vcpr on pwgs.id = vcpr.project_id
left join v_payment_record vpr on pwgs.id = vpr.project_id
left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id
where pack = 0 or year < 2024
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.receivable_amount as receivableAmount,
pcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
vcpr.payment_date as confirmDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pcp.id = vcpr.project_id
left join v_payment_record vpr on pcp.id = vpr.project_id
left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id
where pack = 0 or year < 2024
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.amount_receivable as receivableAmount,
pmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pmps.create_time as createTime
FROM pay_member_project pmp
right join pay_member_project_subitem pmps on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pmps.id = vcpr.project_id
left join v_payment_record vpr on pmps.id = vpr.project_id
left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id
where pack = 0 or particular_year < 2024
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.amount_receivable as receivableAmount,
pms.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pms.id = vcpr.project_id
left join v_payment_record vpr on pms.id = vpr.project_id
left join v_mail_bill_project vmbp on pms.id = vmbp.project_id
where pack = 0 or particular_year < 2024
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.amount_receivable as receivableAmount,
tmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tmps.id = vcpr.project_id
left join v_payment_record vpr on tmps.id = vpr.project_id
left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id
where pack = 0 or year < 2024
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.amount_receivable as receivableAmount,
tcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tcp.id = vcpr.project_id
left join v_payment_record vpr on tcp.id = vpr.project_id
left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
where pack = 0 or year < 2024
group by tcp.id
UNION ALL
SELECT
ppc.id AS id,
ppc.id AS superId,
ppc.company_temporary_name AS projectName,
ppc.pack_principal_name AS principalName,
ppc.company_id AS chargeCompanyId,
ppc.company_temporary_id AS chargeCompanyTemporaryId,
ppc.company_temporary_name AS chargeCompanyTemporaryName,
22 AS chargeUse,
sd.depart_name AS depart,
1 AS pack,
ppc.pack_year AS year,
ppc.in_account AS payStatue,
sd.org_code AS departCode,
sd.id AS departId,
ppc.pack_principal_id AS principalNameId,
8 AS type,
ppc.receivable_amount AS receivableAmount,
ppc.no_tax_amount AS allMoney,
ppc.paid_amount AS comeAllMoney,
ppc.invoice_amount AS billMoney,
ppc.confirm_amount AS confirmAmount,
ppc.paid_no_tax_amount AS paidNoTaxAmount,
ppc.invoice_no_tax_amount AS invoiceNoTaxAmount,
ppc.confirm_no_tax_amount AS confirmNoTaxAmount,
ppc.pack_contact_temporary_name AS contactsName,
group_concat( date_format( pcpr.payment_date, '%Y-%m' ) SEPARATOR ',' ) AS confirmDate,
ppc.create_time AS createTime
FROM pay_pack_company ppc
LEFT JOIN sys_user su ON ppc.pack_principal_id = su.id
LEFT JOIN sys_depart sd ON su.depart_ids = sd.id
LEFT JOIN pay_confirm_payment_record pcpr ON ppc.id = pcpr.project_id
GROUP BY
ppc.id
) pp
order by pp.createTime;
drop view v_meeting_pack_statistical;
create view v_meeting_pack_statistical as
SELECT
p1.id,
p1.meeting_id,
p1.company_name,
p1.company_contact_name,
p1.pay_mode,
p1.amount_receivable AS allMoney,
p1.confirm_amount AS confirm_amount,
p1.invoice_amount AS billMoney,
p1.paid_amount AS comeAllMoney,
case
when p2.is_wasic = 1
then p2.meeting_costs_two_topic
else p2.meeting_costs
end meeting_costs_a,
case
when p2.is_wasic = 1
then p2.meeting_costs_three_topic
else p2.meeting_costs_vip
end meeting_costs_b,
p2.meeting_name,
p2.meeting_type,
p2.particular_year as year,
( SELECT DATE_FORMAT( payment_date, '%Y' ) FROM pay_confirm_payment_record p3 WHERE p3.project_id = p1.id LIMIT 1 ) AS payment_year
FROM
pay_meeting_situation p1
LEFT JOIN pay_meeting p2 ON p1.meeting_id = p2.id;
-- v_project_id视图修改
drop view v_project_id;
create view v_project_id as
SELECT
pay_working_group_subitem.id AS id
FROM
pay_working_group_subitem UNION ALL
SELECT
pay_common_project.id AS id
FROM
pay_common_project UNION ALL
SELECT
pay_member_project_subitem.id AS id
FROM
pay_member_project_subitem UNION ALL
SELECT
pay_meeting_situation.id AS id
FROM
pay_meeting_situation UNION ALL
SELECT
tb_member_project_subitem.id AS id
FROM
tb_member_project_subitem UNION ALL
SELECT
tb_certificate_payment.id AS id
FROM
tb_certificate_payment UNION ALL
SELECT
pay_pack_company.id AS id
FROM
pay_pack_company;
drop view if exists v_statistical_pack;
create view v_statistical_pack as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
receivableAmount,
allMoney,
comeAllMoney,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
paidNoTaxAmount,
invoiceNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
estimatedArrivalDate,
pp.pack
from (SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.receivable_amount as receivableAmount,
pwgs.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
GROUP_CONCAT(DISTINCT DATE_FORMAT(vcpr.payment_date,'%Y-%m')) as confirmDate,
pwgs.estimated_arrival_date as estimatedArrivalDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join v_confirm_payment_record vcpr on pwgs.id = vcpr.project_id
left join v_payment_record vpr on pwgs.id = vpr.project_id
left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id
where pack = 0 or year < 2024
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.receivable_amount as receivableAmount,
pcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
vcpr.payment_date as confirmDate,
pcp.estimated_arrival_date as estimatedArrivalDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pcp.id = vcpr.project_id
left join v_payment_record vpr on pcp.id = vpr.project_id
left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id
where pack = 0 or year < 2024
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.amount_receivable as receivableAmount,
pmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pmps.estimated_arrival_date as estimatedArrivalDate,
pmps.create_time as createTime
FROM pay_member_project_subitem pmps
left join pay_member_project pmp on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pmps.id = vcpr.project_id
left join v_payment_record vpr on pmps.id = vpr.project_id
left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id
where pack = 0 or particular_year < 2024
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.amount_receivable as receivableAmount,
pms.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pms.estimated_arrival_date as estimatedArrivalDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pms.id = vcpr.project_id
left join v_payment_record vpr on pms.id = vpr.project_id
left join v_mail_bill_project vmbp on pms.id = vmbp.project_id
where pack = 0 or particular_year < 2024
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.amount_receivable as receivableAmount,
tmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tmps.id = vcpr.project_id
left join v_payment_record vpr on tmps.id = vpr.project_id
left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id
where pack = 0 or year < 2024
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.amount_receivable as receivableAmount,
tcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tcp.id = vcpr.project_id
left join v_payment_record vpr on tcp.id = vpr.project_id
left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
where pack = 0 or year < 2024
group by tcp.id
union all
SELECT
ppc.id AS id,
ppc.id AS superId,
ppc.company_temporary_name AS projectName,
ppc.pack_principal_name AS principalName,
ppc.company_id AS chargeCompanyId,
ppc.company_temporary_id AS chargeCompanyTemporaryId,
ppc.company_temporary_name AS chargeCompanyTemporaryName,
22 AS chargeUse,
sd.depart_name AS depart,
1 AS pack,
ppc.pack_year AS year,
ppc.in_account AS payStatue,
sd.org_code AS departCode,
sd.id AS departId,
ppc.pack_principal_id AS principalNameId,
8 AS type,
ppc.receivable_amount AS receivableAmount,
ppc.no_tax_amount AS allMoney,
vpr.amount_received AS comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received AS confirmAmount,
vpr.no_tax_amount AS paidNoTaxAmount,
vmbp.no_tax_amount AS invoiceNoTaxAmount,
vcpr.no_tax_amount AS confirmNoTaxAmount,
ppc.pack_contact_temporary_name AS contactsName,
vcpr.payment_date AS confirmDate,
ppc.estimated_arrival_date AS estimatedArrivalDate,
ppc.create_time AS createTime
FROM pay_pack_company ppc
LEFT JOIN sys_user su ON ppc.pack_principal_id = su.id
LEFT JOIN sys_depart sd ON su.depart_ids = sd.id
LEFT JOIN v_confirm_payment_record vcpr ON ppc.id = vcpr.project_id
LEFT JOIN v_payment_record vpr ON ppc.id = vpr.project_id
LEFT JOIN v_mail_bill_project vmbp ON ppc.id = vmbp.project_id
GROUP BY ppc.id
) pp
where pp.allMoney is not null
and pp.allMoney != 0
order by pp.createTime;
drop view if exists v_statistical_confirm_pack;
create view v_statistical_confirm_pack as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
receivableAmount,
allMoney,
comeAllMoney,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
invoiceNoTaxAmount,
paidNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
estimatedArrivalDate,
pp.pack
from (SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.receivable_amount as receivableAmount,
pwgs.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
(select GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) from pay_working_group_subitem_contacts pwgsc where pwgsc.working_group_sub_id = pwgs.id) as contactsName,
vcpr.payment_date as confirmDate,
pwgs.estimated_arrival_date as estimatedArrivalDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join v_confirm_payment_record vcpr on pwgs.id = vcpr.project_id
left join v_payment_record vpr on pwgs.id = vpr.project_id
left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id
where pack = 0 or year < 2024
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.receivable_amount as receivableAmount,
pcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
vcpr.payment_date as confirmDate,
pcp.estimated_arrival_date as estimatedArrivalDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pcp.id = vcpr.project_id
left join v_payment_record vpr on pcp.id = vpr.project_id
left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id
where pack = 0 or year < 2024
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.amount_receivable as receivableAmount,
pmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pmps.estimated_arrival_date as estimatedArrivalDate,
pmps.create_time as createTime
FROM pay_member_project pmp
right join pay_member_project_subitem pmps on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pmps.id = vcpr.project_id
left join v_payment_record vpr on pmps.id = vpr.project_id
left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id
where pack = 0 or particular_year < 2024
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.amount_receivable as receivableAmount,
pms.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
vcpr.payment_date as confirmDate,
pms.estimated_arrival_date as estimatedArrivalDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on pms.id = vcpr.project_id
left join v_payment_record vpr on pms.id = vpr.project_id
left join v_mail_bill_project vmbp on pms.id = vmbp.project_id
where pack = 0 or particular_year < 2024
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.amount_receivable as receivableAmount,
tmps.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tmps.id = vcpr.project_id
left join v_payment_record vpr on tmps.id = vpr.project_id
left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id
where pack = 0 or year < 2024
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.amount_receivable as receivableAmount,
tcp.no_tax_amount as allMoney,
vpr.amount_received as comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received as confirmAmount,
vpr.no_tax_amount as paidNoTaxAmount,
vmbp.no_tax_amount as invoiceNoTaxAmount,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join v_confirm_payment_record vcpr on tcp.id = vcpr.project_id
left join v_payment_record vpr on tcp.id = vpr.project_id
left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
where pack = 0 or year < 2024
group by tcp.id
UNION ALL
SELECT
ppc.id AS id,
ppc.id AS superId,
ppc.company_temporary_name AS projectName,
ppc.pack_principal_name AS principalName,
ppc.company_id AS chargeCompanyId,
ppc.company_temporary_id AS chargeCompanyTemporaryId,
ppc.company_temporary_name AS chargeCompanyTemporaryName,
22 AS chargeUse,
sd.depart_name AS depart,
1 AS pack,
ppc.pack_year AS year,
ppc.in_account AS payStatue,
sd.org_code AS departCode,
sd.id AS departId,
ppc.pack_principal_id AS principalNameId,
8 AS type,
ppc.receivable_amount AS receivableAmount,
ppc.no_tax_amount AS allMoney,
vpr.amount_received AS comeAllMoney,
vmbp.invoice_amount AS billMoney,
vcpr.amount_received AS confirmAmount,
vpr.no_tax_amount AS paidNoTaxAmount,
vmbp.no_tax_amount AS invoiceNoTaxAmount,
vcpr.no_tax_amount AS confirmNoTaxAmount,
ppc.pack_contact_temporary_name AS contactsName,
vcpr.payment_date AS confirmDate,
ppc.estimated_arrival_date AS estimatedArrivalDate,
ppc.create_time AS createTime
FROM pay_pack_company ppc
LEFT JOIN sys_user su ON ppc.pack_principal_id = su.id
LEFT JOIN sys_depart sd ON su.depart_ids = sd.id
LEFT JOIN v_confirm_payment_record vcpr ON ppc.id = vcpr.project_id
LEFT JOIN v_payment_record vpr ON ppc.id = vpr.project_id
LEFT JOIN v_mail_bill_project vmbp ON ppc.id = vmbp.project_id
GROUP BY ppc.id
) pp
where pp.allMoney is not null
and pp.allMoney != 0
order by pp.createTime;
drop view if exists v_revenue_analysis_pack;
create view v_revenue_analysis_pack as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
allMoney,
comeAllMoney,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
invoiceNoTaxAmount,
paidNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
pp.pack
from (
SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.no_tax_amount as allMoney,
pwgs.paid_amount as comeAllMoney,
16 as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
GROUP_CONCAT(DISTINCT DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join pay_confirm_payment_record pcpr on pwgs.id = pcpr.project_id
where pwgs.charge_way = 2
and (pack = 0 or year < 2024)
group by pwgs.id
union all
SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.no_tax_amount as allMoney,
pwgs.paid_amount as comeAllMoney,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
GROUP_CONCAT(DISTINCT DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join pay_confirm_payment_record pcpr on pwgs.id = pcpr.project_id
where pwgs.charge_way != 2
and (pack = 0 or year < 2024)
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.no_tax_amount as allMoney,
pcp.paid_amount as comeAllMoney,
16 as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where (pack = 0 or year < 2024)
and charge_way = 2
group by pcp.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.no_tax_amount as allMoney,
pcp.paid_amount as comeAllMoney,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where (pack = 0 or year < 2024)
and charge_way != 2
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.no_tax_amount as allMoney,
pmps.paid_amount as comeAllMoney,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pmps.create_time as createTime
FROM pay_member_project pmp
right join pay_member_project_subitem pmps on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pmps.id = pcpr.project_id
where (pack = 0 or particular_year < 2024)
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.no_tax_amount as allMoney,
pms.paid_amount as comeAllMoney,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pms.id = pcpr.project_id
where (pack = 0 or particular_year < 2024)
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.no_tax_amount as allMoney,
tmps.paid_amount as comeAllMoney,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on tmps.id = pcpr.project_id
where (pack = 0 or year < 2024)
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.no_tax_amount as allMoney,
tcp.paid_amount as comeAllMoney,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on tcp.id = pcpr.project_id
where (pack = 0 or year < 2024)
group by tcp.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.company_temporary_name AS projectName,
pcp.pack_principal_name as principalName,
pcp.company_id AS chargeCompanyId,
pcp.company_temporary_id as chargeCompanyTemporaryId,
pcp.company_temporary_name AS chargeCompanyTemporaryName,
pcp.no_tax_amount as allMoney,
pcp.paid_amount as comeAllMoney,
22 as chargeUse,
sd.depart_name as depart,
1 as pack,
pcp.pack_year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.pack_principal_id as principalNameId,
1 as type,
pcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
pack_contact_temporary_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pcp.create_time as createTime
FROM pay_pack_company pcp
left JOIN sys_user su on (pcp.pack_principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
group by pcp.id
) pp
where pp.allMoney is not null
and pp.allMoney != 0
order by pp.createTime;
drop view if exists v_revenue_analysis;
create view v_revenue_analysis as
select pp.id as projectId,
pp.superId,
pp.projectName,
principalName,
chargeCompanyId,
chargeCompanyTemporaryId,
chargeCompanyTemporaryName,
allMoney,
comeAllMoney,
chargeUse,
depart,
createTime,
if(pp.pack = 0, '否', '是') as packText,
year,
payStatue,
departId,
departCode,
principalNameId,
type,
if(billMoney is null, 0, billMoney) as billMoney,
confirmAmount,
invoiceNoTaxAmount,
paidNoTaxAmount,
confirmNoTaxAmount,
contactsName,
confirmDate,
pp.pack
from (
SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.no_tax_amount as allMoney,
pwgs.paid_amount as comeAllMoney,
16 as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
GROUP_CONCAT(DISTINCT DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join pay_confirm_payment_record pcpr on pwgs.id = pcpr.project_id
where pwgs.charge_way = 2
group by pwgs.id
union all
SELECT pwgs.id,
pwg.id as superId,
pwg.working_group_project AS projectName,
pwg.principal_name_a as principalName,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id as chargeCompanyTemporaryId,
pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,
pwgs.no_tax_amount as allMoney,
pwgs.paid_amount as comeAllMoney,
pwgs.charge_use as chargeUse,
sd.depart_name as depart,
pwgs.pack as pack,
pwg.year as year,
pwgs.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pwg.principal_id_a as principalNameId,
2 as type,
pwgs.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
GROUP_CONCAT(DISTINCT pwgsc.contacts_temporary_name order by pwgsc.contacts_temporary_name) as contactsName,
GROUP_CONCAT(DISTINCT DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pwgs.create_time as createTime
FROM pay_working_group pwg
right join pay_working_group_subitem pwgs on (pwg.id = pwgs.working_group_id)
left JOIN sys_user su on (pwg.principal_id_a = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left JOIN pay_working_group_subitem_contacts pwgsc on pwgsc.working_group_sub_id = pwgs.id
left join pay_confirm_payment_record pcpr on pwgs.id = pcpr.project_id
where pwgs.charge_way != 2
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.no_tax_amount as allMoney,
pcp.paid_amount as comeAllMoney,
16 as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where charge_way = 2
group by pcp.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.no_tax_amount as allMoney,
pcp.paid_amount as comeAllMoney,
pcp.charge_use as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where charge_way != 2
group by pcp.id
union all
SELECT pmps.id,
pmp.id as superId,
pmp.project_name AS projectName,
su.realname as principalName,
pmps.company_id AS chargeCompanyId,
pmps.company_id as chargeCompanyTemporaryId,
pmps.company_name AS chargeCompanyTemporaryName,
pmps.no_tax_amount as allMoney,
pmps.paid_amount as comeAllMoney,
pmps.charge_use as chargeUse,
sd.depart_name as depart,
pmps.pack as pack,
pmp.particular_year as year,
pmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pmp.director_id as principalNameId,
4 as type,
pmps.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pmps.create_time as createTime
FROM pay_member_project pmp
right join pay_member_project_subitem pmps on (pmp.id = pmps.project_id)
left JOIN sys_user su on (pmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pmps.id = pcpr.project_id
group by pmps.id
union all
SELECT pms.id,
pm.id as superId,
pm.meeting_name AS projectName,
su.realname as principalName,
pms.company_id AS chargeCompanyId,
pms.company_id as chargeCompanyTemporaryId,
pms.company_name AS chargeCompanyTemporaryName,
pms.no_tax_amount as allMoney,
pms.paid_amount as comeAllMoney,
pms.charge_use as chargeUse,
sd.depart_name as depart,
pms.pack as pack,
pm.particular_year as year,
pms.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pm.director_id as principalNameId,
3 as type,
pms.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
company_contact_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pms.create_time as createTime
FROM pay_meeting pm
right join pay_meeting_situation pms on (pm.id = pms.meeting_id)
left JOIN sys_user su on (pm.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pms.id = pcpr.project_id
group by pms.id
union all
SELECT tmps.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tmps.company_id AS chargeCompanyId,
tmps.company_id as chargeCompanyTemporaryId,
tmps.company_name AS chargeCompanyTemporaryName,
tmps.no_tax_amount as allMoney,
tmps.paid_amount as comeAllMoney,
tmps.charge_use as chargeUse,
sd.depart_name as depart,
tmps.pack as pack,
tmp.year as year,
tmps.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
5 as type,
tmps.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on tmps.id = pcpr.project_id
group by tmps.id
union all
SELECT tcp.id,
tmp.id as superId,
tmp.project_name AS projectName,
su.realname as principalName,
tcp.company_id AS chargeCompanyId,
tcp.company_id as chargeCompanyTemporaryId,
tcp.company_name AS chargeCompanyTemporaryName,
tcp.no_tax_amount as allMoney,
tcp.paid_amount as comeAllMoney,
tcp.charge_use as chargeUse,
sd.depart_name as depart,
tcp.pack as pack,
tmp.year as year,
tcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
tmp.director_id as principalNameId,
6 as type,
tcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
tcp.create_time as createTime
FROM tb_member_project tmp
left join tb_certificate_payment tcp on (tmp.id = tcp.project_id)
left JOIN sys_user su on (tmp.director_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on tcp.id = pcpr.project_id
group by tcp.id
) pp
where pp.allMoney is not null
and pp.allMoney != 0
order by pp.createTime;
-- 20240705 标协会员的视图创建
drop view if exists v_member_project_subitem;
CREATE VIEW v_member_project_subitem AS
select t1.id,
t1.member_no AS member_no,
t1.company_id AS company_id,
t1.company_name AS company_name,
t1.liaison_man_id AS liaison_man_id,
t1.member_status AS member_status,
t1.effective_date AS effective_date,
t1.invalidation_date AS invalidation_date,
t1.create_time AS create_time,
t1.project_id AS project_id
from tb_member_project_subitem t1
join
(select tb_member_project_subitem.company_id AS company_id,
max(tb_member_project_subitem.create_time) AS max_create_time
from tb_member_project_subitem
group by tb_member_project_subitem.company_id) t2 on t1.company_id = t2.company_id
and t1.create_time = t2.max_create_time
where t1.member_status is not null;