智慧保安后台管理-验收版本
tangzy
2021-12-02 067570bc019e9c9cefdac19efa27ff9991b21356
1.统计
3 files modified
1179 ■■■■ changed files
src/main/java/org/springblade/modules/equipage/controller/CarController.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/information/controller/InformationController.java 246 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml 931 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/equipage/controller/CarController.java
@@ -136,7 +136,7 @@
        params.put("beginTime", beginTime);
        params.put("endTime", endTime);
        params.put("rectify", rectify);
        params.put("callbackUrl", "http://2h3f861221.wicp.vip/car/SaveUrl");
        params.put("callbackUrl", "http://s16s652780.51mypc.cn/api/car/SaveUrl");
        params.put("callbackId", "1");
        params.put("appId", "PO00000761");
        params.put("timestamp", System.currentTimeMillis());
src/main/java/org/springblade/modules/information/controller/InformationController.java
@@ -320,6 +320,70 @@
    }
//    /**
//     * 统计这个月和上个月交社保的人数,以及金额
//     *
//     * @return
//     */
//    @PostMapping("/selectTo")
//    public R selectTo(String jurisdiction, String deptid) {
//        //上个月人数数量
//        Integer lnum = 0;
//        //这个月人数数量
//        Integer tnum = 0;
//        //上个月派遣人数
//        Integer tpznum = 0;
//        //这个月人数数量
//        Integer lpznum = 0;
//        //上个月总人数
//        Integer tznum = 0;
//        //这个月总人数
//        Integer lznum = 0;
//        //上个月金额
//        Double lmount = 0.0;
//        //这个月金额
//        Double tmount = 0.0;
//        Map<String, Object> map = new HashMap<String, Object>();
//        List<Map<String, Object>> lists = new ArrayList<>();
//        List<Map<String, Object>> list = informationService.selectTo(jurisdiction, deptid);
//        for (int i = 0; i < list.size(); i++) {
//            String lastmonths = list.get(i).get("lastmonth").toString();
//            Integer lastmonth = Integer.parseInt(lastmonths);
//            lnum += lastmonth;
//            String thismouths = list.get(i).get("thismouth").toString();
//            Integer thismouth = Integer.parseInt(thismouths);
//            tnum += thismouth;
//            String lastamounts = list.get(i).get("lastamount").toString();
//            Double lastamount = Double.parseDouble(lastamounts);
//            lmount += lastamount;
//            String thisamounts = list.get(i).get("thisamount").toString();
//            Double thisamount = Double.parseDouble(thisamounts);
//            tmount += thisamount;
//            String userthismouth = list.get(i).get("userthismouth").toString();
//            Integer userthismouths = Integer.parseInt(userthismouth);
//            lpznum += userthismouths;
//            String userlastmouth = list.get(i).get("userlastmouth").toString();
//            Integer userlastmouths = Integer.parseInt(userlastmouth);
//            tpznum += userlastmouths;
//            String userpcthismouth = list.get(i).get("userpcthismouth").toString();
//            Integer userpcthismouths = Integer.parseInt(userpcthismouth);
//            lznum += userpcthismouths;
//            String userpclastmouth = list.get(i).get("userpclastmouth").toString();
//            Integer userpclastmouths = Integer.parseInt(userpclastmouth);
//            tznum += userpclastmouths;
//        }
//        map.put("lastmonth", lnum);
//        map.put("thismouth", tnum);
//        map.put("lastamount", lmount);
//        map.put("thisamount", tmount);
//        map.put("userlastmouth", tpznum);
//        map.put("userthismouth", lpznum);
//        map.put("userpcthismouth", lznum);
//        map.put("userpclastmouth", tznum);
//        lists.add(map);
//        return R.data(lists);
//    }
    /**
     * 统计这个月和上个月交社保的人数,以及金额
     *
@@ -331,18 +395,22 @@
        Integer lnum = 0;
        //这个月人数数量
        Integer tnum = 0;
        Integer znum = 0;
        //上个月派遣人数
        Integer tpznum = 0;
        //这个月人数数量
        Integer lpznum = 0;
        Integer pznum = 0;
        //上个月总人数
        Integer tznum = 0;
        //这个月总人数
        Integer lznum = 0;
        Integer sbnum = 0;
        //上个月金额
        Double lmount = 0.0;
        //这个月金额
        Double tmount = 0.0;
        Double tamountnum = 0.0;
        Map<String, Object> map = new HashMap<String, Object>();
        List<Map<String, Object>> lists = new ArrayList<>();
        List<Map<String, Object>> list = informationService.selectTo(jurisdiction, deptid);
@@ -353,36 +421,61 @@
            String thismouths = list.get(i).get("thismouth").toString();
            Integer thismouth = Integer.parseInt(thismouths);
            tnum += thismouth;
            //社保总数
            String nums = list.get(i).get("num").toString();
            Integer numss = Integer.parseInt(nums);
            znum += numss;
            String lastamounts = list.get(i).get("lastamount").toString();
            Double lastamount = Double.parseDouble(lastamounts);
            lmount += lastamount;
            String thisamounts = list.get(i).get("thisamount").toString();
            Double thisamount = Double.parseDouble(thisamounts);
            tmount += thisamount;
            //缴纳总数
            String amountnums = list.get(i).get("amountnum").toString();
            Double amountnumss = Double.parseDouble(amountnums);
            tamountnum += amountnumss;
            String userthismouth = list.get(i).get("userthismouth").toString();
            Integer userthismouths = Integer.parseInt(userthismouth);
            lpznum += userthismouths;
            String userlastmouth = list.get(i).get("userlastmouth").toString();
            Integer userlastmouths = Integer.parseInt(userlastmouth);
            tpznum += userlastmouths;
            String usernums = list.get(i).get("usernum").toString();
            Integer usernumss = Integer.parseInt(usernums);
            pznum += usernumss;
            //公司派遣总数
            String userpcthismouth = list.get(i).get("userpcthismouth").toString();
            Integer userpcthismouths = Integer.parseInt(userpcthismouth);
            lznum += userpcthismouths;
            String userpclastmouth = list.get(i).get("userpclastmouth").toString();
            Integer userpclastmouths = Integer.parseInt(userpclastmouth);
            tznum += userpclastmouths;
            //缴纳社保总数
            String userpcnums = list.get(i).get("userpcnum").toString();
            Integer userpcnumss = Integer.parseInt(userpcnums);
            sbnum += userpcnumss;
        }
        map.put("lastmonth", lnum);
        map.put("thismouth", tnum);
        map.put("znum", znum);
        map.put("lastamount", lmount);
        map.put("thisamount", tmount);
        map.put("tamountnum", tamountnum);
        map.put("userlastmouth", tpznum);
        map.put("userthismouth", lpznum);
        map.put("usernum", pznum);
        map.put("userpcthismouth", lznum);
        map.put("userpclastmouth", tznum);
        map.put("userpcnum", sbnum);
        lists.add(map);
        return R.data(lists);
    }
    /**
@@ -438,6 +531,12 @@
        List<Map<String, Object>> lists = new ArrayList<>();
        Integer a = 0;
        Integer b = 0;
        Integer num = 0;
        Integer znum = 0;
        Integer cznum = 0;
        Integer sbnum = 0;
        Integer khnum = 0;
        Integer pqnum = 0;
        Integer zca = 0;
        Integer zcb = 0;
        Integer cza = 0;
@@ -448,6 +547,7 @@
        Integer khb = 0;
        Integer pqa = 0;
        Integer pqb = 0;
        Integer integer = 0;
        String deptname = null;
        String jurname = null;
        //保安员数量
@@ -466,10 +566,20 @@
            //上个月数量
            String lastnum = maps.get(i).get("lastnum").toString();
            b += Integer.valueOf(lastnum);
            String nums = maps.get(i).get("num").toString();
            num += Integer.valueOf(nums);
            String fznums = maps.get(i).get("fznum").toString();
            integer += Integer.valueOf(fznums);
        }
        map.put("thisnum", a);
        map.put("lastnum", b);
//        if(deptid.equals("")|| deptid.equals("null")){
//            map.put("num", num-integer);
//        }
//        else {
//            map.put("num", num);
//        }
        map.put("num", num);
        map.put("List", maps);
        mapC.put("baoan", map);
        //正常保安员数量
@@ -481,9 +591,12 @@
            //上个月数量
            String lastnum = maps1.get(i).get("lastnum").toString();
            zcb += Integer.valueOf(lastnum);
            String nums = maps1.get(i).get("num").toString();
            znum += Integer.valueOf(nums);
        }
        mapzc.put("thisnum", zca);
        mapzc.put("lastnum", zcb);
        mapzc.put("num", znum);
        mapzc.put("List", maps1);
        mapC.put("zcbaoan", mapzc);
        //持证保安数量
@@ -495,9 +608,12 @@
            //上个月数量
            String lastnum = maps2.get(i).get("lastnum").toString();
            czb += Integer.valueOf(lastnum);
            String nums = maps2.get(i).get("num").toString();
            cznum += Integer.valueOf(nums);
        }
        mapcz.put("thisnum", cza);
        mapcz.put("lastnum", czb);
        mapcz.put("num", cznum);
        mapcz.put("List", maps2);
        mapC.put("czbaoan", mapcz);
        //缴纳社保数量
@@ -509,9 +625,12 @@
            //上个月数量
            String lastnum = maps3.get(i).get("lastnum").toString();
            sbb += Integer.valueOf(lastnum);
            String nums = maps3.get(i).get("num").toString();
            sbnum += Integer.valueOf(nums);
        }
        mapsb.put("thisnum", sba);
        mapsb.put("lastnum", sbb);
        mapsb.put("num", sbnum);
        mapsb.put("List", maps3);
        mapC.put("sheb", mapsb);
        //服务客户数量
@@ -523,9 +642,12 @@
            //上个月数量
            String lastnum = maps4.get(i).get("lastnum").toString();
            khb += Integer.valueOf(lastnum);
            String nums = maps4.get(i).get("num").toString();
            khnum += Integer.valueOf(nums);
        }
        mapkh.put("thisnum", kha);
        mapkh.put("lastnum", khb);
        mapkh.put("num", khnum);
        mapkh.put("List", maps4);
        mapC.put("kh", mapkh);
        //保安派遣数量
@@ -537,9 +659,12 @@
            //上个月数量
            String lastnum = maps5.get(i).get("lastnum").toString();
            pqb += Integer.valueOf(lastnum);
            String nums = maps5.get(i).get("num").toString();
            pqnum += Integer.valueOf(nums);
        }
        mappq.put("thisnum", pqa);
        mappq.put("lastnum", pqb);
        mappq.put("num", pqnum);
        mappq.put("List", maps5);
        mapC.put("paiq", mappq);
        lists.add(mapC);
@@ -547,6 +672,125 @@
    }
//    /**
//     * 公司运营智能统计
//     *
//     * @return
//     */
//    @GetMapping("/queryCounts")
//    public R queryCounts(String jurisdiction, String deptid) {
//        List<Map<String, Object>> lists = new ArrayList<>();
//        Integer a = 0;
//        Integer b = 0;
//        Integer zca = 0;
//        Integer zcb = 0;
//        Integer cza = 0;
//        Integer czb = 0;
//        Integer sba = 0;
//        Integer sbb = 0;
//        Integer kha = 0;
//        Integer khb = 0;
//        Integer pqa = 0;
//        Integer pqb = 0;
//        String deptname = null;
//        String jurname = null;
//        //保安员数量
//        Map<String, Object> map = new HashMap<String, Object>();
//        Map<String, Object> mapzc = new HashMap<String, Object>();
//        Map<String, Object> mapcz = new HashMap<String, Object>();
//        Map<String, Object> mapsb = new HashMap<String, Object>();
//        Map<String, Object> mapkh = new HashMap<String, Object>();
//        Map<String, Object> mappq = new HashMap<String, Object>();
//        Map<String, Object> mapC = new HashMap<String, Object>();
//        List<Map<Object, Object>> maps = informationService.queryCountB(jurisdiction, deptid);
//        for (int i = 0; i < maps.size(); i++) {
//            //这个月数量
//            String thisnum = maps.get(i).get("thisnum").toString();
//            a += Integer.valueOf(thisnum);
//            //上个月数量
//            String lastnum = maps.get(i).get("lastnum").toString();
//            b += Integer.valueOf(lastnum);
//
//        }
//        map.put("thisnum", a);
//        map.put("lastnum", b);
//        map.put("List", maps);
//        mapC.put("baoan", map);
//        //正常保安员数量
//        List<Map<Object, Object>> maps1 = informationService.queryCountZc(jurisdiction, deptid);
//        for (int i = 0; i < maps1.size(); i++) {
//            //这个月数量
//            String thisnum = maps1.get(i).get("thisnum").toString();
//            zca += Integer.valueOf(thisnum);
//            //上个月数量
//            String lastnum = maps1.get(i).get("lastnum").toString();
//            zcb += Integer.valueOf(lastnum);
//        }
//        mapzc.put("thisnum", zca);
//        mapzc.put("lastnum", zcb);
//        mapzc.put("List", maps1);
//        mapC.put("zcbaoan", mapzc);
//        //持证保安数量
//        List<Map<Object, Object>> maps2 = informationService.queryCountCz(jurisdiction, deptid);
//        for (int i = 0; i < maps2.size(); i++) {
//            //这个月数量
//            String thisnum = maps2.get(i).get("thisnum").toString();
//            cza += Integer.valueOf(thisnum);
//            //上个月数量
//            String lastnum = maps2.get(i).get("lastnum").toString();
//            czb += Integer.valueOf(lastnum);
//        }
//        mapcz.put("thisnum", cza);
//        mapcz.put("lastnum", czb);
//        mapcz.put("List", maps2);
//        mapC.put("czbaoan", mapcz);
//        //缴纳社保数量
//        List<Map<Object, Object>> maps3 = informationService.queryCountSb(jurisdiction, deptid);
//        for (int i = 0; i < maps3.size(); i++) {
//            //这个月数量
//            String thisnum = maps3.get(i).get("thisnum").toString();
//            sba += Integer.valueOf(thisnum);
//            //上个月数量
//            String lastnum = maps3.get(i).get("lastnum").toString();
//            sbb += Integer.valueOf(lastnum);
//        }
//        mapsb.put("thisnum", sba);
//        mapsb.put("lastnum", sbb);
//        mapsb.put("List", maps3);
//        mapC.put("sheb", mapsb);
//        //服务客户数量
//        List<Map<Object, Object>> maps4 = informationService.queryCountKh(jurisdiction, deptid);
//        for (int i = 0; i < maps4.size(); i++) {
//            //这个月数量
//            String thisnum = maps4.get(i).get("thisnum").toString();
//            kha += Integer.valueOf(thisnum);
//            //上个月数量
//            String lastnum = maps4.get(i).get("lastnum").toString();
//            khb += Integer.valueOf(lastnum);
//        }
//        mapkh.put("thisnum", kha);
//        mapkh.put("lastnum", khb);
//        mapkh.put("List", maps4);
//        mapC.put("kh", mapkh);
//        //保安派遣数量
//        List<Map<Object, Object>> maps5 = informationService.queryCountPq(jurisdiction, deptid);
//        for (int i = 0; i < maps5.size(); i++) {
//            //这个月数量
//            String thisnum = maps5.get(i).get("thisnum").toString();
//            pqa += Integer.valueOf(thisnum);
//            //上个月数量
//            String lastnum = maps5.get(i).get("lastnum").toString();
//            pqb += Integer.valueOf(lastnum);
//        }
//        mappq.put("thisnum", pqa);
//        mappq.put("lastnum", pqb);
//        mappq.put("List", maps5);
//        mapC.put("paiq", mappq);
//        lists.add(mapC);
//        return R.data(lists);
//    }
    /**
     * 查询本年公司运营智能统计
     *
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -57,6 +57,15 @@
        <if test="information.representative!=null and information.representative!=''">
            and i.representative like concat(concat('%', #{information.representative}),'%')
        </if>
        <if test="information.creditcode!=null and information.creditcode!=''">
            and i.creditCode like concat(concat('%', #{information.creditcode}),'%')
        </if>
        <if test="information.representativecell!=null and information.representativecell!=''">
            and i.representativecell like concat(concat('%', #{information.representativecell}),'%')
        </if>
        <if test="information.address!=null and information.address!=''">
            and i.address like concat(concat('%', #{information.address}),'%')
        </if>
        <if test="information.stats!=null and information.stats!=''">
            and i.stats=#{information.stats}
        </if>
@@ -341,91 +350,278 @@
    <!--        ) F ON F.dept_id = A.deptid-->
    <!--    </select> -->
    <!--统计上个月和这个月交社保的人数以及缴纳金额-->
    <!--    <select id="selectTo" resultType="java.util.HashMap">-->
    <!--        SELECT IFNULL(A.lastmonth, 0) AS lastmonth,-->
    <!--        IFNULL(B.thismouth, 0) AS thismouth,-->
    <!--        IFNULL(C.thisamount, 0) AS thisamount,-->
    <!--        IFNULL(D.lastamount, 0) AS lastamount,-->
    <!--        IFNULL(E.userthismouth, 0) AS userthismouth,-->
    <!--        IFNULL(F.userlastmouth, 0) AS userlastmouth,-->
    <!--        IFNULL(G.userpcthismouth, 0) AS userpcthismouth,-->
    <!--        IFNULL(J.userpclastmouth, 0) AS userpclastmouth-->
    <!--        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS lastmonth,-->
    <!--        deptid-->
    <!--        FROM sys_socil-->
    <!--        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(insuredtime, '%Y%m')) = 1-->
    <!--        GROUP BY deptid-->
    <!--        ) A ON A.deptid = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS thismouth,-->
    <!--        deptid-->
    <!--        FROM sys_socil-->
    <!--        WHERE DATE_FORMAT(insuredtime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')-->
    <!--        GROUP BY deptid-->
    <!--        ) B ON B.deptid = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT SUM(amount) AS thisamount,-->
    <!--        deptid-->
    <!--        FROM sys_socil-->
    <!--        WHERE DATE_FORMAT(insuredtime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')-->
    <!--        GROUP BY deptid-->
    <!--        ) C ON C.deptid = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT SUM(amount) AS lastamount,-->
    <!--        deptid-->
    <!--        FROM sys_socil-->
    <!--        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(insuredtime, '%Y%m')) = 1-->
    <!--        GROUP BY deptid-->
    <!--        ) D ON D.deptid = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS userthismouth,-->
    <!--        dept_id-->
    <!--        FROM blade_user-->
    <!--        WHERE DATE_FORMAT(update_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')-->
    <!--        AND STATUS = 1-->
    <!--        AND is_deleted = 0-->
    <!--        GROUP BY dept_id-->
    <!--        ) E ON E.dept_id = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS userlastmouth,-->
    <!--        dept_id-->
    <!--        FROM blade_user-->
    <!--        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(update_time, '%Y%m')) = 1-->
    <!--        AND STATUS = 1-->
    <!--        AND is_deleted = 0-->
    <!--        GROUP BY dept_id-->
    <!--        ) F ON F.dept_id = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS userpcthismouth,-->
    <!--        dept_id-->
    <!--        FROM blade_user-->
    <!--        WHERE DATE_FORMAT(update_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')-->
    <!--        AND dispatch = 0-->
    <!--        AND STATUS = 1-->
    <!--        AND is_deleted = 0-->
    <!--        GROUP BY dept_id-->
    <!--        ) G ON G.dept_id = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS userpclastmouth,-->
    <!--        dept_id-->
    <!--        FROM blade_user-->
    <!--        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(update_time, '%Y%m')) = 1-->
    <!--        AND dispatch = 0-->
    <!--        AND STATUS = 1-->
    <!--        AND is_deleted = 0-->
    <!--        GROUP BY dept_id-->
    <!--        ) J ON J.dept_id = H.departmentid where 1=1-->
    <!--        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">-->
    <!--            and H.jurisdiction =#{jurisdiction}-->
    <!--        </if>-->
    <!--        <if test="deptid!=null and deptid!=''">-->
    <!--            and H.departmentid =#{deptid}-->
    <!--        </if>-->
    <!--    </select>-->
    <!--统计上个月和这个月交社保的人数以及缴纳金额-->
    <select id="selectTo" resultType="java.util.HashMap">
        SELECT IFNULL(A.lastmonth, 0) AS lastmonth,
        IFNULL(B.thismouth, 0) AS thismouth,
        IFNULL(C.thisamount, 0) AS thisamount,
        IFNULL(D.lastamount, 0) AS lastamount,
        IFNULL(E.userthismouth, 0) AS userthismouth,
        IFNULL(F.userlastmouth, 0) AS userlastmouth,
        IFNULL(G.userpcthismouth, 0) AS userpcthismouth,
        IFNULL(J.userpclastmouth, 0) AS userpclastmouth
        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H
        SELECT
        IFNULL( A.lastmonth, 0 ) AS lastmonth,
        IFNULL( B.thismouth, 0 ) AS thismouth,
        IFNULL( Z.num, 0 ) AS num,
        IFNULL( C.thisamount, 0 ) AS thisamount,
        IFNULL( D.lastamount, 0 ) AS lastamount,
        IFNULL( R.amountnum, 0 ) AS amountnum,
        IFNULL( E.userthismouth, 0 ) AS userthismouth,
        IFNULL( F.userlastmouth, 0 ) AS userlastmouth,
        IFNULL( I.usernum, 0 ) AS usernum,
        IFNULL( G.userpcthismouth, 0 ) AS userpcthismouth,
        IFNULL( J.userpclastmouth, 0 ) AS userpclastmouth,
        IFNULL( P.userpcnum, 0 ) AS userpcnum
        FROM
        ( SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction ) H
        LEFT JOIN (
        SELECT COUNT(*) AS lastmonth,
        SELECT
        COUNT( * ) AS lastmonth,
        deptid
        FROM sys_socil
        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(insuredtime, '%Y%m')) = 1
        GROUP BY deptid
        FROM
        sys_socil
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( insuredtime, '%Y%m' ) ) = 1
        GROUP BY
        deptid
        ) A ON A.deptid = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS thismouth,
        SELECT
        COUNT( * ) AS thismouth,
        deptid
        FROM sys_socil
        WHERE DATE_FORMAT(insuredtime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        GROUP BY deptid
        FROM
        sys_socil
        WHERE
        DATE_FORMAT( insuredtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        deptid
        ) B ON B.deptid = H.departmentid
        LEFT JOIN (
        SELECT SUM(amount) AS thisamount,
        SELECT
        COUNT( * ) AS num,
        deptid
        FROM sys_socil
        WHERE DATE_FORMAT(insuredtime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        GROUP BY deptid
        FROM
        sys_socil
        GROUP BY
        deptid
        ) Z ON Z.deptid = H.departmentid
        LEFT JOIN (
        SELECT
        SUM( amount ) AS thisamount,
        deptid
        FROM
        sys_socil
        WHERE
        DATE_FORMAT( insuredtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        deptid
        ) C ON C.deptid = H.departmentid
        LEFT JOIN (
        SELECT SUM(amount) AS lastamount,
        SELECT
        SUM( amount ) AS lastamount,
        deptid
        FROM sys_socil
        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(insuredtime, '%Y%m')) = 1
        GROUP BY deptid
        FROM
        sys_socil
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( insuredtime, '%Y%m' ) ) = 1
        GROUP BY
        deptid
        ) D ON D.deptid = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS userthismouth,
        SELECT
        SUM(amount) AS amountnum,
        deptid
        FROM
        sys_socil
        GROUP BY
        deptid
        ) R ON R.deptid = H.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS userthismouth,
        dept_id
        FROM blade_user
        WHERE DATE_FORMAT(update_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        FROM
        blade_user
        WHERE
        DATE_FORMAT( update_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        AND STATUS = 1
        AND is_deleted = 0
        GROUP BY dept_id
        AND is_deleted = 0 AND role_id='1412226235153731586'
        GROUP BY
        dept_id
        ) E ON E.dept_id = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS userlastmouth,
        SELECT
        COUNT( * ) AS userlastmouth,
        dept_id
        FROM blade_user
        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(update_time, '%Y%m')) = 1
        FROM
        blade_user
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( update_time, '%Y%m' ) ) = 1
        AND STATUS = 1
        AND is_deleted = 0
        GROUP BY dept_id
        AND is_deleted = 0 AND role_id='1412226235153731586'
        GROUP BY
        dept_id
        ) F ON F.dept_id = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS userpcthismouth,
        SELECT
        J.znum+J.fznum as usernum,
        J.dept_id
        FROM
        (
        SELECT
        A.znum,
        IFNULL( B.znum, 0 ) AS fznum,
        A.dept_id
        FROM
        (
        SELECT
        COUNT( * ) AS znum,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bu.dept_id
        ) A
        LEFT JOIN (
        SELECT
        IFNULL( COUNT( * ), 0 ) AS znum,
        bd.parent_id
        FROM
        blade_user bu
        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bd.parent_id
        ) B ON B.parent_id = A.dept_id
        ) J) I ON I.dept_id = H.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS userpcthismouth,
        dept_id
        FROM blade_user
        WHERE DATE_FORMAT(update_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        AND dispatch = 0
        AND STATUS = 1
        AND is_deleted = 0
        GROUP BY dept_id
        FROM
        sys_dispatcher
        WHERE
        DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        AND STATUS = 0
        GROUP BY
        dept_id
        ) G ON G.dept_id = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS userpclastmouth,
        SELECT
        COUNT( * ) AS userpclastmouth,
        dept_id
        FROM blade_user
        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(update_time, '%Y%m')) = 1
        AND dispatch = 0
        AND STATUS = 1
        AND is_deleted = 0
        GROUP BY dept_id
        ) J ON J.dept_id = H.departmentid where 1=1
        FROM
        sys_dispatcher
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( dispatcherTime, '%Y%m' ) ) = 1
        AND STATUS = 0
        GROUP BY
        dept_id
        ) J ON J.dept_id = H.departmentid
        LEFT JOIN (
        SELECT
        COUNT(*) AS userpcnum,
        dept_id
        FROM
        sys_dispatcher
        WHERE STATUS = 0
        GROUP BY
        dept_id
        ) P ON P.dept_id = H.departmentid
        LEFT JOIN blade_dept d ON H.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and H.jurisdiction =#{jurisdiction}
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--查询本年所有月份的交社保的数量-->
    <select id="queryYearSoil" resultType="java.util.HashMap">
        SELECT COUNT
@@ -540,66 +736,49 @@
    </select>
    <!--总保安数量-->
    <!--    &lt;!&ndash;总保安数量&ndash;&gt;-->
    <!--    <select id="queryCountB" resultType="java.util.HashMap">-->
    <!--        SELECT-->
    <!--        C.thisnum,-->
    <!--        C.lastnum,-->
    <!--        d.dept_name AS deptname,-->
    <!--        j.dept_name AS jurname-->
    <!--        FROM-->
    <!--        (-->
    <!--        SELECT-->
    <!--        IFNULL( A.thisnum, 0 ) AS thisnum,-->
    <!--        IFNULL( B.lastnum, 0 ) AS lastnum,-->
    <!--        A.dept_id,-->
    <!--        A.jurisdiction-->
    <!--        FROM-->
    <!--        (-->
    <!--        SELECT-->
    <!--        COUNT( * ) AS thisnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM-->
    <!--        blade_user-->
    <!--        WHERE-->
    <!--        role_id = '1412226235153731586' and status=1 and is_deleted=0-->
    <!--        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )-->
    <!--        GROUP BY-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        ) A-->
    <!--        SELECT IFNULL(A.thisnum, 0) AS thisnum,-->
    <!--        IFNULL(B.lastnum, 0) AS lastnum,-->
    <!--        H.departmentid,-->
    <!--        H.jurisdiction-->
    <!--        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H-->
    <!--        LEFT JOIN (-->
    <!--        SELECT-->
    <!--        COUNT( * ) AS lastnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM-->
    <!--        blade_user-->
    <!--        WHERE-->
    <!--        role_id = '1412226235153731586' and status=1 and is_deleted=0-->
    <!--        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( create_time, '%Y%m' ) ) = 1-->
    <!--        GROUP BY-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        ) B ON A.dept_id = B.dept_id-->
    <!--        ) C-->
    <!--        LEFT JOIN blade_dept d ON C.dept_id = d.id-->
    <!--        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction-->
    <!--        WHERE 1 =1-->
    <!--        SELECT COUNT(*) AS thisnum,-->
    <!--        dept_id-->
    <!--        FROM blade_user-->
    <!--        WHERE role_id = '1412226235153731586'-->
    <!--        AND STATUS = 1-->
    <!--        AND is_deleted = 0-->
    <!--        AND DATE_FORMAT(create_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')-->
    <!--        GROUP BY dept_id-->
    <!--        ) A ON A.dept_id = H.departmentid-->
    <!--        LEFT JOIN (-->
    <!--        SELECT COUNT(*) AS lastnum,-->
    <!--        dept_id-->
    <!--        FROM blade_user-->
    <!--        WHERE role_id = '1412226235153731586'-->
    <!--        AND STATUS = 1-->
    <!--        AND is_deleted = 0-->
    <!--        AND PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(create_time, '%Y%m')) = 1-->
    <!--        GROUP BY dept_id-->
    <!--        ) B ON B.dept_id = H.departmentid where 1=1-->
    <!--        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">-->
    <!--            and C.jurisdiction =#{jurisdiction}-->
    <!--            and H.jurisdiction =#{jurisdiction}-->
    <!--        </if>-->
    <!--        <if test="deptid!=null and deptid!=''">-->
    <!--            and C.dept_id =#{deptid}-->
    <!--            and H.departmentid =#{deptid}-->
    <!--        </if>-->
    <!--    </select>-->
    <select id="queryCountB" resultType="java.util.HashMap">
        SELECT IFNULL(A.thisnum, 0) AS thisnum,
        IFNULL(B.lastnum, 0) AS lastnum,
        IFNULL( C.num, 0 ) AS num,
        IFNULL( C.fznum, 0 ) AS fznum,
        H.departmentid,
        H.jurisdiction
        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H
        FROM (SELECT departmentid, jurisdiction FROM sys_information WHERE stats!=1  GROUP BY departmentid, jurisdiction)
        H
        LEFT JOIN (
        SELECT COUNT(*) AS thisnum,
        dept_id
@@ -607,7 +786,7 @@
        WHERE role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND DATE_FORMAT(create_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        AND DATE_FORMAT(rtime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        GROUP BY dept_id
        ) A ON A.dept_id = H.departmentid
        LEFT JOIN (
@@ -617,11 +796,54 @@
        WHERE role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(create_time, '%Y%m')) = 1
        AND PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(rtime, '%Y%m')) = 1
        GROUP BY dept_id
        ) B ON B.dept_id = H.departmentid where 1=1
        ) B ON B.dept_id = H.departmentid
        LEFT JOIN (
        SELECT
        J.fznum,
        J.znum+J.fznum as num,
        J.dept_id
        FROM
        (
        SELECT
        A.znum,
        IFNULL( B.znum, 0 ) AS fznum,
        A.dept_id
        FROM
        (
        SELECT
        COUNT( * ) AS znum,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bu.dept_id
        ) A
        LEFT JOIN (
        SELECT
        IFNULL( COUNT( * ), 0 ) AS znum,
        bd.parent_id
        FROM
        blade_user bu
        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bd.parent_id
        ) B ON B.parent_id = A.dept_id
        ) J
        ) C ON C.dept_id = H.departmentid
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and H.jurisdiction =#{jurisdiction}
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
@@ -630,242 +852,295 @@
    <!--正常保安数量-->
    <select id="queryCountZc" resultType="java.util.HashMap">
        SELECT C.thisnum,
        C.lastnum,
        d.dept_name as deptname,
        j.dept_name as jurname
        FROM (
        SELECT IFNULL(A.thisnum, 0) AS thisnum,
        IFNULL(B.lastnum, 0) AS lastnum,
        A.dept_id,
        A.jurisdiction
        FROM (
        SELECT COUNT
        (*) AS thisnum,
        dept_id,
        jurisdiction
        FROM blade_user
        WHERE role_id = '1412226235153731586' and status=1 and is_deleted=0
        AND examination_type = 0
        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY dept_id,
        jurisdiction
        ) A
        left JOIN (
        SELECT COUNT
        (*) AS lastnum,
        dept_id,
        jurisdiction
        FROM blade_user
        WHERE role_id = '1412226235153731586' and status=1 and is_deleted=0
        AND examination_type = 0
        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( create_time, '%Y%m' ) ) = 1
        GROUP BY dept_id,
        jurisdiction
        ) B ON A.dept_id = B.dept_id) C
        LEFT JOIN blade_dept d ON C.dept_id = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and C.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and C.dept_id =#{deptid}
        </if>
    </select>
    <!--持证保安数量-->
    <select id="queryCountCz" resultType="java.util.HashMap">
        SELECT C.thisnum,
        C.lastnum,
        d.dept_name as deptname,
        j.dept_name as jurname
        FROM (
        SELECT IFNULL(A.thisnum, 0) AS thisnum,
        IFNULL(B.lastnum, 0) AS lastnum,
        A.dept_id,
        A.jurisdiction
        FROM (
        SELECT COUNT
        (*) AS thisnum,
        dept_id,
        jurisdiction
        FROM blade_user
        WHERE role_id = '1412226235153731586' and status=1 and is_deleted=0
        AND hold = 1
        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY dept_id,
        jurisdiction
        ) A
        left JOIN (
        SELECT COUNT
        (*) AS lastnum,
        dept_id,
        jurisdiction
        FROM blade_user
        WHERE role_id = '1412226235153731586' and status=1 and is_deleted=0
        AND hold = 1
        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( create_time, '%Y%m' ) ) = 1
        GROUP BY dept_id,
        jurisdiction
        ) B ON A.dept_id = B.dept_id) C
        LEFT JOIN blade_dept d ON C.dept_id = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and C.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and C.dept_id =#{deptid}
        </if>
    </select>
    <!--缴纳社保数量-->
    <select id="queryCountSb" resultType="java.util.HashMap">
        SELECT C.thisnum,
        C.lastnum,
        SELECT
        IFNULL( A.thisnum, 0 ) AS thisnum,
        IFNULL( B.lastnum, 0 ) AS lastnum,
        IFNULL( D.num, 0 ) AS num,
        H.departmentid,
        H.jurisdiction,
        d.dept_name AS deptname,
        j.dept_name AS jurname
        FROM (
        SELECT IFNULL(A.thisnum, 0) AS thisnum,
        IFNULL(B.lastnum, 0) AS lastnum,
        A.deptid,
        A.jurisdiction
        FROM (
        SELECT COUNT
        (*) AS thisnum,
        deptid,
        jurisdiction
        FROM sys_socil
        WHERE DATE_FORMAT(insuredtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY deptid,
        jurisdiction
        ) A
        left JOIN (
        SELECT COUNT
        (*) AS lastnum,
        deptid,
        jurisdiction
        FROM sys_socil
        WHERE PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( insuredtime, '%Y%m' ) ) = 1
        GROUP BY deptid,
        jurisdiction
        ) B ON A.deptid = B.deptid
        ) C
        LEFT JOIN blade_dept d ON C.deptid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and C.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and C.deptid =#{deptid}
        </if>
    </select>
    <!--服务客户数量-->
    <select id="queryCountKh" resultType="java.util.HashMap">
        SELECT C.thisnum,
        C.lastnum,
        C.dept_id,
        d.dept_name AS deptname,
        j.dept_name AS jurname
        FROM (
        SELECT IFNULL(A.thisnum, 0) AS thisnum,
        IFNULL(B.lastnum, 0) AS lastnum,
        A.dept_id,
        A.jurisdiction
        FROM (
        SELECT COUNT
        (*) AS thisnum,
        dept_id,
        jurisdiction
        FROM sys_dispatcher_unit
        WHERE DATE_FORMAT( start_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY dept_id,
        jurisdiction
        ) A
        left JOIN (
        SELECT COUNT
        (*) AS lastnum,
        dept_id,
        jurisdiction
        FROM sys_dispatcher_unit
        WHERE PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( start_time, '%Y%m' ) ) = 1
        GROUP BY dept_id,
        jurisdiction
        ) B ON A.dept_id = B.dept_id
        ) C
        LEFT JOIN blade_dept d ON C.dept_id = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction WHERE 1=1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and C.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and C.dept_id =#{deptid}
        </if>
    </select>
    <!--保安派遣数量-->
    <!--    <select id="queryCountPq" resultType="java.util.HashMap">-->
    <!--        SELECT C.thisnum,-->
    <!--        C.lastnum,-->
    <!--        d.dept_name as deptname,-->
    <!--        j.dept_name as jurname-->
    <!--        FROM (-->
    <!--        SELECT IFNULL(A.thisnum, 0) AS thisnum,-->
    <!--        IFNULL(B.lastnum, 0) AS lastnum,-->
    <!--        A.dept_id,-->
    <!--        A.jurisdiction-->
    <!--        FROM (-->
    <!--        SELECT SUM(num) AS thisnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM sys_dispatcher-->
    <!--        WHERE DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )-->
    <!--        GROUP BY dept_id, jurisdiction-->
    <!--        ) A-->
    <!--        left JOIN (-->
    <!--        SELECT SUM(num) AS lastnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM sys_dispatcher-->
    <!--        WHERE PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( dispatcherTime, '%Y%m' ) ) = 1-->
    <!--        GROUP BY dept_id, jurisdiction-->
    <!--        ) B ON A.dept_id = B.dept_id) C-->
    <!--        LEFT JOIN blade_dept d ON C.dept_id = d.id-->
    <!--        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1-->
    <!--        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">-->
    <!--            and C.jurisdiction =#{jurisdiction}-->
    <!--        </if>-->
    <!--        <if test="deptid!=null and deptid!=''">-->
    <!--            and C.dept_id =#{deptid}-->
    <!--        </if>-->
    <!--    </select> -->
    <select id="queryCountPq" resultType="java.util.HashMap">
        SELECT IFNULL(G.thisnum, 0) AS thisnum,
        IFNULL(J.lastnum, 0) AS lastnum
        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H
        FROM
        ( SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction ) H
        LEFT JOIN (
        SELECT SUM(num) AS thisnum,
        SELECT
        COUNT( * ) AS thisnum,
        dept_id
        FROM sys_dispatcher
        WHERE DATE_FORMAT(dispatcherTime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        GROUP BY dept_id
        ) G ON G.dept_id = H.departmentid
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND examination_type = 0
        AND DATE_FORMAT( rtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        dept_id
        ) A ON H.departmentid = A.dept_id
        LEFT JOIN (
        SELECT SUM(num) AS lastnum,
        SELECT
        COUNT( * ) AS lastnum,
        dept_id
        FROM sys_dispatcher
        WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(dispatcherTime, '%Y%m')) = 1
        GROUP BY dept_id
        ) J ON J.dept_id = H.departmentid
        WHERE 1 = 1
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND examination_type = 0
        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( rtime, '%Y%m' ) ) = 1
        GROUP BY
        dept_id
        ) B ON H.departmentid = B.dept_id
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND examination_type = 0
        GROUP BY
        dept_id
        ) D ON H.departmentid = D.dept_id
        LEFT JOIN blade_dept d ON H.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and H.jurisdiction =#{jurisdiction}
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--持证保安数量-->
    <select id="queryCountCz" resultType="java.util.HashMap">
        SELECT
        IFNULL( A.thisnum, 0 ) AS thisnum,
        IFNULL( B.lastnum, 0 ) AS lastnum,
        IFNULL( C.num, 0 ) AS num,
        H.departmentid,
        H.jurisdiction,
        H.enterpriseName AS deptname,
        j.dept_name AS jurname
        FROM
        ( SELECT departmentid, jurisdiction,enterpriseName FROM sys_information GROUP BY departmentid,
        jurisdiction,enterpriseName ) H
        LEFT JOIN (
        SELECT
        COUNT(*) AS thisnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND hold = 1
        AND DATE_FORMAT( rtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        dept_id
        ) A ON H.departmentid = A.dept_id
        LEFT JOIN (
        SELECT
        COUNT(*) AS lastnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND hold = 1
        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( rtime, '%Y%m' ) ) = 1
        GROUP BY
        dept_id
        ) B ON H.departmentid = B.dept_id
        LEFT JOIN (
        SELECT
        COUNT(*) AS num,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND hold = 1
        GROUP BY
        dept_id
        ) C ON H.departmentid = C.dept_id
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--缴纳社保数量-->
    <select id="queryCountSb" resultType="java.util.HashMap">
        SELECT
        IFNULL( A.thisnum, 0 ) AS thisnum,
        IFNULL( B.lastnum, 0 ) AS lastnum,
        IFNULL( C.num, 0 ) AS num,
        H.departmentid,
        H.jurisdiction,
        d.dept_name AS deptname,
        j.dept_name AS jurname
        FROM
        ( SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction ) H
        LEFT JOIN (
        SELECT
        COUNT( * ) AS thisnum,
        deptid
        FROM
        sys_socil
        WHERE
        DATE_FORMAT( insuredtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        deptid
        ) A ON H.departmentid = A.deptid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS lastnum,
        deptid
        FROM
        sys_socil
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( insuredtime, '%Y%m' ) ) = 1
        GROUP BY
        deptid
        ) B ON H.departmentid = B.deptid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        deptid
        FROM
        sys_socil
        GROUP BY
        deptid
        ) C ON H.departmentid = C.deptid
        LEFT JOIN blade_dept d ON H.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--服务客户数量-->
    <select id="queryCountKh" resultType="java.util.HashMap">
        SELECT
        IFNULL( A.thisnum, 0 ) AS thisnum,
        IFNULL( B.lastnum, 0 ) AS lastnum,
        IFNULL( C.num, 0 ) AS num,
        H.departmentid,
        H.jurisdiction
        FROM
        ( SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction ) H
        LEFT JOIN (
        SELECT
        COUNT(*) AS thisnum,
        dept_id
        FROM
        sys_dispatcher_unit
        WHERE
        DATE_FORMAT( start_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        dept_id
        ) A ON H.departmentid = A.dept_id
        LEFT JOIN (
        SELECT
        COUNT(*) AS lastnum,
        dept_id
        FROM
        sys_dispatcher_unit
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( start_time, '%Y%m' ) ) = 1
        GROUP BY
        dept_id
        ) B ON H.departmentid = B.dept_id
        LEFT JOIN (
        SELECT
        COUNT(*) AS num,
        dept_id
        FROM
        sys_dispatcher_unit
        GROUP BY
        dept_id
        ) C ON H.departmentid = C.dept_id
        LEFT JOIN blade_dept d ON H.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--保安派遣数量-->
    <select id="queryCountPq" resultType="java.util.HashMap">
        SELECT
        IFNULL( G.thisnum, 0 ) AS thisnum,
        IFNULL( J.lastnum, 0 ) AS lastnum,
        IFNULL( C.num, 0 ) AS num
        FROM
        ( SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction ) H
        LEFT JOIN (
        SELECT
        COUNT(*) AS thisnum,
        dept_id
        FROM
        sys_dispatcher
        WHERE
        DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        AND `status`=0
        GROUP BY
        dept_id
        ) G ON G.dept_id = H.departmentid
        LEFT JOIN (
        SELECT
        COUNT(*) AS lastnum,
        dept_id
        FROM
        sys_dispatcher
        WHERE
        PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( dispatcherTime, '%Y%m' ) ) = 1
        AND `status`=0
        GROUP BY
        dept_id
        ) J ON J.dept_id = H.departmentid
        LEFT JOIN (
        SELECT
        COUNT(*) AS num,
        dept_id
        FROM
        sys_dispatcher
        where `status`=0
        GROUP BY
        dept_id
        ) C ON C.dept_id = H.departmentid
        LEFT JOIN sys_jurisdiction j ON j.id = H.jurisdiction
        WHERE 1 = 1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--查询本年所有月份的总人数-->
    <select id="queryYearZ" resultType="java.util.HashMap">