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 @@ ...@@ -12,19 +12,55 @@
<sql-type>SQL</sql-type> <sql-type>SQL</sql-type>
<sql> <sql>
SELECT 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.id AS id,
xystOrganization.NAME AS regionalCompanyName, xystOrganization.NAME AS regionalCompanyName,
executingNumber.executingNumber AS executingNumber, CASE
unexecuteNumber.unexecuteNumber AS unexecuteNumber, WHEN
completedNumber.completedNumber AS completedNumber, executingNumber.executingNumber IS NULL
purchaseSandUnitNumber.purchaseSandUnitNumber AS purchaseSandUnitNumber, THEN 0 ELSE executingNumber.executingNumber
projectNumber.projectNumber AS projectNumber, END AS executingNumber,
( executingNumber.executingNumber + unexecuteNumber.unexecuteNumber + completedNumber.completedNumber ) AS totalContract
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 FROM
xystOrganization AS xystOrganization xystOrganization AS xystOrganization
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
COUNT( 1 ) AS executingNumber, CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END
AS executingNumber,
contract.regionalCompany AS regionalCompany contract.regionalCompany AS regionalCompany
FROM FROM
Contract AS contract Contract AS contract
...@@ -37,7 +73,11 @@ ...@@ -37,7 +73,11 @@
) AS executingNumber ON executingNumber.regionalCompany = xystOrganization.id ) AS executingNumber ON executingNumber.regionalCompany = xystOrganization.id
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
COUNT( 1 ) AS unexecuteNumber, CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END AS unexecuteNumber,
contract.regionalCompany AS regionalCompany contract.regionalCompany AS regionalCompany
FROM FROM
Contract AS contract Contract AS contract
...@@ -45,12 +85,17 @@ ...@@ -45,12 +85,17 @@
1 = 1 1 = 1
AND contract.contractState = 'UN_EXECUTE' AND contract.contractState = 'UN_EXECUTE'
AND contract.discard &lt;&gt; 1 AND contract.discard &lt;&gt; 1
AND contract.contractVersion &lt;&gt; 999
GROUP BY GROUP BY
contract.regionalCompany contract.regionalCompany
) AS unexecuteNumber ON unexecuteNumber.regionalCompany = xystOrganization.id ) AS unexecuteNumber ON unexecuteNumber.regionalCompany = xystOrganization.id
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
COUNT( 1 ) AS completedNumber, CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END AS completedNumber,
contract.regionalCompany AS regionalCompany contract.regionalCompany AS regionalCompany
FROM FROM
Contract AS contract Contract AS contract
...@@ -63,7 +108,11 @@ ...@@ -63,7 +108,11 @@
) AS completedNumber ON completedNumber.regionalCompany = xystOrganization.id ) AS completedNumber ON completedNumber.regionalCompany = xystOrganization.id
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
count( 1 ) AS purchaseSandUnitNumber, CASE
WHEN
COUNT( 1 ) IS NULL
THEN 0 ELSE COUNT( 1 )
END AS purchaseSandUnitNumber,
purchaseSandUnit.regionalCompany AS regionalCompany purchaseSandUnit.regionalCompany AS regionalCompany
FROM FROM
( (
...@@ -103,6 +152,7 @@ ...@@ -103,6 +152,7 @@
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY' AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY'
AND xystOrganization.id = :?regionalCompany AND xystOrganization.id = :?regionalCompany
AND xystOrganization.discard &lt;&gt; 1 AND xystOrganization.discard &lt;&gt; 1
) AS results
</sql> </sql>
</template> </template>
</content> </content>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
LEFT JOIN DinasType AS dinasType ON contractAssociatedcontractDetail.dinasType = dinasType.id LEFT JOIN DinasType AS dinasType ON contractAssociatedcontractDetail.dinasType = dinasType.id
LEFT JOIN Contract AS contract on contractAssociatedcontractDetail.master = contract.id LEFT JOIN Contract AS contract on contractAssociatedcontractDetail.master = contract.id
WHERE 1=1 WHERE 1=1
AND contract.approveState = 2 AND contract.contractVersion &lt;&gt; 999
AND contract.discard &lt;&gt; 1 AND contract.discard &lt;&gt; 1
AND contract.contractState &lt;&gt; 'MODIFIED' AND contract.contractState &lt;&gt; 'MODIFIED'
AND contract.regionalCompany = :?regionalCompany AND contract.regionalCompany = :?regionalCompany
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
LEFT JOIN DinasType AS dinasType ON contractAssociatedcontractDetail.dinasType = dinasType.id LEFT JOIN DinasType AS dinasType ON contractAssociatedcontractDetail.dinasType = dinasType.id
LEFT JOIN Contract AS contract on contractAssociatedcontractDetail.master = contract.id LEFT JOIN Contract AS contract on contractAssociatedcontractDetail.master = contract.id
WHERE 1=1 WHERE 1=1
AND contract.approveState = 2 AND contract.contractVersion &lt;&gt; 999
AND contract.discard &lt;&gt; 1 AND contract.discard &lt;&gt; 1
AND contract.contractState &lt;&gt; 'MODIFIED' AND contract.contractState &lt;&gt; 'MODIFIED'
AND contract.regionalCompany = :?regionalCompany AND contract.regionalCompany = :?regionalCompany
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
FROM FROM
( (
SELECT SELECT
projectFiled.id, projectFiled.id AS id ,
projectFiled.projectName AS projectName, projectFiled.projectName AS projectName,
case case
when when
...@@ -36,9 +36,10 @@ ...@@ -36,9 +36,10 @@
FROM FROM
ProjectFiled AS projectFiled ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id 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 WHERE 1=1
AND projectFiled.discard &lt;&gt; 1 AND projectFiled.discard &lt;&gt; 1
) AS project ) AS project
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
...@@ -51,6 +52,7 @@ ...@@ -51,6 +52,7 @@
ProjectFiled AS projectFiled ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id 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 WHERE 1=1
AND projectFiled.discard &lt;&gt; 1 AND projectFiled.discard &lt;&gt; 1
) AS project1 ON project.id = project1.id ) AS project1 ON project.id = project1.id
......
...@@ -40,10 +40,12 @@ ...@@ -40,10 +40,12 @@
ProjectFiled AS projectFiled ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id 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 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 WHERE 1=1
AND xystOrganization.discard &lt;&gt; 1
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY'
) AS project ) AS project
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
...@@ -56,11 +58,12 @@ ...@@ -56,11 +58,12 @@
FROM FROM
ProjectFiled AS projectFiled ProjectFiled AS projectFiled
LEFT JOIN ProjectType AS projectType ON projectFiled.projectType = projectType.id 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 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 WHERE 1=1
AND xystOrganization.discard &lt;&gt; 1
AND xystOrganization.type &lt;&gt; 'GROUP_COMPANY'
) AS project1 ON project.ID = project1.ID ) AS project1 ON project.ID = project1.ID
AND project.createTime &lt; project1.createTime AND project.createTime &lt; project1.createTime
WHERE 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