智慧保安后台管理-外网
Administrator
2022-01-04 1bf4f952b35ee870082e0ec0b1026f47121fe2fe
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -158,6 +158,15 @@
        <if test="user.isAvatar==2">
            and (bu.avatar is null or bu.avatar="")
        </if>
        <if test="user.ageType==1">
            and age >=18 and age &lt;=30
        </if>
        <if test="user.ageType==2">
            and age >30 and age &lt;=45
        </if>
        <if test="user.ageType==3">
            and age >45 and age &lt;=60
        </if>
        <if test="user.isFingerprint==1">
            and bu.fingerprint is not null and bu.fingerprint!=""
        </if>
@@ -178,6 +187,153 @@
        </if>
        <if test="user.sortName==null or user.sortName==''">
            ORDER BY bu.id desc
        </if>
    </select>
    <!--带坐标,按年龄分布查询-->
    <select id="selectUserPagesByAge" resultMap="userResultMap">
        select * from
        (
            select
            distinct
            bu.*,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sexs,
            ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
            sll.longitude,sll.latitude,
            bd.dept_name
            from
            blade_user bu
            left join
            blade_dept bd
            on
            bu.dept_id = bd.id
            left join
            sys_information si
            on
            si.departmentid = bd.id
            left join
            sys_jurisdiction sj
            on
            sj.id = si.jurisdiction
            left join
            sys_live_location sll
            on
            sll.worker_id = bu.id
            left join
            blade_role br
            on
            br.id = bu.role_id
            left join
            sys_training_registration str
            on
            bu.id = str.user_id
            where
            bu.is_deleted = 0
            <if test="user.examinationType!=null and user.examinationType != ''">
                <if test="user.examinationType == 0">
                    and (bu.examination_type = #{user.examinationType} or bu.examination_type is null or bu.examination_type ='')
                </if>
                <if test="user.examinationType == 1">
                    and bu.examination_type = #{user.examinationType}
                </if>
            </if>
            <if test="user.account!=null and user.account != ''">
                and bu.account like concat('%', #{user.account},'%')
            </if>
            <if test="user.hold!=null and user.hold != ''">
                and bu.hold = #{user.hold}
            </if>
            <if test="user.deptId!=null and user.deptId != ''">
                and bd.id in
                (
                select id from blade_dept where id = #{user.deptId}
                union
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{user.deptId} ) t2
                ) t3
                WHERE
                ischild != 0
                )
            </if>
            <if test="user.roleId!=null and user.roleId != ''">
                and bu.role_id = #{user.roleId}
            </if>
            <if test="user.roleAlias!=null and user.roleAlias != ''">
                and br.role_alias = '保安'
            </if>
            <if test="user.status!=null and user.status != '' and user.status != 6">
                and bu.status = #{user.status}
            </if>
            <if test="user.education!=null  and user.education != ''">
                and bu.education = #{user.education}
            </if>
            <if test="user.trainingUnitId!=null and user.trainingUnitId != ''">
                and str.training_unit_id = #{user.trainingUnitId}
            </if>
            <if test="user.deptName!=null and user.deptName != ''">
                and  bd.dept_name like concat('%', #{user.deptName},'%')
            </if>
            <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction!='1372091709474910209'">
                and (sj.id = #{user.jurisdiction} or sj.parent_id = #{user.jurisdiction})
            </if>
            <if test="user.realName!=null and user.realName != ''">
                and bu.real_name like concat('%', #{user.realName},'%')
            </if>
            <if test="user.dispatch!=null and user.dispatch != ''">
                <if test="user.dispatch == 0">
                    and bu.dispatch = #{user.dispatch}
                </if>
                <if test="user.dispatch == 1">
                    and bu.dispatch = #{user.dispatch}
                </if>
            </if>
            <if test="user.isAvatar==1">
                and bu.avatar is not null and bu.avatar!=""
            </if>
            <if test="user.isAvatar==2">
                and (bu.avatar is null or bu.avatar="")
            </if>
            <if test="user.isFingerprint==1">
                and bu.fingerprint is not null and bu.fingerprint!=""
            </if>
            <if test="user.isFingerprint==2">
                and (bu.fingerprint is null or bu.fingerprint="")
            </if>
            <if test="user.userType!=null and user.userType != ''">
                and bu.user_type = #{user.userType}
            </if>
            <if test="user.securitynumber!=null and user.securitynumber != ''">
                and bu.securitynumber like concat('%', #{user.securitynumber},'%')
            </if>
            <if test="user.cardid!=null and user.cardid != ''">
                and bu.cardid like concat('%', #{user.cardid},'%')
            </if>
            <if test="user.sortName!=null and user.sortName!=''">
                ORDER BY bu.${user.sortName} ${user.sort},bu.id desc
            </if>
            <if test="user.sortName==null or user.sortName==''">
                ORDER BY bu.id desc
            </if>
        ) user
        where 1=1
        <if test="user.ageType==1">
            and age >=18 and age &lt;=30
        </if>
        <if test="user.ageType==2">
            and age >30 and age &lt;=45
        </if>
        <if test="user.ageType==3">
            and age >45 and age &lt;=60
        </if>
    </select>
@@ -411,8 +567,8 @@
            from (
                select
                    distinct
                    bu.id,
                    ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING(bu.cardid,7,4),0) age,
                    bu.id
                    ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
                    bu.is_apply isApply,
                    bu.is_train isTrain,
                    bu.real_name as name,
@@ -479,7 +635,7 @@
    <!--计算保安人员年龄-->
    <select id="getUserAgeById" resultType="org.springblade.modules.system.vo.UserVO">
        select id,real_name realName,ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING(cardid,7,4),0) age,securitynumber,cardid
        select id,real_name realName,ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(cardid, 7, 8), CURDATE()),0) AS age,securitynumber,cardid
        from
        blade_user
        where
@@ -491,7 +647,7 @@
    <select id="getUserInfoBySecurityNumber" resultType="org.springblade.modules.system.vo.UserVO">
        select
        bu.*,
        ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING( cardid,7,4),0) age,
        ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(cardid, 7, 8), CURDATE()),0) AS age,
        bd.dept_name deptName
         from
         blade_user bu
@@ -896,6 +1052,64 @@
        </foreach>
    </insert>
    <!--查询学历统计信息-->
    <select id="getAgeStatistics" resultType="java.lang.Integer">
        select count(*) c from (
        select ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age from blade_user bu
        left join blade_dept bd on bu.dept_id = bd.id
        left join sys_information si on si.departmentid = bd.id
        left join sys_jurisdiction sj on sj.id = si.jurisdiction
        where bu.status = 1
        and bu.is_deleted = 0
        and bu.role_id = 1412226235153731586
        <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction!='1372091709474910209'">
            and (sj.id = #{user.jurisdiction} or sj.parent_id = #{user.jurisdiction})
        </if>
        <if test="user.deptId!=null and user.deptId != ''">
            and bu.dept_id = #{user.deptId}
        </if>
        )a where age>=18 and age &lt;=30
        union
        (
            select count(*) c from
            (
            select ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age from blade_user bu
            left join blade_dept bd on bu.dept_id = bd.id
            left join sys_information si on si.departmentid = bd.id
            left join sys_jurisdiction sj on sj.id = si.jurisdiction
            where bu.status = 1
            and bu.is_deleted = 0
            and bu.role_id = 1412226235153731586
            <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction!='1372091709474910209'">
                and (sj.id = #{user.jurisdiction} or sj.parent_id = #{user.jurisdiction})
            </if>
            <if test="user.deptId!=null and user.deptId != ''">
                and bu.dept_id = #{user.deptId}
            </if>
            )a where age>30 and age &lt;=45
        )
        union
        (
            select count(*) c from
            (
            select ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age from blade_user bu
            left join blade_dept bd on bu.dept_id = bd.id
            left join sys_information si on si.departmentid = bd.id
            left join sys_jurisdiction sj on sj.id = si.jurisdiction
            where bu.status = 1
            and bu.is_deleted = 0
            and bu.role_id = 1412226235153731586
            <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction!='1372091709474910209'">
                and (sj.id = #{user.jurisdiction} or sj.parent_id = #{user.jurisdiction})
            </if>
            <if test="user.deptId!=null and user.deptId != ''">
                and bu.dept_id = #{user.deptId}
            </if>
            )a where age>45 and age &lt;=60
        )
    </select>
</mapper>