pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
@@ -4,6 +4,7 @@ import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay; import com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay; import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; import com.dy.pipIrrGlobal.voSt.VoDayLoss; import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import org.apache.ibatis.annotations.Mapper; @@ -119,4 +120,35 @@ * @return */ List<VoMonthAmount> getMonthIntakeAmount(Map<?, ?> params); //////////////////////////////////////////////// // 统计查询 /////////////////////////////////////////////// /** * 为查询统计取水口日漏损量,统计取水口数量 * @param intakeN * @return */ Long selectIntakeCount4AmountDay(@Param("intakeNum")String intakeN) ; /** * 为查询统计取水口日漏损量,查询一页取水口ID * @param params * @return */ List<VoDayIntakeAmount> selectIntakes4AmountDay(Map<?, ?> params) ; /** * 查询统计取水口日漏损量 * @param params * @return */ //下面1到31号分了6个查询,原因是入一个查询中,非常慢,不知道什么原因,也许是子查询太多的原因 List<VoDayIntakeAmount> selectIntakeAmountOfDay01_05(Map<?, ?> params); List<VoDayIntakeAmount> selectIntakeAmountOfDay06_10(Map<?, ?> params); List<VoDayIntakeAmount> selectIntakeAmountOfDay11_15(Map<?, ?> params); List<VoDayIntakeAmount> selectIntakeAmountOfDay16_20(Map<?, ?> params); List<VoDayIntakeAmount> selectIntakeAmountOfDay21_25(Map<?, ?> params); List<VoDayIntakeAmount> selectIntakeAmountOfDay26_31(Map<?, ?> params); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java
@@ -5,10 +5,12 @@ import com.dy.pipIrrGlobal.pojoSt.StLossMonth; import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics; import com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; /** * @Author: liurunyu @@ -74,11 +76,39 @@ * @param year 统计年度 * @return */ List<VoIntakeAmountStatistics> statisticsByIntake(Integer year, Integer month, Long startId, Long endId) ; List<VoIntakeAmountStatistics> statisticsByIntake(@Param("year")Integer year, @Param("month")Integer month, @Param("startId")Long startId, @Param("endId")Long endId) ; /** * 以取水口维度统计取水量 * @param year 统计年度 * @return */ List<VoIntakeAmountStatistics> statisticsByIntake(Integer year) ; //////////////////////////////////////////////// // 统计查询 /////////////////////////////////////////////// /** * 为查询统计取水口日漏损量,统计取水口数量 * @param intakeN * @return */ Long selectIntakeCount4AmountMonth(@Param("intakeNum")String intakeN) ; /** * 为查询统计取水口日漏损量,查询一页取水口ID * @param params * @return */ List<VoMonthAmount> selectIntakes4AmountMonth(Map<?, ?> params) ; /** * 查询统计取水口月漏损量 * @param params * @return */ //下面1到12月分了2个查询,原因是在一个查询中,非常慢,不知道什么原因,也许是子查询太多的原因 List<VoMonthAmount> selectIntakeAmountOfMonth01_06(Map<?, ?> params); List<VoMonthAmount> selectIntakeAmountOfMonth07_12(Map<?, ?> params); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java
@@ -16,79 +16,88 @@ @Data @JsonPropertyOrder({ "intakeId", "intakeNum", "amount1" , "amount2" , "amount3" , "amount4" , "amount5" , "amount6" , "amount7" , "amount8" , "amount9" , "amount10" , "amount11" , "amount12" , "amount13" , "amount14" , "amount15" , "amount16" , "amount17" , "amount18" , "amount19" , "amount20" , "amount21" , "amount22" , "amount23" , "amount24" , "amount25" , "amount26" , "amount27" , "amount28" , "amount29" , "amount30" , "amount31" }) public class VoDayIntakeAmount { private static final long serialVersionUID = 202408080933001L; public static final long serialVersionUID = 202408080933001L; /** * 取水口ID */ @JSONField(serializeUsing= ObjectWriterImplToString.class) private Long intakeId; public Long intakeId; /** * 取水口编号 */ private String intakeNum; public String intakeNum; /** * 经度 */ public Double intakeLng; /** * 纬度 */ public Double intakeLat; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount1; public Double amount1; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount2; public Double amount2; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount3; public Double amount3; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount4; public Double amount4; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount5; public Double amount5; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount6; public Double amount6; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount7; public Double amount7; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount8; public Double amount8; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount9; public Double amount9; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount10; public Double amount10; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount11; public Double amount11; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount12; public Double amount12; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount13; public Double amount13; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount14; public Double amount14; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount15; public Double amount15; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount16; public Double amount16; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount17; public Double amount17; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount18; public Double amount18; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount19; public Double amount19; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount20; public Double amount20; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount21; public Double amount21; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount22; public Double amount22; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount23; public Double amount23; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount24; public Double amount24; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount25; public Double amount25; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount26; public Double amount26; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount27; public Double amount27; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount28; public Double amount28; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount29; public Double amount29; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount30; public Double amount30; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) private Double amount31; public Double amount31; } pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -549,4 +549,451 @@ </if> </trim> </select> <!-- 为查询统计取水口日漏损量,统计取水口数量 --> <select id="selectIntakeCount4AmountDay" resultType="java.lang.Long"> SELECT COUNT(*) FROM pr_intake tb <where> AND tb.deleted != 1 <if test="intakeNum != null and intakeNum != ''"> AND tb.name = #{intakeNum} </if> </where> </select> <!-- 为查询统计取水口日漏损量,查询一页取水口ID --> <select id="selectIntakes4AmountDay" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> SELECT id as intakeId, name as intakeNum, lat as intakeLat, lng as intakeLng FROM pr_intake <where> AND deleted != 1 <if test="intakeNum != null and intakeNum != ''"> AND name = #{intakeNum} </if> </where> order by id DESC <trim prefix="limit " > <if test="start != null and count != null"> #{start, javaType=Integer, jdbcType=INTEGER}, #{count, javaType=Integer, jdbcType=INTEGER} </if> </trim> </select> <sql id="selectIntakeAmountOfDay_with"> SELECT intaId.intakeId AS intakeId, riad.dt AS dt, riad.amount AS amount FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId' ) ) intaId INNER JOIN rm_intake_amount_day riad ON riad.intake_id = intaId.intakeId <where> <if test="startDt != null "> AND riad.dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE} </if> <if test="endDt != null "> AND riad.dt <![CDATA[<=]]> #{endDt, javaType=DATE, jdbcType=DATE} </if> </where> </sql> <!--统计指定月份各天取水量(1号到5号)--> <select id="selectIntakeAmountOfDay01_05" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb01.amount AS amount1, tb02.amount AS amount2, tb03.amount AS amount3, tb04.amount AS amount4, tb05.amount AS amount5 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 1 ) as tb01 on tb01.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 2 ) as tb02 on tb02.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 3 ) as tb03 on tb03.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 4 ) as tb04 on tb04.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 5 ) as tb05 on tb05.intakeId = inta.intakeId </select> <!--统计指定月份各天取水量(6号到10号)--> <select id="selectIntakeAmountOfDay06_10" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb06.amount AS amount6, tb07.amount AS amount7, tb08.amount AS amount8, tb09.amount AS amount9, tb10.amount AS amount10 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 6 ) as tb06 on tb06.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 7 ) as tb07 on tb07.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 8 ) as tb08 on tb08.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 9 ) as tb09 on tb09.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 10 ) as tb10 on tb10.intakeId = inta.intakeId </select> <!--统计指定月份各天取水量(11号到15号)--> <select id="selectIntakeAmountOfDay11_15" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb11.amount AS amount11, tb12.amount AS amount12, tb13.amount AS amount13, tb14.amount AS amount14, tb15.amount AS amount15 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 11 ) as tb11 on tb11.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 12 ) as tb12 on tb12.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 13 ) as tb13 on tb13.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 14 ) as tb14 on tb14.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 15 ) as tb15 on tb15.intakeId = inta.intakeId </select> <!--统计指定月份各天取水量(20号到16号)--> <select id="selectIntakeAmountOfDay16_20" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb16.amount AS amount16, tb17.amount AS amount17, tb18.amount AS amount18, tb19.amount AS amount19, tb20.amount AS amount20 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 16 ) as tb16 on tb16.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 17 ) as tb17 on tb17.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 18 ) as tb18 on tb18.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 19 ) as tb19 on tb19.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 20 ) as tb20 on tb20.intakeId = inta.intakeId </select> <!--统计指定月份各天取水量(21号到25号)--> <select id="selectIntakeAmountOfDay21_25" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb21.amount AS amount21, tb22.amount AS amount22, tb23.amount AS amount23, tb24.amount AS amount24, tb25.amount AS amount25 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 21 ) as tb21 on tb21.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 22 ) as tb22 on tb22.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 23 ) as tb23 on tb23.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 24 ) as tb24 on tb24.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 25 ) as tb25 on tb25.intakeId = inta.intakeId </select> <!--统计指定月份各天取水量(26号到31号)--> <select id="selectIntakeAmountOfDay26_31" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb26.amount AS amount26, tb27.amount AS amount27, tb28.amount AS amount28, tb29.amount AS amount29, tb30.amount AS amount30, tb31.amount AS amount31 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 26 ) as tb26 on tb26.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 27 ) as tb27 on tb27.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 28 ) as tb28 on tb28.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 29 ) as tb29 on tb29.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 30 ) as tb30 on tb30.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountDay AS tb WHERE YEAR(tb.dt) = #{year} AND MONTH(tb.dt) = #{month} AND DAY(tb.dt) = 31 ) as tb31 on tb31.intakeId = inta.intakeId </select> </mapper> pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml
@@ -123,4 +123,191 @@ group by intake_id </select> <!-- 为查询统计取水口日用水量,统计取水口数量 --> <select id="selectIntakeCount4AmountMonth" resultType="java.lang.Long"> SELECT COUNT(*) FROM pr_intake tb <where> AND tb.deleted != 1 <if test="intakeNum != null and intakeNum != ''"> AND tb.name = #{intakeNum} </if> </where> </select> <!-- 为查询统计取水口日用水量,查询一页取水口ID --> <select id="selectIntakes4AmountMonth" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> SELECT id as intakeId, name as intakeNum, lat as intakeLat, lng as intakeLng FROM pr_intake <where> AND deleted != 1 <if test="intakeNum != null and intakeNum != ''"> AND name = #{intakeNum} </if> </where> order by id DESC <trim prefix="limit " > <if test="start != null and count != null"> #{start, javaType=Integer, jdbcType=INTEGER}, #{count, javaType=Integer, jdbcType=INTEGER} </if> </trim> </select> <sql id="selectIntakeAmountOfMonth_with"> SELECT intaId.intakeId AS intakeId, siam.year AS `year`, siam.month AS `month`, siam.amount AS amount FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId' ) ) intaId INNER JOIN st_intake_amount_month siam ON siam.intake_id = intaId.intakeId <where> <if test="year != null "> AND siam.year = #{year, javaType=Integer, jdbcType=INTEGER} </if> </where> </sql> <!--统计指定月份各月用水量(1号到6月)--> <select id="selectIntakeAmountOfMonth01_06" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> WITH intakeAmountMonth AS (<include refid="selectIntakeAmountOfMonth_with" />) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb01.amount AS month1, tb02.amount AS month2, tb03.amount AS month3, tb04.amount AS month4, tb05.amount AS month5, tb06.amount AS month6 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 1 ) as tb01 on tb01.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 2 ) as tb02 on tb02.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 3 ) as tb03 on tb03.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 4 ) as tb04 on tb04.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 5 ) as tb05 on tb05.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 6 ) as tb06 on tb06.intakeId = inta.intakeId </select> <!--统计指定月份各月用水量(7号到12月)--> <select id="selectIntakeAmountOfMonth07_12" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> WITH intakeAmountMonth AS (<include refid="selectIntakeAmountOfMonth_with" />) SELECT inta.intakeId AS intakeId, inta.intakeNum AS intakeNum, inta.intakeLng AS intakeLng, inta.intakeLat AS intakeLat, tb07.amount AS month7, tb08.amount AS month8, tb09.amount AS month9, tb010.amount AS month10, tb011.amount AS month11, tb012.amount AS month12 FROM JSON_TABLE( #{intakesJson}, '$[*]' COLUMNS ( intakeId BIGINT PATH '$.intakeId', intakeNum VARCHAR(100) PATH '$.intakeNum', intakeLng DOUBLE PATH '$.intakeLng', intakeLat DOUBLE PATH '$.intakeLat' ) ) inta LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 7 ) as tb07 on tb07.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 8 ) as tb08 on tb08.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 9 ) as tb09 on tb09.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 10 ) as tb010 on tb010.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 11 ) as tb011 on tb011.intakeId = inta.intakeId LEFT JOIN ( SELECT tb.intakeId AS intakeId, tb.amount AS amount FROM intakeAmountMonth AS tb WHERE tb.year = #{year} AND tb.month = 12 ) as tb012 on tb012.intakeId = inta.intakeId </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java
New file @@ -0,0 +1,72 @@ package com.dy.pipIrrStatistics.intaker; import com.dy.common.aop.SsoAop; import com.dy.common.util.DateTime; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @Author: liurunyu * @Date: 2024/12/12 16:24 * @Description 有关取水口用水统计 */ @Slf4j @RestController @RequestMapping(path="intake") @RequiredArgsConstructor public class IntakeCtrl { private IntakeSv sv; @Autowired public void setSv(IntakeSv sv){ this.sv = sv ; } /** * 查询指定月份各日用水量 * @param qo * @return */ @GetMapping(path = "/amountOfDay") @SsoAop() public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> amountOfDay(IntakeQo qo) throws Exception { String yearMonth = qo.getYearMonth(); if(yearMonth == null || yearMonth.trim().equals("")) { return BaseResponseUtils.buildErrorMsg("查询条件年月不能为空"); } qo.startDt = DateTime.dateFrom_yyyy_MM_dd(yearMonth + "-01"); qo.endDt = DateTime.dateFrom_yyyy_MM_dd(yearMonth + "-31"); int[] ymd = DateTime.yyyy_MM_ymdGroup(yearMonth) ; qo.year = ymd[0] ; qo.month = ymd[1] ; return BaseResponseUtils.buildSuccess(this.sv.amountOfDay(qo)); } /** * 查询指定月份各日用水量 * @param qo * @return */ @GetMapping(path = "/amountOfMonth") @SsoAop() public BaseResponse<QueryResultVo<List<VoMonthAmount>>> amountOfMonth(IntakeQo qo) throws Exception { if(qo.getYear() == null) { return BaseResponseUtils.buildErrorMsg("查询条件年度不能为空"); } return BaseResponseUtils.buildSuccess(this.sv.amountOfMonth(qo)); } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java
New file @@ -0,0 +1,48 @@ package com.dy.pipIrrStatistics.intaker; import com.dy.common.webUtil.QueryConditionVo; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; /** * @Author: liurunyu * @Date: 2024/12/12 16:34 * @Description */ @Data @EqualsAndHashCode(callSuper = false) public class IntakeQo extends QueryConditionVo { /** * 统计年月 */ public String yearMonth; /** * 查询开始日期(年月日) */ public Date startDt ; /** * 查询截止日期(年月日) */ public Date endDt ; /** * 年 */ public Integer year; /** * 月 */ public Integer month; /** * 取水口编号 */ public String intakeNum; } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java
New file @@ -0,0 +1,188 @@ package com.dy.pipIrrStatistics.intaker; import com.alibaba.fastjson2.JSON; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoRm.RmIntakeAmountDayMapper; import com.dy.pipIrrGlobal.daoSt.StIntakeAmountMonthMapper; import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; import java.util.List; import java.util.Map; /** * @Author: liurunyu * @Date: 2024/12/12 16:24 * @Description */ @Slf4j @Service public class IntakeSv { @Autowired private RmIntakeAmountDayMapper dayDao ; @Autowired private StIntakeAmountMonthMapper monthDao ; /** * 统计指定月份各天用水量 * @param qo * @return */ public QueryResultVo<List<VoDayIntakeAmount>> amountOfDay(IntakeQo qo) throws ParseException { QueryResultVo<List<VoDayIntakeAmount>> rsVo = new QueryResultVo<>() ; // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = dayDao.selectIntakeCount4AmountDay(qo.intakeNum) ; if(itemTotal != null && itemTotal > 0){ rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); List<VoDayIntakeAmount> list = dayDao.selectIntakes4AmountDay(params); if(list == null || list.size() == 0){ rsVo.obj = list ; }else{ String json = JSON.toJSONString(list) ; params.put("intakesJson", json); List<VoDayIntakeAmount> list01_05 = dayDao.selectIntakeAmountOfDay01_05(params); if(list01_05 != null && list01_05.size() > 0){ //下面1到31号分了6个查询,原因是在一个查询中,非常慢,不知道什么原因,也许是子查询太多的原因 List<VoDayIntakeAmount> list06_10 = dayDao.selectIntakeAmountOfDay06_10(params); List<VoDayIntakeAmount> list11_15 = dayDao.selectIntakeAmountOfDay11_15(params); List<VoDayIntakeAmount> list16_20 = dayDao.selectIntakeAmountOfDay16_20(params); List<VoDayIntakeAmount> list21_25 = dayDao.selectIntakeAmountOfDay21_25(params); List<VoDayIntakeAmount> list26_31 = dayDao.selectIntakeAmountOfDay26_31(params); this.merge(list01_05, list06_10, list11_15, list16_20, list21_25, list26_31); } rsVo.obj = list01_05 ; } } return rsVo ; } private void merge(List<VoDayIntakeAmount> list01_05, List<VoDayIntakeAmount> list06_10, List<VoDayIntakeAmount> list11_15, List<VoDayIntakeAmount> list16_20, List<VoDayIntakeAmount> list21_25, List<VoDayIntakeAmount> list26_31){ for(VoDayIntakeAmount vo01_05 : list01_05){ for(VoDayIntakeAmount vo06_10 : list06_10){ if(vo01_05.intakeId.longValue() == vo06_10.intakeId.longValue()){ vo01_05.amount6 = vo06_10.amount6 ; vo01_05.amount7 = vo06_10.amount7 ; vo01_05.amount8 = vo06_10.amount8 ; vo01_05.amount9 = vo06_10.amount9 ; vo01_05.amount10 = vo06_10.amount10 ; break ; } } for(VoDayIntakeAmount vo11_15 : list11_15){ if(vo01_05.intakeId.longValue() == vo11_15.intakeId.longValue()){ vo01_05.amount11 = vo11_15.amount11 ; vo01_05.amount12 = vo11_15.amount12 ; vo01_05.amount13 = vo11_15.amount13 ; vo01_05.amount14 = vo11_15.amount14 ; vo01_05.amount15 = vo11_15.amount15 ; break ; } } for(VoDayIntakeAmount vo16_20 : list16_20){ if(vo01_05.intakeId.longValue() == vo16_20.intakeId.longValue()){ vo01_05.amount16 = vo16_20.amount16 ; vo01_05.amount17 = vo16_20.amount17 ; vo01_05.amount18 = vo16_20.amount18 ; vo01_05.amount19 = vo16_20.amount19 ; vo01_05.amount20 = vo16_20.amount20 ; break ; } } for(VoDayIntakeAmount vo21_25 : list21_25){ if(vo01_05.intakeId.longValue() == vo21_25.intakeId.longValue()){ vo01_05.amount21 = vo21_25.amount21 ; vo01_05.amount22 = vo21_25.amount22 ; vo01_05.amount23 = vo21_25.amount23 ; vo01_05.amount24 = vo21_25.amount24 ; vo01_05.amount25 = vo21_25.amount25 ; break ; } } for(VoDayIntakeAmount vo26_31 : list26_31){ if(vo01_05.intakeId.longValue() == vo26_31.intakeId.longValue()){ vo01_05.amount26 = vo26_31.amount26 ; vo01_05.amount27 = vo26_31.amount27 ; vo01_05.amount28 = vo26_31.amount28 ; vo01_05.amount29 = vo26_31.amount29 ; vo01_05.amount30 = vo26_31.amount30 ; vo01_05.amount31 = vo26_31.amount31 ; break ; } } } } /** * 统计指定月份各月用水量 * @param qo * @return */ public QueryResultVo<List<VoMonthAmount>> amountOfMonth(IntakeQo qo) throws ParseException { QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ; // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = monthDao.selectIntakeCount4AmountMonth(qo.intakeNum) ; if(itemTotal != null && itemTotal > 0){ rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); List<VoMonthAmount> list = monthDao.selectIntakes4AmountMonth(params); if(list == null || list.size() == 0){ rsVo.obj = list ; }else{ String json = JSON.toJSONString(list) ; params.put("intakesJson", json); List<VoMonthAmount> list01_06 = monthDao.selectIntakeAmountOfMonth01_06(params); if(list01_06 != null && list01_06.size() > 0){ //下面1到12月分了2个查询,原因是在一个查询中,非常慢,不知道什么原因,也许是子查询太多的原因 List<VoMonthAmount> list07_12 = monthDao.selectIntakeAmountOfMonth07_12(params); this.merge(list01_06, list07_12); } rsVo.obj = list01_06 ; } } return rsVo ; } private void merge(List<VoMonthAmount> list01_06, List<VoMonthAmount> list07_12){ for(VoMonthAmount vo01_06 : list01_06){ for(VoMonthAmount vo07_12 : list07_12){ if(vo01_06.intakeId.longValue() == vo07_12.intakeId.longValue()){ vo01_06.month7 = vo07_12.month7 ; vo01_06.month8 = vo07_12.month8 ; vo01_06.month9 = vo07_12.month9 ; vo01_06.month10 = vo07_12.month10 ; vo01_06.month11 = vo07_12.month11 ; vo01_06.month12 = vo07_12.month12 ; break ; } } } } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java
@@ -6,6 +6,7 @@ import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voSt.VoDayLoss; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -62,7 +63,7 @@ */ @GetMapping(path = "/lossAmountOfMonth") @SsoAop() public BaseResponse<QueryResultVo<List<VoDayLoss>>> lossAmountOfMonth(LossQo qo) throws Exception { public BaseResponse<QueryResultVo<List<VoMonthAmount>>> lossAmountOfMonth(LossQo qo) throws Exception { if(qo.getYear() == null) { return BaseResponseUtils.buildErrorMsg("查询条件年度不能为空"); } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java
@@ -26,10 +26,10 @@ public class LossSv { @Autowired private RmLossDayMapper rmLossDayMapper ; private RmLossDayMapper dayDao; @Autowired private StLossMonthMapper stLossMonthMapper ; private StLossMonthMapper monthDao; /** * 统计指定月份各天漏损量 @@ -41,28 +41,28 @@ // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = rmLossDayMapper.selectIntakeCount4LossDay(qo.intakeNum) ; Long itemTotal = dayDao.selectIntakeCount4LossDay(qo.intakeNum) ; if(itemTotal != null && itemTotal > 0){ rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); List<VoDayLoss> list = rmLossDayMapper.selectIntakes4LossDay(params); List<VoDayLoss> list = dayDao.selectIntakes4LossDay(params); if(list == null || list.size() == 0){ rsVo.obj = list ; }else{ String json = JSON.toJSONString(list) ; params.put("intakesJson", json); List<VoDayLoss> list01_05 = rmLossDayMapper.selectLossAmountOfDay01_05(params); List<VoDayLoss> list01_05 = dayDao.selectLossAmountOfDay01_05(params); if(list01_05 != null && list01_05.size() > 0){ //下面1到31号分了6个查询,原因是在一个查询中,非常慢,不知道什么原因,也许是子查询太多的原因 List<VoDayLoss> list06_10 = rmLossDayMapper.selectLossAmountOfDay06_10(params); List<VoDayLoss> list11_15 = rmLossDayMapper.selectLossAmountOfDay11_15(params); List<VoDayLoss> list16_20 = rmLossDayMapper.selectLossAmountOfDay16_20(params); List<VoDayLoss> list21_25 = rmLossDayMapper.selectLossAmountOfDay21_25(params); List<VoDayLoss> list26_31 = rmLossDayMapper.selectLossAmountOfDay26_31(params); List<VoDayLoss> list06_10 = dayDao.selectLossAmountOfDay06_10(params); List<VoDayLoss> list11_15 = dayDao.selectLossAmountOfDay11_15(params); List<VoDayLoss> list16_20 = dayDao.selectLossAmountOfDay16_20(params); List<VoDayLoss> list21_25 = dayDao.selectLossAmountOfDay21_25(params); List<VoDayLoss> list26_31 = dayDao.selectLossAmountOfDay26_31(params); this.merge(list01_05, list06_10, list11_15, list16_20, list21_25, list26_31); } rsVo.obj = list01_05 ; @@ -143,24 +143,24 @@ // 生成查询参数 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = stLossMonthMapper.selectIntakeCount4LossMonth(qo.intakeNum) ; Long itemTotal = monthDao.selectIntakeCount4LossMonth(qo.intakeNum) ; if(itemTotal != null && itemTotal > 0){ rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); List<VoMonthAmount> list = stLossMonthMapper.selectIntakes4LossMonth(params); List<VoMonthAmount> list = monthDao.selectIntakes4LossMonth(params); if(list == null || list.size() == 0){ rsVo.obj = list ; }else{ String json = JSON.toJSONString(list) ; params.put("intakesJson", json); List<VoMonthAmount> list01_06 = stLossMonthMapper.selectLossAmountOfMonth01_06(params); List<VoMonthAmount> list01_06 = monthDao.selectLossAmountOfMonth01_06(params); if(list01_06 != null && list01_06.size() > 0){ //下面1到12月分了2个查询,原因是在一个查询中,非常慢,不知道什么原因,也许是子查询太多的原因 List<VoMonthAmount> list07_12 = stLossMonthMapper.selectLossAmountOfMonth07_12(params); List<VoMonthAmount> list07_12 = monthDao.selectLossAmountOfMonth07_12(params); this.merge(list01_06, list07_12); } rsVo.obj = list01_06 ;