update 修改统计视图

This commit is contained in:
lijiarao
2024-07-15 18:06:46 +08:00
parent 519e40f8bd
commit c2dce605d0
6 changed files with 711 additions and 442 deletions
+655 -123
View File
@@ -250,43 +250,6 @@ from (SELECT pwgs.id,
left join v_payment_record vpr on tcp.id = vpr.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 left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
group by tcp.id 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 ) pp
where pp.allMoney is not null where pp.allMoney is not null
and pp.allMoney != 0 and pp.allMoney != 0
@@ -544,43 +507,6 @@ from (SELECT pwgs.id,
left join v_payment_record vpr on tcp.id = vpr.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 left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
group by tcp.id 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 ) pp
where pp.allMoney is not null where pp.allMoney is not null
and pp.allMoney != 0 and pp.allMoney != 0
@@ -652,6 +578,7 @@ from (SELECT pwgs.id,
left join v_confirm_payment_record vcpr on pwgs.id = vcpr.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_payment_record vpr on pwgs.id = vpr.project_id
left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id left join v_mail_bill_project vmbp on pwgs.id = vmbp.project_id
where pack = 0
group by pwgs.id group by pwgs.id
union all union all
SELECT pcp.id, SELECT pcp.id,
@@ -687,6 +614,7 @@ from (SELECT pwgs.id,
left join v_confirm_payment_record vcpr on pcp.id = vcpr.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_payment_record vpr on pcp.id = vpr.project_id
left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id left join v_mail_bill_project vmbp on pcp.id = vmbp.project_id
where pack = 0
group by pcp.id group by pcp.id
union all union all
SELECT pmps.id, SELECT pmps.id,
@@ -723,6 +651,7 @@ from (SELECT pwgs.id,
left join v_confirm_payment_record vcpr on pmps.id = vcpr.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_payment_record vpr on pmps.id = vpr.project_id
left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id left join v_mail_bill_project vmbp on pmps.id = vmbp.project_id
where pack = 0
group by pmps.id group by pmps.id
union all union all
SELECT pms.id, SELECT pms.id,
@@ -759,6 +688,7 @@ from (SELECT pwgs.id,
left join v_confirm_payment_record vcpr on pms.id = vcpr.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_payment_record vpr on pms.id = vpr.project_id
left join v_mail_bill_project vmbp on pms.id = vmbp.project_id left join v_mail_bill_project vmbp on pms.id = vmbp.project_id
where pack = 0
group by pms.id group by pms.id
union all union all
SELECT tmps.id, SELECT tmps.id,
@@ -795,6 +725,7 @@ from (SELECT pwgs.id,
left join v_confirm_payment_record vcpr on tmps.id = vcpr.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_payment_record vpr on tmps.id = vpr.project_id
left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id left join v_mail_bill_project vmbp on tmps.id = vmbp.project_id
where pack = 0
group by tmps.id group by tmps.id
union all union all
SELECT tcp.id, SELECT tcp.id,
@@ -831,42 +762,43 @@ from (SELECT pwgs.id,
left join v_confirm_payment_record vcpr on tcp.id = vcpr.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_payment_record vpr on tcp.id = vpr.project_id
left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id left join v_mail_bill_project vmbp on tcp.id = vmbp.project_id
where pack = 0
group by tcp.id group by tcp.id
UNION ALL # UNION ALL
SELECT # SELECT
`ppc`.`id` AS `id`, # ppc.id AS id,
`ppc`.`id` AS `superId`, # ppc.id AS superId,
`ppc`.`company_temporary_name` AS `projectName`, # ppc.company_temporary_name AS projectName,
`ppc`.`pack_principal_name` AS `principalName`, # ppc.pack_principal_name AS principalName,
`ppc`.`company_id` AS `chargeCompanyId`, # ppc.company_id AS chargeCompanyId,
`ppc`.`company_temporary_id` AS `chargeCompanyTemporaryId`, # ppc.company_temporary_id AS chargeCompanyTemporaryId,
`ppc`.`company_temporary_name` AS `chargeCompanyTemporaryName`, # ppc.company_temporary_name AS chargeCompanyTemporaryName,
22 AS `chargeUse`, # 22 AS chargeUse,
`sd`.`depart_name` AS `depart`, # sd.depart_name AS depart,
1 AS `pack`, # 1 AS pack,
`ppc`.`pack_year` AS `year`, # ppc.pack_year AS year,
`ppc`.`in_account` AS `payStatue`, # ppc.in_account AS payStatue,
`sd`.`org_code` AS `departCode`, # sd.org_code AS departCode,
`sd`.`id` AS `departId`, # sd.id AS departId,
`ppc`.`pack_principal_id` AS `principalNameId`, # ppc.pack_principal_id AS principalNameId,
8 AS `type`, # 8 AS type,
`ppc`.`receivable_amount` AS `receivableAmount`, # ppc.receivable_amount AS receivableAmount,
`ppc`.`no_tax_amount` AS `allMoney`, # ppc.no_tax_amount AS allMoney,
`ppc`.`paid_amount` AS comeAllMoney, # ppc.paid_amount AS comeAllMoney,
`ppc`.`invoice_amount` AS `billMoney`, # ppc.invoice_amount AS billMoney,
`ppc`.`confirm_amount` AS `confirmAmount`, # ppc.confirm_amount AS confirmAmount,
`ppc`.`paid_no_tax_amount` AS `paidNoTaxAmount`, # ppc.paid_no_tax_amount AS paidNoTaxAmount,
`ppc`.`invoice_no_tax_amount` AS `invoiceNoTaxAmount`, # ppc.invoice_no_tax_amount AS invoiceNoTaxAmount,
`ppc`.`confirm_no_tax_amount` AS `confirmNoTaxAmount`, # ppc.confirm_no_tax_amount AS confirmNoTaxAmount,
`ppc`.`pack_contact_temporary_name` AS `contactsName`, # ppc.pack_contact_temporary_name AS contactsName,
group_concat( date_format( `pcpr`.`payment_date`, '%Y-%m' ) SEPARATOR ',' ) AS `confirmDate`, # group_concat( date_format( pcpr.payment_date, '%Y-%m' ) SEPARATOR ',' ) AS confirmDate,
`ppc`.`create_time` AS `createTime` # ppc.create_time AS createTime
FROM `pay_pack_company` `ppc` # FROM pay_pack_company ppc
LEFT JOIN `sys_user` `su` ON `ppc`.`pack_principal_id` = `su`.`id` # 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 sys_depart sd ON su.depart_ids = sd.id
LEFT JOIN `pay_confirm_payment_record` `pcpr` ON `ppc`.`id` = `pcpr`.`project_id` # LEFT JOIN pay_confirm_payment_record pcpr ON ppc.id = pcpr.project_id
GROUP BY # GROUP BY
`ppc`.`id` # ppc.id
) pp ) pp
order by pp.createTime; order by pp.createTime;
@@ -904,30 +836,630 @@ FROM
drop view v_project_id; drop view v_project_id;
create view v_project_id as create view v_project_id as
SELECT SELECT
`pay_working_group_subitem`.`id` AS `id` pay_working_group_subitem.id AS id
FROM FROM
`pay_working_group_subitem` UNION ALL pay_working_group_subitem UNION ALL
SELECT SELECT
`pay_common_project`.`id` AS `id` pay_common_project.id AS id
FROM FROM
`pay_common_project` UNION ALL pay_common_project UNION ALL
SELECT SELECT
`pay_member_project_subitem`.`id` AS `id` pay_member_project_subitem.id AS id
FROM FROM
`pay_member_project_subitem` UNION ALL pay_member_project_subitem UNION ALL
SELECT SELECT
`pay_meeting_situation`.`id` AS `id` pay_meeting_situation.id AS id
FROM FROM
`pay_meeting_situation` UNION ALL pay_meeting_situation UNION ALL
SELECT SELECT
`tb_member_project_subitem`.`id` AS `id` tb_member_project_subitem.id AS id
FROM FROM
`tb_member_project_subitem` UNION ALL tb_member_project_subitem UNION ALL
SELECT SELECT
`tb_certificate_payment`.`id` AS `id` tb_certificate_payment.id AS id
FROM FROM
`tb_certificate_payment` UNION ALL tb_certificate_payment UNION ALL
SELECT SELECT
`pay_pack_company`.`id` AS `id` pay_pack_company.id AS id
FROM FROM
`pay_pack_company`; 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
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
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
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
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,
null 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
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
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
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
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
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
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,
null 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
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
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;
@@ -68,8 +68,9 @@ public class IndexController {
@ApiOperation(value = "科室总体统计") @ApiOperation(value = "科室总体统计")
@GetMapping(value = "/overallDepartmentStatistics") @GetMapping(value = "/overallDepartmentStatistics")
public Result<List<HistogramVO>> overallDepartmentStatistics(@RequestParam(name = "year",required = false) String year) { public Result<List<HistogramVO>> overallDepartmentStatistics(@RequestParam(name = "year",required = false) String year,
List<HistogramVO> histogramVOS = indexService.overallDepartmentStatistics(year); @RequestParam(name = "type",required = false) String type) {
List<HistogramVO> histogramVOS = indexService.overallDepartmentStatistics(year,type);
return Result.OK(histogramVOS); return Result.OK(histogramVOS);
} }
@@ -182,12 +182,15 @@ public class IndexService {
return list; return list;
} }
public List<HistogramVO> overallDepartmentStatistics(String year) { public List<HistogramVO> overallDepartmentStatistics(String year, String type) {
if(StringUtils.isBlank(year)){ if(StringUtils.isBlank(year)){
year = String.valueOf(DateUtil.year(new DateTime())); year = String.valueOf(DateUtil.year(new DateTime()));
} }
List<DepartStatistics> records = payWorkingGroupMapper.overallDepartmentStatistics(year); if(StringUtils.isBlank(type)){
List<DepartStatistics> all = payWorkingGroupMapper.allDepartmentStatistics(year); type = "1";
}
List<DepartStatistics> records = payWorkingGroupMapper.overallDepartmentStatistics(year,type);
List<DepartStatistics> all = payWorkingGroupMapper.allDepartmentStatistics(year,type);
for (DepartStatistics a : all) { for (DepartStatistics a : all) {
String departName = a.getDepartName(); String departName = a.getDepartName();
for (DepartStatistics record : records) { for (DepartStatistics record : records) {
@@ -57,6 +57,7 @@
where where
c.receivable_amount <![CDATA[<>]]> 0 c.receivable_amount <![CDATA[<>]]> 0
and c.receivable_amount is not null and c.receivable_amount is not null
and c.pack = 0
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''"> <if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND c.principal_id = #{payCommonProject.principalId} AND c.principal_id = #{payCommonProject.principalId}
</if> </if>
@@ -93,6 +94,7 @@
where where
gsub.receivable_amount <![CDATA[<>]]> 0 gsub.receivable_amount <![CDATA[<>]]> 0
and gsub.receivable_amount is not null and gsub.receivable_amount is not null
and gsub.pack = 0
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''"> <if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND g.principal_id_a = #{payCommonProject.principalId} AND g.principal_id_a = #{payCommonProject.principalId}
</if> </if>
@@ -128,6 +130,7 @@
where where
sit.amount_receivable <![CDATA[<>]]> 0 sit.amount_receivable <![CDATA[<>]]> 0
and sit.amount_receivable is not null and sit.amount_receivable is not null
and sit.pack = 0
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''"> <if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND meeting.director_id = #{payCommonProject.principalId} AND meeting.director_id = #{payCommonProject.principalId}
</if> </if>
@@ -163,6 +166,7 @@
where where
msub.amount_receivable <![CDATA[<>]]> 0 msub.amount_receivable <![CDATA[<>]]> 0
and msub.amount_receivable is not null and msub.amount_receivable is not null
and msub.pack = 0
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''"> <if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND pmp.director_id = #{payCommonProject.principalId} AND pmp.director_id = #{payCommonProject.principalId}
</if> </if>
@@ -202,6 +206,7 @@
where where
tmsub.amount_receivable <![CDATA[<>]]> 0 tmsub.amount_receivable <![CDATA[<>]]> 0
and tmsub.amount_receivable is not null and tmsub.amount_receivable is not null
and tmsub.pack = 0
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''"> <if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND tmember.director_id = #{payCommonProject.principalId} AND tmember.director_id = #{payCommonProject.principalId}
</if> </if>
@@ -244,6 +249,7 @@
where where
tcp.amount_receivable <![CDATA[<>]]> 0 tcp.amount_receivable <![CDATA[<>]]> 0
and tcp.amount_receivable is not null and tcp.amount_receivable is not null
and tcp.pack = 0
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''"> <if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND tmember.director_id = #{payCommonProject.principalId} AND tmember.director_id = #{payCommonProject.principalId}
</if> </if>
@@ -250,7 +250,7 @@ public interface PayWorkingGroupMapper extends BaseMapper<PayWorkingGroup> {
AllMoney invoiceAmountList33(@Param("start") Integer start, @Param("end") Integer end, @Param("departCode") String departCode); AllMoney invoiceAmountList33(@Param("start") Integer start, @Param("end") Integer end, @Param("departCode") String departCode);
List<DepartStatistics> overallDepartmentStatistics(@Param("year") String year); List<DepartStatistics> overallDepartmentStatistics(@Param("year") String year, @Param("type") String type);
List<DepartStatistics> allDepartmentStatistics(@Param("year") String year); List<DepartStatistics> allDepartmentStatistics(@Param("year") String year, @Param("type") String type);
} }
@@ -462,12 +462,12 @@
year year
from from
<if test="allProjectStatisticsSearch.paymentYear == null or allProjectStatisticsSearch.paymentYear == ''"> <if test="allProjectStatisticsSearch.paymentYear == null or allProjectStatisticsSearch.paymentYear == ''">
v_statistical v v_statistical_pack v
</if> </if>
<if test="allProjectStatisticsSearch.paymentYear != null and allProjectStatisticsSearch.paymentYear != ''"> <if test="allProjectStatisticsSearch.paymentYear != null and allProjectStatisticsSearch.paymentYear != ''">
(select (select
<include refid="v_statistical_confirm_sql"/> <include refid="v_statistical_confirm_sql"/>
from v_statistical_confirm v from v_statistical_confirm_pack v
<where> <where>
<choose> <choose>
<when test="allProjectStatisticsSearch.paymentMonth != null and allProjectStatisticsSearch.paymentMonth != ''"> <when test="allProjectStatisticsSearch.paymentMonth != null and allProjectStatisticsSearch.paymentMonth != ''">
@@ -596,12 +596,12 @@
sum(confirmNoTaxAmount) as confirmAmount sum(confirmNoTaxAmount) as confirmAmount
from from
<if test="allProjectStatisticsSearch.paymentYear == null or allProjectStatisticsSearch.paymentYear == ''"> <if test="allProjectStatisticsSearch.paymentYear == null or allProjectStatisticsSearch.paymentYear == ''">
v_statistical v v_statistical_pack v
</if> </if>
<if test="allProjectStatisticsSearch.paymentYear != null and allProjectStatisticsSearch.paymentYear != ''"> <if test="allProjectStatisticsSearch.paymentYear != null and allProjectStatisticsSearch.paymentYear != ''">
(select (select
<include refid="v_statistical_confirm_sql"/> <include refid="v_statistical_confirm_sql"/>
from v_statistical_confirm v from v_statistical_confirm_pack v
<where> <where>
<choose> <choose>
<when test="allProjectStatisticsSearch.paymentMonth != null and allProjectStatisticsSearch.paymentMonth != ''"> <when test="allProjectStatisticsSearch.paymentMonth != null and allProjectStatisticsSearch.paymentMonth != ''">
@@ -1331,12 +1331,12 @@
sum(confirmNoTaxAmount) as confirmAmount sum(confirmNoTaxAmount) as confirmAmount
from from
<if test="companyComeMoneySearch.paymentYear == null or companyComeMoneySearch.paymentYear == ''"> <if test="companyComeMoneySearch.paymentYear == null or companyComeMoneySearch.paymentYear == ''">
v_statistical v v_statistical_pack v
</if> </if>
<if test="companyComeMoneySearch.paymentYear != null and companyComeMoneySearch.paymentYear != ''"> <if test="companyComeMoneySearch.paymentYear != null and companyComeMoneySearch.paymentYear != ''">
(select (select
<include refid="v_statistical_confirm_sql"/> <include refid="v_statistical_confirm_sql"/>
from v_statistical_confirm v from v_statistical_confirm_pack v
<where> <where>
<choose> <choose>
<when test="companyComeMoneySearch.paymentMonth != null and companyComeMoneySearch.paymentMonth != ''"> <when test="companyComeMoneySearch.paymentMonth != null and companyComeMoneySearch.paymentMonth != ''">
@@ -2089,7 +2089,7 @@
<select id="amountClass2" resultType="com.jero.index.vo.AmountClassDTO"> <select id="amountClass2" resultType="com.jero.index.vo.AmountClassDTO">
SELECT chargeUse, SELECT chargeUse,
ifnull(SUM(${column}),0) as money ifnull(SUM(${column}),0) as money
FROM v_statistical v FROM v_statistical_pack v
<where> <where>
year like concat('%',#{year},'%') year like concat('%',#{year},'%')
<if test="departCode != null and departCode != ''"> <if test="departCode != null and departCode != ''">
@@ -2102,7 +2102,7 @@
<select id="amountClass" resultType="com.jero.index.vo.AmountClassDTO"> <select id="amountClass" resultType="com.jero.index.vo.AmountClassDTO">
SELECT chargeUse, SELECT chargeUse,
ifnull(SUM(pcpr.${column}),0) as money ifnull(SUM(pcpr.${column}),0) as money
FROM pay_confirm_payment_record pcpr left join v_statistical v on pcpr.project_id = v.projectId FROM pay_confirm_payment_record pcpr left join v_statistical_pack v on pcpr.project_id = v.projectId
<where> <where>
and payment_date like concat('%',#{year},'%') and payment_date like concat('%',#{year},'%')
<if test="departCode != null and departCode != ''"> <if test="departCode != null and departCode != ''">
@@ -2113,304 +2113,8 @@
</select> </select>
<select id="amountClass1" resultType="com.jero.index.vo.AmountClassDTO"> <select id="amountClass1" resultType="com.jero.index.vo.AmountClassDTO">
SELECT chargeUse, SELECT chargeUse,
ifnull(SUM(${column}),0) as money ifnull(SUM(${column}),0) as money
FROM (select pp.id as projectId, FROM v_statistical_pack v
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,
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
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
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) v
<where> <where>
year like concat('%',#{year},'%') year like concat('%',#{year},'%')
<if test="departCode != null and departCode != ''"> <if test="departCode != null and departCode != ''">
@@ -2422,7 +2126,7 @@
<select id="getYearMoneyDTO" resultType="com.jero.index.dto.YearMoneyDTO"> <select id="getYearMoneyDTO" resultType="com.jero.index.dto.YearMoneyDTO">
select sum(allMoney) as allMoney, year select sum(allMoney) as allMoney, year
from v_statistical v from v_statistical_pack v
group by year group by year
</select> </select>
@@ -2460,7 +2164,13 @@
select select
sum(no_tax_amount) as confirmAmount, sum(no_tax_amount) as confirmAmount,
v.depart as departName v.depart as departName
from pay_confirm_payment_record pcpr left join v_statistical v on pcpr.project_id = v.projectId from pay_confirm_payment_record pcpr
<if test="type == 1">
left join v_statistical_pack v on pcpr.project_id = v.projectId
</if>
<if test="type == 2">
left join v_statistical v on pcpr.project_id = v.projectId
</if>
<where> <where>
DATE_FORMAT (payment_date,'%Y') like concat(#{year}, '%') DATE_FORMAT (payment_date,'%Y') like concat(#{year}, '%')
</where> </where>
@@ -2475,7 +2185,12 @@
select select
sum(allMoney) as allMoney, sum(allMoney) as allMoney,
v.depart as departName v.depart as departName
<if test="type == 1">
from v_statistical_pack v
</if>
<if test="type == 2">
from v_statistical v from v_statistical v
</if>
<where> <where>
year = #{year} year = #{year}
</where> </where>
@@ -2590,13 +2305,25 @@
<select id="cumulativeListEstimatedArrivalMoney" <select id="cumulativeListEstimatedArrivalMoney"
resultType="com.jero.statistics.entity.AllProjectStatistics"> resultType="com.jero.statistics.entity.AllProjectStatistics">
select DATE_FORMAT(paymentDate, '%Y-%m') as paymentDate,sum(estimatedArrivalMoney) as estimatedArrivalMoney from ( select DATE_FORMAT(paymentDate, '%Y-%m') as paymentDate,sum(estimatedArrivalMoney) as estimatedArrivalMoney from (
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_common_project where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_common_project
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
union all union all
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_working_group_subitem where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_working_group_subitem
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
union all union all
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_meeting_situation where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_meeting_situation
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
union all union all
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_member_project_subitem where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_member_project_subitem
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
) dataAll group by DATE_FORMAT(paymentDate, '%Y-%m') order by paymentDate ) dataAll group by DATE_FORMAT(paymentDate, '%Y-%m') order by paymentDate
</select> </select>
</mapper> </mapper>