wuzeyu
2024-02-27 4065813b0584dd9fbd2f014fea1aca912354f121
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -214,12 +214,11 @@
  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
    SELECT COUNT(*) AS recordCount
    FROM pr_intake ge
    INNER JOIN ba_divide divi ON ge.divideId = divi.id
    INNER JOIN pr_divide divi ON ge.divideId = divi.id
    INNER JOIN ba_block blo ON divi.blockId = blo.id
    INNER JOIN ba_district country ON ge.countyId = country.id
    INNER JOIN ba_district town ON ge.townId = town.id
    INNER JOIN ba_district village ON ge.villageId = village.id
    , (SELECT @i:=0) AS itable
    LEFT JOIN ba_district country ON ge.countyId = country.id
    LEFT JOIN ba_district town ON ge.townId = town.id
    LEFT JOIN ba_district village ON ge.villageId = village.id
    <where>
      ge.deleted = 0
      AND divi.deleted = 0
@@ -233,26 +232,42 @@
      </if>
      <if test="blockName != null and blockName != ''">
        AND blo.name = #{blockName}
        AND blo.name LIKE CONCAT('%', #{blockName}, '%')
      </if>
      <if test="isBinded == 0">
        AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
      </if>
      <if test="isBinded == 1">
        AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
      </if>
      <if test="isBinded == null">
      </if>
      <if test="address != null and address != ''">
        AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
      </if>
    </where>
  </select>
  <!--根据指定条件获取取水口记录-->
  <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake">
    SELECT (@i:=@i+1)                                          AS id,
    SELECT CAST(ge.id AS char)                             AS id,
    ge.`name`                                           AS intakeName,
    divi.`name`                                         AS divideName,
    blo.`name`                                          AS blockName,
    ge.operateDt                                        As operateDt,
    (CASE
    WHEN ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)  THEN "未绑定"
    WHEN ge.id IN(SELECT intakeId FROM pr_controller  where deleted = 0)  THEN "已绑定"
    END) AS isBind,
    CONCAT(country.`name`, town.`name`, village.`name`) AS address
    FROM pr_intake ge
    INNER JOIN pr_divide divi ON ge.divideId = divi.id
    INNER JOIN ba_block blo ON divi.blockId = blo.id
    INNER JOIN ba_district country ON ge.countyId = country.id
    INNER JOIN ba_district town ON ge.townId = town.id
    INNER JOIN ba_district village ON ge.villageId = village.id
    , (SELECT @i:=0) AS itable
    LEFT JOIN ba_district country ON ge.countyId = country.id
    LEFT JOIN ba_district town ON ge.townId = town.id
    LEFT JOIN ba_district village ON ge.villageId = village.id
    <where>
      ge.deleted = 0
      AND divi.deleted = 0
@@ -260,17 +275,31 @@
      <if test="intakeName != null and intakeName != ''">
        AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
      </if>
      <if test="divideName != null and divideName != ''">
        AND divi.name LIKE CONCAT('%', #{divideName}, '%')
      </if>
      <if test="blockName != null and blockName != ''">
        AND blo.name = #{blockName}
        AND blo.name LIKE CONCAT('%', #{blockName}, '%')
      </if>
      <if test="isBinded == 0">
        AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
      </if>
      <if test="isBinded == 1">
        AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
      </if>
      <if test="isBinded == null">
      </if>
      <if test="address != null and address != ''">
        AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
      </if>
    </where>
    ORDER BY ge.operateDt DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${pageCurr}, ${pageSize}
      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
    </if>
  </select>
@@ -283,4 +312,39 @@
    on dis_vil.supperId = dis_tow.id
    where dis_vil.id = #{vaId,jdbcType=BIGINT}
  </select>
  <!--根据取水口编号获取未删除的取水口数量-->
  <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
    SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId}
  </select>
  <!--根据村ID获取全部地址-->
  <select id="getAddressByVillageId" parameterType="_long" resultType="java.lang.String">
    select
    CONCAT(dis_province.`name`, dis_city.`name`, dis_county.`name`, dis_town.`name`, dis_village.`name`) AS address
    from ba_district dis_village
    inner join ba_district dis_town    on dis_village.supperId = dis_town.id
    inner join ba_district dis_county    on dis_town.supperId = dis_county.id
    inner join ba_district dis_city    on dis_county.supperId = dis_city.id
    inner join ba_district dis_province    on dis_city.supperId = dis_province.id
    where dis_village.id = #{villageId,jdbcType=BIGINT}
  </select>
  <!--根据区域Id获取区域等级-->
  <select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer">
    select
    region.level
    from ba_district region
    where region.id = #{regionId,jdbcType=BIGINT}
  </select>
  <!--获取未绑控制器的取水口列表-->
  <select id="getNoBindingIntakes" resultType="java.util.HashMap">
    SELECT
        CAST(inta.id AS char)AS intakeId,
        name AS intakeName
    FROM pr_intake inta
    WHERE id NOT IN(SELECT intakeId FROM pr_controller) AND deleted = 0
  </select>
</mapper>