huanghongfa
2021-07-02 ffcd3e31c9938eb256d616c80edbe1821e9fb2bf
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java
@@ -1,11 +1,308 @@
package com.panzhihua.service_user.dao;/**
* @program: springcloud_k8s_panzhihuazhihuishequ
*
* @description: 居民导入
*
* @author: huang.hongfa weixin hhf9596 qq 959656820
*
* @create: 2021-02-05 17:40
**/
public interface SysUserInputDAO {
package com.panzhihua.service_user.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.ExportSpecialUserDTO;
import com.panzhihua.common.model.dtos.community.ExportUserDTO;
import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
import com.panzhihua.common.model.vos.user.InputUserInfoVO;
import com.panzhihua.service_user.model.dos.SysUserInputDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 居民导入
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-02-05 17:40
 **/
@Mapper
public interface SysUserInputDAO extends BaseMapper<SysUserInputDO> {
    //    @Select("<script> " +
//            " <where>" +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            " </where>" +
//            "</script>")
    @Select("select a.id,a.community_id from com_mng_struct_area a where a.area_name=#{areaName}")
    ComMngStructAreaVO selectByAreaName(String areaName);
    @Select("SELECT  " +
            "REPLACE(REPLACE(REPLACE(REPLACE(h.house_name,a.address_detail,''),'栋','-'),'单元','-'),'层','-')houseName, " +
            "h.house_code " +
            "FROM " +
            " com_mng_struct_area a  " +
            " join com_mng_struct_house h on h.house_name like CONCAT(a.address_detail,'%') and h.type=5 " +
            "WHERE " +
            " a.area_name = #{areaName}")
    List<ComMngStructHouseVO> selectHouserByareaName(String areaName);
    @Select("SELECT  " +
            "p.name, " +
            "p.id, " +
            "if(p.is_rent=1,'合租','家人')relationship, " +
            "p.id_card, " +
            "p.phone, " +
            "year(curdate())-if(length(p.id_card)=18,substring(p.id_card,7,4),if(length(p.id_card)=15,concat('19',substring(p.id_card,7,2)),null)) as age, " +
            "p.create_at " +
            "FROM " +
            " sys_user_input p  " +
            "WHERE " +
            " p.door_number = #{doorNumber}  " +
            " AND p.id !=#{userId}")
    List<ComMngFamilyInfoVO> selectListFamily(@Param("doorNumber") String doorNumber, @Param("userId")Long userId);
    @Select("<script> " +
            "SELECT " +
            " t.id, " +
            " t.`name`, " +
            "CASE " +
            " IF " +
            "  ( " +
            "   length( t.id_card ) = 18, " +
            "   cast( substring( t.id_card, 17, 1 ) AS UNSIGNED ) % 2, " +
            "  IF " +
            "   ( " +
            "    length( t.id_card ) = 15, " +
            "    cast( substring( t.id_card, 15, 1 ) AS UNSIGNED ) % 2, " +
            "    3  " +
            "   )  " +
            "  )  " +
            "  WHEN 1 THEN " +
            "  1  " +
            "  WHEN 0 THEN " +
            "  2 ELSE 0  " +
            " END AS sex, " +
            " t.phone, " +
            " YEAR ( now( ) ) - YEAR ( substring( t.id_card, 7, 8 ) ) age, " +
            " t1.area_name as areaName, " +
            " t.political_outlook politicalOutlook, " +
            " CONCAT( " +
            " IF " +
            "  ( t.soldier = 1, '军人,', '' ), " +
            " IF " +
            "  ( t.lowIncome_households = 1, '低保户,', '' ), " +
            " IF " +
            "  ( t.lowIncome_people = 1, '低收入,', '' ), " +
            " IF " +
            "  ( t.old_people = 1, '特服家庭,', '' ), " +
            " IF " +
            "  ( t.key_personnel = 1, '重点人员,', '' )  " +
            " ) tags,  " +
            " t.create_at  as createAt " +
            "FROM " +
            " sys_user_input t " +
            " LEFT JOIN com_mng_struct_area t1 ON t.area_id = t1.id  " +
            "WHERE " +
            " t.community_id = #{pageInputUserDTO.communityId}"+
            "<if test='pageInputUserDTO.name != null and pageInputUserDTO.name.trim() != &quot;&quot;'>" +
            " and t.`name` like concat(#{pageInputUserDTO.name},'%')  " +
            " </if> " +
            "<if test='pageInputUserDTO.phone != null and pageInputUserDTO.phone.trim() != &quot;&quot;'>" +
            " and t.phone like concat(#{pageInputUserDTO.phone},'%')  " +
            " </if> " +
            "<if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName.trim() != &quot;&quot;'>" +
            "AND t1.`area_name` like concat(#{pageInputUserDTO.areaName},'%')   " +
            " </if> " +
            " group by t.id_card "+
            "</script>")
    IPage<InputUserInfoVO> pageInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
    @Select("select a.id,a.community_id,a.area_name,address_detail from com_mng_struct_area a where a.community_id=#{communityId}")
    List<ComMngStructAreaVO> selectComMngStructArea(@Param("communityId") Long communityId);
    @Select("<script> " +
            "SELECT * FROM ( "+
            " SELECT " +
            " t.id, " +
            " t.`name`, " +
            "CASE " +
            " IF " +
            "  ( " +
            "   length( t.id_card ) = 18, " +
            "   cast( substring( t.id_card, 17, 1 ) AS UNSIGNED ) % 2, " +
            "  IF " +
            "   ( " +
            "    length( t.id_card ) = 15, " +
            "    cast( substring( t.id_card, 15, 1 ) AS UNSIGNED ) % 2, " +
            "    3  " +
            "   )  " +
            "  )  " +
            "  WHEN 1 THEN " +
            "  1  " +
            "  WHEN 0 THEN " +
            "  2 ELSE 0  " +
            " END AS sex, " +
            " t.phone, " +
            " YEAR ( now( ) ) - YEAR ( substring( t.id_card, 7, 8 ) ) age, " +
            " t1.area_name as areaName, " +
            " t.political_outlook politicalOutlook, " +
            " CONCAT( " +
            " IF " +
            "  ( t.soldier = 1, '军人,', '' ), " +
            " IF " +
            "  ( t.lowIncome_households = 1, '低保户,', '' ), " +
            " IF " +
            "  ( t.lowIncome_people = 1, '低收入,', '' ), " +
            " IF " +
            "  ( t.old_people = 1, '特服家庭,', '' ), " +
            " IF " +
            "  ( t.key_personnel = 1, '重点人员,', '' ),  " +
            "  IFNULL(t.tags,'')  " +
            " ) tags,  " +
            " t2.house_name  as address, " +
            " t.create_at  as createAt " +
            "FROM " +
            " sys_user_input t " +
            " LEFT JOIN com_mng_struct_area t1 ON t.area_id = t1.id  " +
            " LEFT JOIN com_mng_struct_house t2 ON t.house_code = t2.house_code " +
            "WHERE " +
            " t.community_id = #{pageInputUserDTO.communityId}"+
            " AND " +
            "(t.soldier=1 OR t.lowIncome_households=1 OR t.lowIncome_people=1 or t.old_people=1 OR t.special_service_family=1 OR t.key_personnel=1 OR (t.tags IS NOT NULL AND TRIM(t.tags)!=''))"+
            "<if test='pageInputUserDTO.name != null and pageInputUserDTO.name.trim() != &quot;&quot;'>" +
            " and t.`name` like concat(#{pageInputUserDTO.name},'%')  " +
            " </if> " +
            "<if test='pageInputUserDTO.phone != null and pageInputUserDTO.phone.trim() != &quot;&quot;'>" +
            " and t.phone like concat(#{pageInputUserDTO.phone},'%')  " +
            " </if> " +
            "<if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName.trim() != &quot;&quot;'>" +
            "AND t1.`area_name` like concat(#{pageInputUserDTO.areaName},'%')   " +
            " </if> " +
            " group by t.id_card "+
            " ) tt  WHERE 1=1 "+
            "<if test='pageInputUserDTO.tags != null and pageInputUserDTO.tags.trim() != &quot;&quot;'>" +
            " and tt.tags like concat('%',#{pageInputUserDTO.tags},'%')  " +
            " </if> " +
            "</script>")
    IPage<InputUserInfoVO> specialInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
    @Select("" +
            "SELECT " +
            " t1.house_code houseCode, " +
            " t1.house_name houseName, " +
            " t1.square, " +
            " t1.state " +
            "FROM " +
            " sys_user_input t  " +
            " LEFT JOIN com_mng_struct_house t1 ON t.house_code = t1.house_code " +
            " WHERE" +
            " t.id_card = #{idCard}")
    List<ComMngStructHouseVO> selectUserHouseList(@Param("idCard") String idCard);
    @Select("<script> " +
            "SELECT  " +
            "u.id 'order', " +
            "c.`area_name` areaName, "+
            "u.door_number doorNumber, " +
            "if(u.is_rent=1,'租住','自主')isRent, " +
            "u.name, " +
            "u.nation, " +
            "case u.political_outlook when 1 then '党员'  when 2 then '团员' else '群众' end politicalOutlook, " +
            "if(u.marital_status=1,'已婚','未婚')maritalStatus, " +
            "u.phone, " +
            "u.education, " +
            "u.id_card, " +
            "u.company, " +
            "u.residence, " +
            "if(u.is_panzhiHua=1,'是','否') isPanZhiHua, " +
            "u.situation, " +
            "if(is_contact=1,'是','否') isContact, " +
            "if(u.major=1,'是','否') major, " +
            "if(u.soldier=1,'是','否') soldier, " +
            "if(u.disability=1,'是','否') disability, " +
            "if(u.lowIncome_households=1,'是','否') lowIncomeHouseholds, " +
            "if(u.lowIncome_people=1,'是','否') lowIncomePeople, " +
            "if(u.old_people=1,'是','否') oldPeople, " +
            "if(u.special_service_family=1,'是','否') specialServiceFamily, " +
            "if(u.key_personnel=1,'是','否') keyPersonnel, " +
            "u.tags " +
            "FROM " +
            " sys_user_input u " +
            " where u.community_id=#{exportUserDTO.communityId} " +
            "<if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>" +
            " JOIN com_mng_struct_area c ON u.area_id = c.id  " +
            " </if> " +
            "<if test='exportUserDTO.areaName == null or exportUserDTO.areaName.trim() == &quot;&quot;'>" +
            "LEFT JOIN com_mng_struct_area c ON u.area_id = c.id  " +
            " </if> " +
            "<if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>" +
            "AND c.`area_name` like concat(#{exportUserDTO.areaName},'%')   " +
            " </if> " +
            "<if test='exportUserDTO.phone != null and exportUserDTO.phone.trim() != &quot;&quot;'>" +
            "AND u.phone like concat(#{exportUserDTO.phone},'%') " +
            " </if> " +
            "<if test='exportUserDTO.name != null and exportUserDTO.name.trim() != &quot;&quot;'>" +
            " and u.`name` like concat(#{exportUserDTO.name},'%')   " +
            " </if> " +
            "</script>")
    List<EexcelUserDTO> selectExport(@Param("exportUserDTO") ExportUserDTO exportUserDTO);
    @Select("<script> " +
            "SELECT  " +
            "u.id 'order', " +
            "c.`area_name` areaName, "+
            "u.door_number doorNumber, " +
            "if(u.is_rent=1,'租住','自主')isRent, " +
            "u.name, " +
            "u.nation, " +
            "case u.political_outlook when 1 then '党员'  when 2 then '团员' else '群众' end politicalOutlook, " +
            "if(u.marital_status=1,'已婚','未婚')maritalStatus, " +
            "u.phone, " +
            "u.education, " +
            "u.id_card, " +
            "u.company, " +
            "u.residence, " +
            "if(u.is_panzhiHua=1,'是','否') isPanZhiHua, " +
            "u.situation, " +
            "if(is_contact=1,'是','否') isContact, " +
            "if(u.major=1,'是','否') major, " +
            "if(u.soldier=1,'是','否') soldier, " +
            "if(u.disability=1,'是','否') disability, " +
            "if(u.lowIncome_households=1,'是','否') lowIncomeHouseholds, " +
            "if(u.lowIncome_people=1,'是','否') lowIncomePeople, " +
            "if(u.old_people=1,'是','否') oldPeople, " +
            "if(u.special_service_family=1,'是','否') specialServiceFamily, " +
            "if(u.key_personnel=1,'是','否') keyPersonnel, " +
            "u.tags " +
            "FROM " +
            " sys_user_input u " +
            " JOIN com_mng_struct_area c ON u.area_id = c.id  " +
            " where u.community_id=#{exportSpecialUserDTO.communityId} " +
            "<if test='exportSpecialUserDTO.areaName != null and exportSpecialUserDTO.areaName.trim() != &quot;&quot;'>" +
            "AND c.`area_name` like concat(#{exportUserDTO.areaName},'%')   " +
            " </if> " +
            "<if test='exportSpecialUserDTO.name != null and exportSpecialUserDTO.name.trim() != &quot;&quot;'>" +
            " and u.`name` like concat(#{exportSpecialUserDTO.name},'%')   " +
            " </if> " +
            "<if test='exportSpecialUserDTO.name != null and exportSpecialUserDTO.name.trim() != &quot;&quot;'>" +
            " and u.`name` like concat(#{exportSpecialUserDTO.name},'%')   " +
            " </if> " +
            "<if test='exportSpecialUserDTO.tags != null and exportSpecialUserDTO.tags.trim() != &quot;&quot;'>" +
            " CONCAT( " +
            " IF " +
            "  ( t.soldier = 1, '军人,', '' ), " +
            " IF " +
            "  ( t.lowIncome_households = 1, '低保户,', '' ), " +
            " IF " +
            "  ( t.lowIncome_people = 1, '低收入,', '' ), " +
            " IF " +
            "  ( t.old_people = 1, '特服家庭,', '' ), " +
            " IF " +
            "  ( t.key_personnel = 1, '重点人员,', '' ),  " +
            "  IFNULL(t.tags,'')  " +
            " ) like concat(#{exportSpecialUserDTO.tags},'%')"+
            " </if> " +
            "</script>")
    List<EexcelUserDTO> specialUserExport(@Param("exportSpecialUserDTO") ExportSpecialUserDTO exportSpecialUserDTO);
}