智慧保安后台管理-外网项目备份
Administrator
2021-11-09 0e5b425783f87d734d07e83779988c8d18bb2dc7
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -45,6 +45,7 @@
import org.springblade.modules.information.service.IInformationService;
import org.springblade.modules.system.entity.*;
import org.springblade.modules.system.excel.QrCodeExcel;
import org.springblade.modules.system.excel.SecurityExcel;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.mapper.UserMapper;
import org.springblade.modules.system.node.TreeNode;
@@ -418,15 +419,6 @@
            user.setTenantId("000000");
            //默认在职
            user.setStatus(1);
            //判断是否持证
            if (null != userExcel.getHold() && userExcel.getHold() != "") {
               if (userExcel.getHold().equals("是")) {
                  user.setHold("1");
               }
               if (userExcel.getHold().equals("否")) {
                  user.setHold("2");
               }
            }
            //分配保安角色
            Role role = new Role();
            role.setRoleAlias("保安");
@@ -461,22 +453,6 @@
               return;
            }else {
               //如果是一致,则更新用户数据
               //判断是否持证
               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("");
               }
               //更新用户数据
               this.updateById(user2);
               String s1 =
@@ -736,47 +712,147 @@
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void importSecurity(List<UserExcel> data, Boolean isCovered) {
   public void importSecurity(List<SecurityExcel> data, Boolean isCovered, String deptId) {
      //将不能导入的保安员账号存起来
      List<String> errorList = new ArrayList<>();
      //将需要新增的保安员信息存入集合
      List<User> insertList = new ArrayList<>();
      //将需要更新的保安员信息存入集合
      List<User> updateList = new ArrayList<>();
      //导入状态,默认为true ,如果有一个出现问题则为 false
      AtomicBoolean status = new AtomicBoolean(true);
      data.forEach(userExcel -> {
         User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
         // 设置租户ID
         user.setTenantId("000000");
         //默认在职
         user.setStatus(1);
         user.setDispatch("1");
         //判断是否持证
         if (null != userExcel.getHold() && userExcel.getHold() != "") {
            if (userExcel.getHold().equals("是")) {
               user.setHold("1");
            }
            if (userExcel.getHold().equals("否")) {
               user.setHold("2");
            }
         }
         //分配保安角色
         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 (userExcel.getSex().equals("女")) {
               user.setSex(2);
            }
         }
         //设置部门id
         user.setDeptId(userDeptService.selectIn(user.getDeptId()));
         //设置账号
         user.setAccount(user.getCardid());
         //获取默认密码配置
         user.setPassword(user.getCardid().substring(user.getCardid().length() - 6));
//         user.setPassword(ParamCache.getValue(DEFAULT_PARAM_PASSWORD));
         //新增
         this.submit(user);
         String deptIds = userDeptService.selectIn(user.getDeptId());
         if (null!=deptIds && !deptIds.equals("")) {
            if (null != deptId && !deptId.equals("")) {
               if (!deptId.equals(deptIds)) {
                  throw new ServiceException("导入失败!不能导入不是本公司的保安员数据!");
               }
            }
            user.setDeptId(deptIds);
         }else {
            //如果deptIds 为空,则说明还没有改公司
            throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
         }
         //判断当前用户是否已在本单位,如果是的更新数据
         User user1 = new User();
         user1.setAccount(user.getCardid());
         user1.setIsDeleted(0);
         user1.setStatus(1);
         User user2 = this.getOne(Condition.getQueryWrapper(user1));
         if (null==user2){
            //用户不存在,去新增
            // 设置租户ID
            user.setTenantId("000000");
            //默认在职
            user.setStatus(1);
            user.setIsDeleted(0);
            //判断是否持证
            if (null != userExcel.getHold() && userExcel.getHold() != "") {
               if (userExcel.getHold().equals("是")) {
                  user.setHold("1");
               }
               if (userExcel.getHold().equals("否")) {
                  user.setHold("2");
               }
            }
            //分配保安角色
            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 (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() + "'"
               + ")";
            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;
            }else {
               //如果是一致,则更新用户数据
               //判断是否持证
               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("");
               }
               //更新用户数据
               this.updateById(user2);
               String s1 =
                  "update blade_user set hold = " + "'" + user2.getHold() + "'"
                     + ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
                     + ",registered = " + "'" + user2.getRegistered() + "'"
                     + " " + "where id = " + "'" + user2.getId() + "'";
               FtpUtil.sqlFileUpload(s1);
            }
         }
      });
      //如果所有数据导入有一个异常
      if (!status.get()){
         String errorAccount = StringUtils.join(errorList, "\\\n");
         throw new ServiceException("用户:["+errorAccount+"]导入失败!已在其他单位存在!");
      }
   }
@@ -929,6 +1005,13 @@
      });
   }
   /**
    * 根据用户账户查询用户是否存在
    * @param account
    * @return
    */
   @Override
   public Integer selectCountAccount(String account) {
      return baseMapper.selectCountAccount(account);
   }
}