Administrator
2022-06-09 1578f99b76d84133fc63e5902ed70336e60d23cd
新增保安員查詢和許可證查詢
7 files modified
8 files added
664 ■■■■■ changed files
src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/controller/SecurityApplyController.java 158 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/entity/SecurityApply.java 81 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/mapper/SecurityApplyMapper.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/mapper/SecurityApplyMapper.xml 41 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/service/SecurityApplyService.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/service/impl/SecurityApplyServiceImpl.java 134 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securityapply/vo/SecurityApplyVO.java 55 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/UserMapper.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml 16 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IUserService.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/vo/UserDTO.java 55 ●●●●● patch | view | raw | blame | history
src/main/resources/application.yml 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/licence/controller/LicencePaperController.java
@@ -12,6 +12,8 @@
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * @author zhongrj
@@ -159,6 +161,21 @@
    }
    /**
     * 详情
     * @param licencePaper 许可证信息对象
     */
    @GetMapping("/details")
    @ApiOperation(value = "详情", notes = "传入licencePaper")
    public R details(LicencePaper licencePaper) {
        Map<String, Object> map = new HashMap<>();
        LicencePaper detail = licencePaperService.getOne(Condition.getQueryWrapper(licencePaper));
        if (null!=detail){
            map.put("url",detail.getUrl());
        }
        return R.data(map);
    }
    /**
     * 查询分公司的许可证信息(包含总公司)
     * @param licencePaper 许可证信息对象
     */
src/main/java/org/springblade/modules/securityapply/controller/SecurityApplyController.java
New file
@@ -0,0 +1,158 @@
package org.springblade.modules.securityapply.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.securityapply.entity.SecurityApply;
import org.springblade.modules.securityapply.service.SecurityApplyService;
import org.springblade.modules.securityapply.vo.SecurityApplyVO;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
 * 保安员证申诉控制器
 * @author zhongrj
 * @since 2022-03-03
 */
@RestController
@AllArgsConstructor
@RequestMapping("/securityApply")
public class SecurityApplyController extends BladeController {
    private final SecurityApplyService securityApplyService;
    /**
     * 详情
     * @param securityApply
     * @return
     */
    @GetMapping("/detail")
    public R<SecurityApply> detail(SecurityApply securityApply) {
        SecurityApply detail = securityApplyService.getOne(Condition.getQueryWrapper(securityApply));
        return R.data(detail);
    }
    /**
     * 分页
     * @param query
     * @param securityApply
     * @return
     */
    @GetMapping("/list")
    public R<IPage<SecurityApply>> list(SecurityApply securityApply, Query query) {
        IPage<SecurityApply> pages = securityApplyService.page(Condition.getPage(query), Condition.getQueryWrapper(securityApply));
        return R.data(pages);
    }
    /**
     * 自定义分页
     * @param securityApply
     * @param query
     * @return
     */
    @GetMapping("/page")
    public R<IPage<SecurityApplyVO>> page(SecurityApplyVO securityApply, Query query) {
        IPage<SecurityApplyVO> pages = securityApplyService.selectSecurityApplyPage(Condition.getPage(query), securityApply);
        return R.data(pages);
    }
    /**
     * 新增
     * @param securityApply
     * @return
     */
    @PostMapping("/save")
    public R save(@RequestBody SecurityApply securityApply) {
        //判断是否已经申请过(审核通过,待审核)
        SecurityApply securityApply1 = new SecurityApply();
        securityApply1.setAuditStatus(1);
        securityApply1.setNumber(securityApply.getNumber());
        securityApply1.setUserId(securityApply.getUserId());
        List<SecurityApply> list1 = securityApplyService.list(Condition.getQueryWrapper(securityApply1));
        if (list1.size()>0){
            throw new ServiceException("当前人员已经提交申请,审核已通过,请勿重复申请!");
        }
        SecurityApply securityApply2 = new SecurityApply();
        securityApply2.setAuditStatus(3);
        securityApply2.setNumber(securityApply.getNumber());
        securityApply2.setUserId(securityApply.getUserId());
        List<SecurityApply> list2 = securityApplyService.list(Condition.getQueryWrapper(securityApply2));
        if (list2.size()>0){
            throw new ServiceException("当前人员已经提交申请,待审核中,请勿重复申请!");
        }
        //设置时间
        securityApply.setCreateTime(new Date());
        //待审核
        securityApply.setAuditStatus(3);
        //返回
        return R.data(securityApplyService.save(securityApply));
    }
    /**
     * 修改
     * @param securityApply
     * @return
     */
    @PostMapping("/update")
    public R update(@RequestBody SecurityApply securityApply) {
        //修改并返回
        return R.data(securityApplyService.updateById(securityApply));
    }
    /**
     * 新增或修改
     * @param securityApply
     * @return
     */
    @PostMapping("/submit")
    public R submit(@RequestBody SecurityApply securityApply) {
        return R.status(securityApplyService.saveOrUpdate(securityApply));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(securityApplyService.removeByIds(Func.toLongList(ids)));
    }
    /**
     * 审核
     * @param securityApply
     * @return
     */
    @PostMapping("/audit")
    public R audit(@RequestBody SecurityApply securityApply) {
        securityApply.setAuditTime(new Date());
        //修改并返回
        return R.data(securityApplyService.audit(securityApply));
    }
    /**
     * 批量审核
     * @param securityApply
     * @return
     */
    @PostMapping("/batchAudit")
    public R batchAudit(@RequestBody SecurityApplyVO securityApply) {
        securityApply.setAuditTime(new Date());
        //修改并返回
        return R.data(securityApplyService.batchAudit(securityApply));
    }
}
src/main/java/org/springblade/modules/securityapply/entity/SecurityApply.java
New file
@@ -0,0 +1,81 @@
package org.springblade.modules.securityapply.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 保安员证申诉实体类
 *
 * @author zhongrj
 * @since 2020-03-03
 */
@Data
@TableName("sys_security_apply")
public class SecurityApply implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 保安证编号
     */
    private String number;
    /**
     * 保安证图片 url
     */
    private String url;
    /**
     * 申请理由
     */
    private String applyReason;
    /**
     * 申请人id
     */
    private Long createUser;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 审核状态 1:通过   2:不通过 3:待审核
     */
    private Integer auditStatus;
    /**
     * 审核明细
     */
    private String auditDetail;
    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private Date auditTime;
}
src/main/java/org/springblade/modules/securityapply/mapper/SecurityApplyMapper.java
New file
@@ -0,0 +1,28 @@
package org.springblade.modules.securityapply.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.securityapply.entity.SecurityApply;
import org.springblade.modules.securityapply.vo.SecurityApplyVO;
import java.util.List;
/**
 *  保安员证申诉Mapper 接口
 *
 * @author zhongrj
 * @since 2022-03-03
 */
public interface SecurityApplyMapper extends BaseMapper<SecurityApply> {
    /**
     * 自定义分页
     *
     * @param page
     * @param securityApply
     * @return
     */
    List<SecurityApplyVO> selectSecurityApplyPage(IPage<SecurityApplyVO> page, @Param("securityApply") SecurityApplyVO securityApply);
}
src/main/java/org/springblade/modules/securityapply/mapper/SecurityApplyMapper.xml
New file
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.securityapply.mapper.SecurityApplyMapper">
    <!--自定义查询保安员证申诉分页数据-->
    <select id="selectSecurityApplyPage" resultType="org.springblade.modules.securityapply.vo.SecurityApplyVO">
        select
        ssa.*,
        bu.real_name realName,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sex,bu.cardid,
        bd.dept_name deptName,
        bu1.real_name applyName
        from sys_security_apply ssa
        left join blade_user bu on bu.id = ssa.user_id
        left join blade_dept bd on bd.id = bu.dept_id
        left join blade_user bu1 on bu1.id = ssa.create_user
        where 1=1
        <if test="securityApply.realName!=null and securityApply.realName!=''">
            and bu.real_name like concat('%',#{securityApply.realName},'%')
        </if>
        <if test="securityApply.cardid!=null and securityApply.cardid!=''">
            and bu.cardid like concat('%',#{securityApply.cardid},'%')
        </if>
        <if test="securityApply.number!=null and securityApply.number!=''">
            and ssa.number like concat('%',#{securityApply.number},'%')
        </if>
        <if test="securityApply.deptName!=null and securityApply.deptName!=''">
            and bd.dept_name like concat('%',#{securityApply.deptName},'%')
        </if>
        <if test="securityApply.auditStatus!=null">
            and ssa.audit_status = #{securityApply.auditStatus}
        </if>
        <if test="securityApply.startTime!=null and securityApply.startTime!=''">
            and date_format(ssa.create_time,'%Y-%m-%d')&gt;=#{securityApply.startTime}
        </if>
        <if test="securityApply.endTime!=null and securityApply.endTime!=''">
            and date_format(ssa.create_time,'%Y-%m-%d')&lt;=#{securityApply.endTime}
        </if>
        order by ssa.id desc
    </select>
</mapper>
src/main/java/org/springblade/modules/securityapply/service/SecurityApplyService.java
New file
@@ -0,0 +1,40 @@
package org.springblade.modules.securityapply.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.securityapply.entity.SecurityApply;
import org.springblade.modules.securityapply.vo.SecurityApplyVO;
/**
 * 保安员证申诉服务类
 *
 * @author zhongrj
 * @since 2022-03-03
 */
public interface SecurityApplyService extends IService<SecurityApply> {
    /**
     * 自定义分页
     *
     * @param page
     * @param securityApplyVO
     * @return
     */
    IPage<SecurityApplyVO> selectSecurityApplyPage(IPage<SecurityApplyVO> page, @Param("securityApplyVO") SecurityApplyVO securityApplyVO);
    /**
     * 审核
     * @param securityApply
     * @return
     */
    Object audit(SecurityApply securityApply);
    /**
     * 批量审核
     * @param securityApply
     * @return
     */
    Object batchAudit(SecurityApplyVO securityApply);
}
src/main/java/org/springblade/modules/securityapply/service/impl/SecurityApplyServiceImpl.java
New file
@@ -0,0 +1,134 @@
package org.springblade.modules.securityapply.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.utils.DesensitizedUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.modules.FTP.MyAsyncService;
import org.springblade.modules.securityapply.entity.SecurityApply;
import org.springblade.modules.securityapply.mapper.SecurityApplyMapper;
import org.springblade.modules.securityapply.service.SecurityApplyService;
import org.springblade.modules.securityapply.vo.SecurityApplyVO;
import org.springblade.modules.securitypaper.entity.SecurityPaper;
import org.springblade.modules.securitypaper.service.SecurityPaperService;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 *  保安员证申诉服务实现类
 *
 * @author zhongrj
 * @since 2022-03-03
 */
@Service
public class SecurityApplyServiceImpl extends ServiceImpl<SecurityApplyMapper, SecurityApply> implements SecurityApplyService {
    @Autowired
    private MyAsyncService myAsyncService;
    @Autowired
    private IUserService userService;
    @Autowired
    private SecurityPaperService securityPaperService;
    /**
     * 自定义分页查询保安员证申诉数据
     * @param page
     * @param securityApply
     * @return
     */
    @Override
    public IPage<SecurityApplyVO> selectSecurityApplyPage(IPage<SecurityApplyVO> page, SecurityApplyVO securityApply) {
        return page.setRecords(baseMapper.selectSecurityApplyPage(page, securityApply));
    }
    /**
     * 审核
     * @param securityApply
     * @return
     */
    @Override
    public Object audit(SecurityApply securityApply) {
        //查询用户信息
        SecurityApply apply = this.getById(securityApply.getId());
        User user = userService.getById(apply.getUserId());
        //判断审核状态
        if (securityApply.getAuditStatus().equals(1)){
            //审核通过,判断是否为重复审核通过,即查询保安证编号库是否已存在该编号,如果已存在,则不新增,否则则新增,同时修改改保安员的保安证编号
            //1.1 查询该编号是否已在存储库存在
            SecurityPaper securityPaper = new SecurityPaper();
            securityPaper.setNumber(apply.getNumber());
            List<SecurityPaper> list = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
            if (list.size()>0){
                //判断该编号对应的人员是否为同一人
                for (SecurityPaper paper : list) {
                    if (!paper.getIdCardNo().equals(user.getCardid())){
                        //其他人员已占用该编号
                        throw new ServiceException("保安证编号:["+ apply.getNumber() +"] 已存在");
                    }
                }
            }else {
                //新增
                SecurityPaper securityPaper1 = new SecurityPaper();
                securityPaper1.setNumber(apply.getNumber());
                securityPaper1.setCreateTime(new Date());
                securityPaper1.setIdCardNo(user.getCardid());
                securityPaper1.setUserId(user.getId());
                securityPaper1.setExamId(apply.getId());
                securityPaper1.setPeopleName(user.getRealName());
                securityPaper1.setSource(2);
                //插入保安证存储库
                securityPaperService.save(securityPaper1);
                //用户保安证编号更新
                user.setHold("1");
                user.setSecuritynumber(apply.getNumber());
                user.setUpdateTime(new Date());
                boolean status = userService.updateById(user);
                if (status) {
                    //外网数据同步
                    String s1 =
                        "update blade_user set hold = " + user.getHold() +
                            ",securitynumber = " + "'" + DesensitizedUtil.desensitizedSecurityNumber(user.getSecuritynumber()) + "'" +
                            ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(user.getUpdateTime()) + "'" +
                            " " + "where id = " + "'" + user.getId() + "'";
                    myAsyncService.FTP(s1);
                }
            }
        }
        //证件核实申请更新并返回
        return this.updateById(securityApply);
    }
    /**
     * 批量审核
     * @param securityApply
     * @return
     */
    @Override
    public Object batchAudit(SecurityApplyVO securityApply) {
        //取出id
        List<String> list = Arrays.asList(securityApply.getIds().split(","));
        //遍历
        for (String s : list) {
            SecurityApply securityApply1 = new SecurityApply();
            securityApply1.setAuditTime(securityApply.getAuditTime());
            securityApply1.setAuditStatus(securityApply.getAuditStatus());
            securityApply1.setId(Long.parseLong(s));
            //审核
            audit(securityApply1);
        }
        //返回
        return null;
    }
}
src/main/java/org/springblade/modules/securityapply/vo/SecurityApplyVO.java
New file
@@ -0,0 +1,55 @@
package org.springblade.modules.securityapply.vo;
import lombok.Data;
import org.springblade.modules.securityapply.entity.SecurityApply;
/**
 * 保安员证申诉视图实体类
 * @author zhongrj
 * @since 2022-03-03
 */
@Data
public class SecurityApplyVO extends SecurityApply {
    private static final long serialVersionUID = 1L;
    /**
     * 保安员姓名
     */
    private String realName;
    /**
     * 申请人姓名
     */
    private String applyName;
    /**
     * 身份证号
     */
    private String cardid;
    /**
     * 性别
     */
    private String sex;
    /**
     * 企业名称
     */
    private String deptName;
    /**
     * 开始时间
     */
    private String startTime;
    /**
     * 截止时间
     */
    private String endTime;
    /**
     * ids
     */
    private String ids;
}
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -393,4 +393,14 @@
        return R.data(list);
    }
    /**
     * 查询保安员信息
     * @param user
     * @return
     */
    @GetMapping("/getSecurityInfoByIdCardNo")
    public R getSecurityInfoByIdCardNo(User user){
        return R.data(userService.getSecurityInfoByIdCardNo(user));
    }
}
src/main/java/org/springblade/modules/system/mapper/UserMapper.java
@@ -25,6 +25,7 @@
import org.springblade.modules.system.excel.SecurityExcel;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.vo.UserDTO;
import org.springblade.modules.system.vo.UserVO;
import org.springframework.boot.autoconfigure.quartz.QuartzDataSource;
@@ -135,4 +136,11 @@
     * @return
     */
    Integer getSecurityPaperCount(@Param("pre") String pre);
    /**
     * 查询保安员信息
     * @param user
     * @return
     */
    UserDTO getSecurityInfoByIdCardNo(@Param("user")User user);
}
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -556,4 +556,20 @@
        select ifnull(max(0+RIGHT(securitynumber,5)),0) from blade_user
        where securitynumber like concat('%',#{pre},'%')
    </select>
    <!--查询保安员信息-->
    <select id="getSecurityInfoByIdCardNo" resultType="org.springblade.modules.system.vo.UserDTO">
        select
        bu.real_name realName,
        bd.dept_name as deptName,
        if(bu.sex=1,'男','女') sex,
        bu.cardid
        from
        blade_user bu left join blade_dept bd on bu.dept_id = bd.id
        where
        bu.is_deleted = 0
        and role_id = '1412226235153731586'
        and bu.status = 1
        and bu.cardid = #{user.cardid}
    </select>
</mapper>
src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -27,6 +27,7 @@
import org.springblade.modules.system.entity.UserOauth;
import org.springblade.modules.system.excel.SecurityExcel;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.vo.UserDTO;
import org.springblade.modules.system.vo.UserVO;
import java.util.List;
@@ -267,4 +268,11 @@
     * @return
     */
    Integer getSecurityPaperCount(String pre);
    /**
     * 查询保安员信息
     * @param user
     * @return
     */
    UserDTO getSecurityInfoByIdCardNo(User user);
}
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -48,6 +48,7 @@
import org.springblade.modules.system.service.IUserDeptService;
import org.springblade.modules.system.service.IUserOauthService;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.UserDTO;
import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.system.wrapper.UserWrapper;
import org.springframework.stereotype.Service;
@@ -530,4 +531,14 @@
    public Integer getSecurityPaperCount(String pre) {
        return baseMapper.getSecurityPaperCount(pre);
    }
    /**
     * 查询保安员信息
     * @param user
     * @return
     */
    @Override
    public UserDTO getSecurityInfoByIdCardNo(User user) {
        return baseMapper.getSecurityInfoByIdCardNo(user);
    }
}
src/main/java/org/springblade/modules/system/vo/UserDTO.java
New file
@@ -0,0 +1,55 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.system.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
/**
 * 视图实体类
 *
 * @author Chill
 */
@Data
public class UserDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 部门名
     */
    private String deptName;
    /**
     * 性名
     */
    private String realName;
    /**
     * 性别
     */
    private String sex;
    /**
     * 性别
     */
    private String cardid;
}
src/main/resources/application.yml
@@ -197,6 +197,8 @@
    skip-url:
      - /blade-test/**
      - /readFile
      - /blade-user/getSecurityInfoByIdCardNo
      - /licencePaper/details
#      - /liveLocation/**
#      - /locus/**
#      - /examScore/**