智慧保安后台管理-外网项目备份
zhongrj
2023-12-07 41d8611f58087cf58254c9d2b9bf8e22c1f55169
保安员字段修改
9 files modified
721 ■■■■■ changed files
src/main/java/org/springblade/modules/exam/excel/ExportExamScoreExcel.java 22 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml 39 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 75 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/entity/User.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/entity/UserDetailEntity.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/excel/SecurityExcel.java 33 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml 144 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 356 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/vo/UserVO.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/excel/ExportExamScoreExcel.java
@@ -36,10 +36,6 @@
    @ExcelProperty("身份证号码")
    private String idCardNo;
    @ColumnWidth(50)
    @ExcelProperty("身份证住址")
    private String registered;
    @ColumnWidth(20)
    @ExcelProperty("准考证号")
    private String candidateNo;
@@ -114,4 +110,22 @@
     */
    @ExcelProperty(value = "教育经历")
    private String educationExperience;
    /**
     * 受理公安机关
     */
    @ExcelProperty(value = "受理公安机关")
    private String acceptancePoliceUnit;
    /**
     * 受理人
     */
    @ExcelProperty(value = "受理人")
    private String acceptancePerson;
    /**
     * 受理时间
     */
    @ExcelProperty(value = "受理时间")
    private String acceptanceTime;
}
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -72,29 +72,17 @@
            ke.exam_name examName,date_format(ke.start_time,'%Y-%m-%d') startTime,date_format(ke.end_time,'%Y-%m-%d %H:%i:%s') endTime,
            str.is_exam isExam,
            bu.real_name securityName,company,bu.account,bu.sex,bu.paper_time paperTime,bu.securitynumber securityNumber,bu.avatar,
            bd.dept_name companyName,bu.user_type isPaper,bu.unit_name unitName
            bd.dept_name companyName,bu.user_type isPaper,bud.unit_name unitName
        from
            exam_score es
        left join
        ksxt_exam ke
        on
        ke.id = es.exam_id
        left join
        blade_user bu
        on
        es.user_id = bu.id
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        left join ksxt_exam ke on ke.id = es.exam_id
        left join blade_user bu on es.user_id = bu.id
        left join blade_user_detail bud on bud.user_id = bu.id
        left join blade_dept bd on bd.id = bu.dept_id
        left join sys_information si on si.departmentid = bd.id
        left join sys_jurisdiction sj on sj.id = si.jurisdiction
        left join
        sys_training_registration str
        on
        str.id = es.apply_id
        where
        1=1 and es.is_deleted = 0
        left join sys_training_registration str on str.id = es.apply_id
        where 1=1 and es.is_deleted = 0
        and (str.is_exam = 2 or str.is_exam = 3 or str.is_exam = 4 or str.is_exam = 5)
        <if test="examScore.examName!=null and  examScore.examName!=''">
            and ke.exam_name like concat('%', #{examScore.examName},'%')
@@ -103,7 +91,7 @@
            and bd.dept_name like concat('%', #{examScore.companyName},'%')
        </if>
        <if test="examScore.unitName!=null and  examScore.unitName!=''">
            and bu.unit_name like concat('%', #{examScore.unitName},'%')
            and bud.unit_name like concat('%', #{examScore.unitName},'%')
        </if>
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and bu.real_name like concat('%', #{examScore.securityName},'%')
@@ -368,9 +356,9 @@
    <select id="getExamScoreList" resultType="org.springblade.modules.exam.excel.ExportExamScoreExcel">
        SELECT
        ke.exam_name examName,
        bu.real_name securityName,bu.cardid idCardNo,bu.unit_name unitName,bu.securitynumber as securityNumber,
        bu.real_name securityName,bu.cardid idCardNo,bu.securitynumber as securityNumber,
        bd.dept_name companyName,
        es.exam_time examTime,exam_end_time examEndTime,es.candidate_no candidateNo,bu.registered,
        es.exam_time examTime,exam_end_time examEndTime,es.candidate_no candidateNo,
        es.theory_grade theoryGrade,
        case when es.learn_grade=0 then '合格'
            when es.learn_grade=1 then '不合格'
@@ -379,9 +367,10 @@
            when es.qualified=1 then '不合格'
            when es.qualified=2 then '暂未录入实操成绩'
        end as qualified,
        bud.marriage_status marriageStatus,bud.sign_level signLevel,
        bud.marriage_status marriageStatus,bud.sign_level signLevel,bud.unit_name unitName,
        bud.permanent_residence_address permanentResidenceAddress,bud.dwell_address dwellAddress,
        bud.member_of_family memberOfFamily,bud.work_experience workExperience,bud.education_experience educationExperience
        bud.member_of_family memberOfFamily,bud.work_experience workExperience,bud.education_experience educationExperience,
        bud.acceptance_police_unit acceptancePoliceUnit,bud.acceptance_person acceptancePerson,bud.acceptance_time acceptanceTime
        from exam_score es
        left join ksxt_exam ke on ke.id = es.exam_id
        left join blade_user bu on es.user_id = bu.id and bu.is_deleted = 0
@@ -400,7 +389,7 @@
            and bd.dept_name like concat('%', #{examScore.companyName},'%')
        </if>
        <if test="examScore.unitName!=null and  examScore.unitName!=''">
            and bu.unit_name like concat('%', #{examScore.unitName},'%')
            and bud.unit_name like concat('%', #{examScore.unitName},'%')
        </if>
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and bu.real_name like concat('%', #{examScore.securityName},'%')
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -374,12 +374,6 @@
                    //FtpUtil.sqlFileUpload(s1);
                    myAsyncService.dataSync(s1);
                } else {
                    //新增
                    if (null != user.getRtime()) {
                        experience.setEntrytime(user.getRtime());
                    } else {
                        experience.setEntrytime(new Date());
                    }
                    experience.setDeparturetime(new Date());
                    experience.setName(user.getRealName());
                    if (null != user.getReasonForLeav() && !user.getReasonForLeav().equals("")) {
@@ -389,33 +383,9 @@
                    experience.setSecurityid(user.getId().toString());
                    //新增
                    boolean save = experienceService.save(experience);
                    if (save) {
                        //内网同步
                        String s = "insert into sys_experience(id,name,entryTime,departureTime,leaving,cardId,companyname,securityId) " +
                            "values(" + "'" + experience.getId() + "'" +
                            "," + "'" + experience.getName() + "'" +
                            "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" +
                            "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getDeparturetime()) + "'" +
                            "," + "'" + experience.getLeaving() + "'" +
                            "," + "'" + experience.getCardid() + "'" +
                            "," + "'" + experience.getCompanyname() + "'" +
                            "," + "'" + experience.getSecurityid() + "'"
                            + ")";
                        myAsyncService.dataSync(s);
                    }
                }
                boolean status = userService.updateById(user);
                //qfqk 数据推送
                if (status) {
//                    myAsyncService.updateUserByQfqk(user);
                    //内网更新
                    String s1 =
                        "update blade_user set status = " + "'" + user.getStatus() + "'"
                            + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "'"
                            + " " + "where id = " + "'" + user.getId() + "'";
                    myAsyncService.dataSync(s1);
                }
                return true;
            }
        }
@@ -507,26 +477,6 @@
                signInRecordsService.updateById(inRecordsServiceOne);
            }
        }
        //内网同步
        String s1 =
            "update blade_user set account = " + "'" + user.getCardid() + "'"
                + ",real_name = " + "'" + user.getRealName() + "'"
                + ",avatar = " + "'" + user.getAvatar() + "'"
                + ",sex = " + "'" + user.getSex() + "'"
                + ",cardid = " + "'" + user.getCardid() + "'"
                + ",nation = " + "'" + user.getNation() + "'"
                + ",fingerprint = " + "'" + url + "'"
                + ",my_picture = " + "'" + user.getMyPicture() + "'"
                + ",address = " + "'" + user.getAddress() + "'"
                + ",registered = " + "'" + user.getRegistered() + "'"
                + ",securitynumber = " + "'" + user.getSecuritynumber() + "'"
                + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'"
                + ",hold = " + "'" + user.getHold() + "'"
                + ",cell = " + "'" + user.getCell() + "'"
                + " " + "where id = " + "'" + user.getId() + "'";
        //FtpUtil.sqlFileUpload(s1);
        myAsyncService.dataSync(s1);
        return R.success("修改成功");
    }
@@ -844,11 +794,12 @@
        securityExcel.setSex("男");
        securityExcel.setCardid("360XXX19XXXXXX****");
        securityExcel.setNation("汉");
        securityExcel.setRegistered("山西省晋城市******");
        securityExcel.setPermanentResidenceAddress("山西省晋城市******");
        securityExcel.setEducation("本科");
        securityExcel.setPoliticaloutlook("群众");
        securityExcel.setUnitName("晋城市***公司");
        securityExcel.setAddress("山西省晋城市******");
        securityExcel.setDwellAddress("山西省晋城市******");
        securityExcel.setAcceptanceTime("2023/12/01");
        list.add(securityExcel);
        SecurityExcel securityExcel1 = new SecurityExcel();
@@ -858,11 +809,12 @@
        securityExcel1.setSex("女");
        securityExcel1.setCardid("360XXX19XXXXXX****");
        securityExcel1.setNation("汉");
        securityExcel1.setRegistered("山西省晋城市******");
        securityExcel1.setPermanentResidenceAddress("山西省晋城市******");
        securityExcel1.setEducation("本科");
        securityExcel1.setPoliticaloutlook("党员");
        securityExcel1.setUnitName("晋城市***公司");
        securityExcel1.setAddress("山西省晋城市******");
        securityExcel1.setDwellAddress("山西省晋城市******");
        securityExcel1.setAcceptanceTime("2023/12/01");
        list.add(securityExcel1);
        String fileName = null;
        try {
@@ -1155,15 +1107,6 @@
    public void experienceSave(User user) {
        //从业记录新增
        Experience experience = new Experience();
        String rtime;
        String paperTime;
        if (user.getRtime() == null) {
            rtime = null;
        } else {
            rtime = new SimpleDateFormat("yyyy-MM-dd").format(user.getRtime());
            experience.setEntrytime(user.getRtime());
        }
        Dept dept = iDeptService.getById(user.getDeptId());
        experience.setCardid(user.getCardid());
        experience.setSecurityid(user.getId().toString());
@@ -1264,12 +1207,6 @@
            //FtpUtil.sqlFileUpload(s1);
            myAsyncService.dataSync(s1);
        } else {
            //新增
            if (null != user.getRtime()) {
                experience.setEntrytime(user.getRtime());
            } else {
                experience.setEntrytime(new Date());
            }
            experience.setDeparturetime(new Date());
            experience.setName(user.getRealName());
            if (null != user.getReasonForLeav() && !user.getReasonForLeav().equals("")) {
src/main/java/org/springblade/modules/system/entity/User.java
@@ -139,23 +139,6 @@
     */
    @ApiModelProperty(value = "邮箱")
    private String emails;
    /**
     * 联系地址
     */
    @ApiModelProperty(value = "联系地址")
    private String address;
    /**
     * 身份证住址
     */
    @ApiModelProperty(value = "户口所在地")
    private String registered ;
    /**
     * 入职时间
     */
    @ApiModelProperty(value = "入职时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date rtime;
    private String hold;
@@ -266,12 +249,6 @@
     */
    @TableField("equipment_code")
    private String equipmentCode;
    /**
     * 从业单位名称
     */
    @TableField("unit_name")
    private String unitName;
    /**
     * 是否冻结 0:否  1:是
src/main/java/org/springblade/modules/system/entity/UserDetailEntity.java
@@ -55,6 +55,13 @@
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;
    /**
     * 从业单位名称
     */
    @TableField("unit_name")
    private String unitName;
    /**
     * 婚姻状态
     */
@@ -102,6 +109,23 @@
    private String noCriminalRecordProveUrl;
    /**
     * 受理公安机关
     */
    private String acceptancePoliceUnit;
    /**
     * 受理人
     */
    private String acceptancePerson;
    /**
     * 受理时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date acceptanceTime;
    /**
     * 创建人
     */
    @JsonSerialize(using = ToStringSerializer.class)
src/main/java/org/springblade/modules/system/excel/SecurityExcel.java
@@ -4,13 +4,16 @@
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.common.excel.ExcelDictConverter;
import org.springblade.common.excel.ExcelDictItem;
import org.springblade.common.excel.ExcelDictItemLabel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * UserExcel
@@ -50,12 +53,13 @@
    @ColumnWidth(10)
    private String nation;
    @ExcelProperty("身份证住址*")
    private String registered;
    @ExcelProperty("从业单位*")
    @ColumnWidth(20)
    private String unitName;
    @ExcelProperty("保安员证编号")
    @ColumnWidth(15)
    private String securitynumber;
    @ExcelProperty(value = "最高学历*(初中及以下/高中/中技/中专/大专/本科/博士/硕士)",converter = ExcelDictConverter.class)
    @ColumnWidth(20)
@@ -66,9 +70,6 @@
    @ExcelProperty("政治面貌*")
    @ColumnWidth(20)
    private String politicaloutlook;
    @ExcelProperty("联系地址*")
    private String address;
    /**
     * 婚姻状态
     */
@@ -86,7 +87,7 @@
    /**
     * 户籍地址
     */
    @ExcelProperty(value = "户籍地址")
    @ExcelProperty(value = "户籍地址*")
    private String permanentResidenceAddress;
    /**
     * 居住地址
@@ -109,5 +110,23 @@
    @ExcelProperty(value = "教育经历")
    private String educationExperience;
    /**
     * 受理公安机关
     */
    @ExcelProperty(value = "受理公安机关")
    private String acceptancePoliceUnit;
    /**
     * 受理人
     */
    @ExcelProperty(value = "受理人")
    private String acceptancePerson;
    /**
     * 受理时间
     */
    @ExcelProperty(value = "受理时间")
    private String acceptanceTime;
}
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -33,9 +33,6 @@
        <result column="height" property="height"/>
        <result column="cell" property="cell"/>
        <result column="emails" property="emails"/>
        <result column="address" property="address"/>
        <result column="registered" property="registered"/>
        <result column="rtime" property="rtime"/>
        <result column="hold" property="hold"/>
        <result column="jurisdiction" property="jurisdiction"/>
        <result column="securitynumber" property="securitynumber"/>
@@ -57,35 +54,18 @@
        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,
        bud.unit_name,
        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
        left join blade_user_detail bud on bud.user_id = bu.id
        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 ='')
@@ -187,7 +167,7 @@
            and bu.cardid like concat('%', #{user.cardid},'%')
        </if>
        <if test="user.unitName!=null and user.unitName != ''">
            and bu.unit_name like concat('%', #{user.unitName},'%')
            and bud.unit_name like concat('%', #{user.unitName},'%')
        </if>
        <if test="user.sortName!=null and user.sortName!=''">
            ORDER BY bu.${user.sortName} ${user.sort},bu.id desc
@@ -207,35 +187,18 @@
            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,
            bud.unit_name,
            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
            left join blade_user_detail bud on bud.user_id = bu.id
            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 ='')
@@ -299,7 +262,7 @@
                and bu.real_name like concat('%', #{user.realName},'%')
            </if>
            <if test="user.unitName!=null and user.unitName != ''">
                and bu.unit_name like concat('%', #{user.unitName},'%')
                and bud.unit_name like concat('%', #{user.unitName},'%')
            </if>
            <if test="user.dispatch!=null and user.dispatch != ''">
                <if test="user.dispatch == 0">
@@ -399,9 +362,6 @@
        <if test="user.nativeplace!=null and user.nativeplace != ''">
            and nativeplace = #{user.nativeplace}
        </if>
        <if test="user.unitName!=null and user.unitName != ''">
            and bu.unit_name like concat('%', #{user.unitName},'%')
        </if>
        <if test="user.sex!=null and user.sex != ''">
            and sex = #{user.sex}
        </if>
@@ -466,16 +426,10 @@
        bu.*,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sexs
        from
        blade_user bu
        left join
        blade_dept bd
        on
        bu.dept_id = bd.id
        left join
        blade_role br
        on
        br.id = bu.role_id
        where
        bu.is_deleted = 0
        left join blade_user_detail bud on bud.user_id = bu.id
        left join blade_dept bd on bu.dept_id = bd.id
        left join blade_role br on br.id = bu.role_id
        where bu.is_deleted = 0
        and role_alias = '保安'
        <if test="user.realName!=null and user.realName != ''">
            and bu.real_name like concat(concat('%', #{user.realName}),'%')
@@ -513,7 +467,7 @@
            and bu.jurisdiction = #{user.jurisdiction}
        </if>
        <if test="user.unitName!=null and user.unitName != ''">
            and bu.unit_name like concat('%', #{user.unitName},'%')
            and bud.unit_name like concat('%', #{user.unitName},'%')
        </if>
        <if test="user.securitynumber!=null and user.securitynumber != ''">
            and bu.securitynumber = #{user.securitynumber}
@@ -527,18 +481,11 @@
        bd.dept_name
        from
        blade_user bu
        left join
        blade_dept bd
        on
        bu.dept_id = bd.id
        left join
        blade_role br
        on
        br.id = bu.role_id
        where
        bu.is_deleted = 0
        and
        (hold = 2 or hold = 3)
        left join blade_user_detail bud on bud.user_id = bu.id
        left join blade_dept bd on bu.dept_id = bd.id
        left join blade_role br on br.id = bu.role_id
        where bu.is_deleted = 0
        and (hold = 2 or hold = 3)
        and br.role_alias = "保安"
        <if test="user.deptId!=null and user.deptId != ''">
            and bu.dept_id = #{user.deptId}
@@ -559,7 +506,7 @@
            and bu.real_name like concat('%', #{user.realName},'%')
        </if>
        <if test="user.unitName!=null and user.unitName != ''">
            and bu.unit_name like concat('%', #{user.unitName},'%')
            and bud.unit_name like concat('%', #{user.unitName},'%')
        </if>
        <if test="user.userType!=null and user.userType != ''">
            and bu.user_type = #{user.userType}
@@ -883,23 +830,16 @@
        select
        distinct bu.id,
        bd.dept_name deptId,
        bu.real_name realName,
        bu.phone,
        if(IF(mod(SUBSTR(bu.cardid,17,1),2),1,2)=1,"男","女") sex,
        bu.cardid,
        bu.nation,
        bu.registered,
        bu.unit_name unitName,
        case when bu.education=1 then '初中及以下'
        when bu.education=2 then '高中/中技/中专'
        when bu.education=3 then '大专'
        when bu.education=4 then '本科'
        when bu.education=5 then '博士'
        when bu.education=6 then '硕士'
        else '' end as education,
        bu.politicaloutlook,
        bu.address
        from blade_user bu left join blade_dept bd on bu.dept_id = bd.id
        bu.real_name realName,if(IF(mod(SUBSTR(bu.cardid,17,1),2),1,2)=1,"男","女") sex,
        bu.phone,bu.cardid,bu.nation,bu.education,bu.politicaloutlook,
        bud.unit_name unitName,bud.marriage_status marriageStatus,bud.sign_level signLevel,
        bud.permanent_residence_address permanentResidenceAddress,bud.dwell_address dwellAddress,
        bud.member_of_family memberOfFamily,bud.work_experience workExperience,
        bud.education_experience educationExperience,bud.acceptance_police_unit acceptancePoliceUnit,
        bud.acceptance_person acceptancePerson,bud.acceptance_time acceptanceTime
        from blade_user bu
        left join blade_user_detail bud on bud.user_id = bu.id and bud.is_deleted = 0
        left join blade_dept bd on bu.dept_id = bd.id and bd.is_deleted = 0
        left join sys_information si on si.departmentid = bd.id
        left join sys_jurisdiction sj on sj.id = si.jurisdiction
        left join blade_role br on br.id = bu.role_id
@@ -923,7 +863,7 @@
            and bu.is_freeze = #{user.isFreeze}
        </if>
        <if test="user.unitName!=null and user.unitName != ''">
            and bu.unit_name like concat('%', #{user.unitName},'%')
            and bud.unit_name like concat('%', #{user.unitName},'%')
        </if>
        <if test="user.isFingerprint==1">
            and bu.fingerprint is not null and bu.fingerprint!=""
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -24,6 +24,7 @@
import com.google.zxing.WriterException;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.cache.SysCache;
import org.springblade.common.config.QrcodeConfig;
import org.springblade.common.constant.AgeUtil;
@@ -73,6 +74,7 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -131,45 +133,12 @@
        }
        boolean b = save(user) && submitUserDept(user);
        user.setIsDeleted(0);
        String s = "insert into blade_user(id,tenant_id,account,password,real_name,email,phone,sex,role_id,dept_id,cardid,nativePlace,nation," +
            "politicaloutlook,healstats,height,address,registered,securitynumber,hold,status,dispatch,jurisdiction,is_deleted) " +
            "values(" + "'" + user.getId() + "'" + "," + "'" + user.getTenantId() + "'" + "," + "'" + user.getAccount() + "'" + "," +
            "'" + user.getPassword() + "'" + "," + "'" + user.getRealName() + "'" + "," +
            "'" + user.getEmail() + "'" + "," + "'" + user.getPhone() + "'" + "," + "'" + user.getSex() + "'" + "," + "'" + user.getRoleId() + "'" +
            "," + "'" + user.getDeptId() + "'" +
            "," + "'" + user.getCardid() + "'" +
            "," + "'" + user.getNativeplace() + "'" +
            "," + "'" + user.getNation() + "'" +
            "," + "'" + user.getPoliticaloutlook() + "'" +
            "," + "'" + user.getHealstats() + "'"
            + "," + "'" + user.getHeight() + "'" +
            "," + "'" + user.getAddress() + "'" +
            "," + "'" + user.getRegistered() + "'" + "," +
            "'" + user.getSecuritynumber() + "'" +
            "," + "'" + user.getHold() + "'" +
            "," + "'" + user.getStatus() + "'" +
            "," + "'" + user.getDispatch() + "'"+
            "," + "'" + user.getJurisdiction() + "'"+
            "," + "'" + user.getIsDeleted() + "'"
            + ")";
        //FtpUtil.sqlFileUpload(s);
        myAsyncService.dataSync(s);
        return b;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateUser(User user) {
//        String tenantId = user.getTenantId();
//        Integer userCount = baseMapper.selectCount(
//            Wrappers.<User>query().lambda()
//                .eq(User::getTenantId, tenantId)
//                .eq(User::getAccount, user.getAccount())
//                .notIn(User::getId, user.getId())
//        );
//        if (userCount > 0) {
//            throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
//        }
        return updateUserInfo(user) && submitUserDept(user);
    }
@@ -198,11 +167,6 @@
            List<UserVO> userVOS = baseMapper.selectUserPagesByAge(page, user);
            //机构名称拼接
            userVOS.forEach(userVO -> {
//                if (null != userVO.getCardid() && userVO.getCardid() != "") {
//                    userVO.setAge(AgeUtil.idCardToAge(userVO.getCardid()));
//                } else {
//                    userVO.setAge(null);
//                }
                if (null!=userVO.getDeptId()) {
                    List<String> list = baseMapper.getDeptName(userVO.getDeptId());
                    if (list.size() > 1) {
@@ -228,11 +192,6 @@
            List<UserVO> userVOS = baseMapper.selectUserPages(page, user);
            //机构名称拼接
            userVOS.forEach(userVO -> {
//                if (null != userVO.getCardid() && userVO.getCardid() != "") {
//                    userVO.setAge(AgeUtil.idCardToAge(userVO.getCardid()));
//                } else {
//                    userVO.setAge(null);
//                }
                if (null!=userVO.getDeptId()) {
                    List<String> list = baseMapper.getDeptName(userVO.getDeptId());
                    if (list.size() > 1) {
@@ -919,8 +878,8 @@
                throw new ServiceException("导入失败!身份证号码不能为空!");
            }
            //身份证住址校验
            if (null==user.getRegistered() || user.getRegistered().equals("")){
                throw new ServiceException("导入失败!身份证住址不能为空!");
            if (null==userExcel.getPermanentResidenceAddress() || userExcel.getPermanentResidenceAddress().equals("")){
                throw new ServiceException("导入失败!户籍地址不能为空!");
            }
            if (null!=user.getCardid() && !user.getCardid().equals("")){
                //去除所有空格
@@ -957,7 +916,7 @@
                //默认在职
                user.setStatus(1);
                user.setIsDeleted(0);
                user.setHold("2");
                securityNumberCheck(securityInvalidList, securityInvalidStatus, user, userExcel.getSecuritynumber(), userExcel.getCardid());
                //分配保安角色
                Role role = new Role();
                role.setRoleAlias("保安");
@@ -990,8 +949,24 @@
                    detailEntity.setMemberOfFamily(userExcel.getMemberOfFamily());
                    detailEntity.setWorkExperience(userExcel.getWorkExperience());
                    detailEntity.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
                    detailEntity.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
                    detailEntity.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
                    if (!Strings.isBlank(userExcel.getMarriageStatus())) {
                        detailEntity.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
                    }
                    if (!Strings.isBlank(userExcel.getSignLevel())) {
                        detailEntity.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
                    }
                    detailEntity.setUnitName(userExcel.getUnitName());
                    detailEntity.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
                    detailEntity.setDwellAddress(userExcel.getDwellAddress());
                    detailEntity.setAcceptancePoliceUnit(userExcel.getAcceptancePoliceUnit());
                    detailEntity.setAcceptancePerson(userExcel.getAcceptancePerson());
                    if (!Strings.isBlank(userExcel.getAcceptanceTime())){
                        try {
                            detailEntity.setAcceptanceTime(new SimpleDateFormat("yyyy/MM/dd").parse(userExcel.getAcceptanceTime()));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                    }
                    userDetailService.save(detailEntity);
                }
                //加入集合
@@ -1018,32 +993,11 @@
//                        return;
                    continue;
                }else {
                    //如果是一致,则更新用户数据
                    if (null!=userExcel.getRegistered()){
                        user2.setRegistered(userExcel.getRegistered());
                    }else {
                        user2.setRegistered("");
                    }
                    // 住址
                    if (null!=userExcel.getAddress()){
                        user2.setAddress(userExcel.getAddress());
                    }else {
                        user2.setAddress("");
                    }
                    // 学历
                    if (null!=userExcel.getEducation()){
                        user2.setEducation(user.getEducation());
                    }else {
                        user2.setEducation("");
                    }
                    // 从业单位
                    if (null!=userExcel.getUnitName()){
                        user2.setUnitName(userExcel.getUnitName());
                    }else {
                        user2.setUnitName("");
                    }
                    // 政治面貌
@@ -1068,8 +1022,24 @@
                            one.setMemberOfFamily(userExcel.getMemberOfFamily());
                            one.setWorkExperience(userExcel.getWorkExperience());
                            one.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
                            one.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
                            one.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
                            if (!Strings.isBlank(userExcel.getMarriageStatus())) {
                                one.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
                            }
                            if (!Strings.isBlank(userExcel.getSignLevel())) {
                                one.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
                            }
                            one.setUnitName(userExcel.getUnitName());
                            one.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
                            one.setDwellAddress(userExcel.getDwellAddress());
                            one.setAcceptancePoliceUnit(userExcel.getAcceptancePoliceUnit());
                            one.setAcceptancePerson(userExcel.getAcceptancePerson());
                            if (!Strings.isBlank(userExcel.getAcceptanceTime())){
                                try {
                                    one.setAcceptanceTime(new SimpleDateFormat("yyyy/MM/dd").parse(userExcel.getAcceptanceTime()));
                                } catch (ParseException e) {
                                    e.printStackTrace();
                                }
                            }
                            userDetailService.updateById(one);
                        }else {
                            UserDetailEntity detailEntity = new UserDetailEntity();
@@ -1079,8 +1049,24 @@
                            detailEntity.setMemberOfFamily(userExcel.getMemberOfFamily());
                            detailEntity.setWorkExperience(userExcel.getWorkExperience());
                            detailEntity.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
                            detailEntity.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
                            detailEntity.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
                            if (!Strings.isBlank(userExcel.getMarriageStatus())) {
                                detailEntity.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
                            }
                            if (!Strings.isBlank(userExcel.getSignLevel())) {
                                detailEntity.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
                            }
                            detailEntity.setUnitName(userExcel.getUnitName());
                            detailEntity.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
                            detailEntity.setDwellAddress(userExcel.getDwellAddress());
                            detailEntity.setAcceptancePoliceUnit(userExcel.getAcceptancePoliceUnit());
                            detailEntity.setAcceptancePerson(userExcel.getAcceptancePerson());
                            if (!Strings.isBlank(userExcel.getAcceptanceTime())){
                                try {
                                    detailEntity.setAcceptanceTime(new SimpleDateFormat("yyyy/MM/dd").parse(userExcel.getAcceptanceTime()));
                                } catch (ParseException e) {
                                    e.printStackTrace();
                                }
                            }
                            userDetailService.save(detailEntity);
                        }
                    }
@@ -1124,6 +1110,47 @@
        }
    }
    /**
     * 判断是否持证
     * @param securityInvalidList
     * @param securityInvalidStatus
     * @param user
     * @param securitynumber
     * @param cardid2
     */
    public void securityNumberCheck(List<String> securityInvalidList, AtomicBoolean securityInvalidStatus, User user, String securitynumber, String cardid2) {
        //判断是否持证
        if (null != securitynumber && securitynumber != "") {
            user.setHold("1");
            //校验保安员证编号是否合规
            SecurityPaper securityPaper = new SecurityPaper();
            securityPaper.setIdCardNo(cardid2);
            List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
            if (securityPaperList.size() > 0) {
                boolean state = false;
                //遍历
                for (SecurityPaper paper : securityPaperList) {
                    if (paper.getNumber().equals(user.getSecuritynumber())) {
                        state = true;
                    }
                }
                if (!state) {
                    user.setHold("2");
                    user.setSecuritynumber(null);
                    securityInvalidList.add(cardid2);
                    securityInvalidStatus.set(false);
                }
            } else {
                user.setHold("2");
                user.setSecuritynumber(null);
                securityInvalidList.add(cardid2);
                securityInvalidStatus.set(false);
            }
        } else {
            user.setHold("2");
        }
    }
    @Override
    public void importSecurityYy(List<SecurityYyExcel> data, Boolean isCovered, String deptId) {
        //将不能导入的保安员账号存起来
@@ -1158,10 +1185,6 @@
            if (null==user.getCardid() || user.getCardid().equals("")){
                throw new ServiceException("导入失败!身份证号码不能为空!");
            }
            //身份证住址校验
            if (null==user.getRegistered() || user.getRegistered().equals("")){
                throw new ServiceException("导入失败!身份证住址不能为空!");
            }
            if (null!=user.getCardid() && !user.getCardid().equals("")){
                //去除所有空格
                String cardid = user.getCardid().replaceAll(" ", "");
@@ -1192,35 +1215,7 @@
                user.setStatus(1);
                user.setIsDeleted(0);
                //判断是否持证
                if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
                    user.setHold("1");
                    //校验保安员证编号是否合规
                    SecurityPaper securityPaper = new SecurityPaper();
                    securityPaper.setIdCardNo(userExcel.getCardid());
                    List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
                    if (securityPaperList.size()>0){
                        boolean state = false;
                        //遍历
                        for (SecurityPaper paper : securityPaperList) {
                            if (paper.getNumber().equals(user.getSecuritynumber())){
                                state = true;
                            }
                        }
                        if (!state){
                            user.setHold("2");
                            user.setSecuritynumber(null);
                            securityInvalidList.add(userExcel.getCardid());
                            securityInvalidStatus.set(false);
                        }
                    }else {
                        user.setHold("2");
                        user.setSecuritynumber(null);
                        securityInvalidList.add(userExcel.getCardid());
                        securityInvalidStatus.set(false);
                    }
                }else {
                    user.setHold("2");
                }
                securityNumberCheck(securityInvalidList, securityInvalidStatus, user, userExcel.getSecuritynumber(), userExcel.getCardid());
                //分配保安角色
                Role role = new Role();
                role.setRoleAlias("保安");
@@ -1303,11 +1298,6 @@
                        }else {
                            user2.setHold("2");
                        }
                        if (null!=userExcel.getRegistered()){
                            user2.setRegistered(userExcel.getRegistered());
                        }else {
                            user2.setRegistered("");
                        }
                        user2.setUpdateTime(new Date());
                        //更新用户数据
                        this.updateById(user2);
@@ -1361,23 +1351,9 @@
                    }else {
                        user2.setHold("2");
                    }
                    if (null!=userExcel.getRegistered()){
                        user2.setRegistered(userExcel.getRegistered());
                    }else {
                        user2.setRegistered("");
                    }
                    user2.setUpdateTime(new Date());
                    //更新用户数据
                    this.updateById(user2);
                    String s1 =
                        "update blade_user set hold = " + "'" + user2.getHold() + "'"
                            + ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
                            + ",registered = " + "'" + user2.getRegistered() + "'"
                            + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
                            + " " + "where id = " + "'" + user2.getId() + "'";
                    //FtpUtil.sqlFileUpload(s1);
                    myAsyncService.dataSync(s1);
                }
            }
        });
@@ -1649,10 +1625,6 @@
            if (null==user.getCardid() || user.getCardid().equals("")){
                throw new ServiceException("导入失败!身份证号码不能为空!");
            }
            //身份证住址校验
            if (null==user.getRegistered() || user.getRegistered().equals("")){
                throw new ServiceException("导入失败!身份证住址不能为空!");
            }
            if (null!=user.getCardid() && !user.getCardid().equals("")){
                //去除所有空格
                String cardid = user.getCardid().replaceAll(" ", "");
@@ -1683,61 +1655,6 @@
                user.setStatus(1);
                user.setIsDeleted(0);
                user.setHold("2");
                //判断是否持证
//                if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
//                    user.setHold("1");
//                    //校验保安员证编号是否合规
//                    SecurityPaper securityPaper = new SecurityPaper();
//                    securityPaper.setIdCardNo(userExcel.getCardid());
//                    List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
//                    if (securityPaperList.size()>0){
//                        boolean state = false;
//                        //遍历
//                        for (SecurityPaper paper : securityPaperList) {
//                            if (paper.getNumber().equals(user.getSecuritynumber())){
//                                state = true;
//                            }
//                        }
//                        if (!state){
//                            user.setHold("2");
//                            user.setSecuritynumber(null);
//                            securityInvalidList.add(userExcel.getCardid());
//                            securityInvalidStatus.set(false);
//                        }
//                    }else {
//                        user.setHold("2");
//                        user.setSecuritynumber(null);
//                        securityInvalidList.add(userExcel.getCardid());
//                        securityInvalidStatus.set(false);
//                    }
//                }else {
//                    //创建保安证编号
//                    user.setHold("1");
//                    //去生成保安证编号
//                    String pre = SecurityPaperUtil.getSecurityPaper();
//                    //查询当前年份已有的保安证编号
//                    int max = this.getSecurityPaperCount(pre);
//                    String result = null;
//                    if (max == 0) {
//                        result = pre + "00001";
//                    } else {
//                        //格式化
//                        DecimalFormat decimalFormat = new DecimalFormat("00000");
//                        max++;
//                        result = pre + (decimalFormat.format(max));
//                    }
//                    user.setSecuritynumber(result);
//
//                    //生成保安证的同时向保安证管理表中插入一条数据
//                    SecurityPaper securityPaper = new SecurityPaper();
//                    securityPaper.setNumber(result);
//                    securityPaper.setCreateTime(new Date());
//                    securityPaper.setIdCardNo(user.getCardid());
//                    securityPaper.setPeopleName(user.getRealName());
//                    securityPaper.setSource(3);
//                    //新增保安员证信息
//                    securityPaperService.save(securityPaper);
//                }
                //分配保安角色
                Role role = new Role();
                role.setRoleAlias("保安");
@@ -1791,80 +1708,9 @@
                    continue;
                }else {
                    //如果是一致,则更新用户数据
                    //判断是否持证
//                    if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
//                        user2.setHold("1");
//                        user2.setSecuritynumber(user.getSecuritynumber());
//                        //校验保安员证编号是否合规
//                        SecurityPaper securityPaper = new SecurityPaper();
//                        securityPaper.setIdCardNo(userExcel.getCardid());
//                        List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
//                        if (securityPaperList.size()>0){
//                            boolean state = false;
//                            //遍历
//                            for (SecurityPaper paper : securityPaperList) {
//                                if (paper.getNumber().equals(user.getSecuritynumber())){
//                                    state = true;
//                                }
//                            }
//                            if (!state){
//                                user2.setHold("2");
//                                user2.setSecuritynumber(null);
//                                securityInvalidList.add(userExcel.getCardid());
//                                securityInvalidStatus.set(false);
//                            }
//                        }else {
//                            user2.setHold("2");
//                            user2.setSecuritynumber(null);
//                            securityInvalidList.add(userExcel.getCardid());
//                            securityInvalidStatus.set(false);
//                        }
//                    }else {
//                        //创建保安证编号
//                        user2.setHold("1");
//                        //去生成保安证编号
//                        String pre = SecurityPaperUtil.getSecurityPaper();
//                        //查询当前年份已有的保安证编号
//                        int max = this.getSecurityPaperCount(pre);
//                        String result = null;
//                        if (max == 0) {
//                            result = pre + "00001";
//                        } else {
//                            //格式化
//                            DecimalFormat decimalFormat = new DecimalFormat("00000");
//                            max++;
//                            result = pre + (decimalFormat.format(max));
//                        }
//                        user2.setSecuritynumber(result);
//
//                        //生成保安证的同时向保安证管理表中插入一条数据
//                        SecurityPaper securityPaper = new SecurityPaper();
//                        securityPaper.setNumber(result);
//                        securityPaper.setCreateTime(new Date());
//                        securityPaper.setIdCardNo(user2.getCardid());
//                        securityPaper.setPeopleName(user2.getRealName());
//                        securityPaper.setSource(3);
//                        //新增保安员证信息
//                        securityPaperService.save(securityPaper);
//                    }
                    if (null!=userExcel.getRegistered()){
                        user2.setRegistered(userExcel.getRegistered());
                    }else {
                        user2.setRegistered("");
                    }
                    user2.setUpdateTime(new Date());
                    //更新用户数据
                    this.updateById(user2);
                    //qfqk异步推送
//                    myAsyncService.updateUserByQfqk(user2);
                    //内网数据sql
                    String s1 =
                        "update blade_user set hold = " + "'" + user2.getHold() + "'"
                            + ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
                            + ",registered = " + "'" + user2.getRegistered() + "'"
                            + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
                            + " " + "where id = " + "'" + user2.getId() + "'";
                    myAsyncService.dataSync(s1);
                }
            }
        }
src/main/java/org/springblade/modules/system/vo/UserVO.java
@@ -180,4 +180,9 @@
     * 用户详情
     */
    private UserDetailEntity userDetail = new UserDetailEntity();
    /**
     * 工作单位
     */
    private String unitName;
}