智慧保安后台管理-外网项目备份
Administrator
2021-12-10 00754b2fb8e71be738e6c312e11d62e64a4e82c3
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -27,6 +27,8 @@
import org.springblade.common.constant.AgeUtil;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.constant.TenantConstant;
import org.springblade.common.utils.IdCardNoUtil;
import org.springblade.common.utils.ImageUtils;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
@@ -39,10 +41,10 @@
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.*;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.accreditation.entity.AccreditationRecords;
import org.springblade.modules.accreditation.service.AccreditationRecordsService;
import org.springblade.modules.auth.enums.UserEnum;
import org.springblade.modules.dispatcher.vo.DispatcherVO;
import org.springblade.modules.experience.entity.Experience;
import org.springblade.modules.experience.service.IExperienceService;
import org.springblade.modules.information.entity.Information;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.modules.jurisdiction.entity.Jurisdiction;
@@ -88,7 +90,7 @@
   private final IInformationService iInformationService;
   private final IDeptService deptService;
   private final JurisdictionService jurisdictionService;
   private final AccreditationRecordsService accreditationRecordsService;
   private final IExperienceService experienceService;
   @Override
   @Transactional(rollbackFor = Exception.class)
@@ -119,10 +121,6 @@
         throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
      }
      boolean b = save(user) && submitUserDept(user);
      String rtime = null;
      if (null != user.getRtime()) {
         rtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getRtime());
      }
      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) " +
@@ -187,6 +185,7 @@
   @Override
   public IPage<UserVO> selectUserPages(IPage<UserVO> page, UserVO user) {
      List<UserVO> userVOS = baseMapper.selectUserPages(page, user);
      //机构名称拼接
      userVOS.forEach(userVO -> {
         if (null != userVO.getCardid() && userVO.getCardid() != "") {
            userVO.setAge(AgeUtil.idCardToAge(userVO.getCardid()));
@@ -800,16 +799,16 @@
    * @param isCovered
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void importSecurity(List<SecurityExcel> data, Boolean isCovered, String deptId) {
      //将不能导入的保安员账号存起来
      List<String> errorList = new ArrayList<>();
      //将需要新增的保安员信息存入集合
      List<User> insertList = new ArrayList<>();
      //年龄不符的保安员信息存入集合
      List<String> ageErrorList = new ArrayList<>();
      //将需要更新的保安员信息存入集合
      List<User> updateList = new ArrayList<>();
      //导入状态,默认为true ,如果有一个出现问题则为 false
      AtomicBoolean status = new AtomicBoolean(true);
      AtomicBoolean agetStatus = new AtomicBoolean(true);
      data.forEach(userExcel -> {
         User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
         //设置部门id
@@ -824,6 +823,30 @@
         }else {
            //如果deptIds 为空,则说明还没有改公司
            throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
         }
         //身份证校验
         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(" ", "");
            //校验
            boolean b = IdCardNoUtil.checkIdCardNo(cardid);
            if(b){
               user.setCardid(cardid);
            }else {
               agetStatus.set(false);
               ageErrorList.add(user.getCardid());
//               throw new ServiceException("导入失败!身份证号码[ "+user.getCardid()+" ]不正确,请核对!");
               //forEach 只能使用 return 跳出本次循环
               return;
            }
         }
         //判断当前用户是否已在本单位,如果是的更新数据
         User user1 = new User();
@@ -847,101 +870,144 @@
                  user.setHold("2");
               }
            }
            //分配保安角色
            Role role = new Role();
            role.setRoleAlias("保安");
            Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
            user.setRoleId(oneRole.getId().toString());
            //判断年龄,超过60岁的不入
//            if (AgeUtil.idCardToAge(user.getCardid())<60) {
               //分配保安角色
               Role role = new Role();
               role.setRoleAlias("保安");
               Role oneRole = roleService.getOne(Condition.getQueryWrapper(role));
               user.setRoleId(oneRole.getId().toString());
            //性别
            if (null != userExcel.getSex()) {
               if (userExcel.getSex().equals("男")) {
                  user.setSex(1);
               //性别
               if (null != userExcel.getSex()) {
                  if (userExcel.getSex().equals("男")) {
                     user.setSex(1);
                  }
                  if (userExcel.getSex().equals("女")) {
                     user.setSex(2);
                  }
               }
               if (userExcel.getSex().equals("女")) {
                  user.setSex(2);
               }
            }
            //设置账号
            user.setAccount(user.getCardid());
            //获取默认密码配置
            user.setPassword(user.getCardid().substring(user.getCardid().length() - 6));
            //加密
            if (Func.isNotEmpty(user.getPassword())) {
               user.setPassword(DigestUtil.encrypt(user.getPassword()));
            }
            Integer userCount = baseMapper.selectCountAccount(user.getAccount());
            if (userCount > 0 && Func.isEmpty(user.getId())) {
               throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
            }
            //新增
            this.save(user);
            //内网同步
//            String s = "insert into blade_user(" +
//               "id,tenant_id,account,password,real_name,phone,sex,role_id,dept_id," +
//               "cardid,nation,registered,securitynumber,hold,status,is_deleted) " +
//               "values(" + "'" + user.getId() + "'" + "," +
//               "'" + user.getTenantId() + "'" + "," +
//               "'" + user.getAccount() + "'" + "," +
//               "'" + user.getPassword() + "'" + "," +
//               "'" + user.getRealName() + "'" + "," +
//               "'" + user.getPhone() + "'" + "," +
//               "'" + user.getSex() + "'" + "," +
//               "'" + user.getRoleId() + "'" +
//               "," + "'" + user.getDeptId() + "'" +
//               "," + "'" + user.getCardid() + "'" +
//               "," + "'" + user.getNation() + "'" +
//               "," + "'" + user.getRegistered() + "'" +
//               "," + "'" + user.getSecuritynumber() + "'" +
//               "," + "'" + user.getHold() + "'" +
//               "," + "'" + user.getStatus() + "'" +
//               "," + "'" + user.getIsDeleted() + "'"
//               + ")";
            String s = "insert into blade_user(" +
               "id,tenant_id,account,password,name,real_name,avatar,email,phone,sex," +
               "role_id,dept_id,cardid,nativePlace,nation,fingerprint,education," +
               "politicaloutlook,healstats,height,address,registered," +
               "securitynumber,hold,jurisdiction,examination_type,status,is_deleted,dispatch) " +
               "values(" + "'" + user.getId() + "'" +
               "," + "'" + user.getTenantId() + "'" +
               "," + "'" + user.getAccount() + "'" +
               "," + "'" + user.getPassword() + "'" +
               "," + "'" + user.getName() + "'" +
               "," + "'" + user.getRealName() + "'" +
               "," + "'" + user.getAvatar() + "'" +
               "," + "'" + user.getEmail() + "'" +
               "," + "'" + user.getPhone() + "'" +
               "," + "'" + user.getSex() + "'" +
               "," + "'" + user.getRoleId() + "'" +
               "," + "'" + user.getDeptId() + "'" +
               "," + "'" + user.getCardid() + "'" +
               "," + "'" + user.getNativeplace() + "'" +
               "," + "'" + user.getNation() + "'" +
               "," + "'" + user.getFingerprint() + "'" +
               "," + "'" + user.getEducation() + "'" +
               "," + "'" + user.getPoliticaloutlook() + "'" +
               "," + "'" + user.getHealstats() + "'"+
               "," + "'" + user.getHeight() + "'" +
               "," + "'" + user.getAddress() + "'" +
               "," + "'" + user.getRegistered() + "'" +
               "," + "'" + user.getSecuritynumber() + "'" +
               "," + "'" + user.getHold() + "'" +
               "," + "'" + user.getJurisdiction() + "'" +
               "," + "'" + user.getExaminationType() + "'" +
               "," + "'" + user.getStatus() + "'" +
               "," + "'" + user.getIsDeleted() + "'" +
               "," + "'" + user.getDispatch() + "'" + ")";
            FtpUtil.sqlFileUpload(s);
               //设置账号
               user.setAccount(user.getCardid());
               //获取默认密码配置
               user.setPassword(user.getCardid().substring(user.getCardid().length() - 6));
               //加密
               if (Func.isNotEmpty(user.getPassword())) {
                  user.setPassword(DigestUtil.encrypt(user.getPassword()));
               }
               Integer userCount = baseMapper.selectCountAccount(user.getAccount());
               if (userCount > 0 && Func.isEmpty(user.getId())) {
                  throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
               }
               user.setCreateTime(new Date());
               //新增
               this.save(user);
               //从业记录新增
               Experience experience = new Experience();
               experience.setCardid(user.getCardid());
               experience.setSecurityid(user.getId().toString());
               experience.setCompanyname(userExcel.getDeptId());
               experience.setName(user.getRealName());
               experience.setPost("保安员");
               experience.setEntrytime(new Date());
               experienceService.save(experience);
               //内网同步
               String s = "insert into blade_user(" +
                  "id,tenant_id,account,password,name,real_name,avatar,email,phone,sex," +
                  "role_id,dept_id,cardid,nativePlace,nation,fingerprint,education," +
                  "politicaloutlook,healstats,height,address,registered," +
                  "securitynumber,hold,jurisdiction,examination_type,status,is_deleted,dispatch,create_time) " +
                  "values(" + "'" + user.getId() + "'" +
                  "," + "'" + user.getTenantId() + "'" +
                  "," + "'" + user.getAccount() + "'" +
                  "," + "'" + user.getPassword() + "'" +
                  "," + "'" + user.getName() + "'" +
                  "," + "'" + user.getRealName() + "'" +
                  "," + "'" + user.getAvatar() + "'" +
                  "," + "'" + user.getEmail() + "'" +
                  "," + "'" + user.getPhone() + "'" +
                  "," + "'" + user.getSex() + "'" +
                  "," + "'" + user.getRoleId() + "'" +
                  "," + "'" + user.getDeptId() + "'" +
                  "," + "'" + user.getCardid() + "'" +
                  "," + "'" + user.getNativeplace() + "'" +
                  "," + "'" + user.getNation() + "'" +
                  "," + "'" + user.getFingerprint() + "'" +
                  "," + "'" + user.getEducation() + "'" +
                  "," + "'" + user.getPoliticaloutlook() + "'" +
                  "," + "'" + user.getHealstats() + "'" +
                  "," + "'" + user.getHeight() + "'" +
                  "," + "'" + user.getAddress() + "'" +
                  "," + "'" + user.getRegistered() + "'" +
                  "," + "'" + user.getSecuritynumber() + "'" +
                  "," + "'" + user.getHold() + "'" +
                  "," + "'" + user.getJurisdiction() + "'" +
                  "," + "'" + user.getExaminationType() + "'" +
                  "," + "'" + user.getStatus() + "'" +
                  "," + "'" + user.getIsDeleted() + "'" +
                  "," + "'" + user.getDispatch() + "'" +
                  "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getCreateTime()) + "'" + ");"+
               "insert into sys_experience(id,name,post,entryTime," +
                  "cardId,companyname,securityId) " +
                  "values(" + "'" + experience.getId() + "'" + "," +
                  "'" + experience.getName() + "'" + "," +
                  "'" + experience.getPost() + "'" + "," +
                  "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" +
                  "," + "'" + experience.getCardid() + "'" +
                  "," + "'" + experience.getCompanyname() + "'" +
                  "," + "'" + experience.getSecurityid() + "'"
                  + ")";
               FtpUtil.sqlFileUpload(s);
//            }else {
//               agetStatus.set(false);
//               ageErrorList.add(user.getCardid());
//            }
         }else {
            //匹配组织机构是否一致,如果不一致
            if(!user2.getDeptId().equals(user.getDeptId())){
               Dept dept = deptService.getById(user2.getDeptId());
               status.set(false);
               //加入集合
               errorList.add(user.getCardid());
               //forEach 只能使用 return 跳出本次循环
               return;
               Dept dept1 = deptService.getById(user.getDeptId());
               //如果是南昌总公司分公司导入的
               if (dept.getId().equals(1432626178757275649L) && dept1.getParentId().equals(1432626178757275649L)){
                  user2.setDeptId(dept1.getId().toString());
                  //判断是否持证
                  if (null != userExcel.getHold() && userExcel.getHold() != "") {
                     if (userExcel.getHold().equals("是") && userExcel.getSecuritynumber()!=null && !userExcel.getSecuritynumber().equals("")) {
                        user2.setHold("1");
                        //更新保安证编号
                        user2.setSecuritynumber(user.getSecuritynumber());
                     }
                     if (userExcel.getHold().equals("否")) {
                        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() + "'"
                        + ",dept_id = " + "'" + user2.getDeptId() + "'"
                        + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
                        + ",registered = " + "'" + user2.getRegistered() + "'"
                        + " " + "where id = " + "'" + user2.getId() + "'";
                  FtpUtil.sqlFileUpload(s1);
               }else {
                  status.set(false);
                  //加入集合
                  errorList.add(user.getCardid());
                  //forEach 只能使用 return 跳出本次循环
                  return;
               }
            }else {
               //如果是一致,则更新用户数据
               //判断是否持证
@@ -960,34 +1026,53 @@
               }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);
            }
         }
      });
      //如果所有数据导入有一个异常
      if (!status.get()){
         String errorAccount = StringUtils.join(errorList, "\\\n");
         throw new ServiceException("用户:["+errorAccount+"]导入失败!已在其他单位存在!");
      if (!status.get() || !agetStatus.get()){
         if (!status.get() && agetStatus.get()) {
            String errorAccount = StringUtils.join(errorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
         }
         if (!agetStatus.get() && status.get()) {
            String errorAccount = StringUtils.join(ageErrorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
         }
         if (!status.get() && !agetStatus.get()) {
            String errorAccount = StringUtils.join(errorList, "\\\n");
            String errorAgeAccount = StringUtils.join(ageErrorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!"+
               "用户:[" + errorAgeAccount + "]导入失败!身份证号码不正确,请核对!");
         }
      }
//      if (!status.get()) {
//         String errorAccount = StringUtils.join(errorList, "\\\n");
//         throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
//      }
   }
   @Override
   public void importSecurityYy(List<SecurityYyExcel> data, Boolean isCovered, String deptId) {
//将不能导入的保安员账号存起来
      //将不能导入的保安员账号存起来
      List<String> errorList = new ArrayList<>();
      //将需要新增的保安员信息存入集合
      List<User> insertList = new ArrayList<>();
      List<String> ageErrorList = new ArrayList<>();
      //将需要更新的保安员信息存入集合
      List<User> updateList = new ArrayList<>();
      //导入状态,默认为true ,如果有一个出现问题则为 false
      AtomicBoolean status = new AtomicBoolean(true);
      AtomicBoolean agetStatus = new AtomicBoolean(true);
      data.forEach(userExcel -> {
         User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
         //设置部门id
@@ -1002,6 +1087,30 @@
         }else {
            //如果deptIds 为空,则说明还没有改公司
            throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
         }
         //身份证号码校验
         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(" ", "");
            //校验
            boolean b = IdCardNoUtil.checkIdCardNo(cardid);
            if(b){
               user.setCardid(cardid);
            }else {
               agetStatus.set(false);
               ageErrorList.add(user.getCardid());
//               throw new ServiceException("导入失败!身份证号码[ "+user.getCardid()+" ]不正确,请核对!");
               //forEach 只能使用 return 跳出本次循环
               return;
            }
         }
         //判断当前用户是否已在本单位,如果是的更新数据
         User user1 = new User();
@@ -1054,34 +1163,26 @@
            if (userCount > 0 && Func.isEmpty(user.getId())) {
               throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
            }
            user.setCreateTime(new Date());
            //新增
            this.save(user);
            //从业记录新增
            Experience experience = new Experience();
            experience.setCardid(user.getCardid());
            experience.setSecurityid(user.getId().toString());
            experience.setCompanyname(userExcel.getDeptId());
            experience.setName(user.getRealName());
            experience.setPost("保安员");
            experience.setEntrytime(new Date());
            experienceService.save(experience);
            //内网同步
//            String s = "insert into blade_user(" +
//               "id,tenant_id,account,password,real_name,phone,sex,role_id,dept_id," +
//               "cardid,nation,registered,securitynumber,hold,status,is_deleted) " +
//               "values(" + "'" + user.getId() + "'" + "," +
//               "'" + user.getTenantId() + "'" + "," +
//               "'" + user.getAccount() + "'" + "," +
//               "'" + user.getPassword() + "'" + "," +
//               "'" + user.getRealName() + "'" + "," +
//               "'" + user.getPhone() + "'" + "," +
//               "'" + user.getSex() + "'" + "," +
//               "'" + user.getRoleId() + "'" +
//               "," + "'" + user.getDeptId() + "'" +
//               "," + "'" + user.getCardid() + "'" +
//               "," + "'" + user.getNation() + "'" +
//               "," + "'" + user.getRegistered() + "'" +
//               "," + "'" + user.getSecuritynumber() + "'" +
//               "," + "'" + user.getHold() + "'" +
//               "," + "'" + user.getStatus() + "'" +
//               "," + "'" + user.getIsDeleted() + "'"
//               + ")";
            String s = "insert into blade_user(" +
               "id,tenant_id,account,password,name,real_name,avatar,email,phone,sex," +
               "role_id,dept_id,cardid,nativePlace,nation,fingerprint,education," +
               "politicaloutlook,healstats,height,address,registered," +
               "securitynumber,hold,jurisdiction,examination_type,status,is_deleted,dispatch,guncode) " +
               "securitynumber,hold,jurisdiction,examination_type,status,is_deleted,dispatch,create_time,guncode) " +
               "values(" + "'" + user.getId() + "'" +
               "," + "'" + user.getTenantId() + "'" +
               "," + "'" + user.getAccount() + "'" +
@@ -1110,19 +1211,70 @@
               "," + "'" + user.getExaminationType() + "'" +
               "," + "'" + user.getStatus() + "'" +
               "," + "'" + user.getIsDeleted() + "'" +
               "," + "'" + user.getIsDeleted() + "'" +
               "," + "'" + user.getGuncode() + "'" + ")";
               "," + "'" + user.getDispatch() + "'" +
               "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getCreateTime()) + "'" +
            "," + "'" + user.getGuncode() + "'" + ");"+
            "insert into sys_experience(id,name,post,entryTime," +
               "cardId,companyname,securityId) " +
               "values(" + "'" + experience.getId() + "'" + "," +
               "'" + experience.getName() + "'" + "," +
               "'" + experience.getPost() + "'" + "," +
               "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" +
               "," + "'" + experience.getCardid() + "'" +
               "," + "'" + experience.getCompanyname() + "'" +
               "," + "'" + experience.getSecurityid() + "'"
               + ")";
            FtpUtil.sqlFileUpload(s);
         }
         else {
            //匹配组织机构是否一致,如果不一致
            if(!user2.getDeptId().equals(user.getDeptId())){
//               Dept dept = deptService.getById(user2.getDeptId());
//               status.set(false);
//               //加入集合
//               errorList.add(user.getCardid());
//               //forEach 只能使用 return 跳出本次循环
//               return;
               Dept dept = deptService.getById(user2.getDeptId());
               status.set(false);
               //加入集合
               errorList.add(user.getCardid());
               //forEach 只能使用 return 跳出本次循环
               return;
               Dept dept1 = deptService.getById(user.getDeptId());
               //如果是南昌总公司分公司导入的
               if (dept.getId().equals(1432626178757275649L) && dept1.getParentId().equals(1432626178757275649L)){
                  user2.setDeptId(dept1.getId().toString());
                  //判断是否持证
                  if (null != userExcel.getHold() && userExcel.getHold() != "") {
                     if (userExcel.getHold().equals("是") && userExcel.getSecuritynumber()!=null && !userExcel.getSecuritynumber().equals("")) {
                        user2.setHold("1");
                        //更新保安证编号
                        user2.setSecuritynumber(user.getSecuritynumber());
                     }
                     if (userExcel.getHold().equals("否")) {
                        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() + "'"
                        + ",dept_id = " + "'" + user2.getDeptId() + "'"
                        + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
                        + ",registered = " + "'" + user2.getRegistered() + "'"
                        + " " + "where id = " + "'" + user2.getId() + "'";
                  FtpUtil.sqlFileUpload(s1);
               }else {
                  status.set(false);
                  //加入集合
                  errorList.add(user.getCardid());
                  //forEach 只能使用 return 跳出本次循环
                  return;
               }
            }else {
               //如果是一致,则更新用户数据
               //判断是否持证
@@ -1141,21 +1293,39 @@
               }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);
            }
         }
      });
      //如果所有数据导入有一个异常
      if (!status.get()){
         String errorAccount = StringUtils.join(errorList, "\\\n");
         throw new ServiceException("用户:["+errorAccount+"]导入失败!已在其他单位存在!");
//      if (!status.get()){
//         String errorAccount = StringUtils.join(errorList, "\\\n");
//         throw new ServiceException("用户:["+errorAccount+"]导入失败!已在其他单位存在!");
//      }
      if (!status.get() || !agetStatus.get()){
         if (!status.get() && agetStatus.get()) {
            String errorAccount = StringUtils.join(errorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
         }
         if (!agetStatus.get() && status.get()) {
            String errorAccount = StringUtils.join(ageErrorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
         }
         if (!status.get() && !agetStatus.get()) {
            String errorAccount = StringUtils.join(errorList, "\\\n");
            String errorAgeAccount = StringUtils.join(ageErrorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!"+
               "用户:[" + errorAgeAccount + "]导入失败!身份证号码不正确,请核对!");
         }
      }
   }
@@ -1321,31 +1491,60 @@
    */
   @Override
   public void importQrCode(List<QrCodeExcel> data, Boolean isCovered, String deptId) {
      String url = "http://223.82.109.183:2080/securityInfo.html";
//      String url = "http://223.82.109.183:2080/securityInfo.html";
//      data.forEach(qrCodeExcel -> {
//         if (null!=qrCodeExcel.getSecuritynumber()) {
//            String encoded = null;
//            try {
//               //中文字符串编码
//               encoded = URLEncoder.encode(qrCodeExcel.getSecuritynumber(),"UTF-8");
//            } catch (UnsupportedEncodingException e) {
//               e.printStackTrace();
//            }
//            //url 拼接
//            String content = url + "?securityNumber=" + encoded;
//            byte[] qrCodeImage = new byte[0];
//            try {
//               //生成二维码字节流
//               qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350);
//            } catch (WriterException e) {
//               e.printStackTrace();
//            } catch (IOException e) {
//               e.printStackTrace();
//            }
//            String path = "D:\\QrCode\\";
//            FileOutputStream fileOutputStream = null;
//            try {
//               fileOutputStream = new FileOutputStream(path+qrCodeExcel.getSecuritynumber()+".png");
//            } catch (FileNotFoundException e) {
//               e.printStackTrace();
//            }
//            try {
//               //图片下载到本地
//               fileOutputStream.write(qrCodeImage,0,qrCodeImage.length);
//               fileOutputStream.flush();
//               fileOutputStream.close();
//            } catch (IOException e) {
//               e.printStackTrace();
//            }
//         }
//      });
      //头像生成
      data.forEach(qrCodeExcel -> {
         if (null!=qrCodeExcel.getSecuritynumber()) {
            String encoded = null;
            try {
               //中文字符串编码
               encoded = URLEncoder.encode(qrCodeExcel.getSecuritynumber(),"UTF-8");
            } catch (UnsupportedEncodingException e) {
               e.printStackTrace();
            }
            //查询用户头像url
            User user = new User();
            user.setSecuritynumber(qrCodeExcel.getSecuritynumber());
            User user1 = this.getOne(Condition.getQueryWrapper(user));
            //url 拼接
            String content = url + "?securityNumber=" + encoded;
            byte[] qrCodeImage = new byte[0];
            try {
               //生成二维码字节流
               qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350);
            } catch (WriterException e) {
               e.printStackTrace();
            } catch (IOException e) {
               e.printStackTrace();
            }
            //获取图片
            qrCodeImage = ImageUtils.getFileStream(user1.getAvatar());
            //路径
            String path = "D:\\QrCode\\";
            FileOutputStream fileOutputStream = null;
            try {
               fileOutputStream = new FileOutputStream(path+qrCodeExcel.getSecuritynumber()+".png");
               fileOutputStream = new FileOutputStream(path+user1.getRealName()+user1.getCardid()+".png");
            } catch (FileNotFoundException e) {
               e.printStackTrace();
            }
@@ -1370,4 +1569,64 @@
   public Integer selectCountAccount(String account) {
      return baseMapper.selectCountAccount(account);
   }
   /**
    * 保安员信息导出
    * @param user
    * @return
    */
   @Override
   public List<SecurityExcel> exportSecurityInfo(UserVO user) {
      return baseMapper.exportSecurityInfo(user);
   }
   /**
    * 导入保安员
    *
    * @param data
    * @param isCovered
    */
   @Override
//   @Transactional(rollbackFor = Exception.class)
   public void importSecurityTest(List<SecurityExcel> data, Boolean isCovered, String deptId) {
      //将不能导入的保安员账号存起来
      List<String> errorList = new ArrayList<>();
      //导入状态,默认为true ,如果有一个出现问题则为 false
      AtomicInteger count = new AtomicInteger();
      AtomicBoolean status = new AtomicBoolean(true);
      data.forEach(userExcel -> {
         User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
         //判断当前用户是否已在本单位,如果是的更新数据
         User user1 = new User();
         user1.setAccount(user.getCardid());
         user1.setIsDeleted(0);
         user1.setStatus(1);
         User user2 = this.getOne(Condition.getQueryWrapper(user1));
         if (null==user2){
         }else {
            if (null!=userExcel.getRegistered()){
               user2.setRegistered(userExcel.getRegistered());
            }else {
               user2.setRegistered("");
            }
            count.getAndIncrement();
            //更新用户数据
            this.updateById(user2);
         }
      });
      //如果所有数据导入有一个异常
      if (!status.get()) {
         String errorAccount = StringUtils.join(errorList, "\\\n");
         throw new ServiceException("用户:[" + errorAccount + "]导入失败!不存在!");
      }
      if (status.get()) {
         System.out.println("共更新 = " + count.get()+" 人!");
      }
   }
   @Override
   public List<Map<String, Object>> selectEquipent() {
      return baseMapper.selectEquipent();
   }
}