liurunyu
2025-02-07 6fa8408c8133e8c9aee2bbcdec37bf95c20951c0
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -302,60 +302,24 @@
  </select>
  <!--根据指定条件获取农户记录数-->
  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
    SELECT
        COUNT(*) AS recordCount
    FROM se_client cli
    , (SELECT @i:=0) AS itable
    <where>
      AND cli.disabled = 0
      AND cli.deleted = 0
      <if test = "name != null and name !=''">
        AND cli.name like CONCAT('%',#{name},'%')
      </if>
      <if test = "clientNum != null and clientNum !=''">
        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
      </if>
      <if test = "phone != null and phone !=''">
        AND cli.phone like CONCAT('%',#{phone},'%')
      </if>
      <if test = "address != null and address !=''">
        AND cli.address like CONCAT('%',#{address},'%')
      </if>
      <if test = "villageId != null and villageId !=''">
        AND cli.villageId =  #{villageId}
      </if>
      <if test = "blockId != null and blockId !=''">
        AND cli.blockId =  #{blockId}
      </if>
      <if test = "divideId != null and divideId !=''">
        AND cli.divideId =  #{divideId}
      </if>
    </where>
  </select>
  <!--根据指定条件获取农户数据-->
  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
    SELECT
        CAST(cli.countyId AS char) AS countyId,
<!--  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">-->
  <select id="getRecordCount" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
<!--    SELECT-->
<!--        COUNT(*) AS recordCount-->
    SELECT DISTINCT
        cli.countyId,
        dis_con.name AS countryName,
        CAST(cli.townId AS char) AS townId,
        cli.townId,
        dis_town.name AS townName,
        CAST(cli.villageId AS char) AS villageId,
        cli.villageId,
        dis_village.name AS villageName,
        CAST(cli.blockId AS char) AS blockId,
        cli.blockId,
        blo.name AS blockName,
        CAST(cli.divideId AS char) AS divideId,
        cli.divideId,
        divi.name AS divideName,
        CAST(cli.typeId AS char) AS typeId,
        cli.typeId,
        wat.typeName AS waterTypeName,
        CAST(cli.id AS char) AS clientId,
        cli.id AS clientId,
        cli.name,
        cli.clientNum,
        cli.phone,
@@ -366,12 +330,13 @@
        cli.remarks,
        cli.operateDt
    FROM se_client cli
    LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
    LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
    LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
    LEFT JOIN ba_block blo ON cli.blockId = blo.id
    LEFT JOIN pr_divide divi ON cli.divideId = divi.id
    LEFT JOIN se_water_type wat ON cli.typeId = wat.id
        LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
        LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
        LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
        LEFT JOIN ba_block blo ON cli.blockId = blo.id
        LEFT JOIN pr_divide divi ON cli.divideId = divi.id
        LEFT JOIN se_water_type wat ON cli.typeId = wat.id
        LEFT JOIN se_client_card card ON card.clientId = cli.id
    <where>
      AND cli.disabled = 0
      AND cli.deleted = 0
@@ -400,6 +365,78 @@
      <if test = "divideId != null and divideId !=''">
        AND cli.divideId =  #{divideId}
      </if>
      <if test = "cardNum != null">
        AND card.cardNum =  #{cardNum}
      </if>
    </where>
  </select>
  <!--根据指定条件获取农户数据-->
  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
    SELECT DISTINCT
        cli.countyId,
        dis_con.name AS countryName,
        cli.townId,
        dis_town.name AS townName,
        cli.villageId,
        dis_village.name AS villageName,
        cli.blockId,
        blo.name AS blockName,
        cli.divideId,
        divi.name AS divideName,
        cli.typeId,
        wat.typeName AS waterTypeName,
        cli.id AS clientId,
        cli.name,
        cli.clientNum,
        cli.phone,
        cli.idCard,
        cli.area,
        (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
        cli.address,
        cli.remarks,
        cli.operateDt
    FROM se_client cli
        LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
        LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
        LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
        LEFT JOIN ba_block blo ON cli.blockId = blo.id
        LEFT JOIN pr_divide divi ON cli.divideId = divi.id
        LEFT JOIN se_water_type wat ON cli.typeId = wat.id
        LEFT JOIN se_client_card card ON card.clientId = cli.id
    <where>
      AND cli.disabled = 0
      AND cli.deleted = 0
      <if test = "name != null and name !=''">
        AND cli.name like CONCAT('%',#{name},'%')
      </if>
      <if test = "clientNum != null and clientNum !=''">
        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
      </if>
      <if test = "phone != null and phone !=''">
        AND cli.phone like CONCAT('%',#{phone},'%')
      </if>
      <if test = "address != null and address !=''">
        AND cli.address like CONCAT('%',#{address},'%')
      </if>
      <if test = "villageId != null and villageId !=''">
        AND cli.villageId =  #{villageId}
      </if>
      <if test = "blockId != null and blockId !=''">
        AND cli.blockId =  #{blockId}
      </if>
      <if test = "divideId != null and divideId !=''">
        AND cli.divideId =  #{divideId}
      </if>
      <if test = "cardNum != null">
        AND card.cardNum =  #{cardNum}
      </if>
    </where>
    ORDER BY cli.operateDt DESC
    <trim prefix="limit " >