Commit e41da6c4 by 史文博

Merge branch 'feature/form_statistics_05' into 'develop'

修复综合BI项下数据不准确问题

See merge request kunlun/xyst_dinas/xyst_dinas_backend!69
parents 5194faa7 477002e1
......@@ -12,19 +12,55 @@
<sql-type>SQL</sql-type>
<sql>
SELECT
results.id AS id,
results.regionalCompanyName AS regionalCompanyName,
results.executingNumber AS executingNumber,
results.unexecuteNumber AS unexecuteNumber,
results.completedNumber AS completedNumber,
results.purchaseSandUnitNumber AS purchaseSandUnitNumber,
results.projectNumber AS projectNumber,
(results.executingNumber + results.unexecuteNumber + results.completedNumber ) AS totalContract
FROM(
SELECT
xystOrganization.id AS id,
xystOrganization.NAME AS regionalCompanyName,
executingNumber.executingNumber AS executingNumber,
unexecuteNumber.unexecuteNumber AS unexecuteNumber,
completedNumber.completedNumber AS completedNumber,
purchaseSandUnitNumber.purchaseSandUnitNumber AS purchaseSandUnitNumber,
projectNumber.projectNumber AS projectNumber,
( executingNumber.executingNumber + unexecuteNumber.unexecuteNumber + completedNumber.completedNumber ) AS totalContract
xystOrganization.NAME AS regionalCompanyName,
CASE
WHEN
executingNumber.executingNumber IS NULL
THEN 0 ELSE executingNumber.executingNumber
END AS executingNumber,
CASE
WHEN
unexecuteNumber.unexecuteNumber IS NULL
THEN 0 ELSE unexecuteNumber.unexecuteNumber
END AS unexecuteNumber,
CASE
WHEN
completedNumber.completedNumber IS NULL
THEN 0 ELSE completedNumber.completedNumber
END AS completedNumber,
CASE
WHEN
purchaseSandUnitNumber.purchaseSandUnitNumber IS NULL
THEN 0 ELSE purchaseSandUnitNumber.purchaseSandUnitNumber
END AS purchaseSandUnitNumber,
CASE
WHEN
projectNumber.projectNumber IS NULL
THEN 0 ELSE projectNumber.projectNumber
END AS projectNumber
FROM
xystOrganization AS xystOrganization
LEFT JOIN (
SELECT
COUNT( 1 ) AS executingNumber,
CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END
AS executingNumber,
contract.regionalCompany AS regionalCompany
FROM
Contract AS contract
......@@ -37,7 +73,11 @@
) AS executingNumber ON executingNumber.regionalCompany = xystOrganization.id
LEFT JOIN (
SELECT
COUNT( 1 ) AS unexecuteNumber,
CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END AS unexecuteNumber,
contract.regionalCompany AS regionalCompany
FROM
Contract AS contract
......@@ -45,12 +85,17 @@
1 = 1
AND contract.contractState = 'UN_EXECUTE'
AND contract.discard &lt;&gt; 1
AND contract.contractVersion &lt;&gt; 999
GROUP BY
contract.regionalCompany
) AS unexecuteNumber ON unexecuteNumber.regionalCompany = xystOrganization.id
LEFT JOIN (
SELECT
COUNT( 1 ) AS completedNumber,
CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END AS completedNumber,
contract.regionalCompany AS regionalCompany
FROM
Contract AS contract
......@@ -63,7 +108,11 @@
) AS completedNumber ON completedNumber.regionalCompany = xystOrganization.id
LEFT JOIN (
SELECT
count( 1 ) AS purchaseSandUnitNumber,
CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END AS purchaseSandUnitNumber,
purchaseSandUnit.regionalCompany AS regionalCompany
FROM
(
......@@ -103,6 +152,7 @@
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY'
AND xystOrganization.id = :?regionalCompany
AND xystOrganization.discard &lt;&gt; 1
) AS results
</sql>
</template>
</content>
......
......@@ -21,7 +21,7 @@
LEFT JOIN DinasType AS dinasType ON contractAssociatedcontractDetail.dinasType = dinasType.id
LEFT JOIN Contract AS contract on contractAssociatedcontractDetail.master = contract.id
WHERE 1=1
AND contract.approveState = 2
AND contract.contractVersion &lt;&gt; 999
AND contract.discard &lt;&gt; 1
AND contract.contractState &lt;&gt; 'MODIFIED'
AND contract.regionalCompany = :?regionalCompany
......
......@@ -21,7 +21,7 @@
LEFT JOIN DinasType AS dinasType ON contractAssociatedcontractDetail.dinasType = dinasType.id
LEFT JOIN Contract AS contract on contractAssociatedcontractDetail.master = contract.id
WHERE 1=1
AND contract.approveState = 2
AND contract.contractVersion &lt;&gt; 999
AND contract.discard &lt;&gt; 1
AND contract.contractState &lt;&gt; 'MODIFIED'
AND contract.regionalCompany = :?regionalCompany
......
......@@ -23,7 +23,7 @@
FROM
(
SELECT
projectFiled.id,
projectFiled.id AS id ,
projectFiled.projectName AS projectName,
case
when
......@@ -36,9 +36,10 @@
FROM
ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id
LEFT JOIN Contract AS contract ON contract.project = projectFiled.id
LEFT JOIN Contract AS contract ON contract.project = projectFiled.id
AND contract.contractVersion &lt;&gt; 999 AND contract.discard &lt;&gt; 1
WHERE 1=1
AND projectFiled.discard &lt;&gt; 1
AND projectFiled.discard &lt;&gt; 1
) AS project
LEFT JOIN (
SELECT
......@@ -51,6 +52,7 @@
ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id
LEFT JOIN Contract AS contract ON contract.project = projectFiled.id
AND contract.contractVersion &lt;&gt; 999 AND contract.discard &lt;&gt; 1
WHERE 1=1
AND projectFiled.discard &lt;&gt; 1
) AS project1 ON project.id = project1.id
......
......@@ -40,10 +40,12 @@
ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id
LEFT JOIN Contract AS contract ON contract.project = projectFiled.id
AND contract.contractVersion &lt;&gt; 999
LEFT JOIN xystOrganization AS xystOrganization ON xystOrganization.id = projectFiled.regionalCompany
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY' AND xystOrganization.discard &lt;&gt; 1
WHERE 1=1
AND xystOrganization.discard &lt;&gt; 1
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY'
) AS project
LEFT JOIN (
SELECT
......@@ -56,11 +58,12 @@
FROM
ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id
LEFT JOIN Contract AS contract ON contract.project = projectFiled.id
LEFT JOIN Contract AS contract ON contract.project = projectFiled.id
AND contract.contractVersion &lt;&gt; 999
LEFT JOIN xystOrganization AS xystOrganization ON xystOrganization.id = projectFiled.regionalCompany
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY' AND xystOrganization.discard &lt;&gt; 1
WHERE 1=1
AND xystOrganization.discard &lt;&gt; 1
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY'
) AS project1 ON project.ID = project1.ID
AND project.createTime &lt; project1.createTime
WHERE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment