Commit e7a700aa by 焦凯

Merge branch 'feature/sales_record_sync' into 'develop'

调整统计SQL格式,增加group by条件参数

See merge request kunlun/xyst_dinas/xyst_dinas_backend!21
parents 917b4b22 9f43e7e1
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
WHERE WHERE
( salesSummary.dealTime >= :?startDate AND salesSummary.dealTime <= :?endDate ) ( salesSummary.dealTime >= :?startDate AND salesSummary.dealTime <= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
ORDER BY ORDER BY :?totalGroupBy , :?subtotalGroupBy ,
stationName stationName
</sql> </sql>
</template> </template>
......
...@@ -11,51 +11,51 @@ ...@@ -11,51 +11,51 @@
<template> <template>
<sql-type>SQL</sql-type> <sql-type>SQL</sql-type>
<sql> <sql>
SELECT SELECT
station.stationName AS stationName, station.stationName AS stationName,
dinasType.dinasTypeName AS dinasTypeName, dinasType.dinasTypeName AS dinasTypeName,
( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount, ( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount,
( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount ( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount
FROM FROM
SalesSummary AS salesSummary SalesSummary AS salesSummary
LEFT JOIN Station AS station ON station.id = salesSummary.station LEFT JOIN Station AS station ON station.id = salesSummary.station
LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType
WHERE WHERE
( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate ) ( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
GROUP BY GROUP BY
salesSummary.station, salesSummary.station,
salesSummary.dinasType salesSummary.dinasType
UNION ALL UNION ALL
SELECT SELECT
station.stationName AS stationName, station.stationName AS stationName,
'小计' AS dinasTypeName, '小计' AS dinasTypeName,
( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount, ( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount,
( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount ( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount
FROM FROM
SalesSummary AS salesSummary SalesSummary AS salesSummary
LEFT JOIN Station AS station ON station.id = salesSummary.station LEFT JOIN Station AS station ON station.id = salesSummary.station
LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType
WHERE WHERE
( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate ) ( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
GROUP BY GROUP BY
salesSummary.station salesSummary.station
UNION ALL UNION ALL
SELECT SELECT
'总计' AS stationName, '总计' AS stationName,
'———' AS dinasTypeName, '———' AS dinasTypeName,
( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount, ( SUM( salesSummary.saleDealAmount ) / 1000 ) AS saleDealAmount,
( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount ( SUM( salesSummary.saleAmount ) / 1000 ) AS saleAmount
FROM FROM
SalesSummary AS salesSummary SalesSummary AS salesSummary
LEFT JOIN Station AS station ON station.id = salesSummary.station LEFT JOIN Station AS station ON station.id = salesSummary.station
LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType LEFT JOIN DinasType AS dinasType ON dinasType.id = salesSummary.dinasType
WHERE WHERE
( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate ) ( salesSummary.dealTime &gt;= :?startDate AND salesSummary.dealTime &lt;= :?endDate )
AND station.id IN ( :?stationList ) AND station.id IN ( :?stationList )
ORDER BY ORDER BY :?totalGroupBy , :?subtotalGroupBy ,
stationName stationName
</sql> </sql>
</template> </template>
</content> </content>
......
...@@ -10,83 +10,99 @@ ...@@ -10,83 +10,99 @@
<content> <content>
<template> <template>
<sql-type>SQL</sql-type> <sql-type>SQL</sql-type>
<sql> <sql>
SELECT SELECT
artificialRecharge.id as id, result.id AS id ,
artificialRecharge.createTime AS createTime, result.createTime AS createTime ,
purchaseSandCompanyon.name AS purchaseSandUnit, result.purchaseSandUnit AS purchaseSandUnit ,
projectFiled.projectName AS project, result.project AS project ,
CASE result.fundType AS fundType ,
WHEN artificialRecharge.fundType ='DEPOSIT' then '保证金充值' result.rechargeAmount AS rechargeAmount ,
ELSE '预付款充值' result.actualRefundAmount AS actualRefundAmount ,
END result.remark AS remark
as fundType, FROM
artificialRecharge.rechargeAmount AS rechargeAmount, (SELECT
'-' AS actualRefundAmount, financeRefund.id AS id,
artificialRecharge.remark AS remark financeRefund.createTime AS createTime,
FROM purchaseSandCompanyon.NAME AS purchaseSandUnit,
ArtificialRecharge as artificialRecharge projectFiled.projectName AS project,
LEFT JOIN PurchaseSandCompany as purchaseSandCompanyon on purchaseSandCompanyon.id = artificialRecharge.purchaseSandUnit CASE
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = artificialRecharge.project
WHERE artificialRecharge.regionalCompany = :?regionalCompanyId WHEN financeRefund.fundType = 1 THEN
AND (artificialRecharge.createTime &gt;= :?startDate AND artificialRecharge.createTime &lt;= :?endDate) '保证金退费' ELSE '预付款退费'
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName END AS fundType,
AND projectFiled.projectName LIKE :?projectName '-' AS rechargeAmount,
AND artificialRecharge.fundType = :?fundType financeRefund.actualRefundAmount AS actualRefundAmount,
UNION ALL financeRefund.refundExplain AS remark ,
SELECT financeRefund.regionalCompany AS regionalCompanyId,
expenseAdjust.id as id, purchaseSandCompanyon.NAME AS purchaseSandCompanyonName,
expenseAdjust.createTime AS createTime, projectFiled.projectName AS projectName,
purchaseSandCompanyon.name AS purchaseSandUnit, CASE WHEN financeRefund.fundType = 1 THEN 'DEPOSIT' ELSE 'ADVANCE' END AS fundType1
projectFiled.projectName AS project, FROM
CASE FinanceRefund AS financeRefund
WHEN expenseAdjust.fundType ='DEPOSIT' then '保证金费用调整' LEFT JOIN PurchaseSandCompany AS purchaseSandCompanyon ON purchaseSandCompanyon.id = financeRefund.purchaseSandCompany
ELSE '预付款费用调整' LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = financeRefund.project
END UNION ALL
as fundType, SELECT
CASE artificialRecharge.id AS id,
WHEN expenseAdjust.expenseAdjustAmount &gt;= '0' THEN artificialRecharge.createTime AS createTime,
expenseAdjust.expenseAdjustAmount ELSE '-' purchaseSandCompanyon.NAME AS purchaseSandUnit,
END AS expenseAdjustAmount, projectFiled.projectName AS project,
CASE CASE
WHEN expenseAdjust.expenseAdjustAmount &lt; '0'
THEN (- expenseAdjust.expenseAdjustAmount) ELSE '-' WHEN artificialRecharge.fundType = 'DEPOSIT' THEN
END AS actualRefundAmount, '保证金充值' ELSE '预付款充值'
expenseAdjust.remark AS remark END AS fundType,
FROM artificialRecharge.rechargeAmount AS rechargeAmount,
ExpenseAdjust as expenseAdjust '-' AS actualRefundAmount,
LEFT JOIN PurchaseSandCompany as purchaseSandCompanyon on purchaseSandCompanyon.id = expenseAdjust.purchaseSandUnit artificialRecharge.remark AS remark ,
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = expenseAdjust.project artificialRecharge.regionalCompany AS regionalCompanyId,
WHERE expenseAdjust.regionalCompany = :?regionalCompanyId purchaseSandCompanyon.NAME AS purchaseSandCompanyonName,
AND (expenseAdjust.createTime &gt;= :?startDate AND expenseAdjust.createTime &lt;= :?endDate) projectFiled.projectName AS projectName,
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName artificialRecharge.fundType AS fundType1
AND projectFiled.projectName LIKE :?projectName FROM
AND expenseAdjust.fundType = :?fundType ArtificialRecharge AS artificialRecharge
UNION ALL LEFT JOIN PurchaseSandCompany AS purchaseSandCompanyon ON purchaseSandCompanyon.id = artificialRecharge.purchaseSandUnit
SELECT LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = artificialRecharge.project
financeRefund.id as id, UNION ALL
financeRefund.createTime AS createTime, SELECT
purchaseSandCompanyon.name AS purchaseSandUnit, expenseAdjust.id AS id,
projectFiled.projectName AS project, expenseAdjust.createTime AS createTime,
CASE purchaseSandCompanyon.NAME AS purchaseSandUnit,
WHEN financeRefund.fundType ='1' THEN '保证金退费' projectFiled.projectName AS project,
ELSE '预付款退费' CASE
END
as fundType, WHEN expenseAdjust.fundType = 'DEPOSIT' THEN
'-' AS rechargeAmount, '保证金费用调整' ELSE '预付款费用调整'
financeRefund.actualRefundAmount AS actualRefundAmount, END AS fundType,
financeRefund.refundExplain AS remark CASE
FROM
FinanceRefund as financeRefund WHEN expenseAdjust.expenseAdjustAmount &gt;= '0' THEN
LEFT JOIN PurchaseSandCompany as purchaseSandCompanyon on purchaseSandCompanyon.id = financeRefund.purchaseSandCompany expenseAdjust.expenseAdjustAmount ELSE '-'
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = financeRefund.project END AS rechargeAmount,
WHERE financeRefund.regionalCompany = :?regionalCompanyId CASE
AND (financeRefund.createTime &gt;= :?startDate AND financeRefund.createTime &lt;= :?endDate)
AND purchaseSandCompanyon.name LIKE :?purchaseSandCompanyonName WHEN expenseAdjust.expenseAdjustAmount &lt;
AND projectFiled.projectName LIKE :?projectName '0' THEN
AND ( case when 'DEPOSIT' = :?fundType then '1' else '0' end ) = financeRefund.fundType ( - expenseAdjust.expenseAdjustAmount ) ELSE '-'
ORDER BY createTime DESC END AS actualRefundAmount,
</sql> expenseAdjust.remark AS remark,
expenseAdjust.regionalCompany AS regionalCompanyId,
purchaseSandCompanyon.NAME AS purchaseSandCompanyonName,
projectFiled.projectName AS projectName,
expenseAdjust.fundType AS fundType1
FROM
ExpenseAdjust AS expenseAdjust
LEFT JOIN PurchaseSandCompany AS purchaseSandCompanyon ON purchaseSandCompanyon.id = expenseAdjust.purchaseSandUnit
LEFT JOIN ProjectFiled AS projectFiled ON projectFiled.id = expenseAdjust.project
) AS result
WHERE result.regionalCompanyId = :?regionalCompanyId
AND ( result.createTime &gt;= :?startDate AND result.createTime &lt;= :?endDate )
AND result.purchaseSandCompanyonName LIKE :?purchaseSandCompanyonName
AND result.projectName LIKE :?projectName
AND result.fundType1 = :?fundType
ORDER BY result.createTime DESC
</sql>
</template> </template>
</content> </content>
</metadata> </metadata>
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