diff --git a/db/统计视图.sql b/db/统计视图.sql index fb2fa311..4c0dcd3b 100644 --- a/db/统计视图.sql +++ b/db/统计视图.sql @@ -947,4 +947,26 @@ from (SELECT pwgs.id, left join pay_confirm_payment_record pcpr on tcp.id = pcpr.project_id group by tcp.id ) pp -order by pp.createTime; \ No newline at end of file +order by pp.createTime; + +create view v_confirm_payment_record as +select project_id, + sum(amount_received) as amount_received, + sum(no_tax_amount) as no_tax_amount, + GROUP_CONCAT(DATE_FORMAT(payment_date, '%Y-%m')) as payment_date +from pay_confirm_payment_record +group by project_id; + +create view v_payment_record as +select project_id, + sum(amount_received) as amount_received, + sum(no_tax_amount) as no_tax_amount +from pay_payment_record +group by project_id; + +create view v_mail_bill_project as +select project_id, + sum(invoice_amount) as invoice_amount, + sum(no_tax_amount) as no_tax_amount +from pay_mail_bill_project +group by project_id; \ No newline at end of file diff --git a/db/统计视图(新).sql b/db/统计视图(新).sql new file mode 100644 index 00000000..4b832f9f --- /dev/null +++ b/db/统计视图(新).sql @@ -0,0 +1,505 @@ +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, + 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.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.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.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.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, + 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, + 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, + 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, + 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 + 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,pcpr.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, + 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 + 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,pcpr.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, + 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 + 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,pcpr.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, + 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 + 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,pcpr.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, + 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 + 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,pcpr.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, + 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 + 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,pcpr.id + ) pp +where pp.allMoney is not null + and pp.allMoney != 0 +order by pp.createTime; \ No newline at end of file