|
@@ -77,22 +77,31 @@
|
|
|
WHERE id = #{id}
|
|
|
</update>
|
|
|
|
|
|
- <!-- 按 gd_type 统计数量与面积求和(面积统一换算成“亩”):返回 gdType(空值为“其他”), count, gdArea, gdUnit='亩' -->
|
|
|
+ <!-- 按 gd_type 统计数量与面积求和(面积统一换算成“亩”):返回 gdType(空值为“其他”), count, gdArea, gdUnit='亩'
|
|
|
+ 当传入 projectType 时,仅统计其对应项目的记录(关联 t_project.project_type) -->
|
|
|
<select id="countAndSumByGdType" resultType="com.siwei.apply.domain.res.ProjectSupplyRes">
|
|
|
SELECT
|
|
|
- COALESCE(NULLIF(TRIM(gd_type), ''), '其他') AS gdType,
|
|
|
+ COALESCE(NULLIF(TRIM(td.gd_type), ''), '其他') AS gdType,
|
|
|
'亩' AS gdUnit,
|
|
|
COUNT(*) AS count,
|
|
|
COALESCE(
|
|
|
SUM(
|
|
|
CASE
|
|
|
- WHEN gd_unit = '0' THEN COALESCE(gd_area, 0) / 666.6666667 -- 平方米 -> 亩
|
|
|
- WHEN gd_unit = '1' THEN COALESCE(gd_area, 0) * 15 -- 公顷 -> 亩
|
|
|
- ELSE COALESCE(gd_area, 0) -- 默认当作亩(含 '2')
|
|
|
+ WHEN td.gd_unit = '0' THEN COALESCE(td.gd_area, 0) / 666.6666667 -- 平方米 -> 亩
|
|
|
+ WHEN td.gd_unit = '1' THEN COALESCE(td.gd_area, 0) * 15 -- 公顷 -> 亩
|
|
|
+ ELSE COALESCE(td.gd_area, 0) -- 默认当作亩(含 '2')
|
|
|
END
|
|
|
), 0
|
|
|
) AS gdArea
|
|
|
- FROM t_tdgy
|
|
|
- GROUP BY COALESCE(NULLIF(TRIM(gd_type), ''), '其他')
|
|
|
+ FROM t_tdgy td
|
|
|
+ <where>
|
|
|
+ <if test="projectType != null">
|
|
|
+ EXISTS (
|
|
|
+ SELECT 1 FROM t_project p
|
|
|
+ WHERE p.id = td.project_id AND p.project_type = #{projectType}
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ GROUP BY COALESCE(NULLIF(TRIM(td.gd_type), ''), '其他')
|
|
|
</select>
|
|
|
</mapper>
|