/*
   * 创建spring security使用的用户
   * userinfo:loginName~~companyCode
   */
  private com.norteksoft.acs.entity.security.User createUserdetail(
      User user,
      Company company,
      List<GrantedAuthority> authsList,
      Department subCompany,
      String userinfo) {
    com.norteksoft.acs.entity.security.User userdetail =
        new com.norteksoft.acs.entity.security.User(
            user.getId(),
            userinfo,
            user.getPassword(),
            user.getEmail(),
            user.getEnabled(),
            !user.getAccountExpired(),
            true,
            !user.getAccountLocked(),
            authsList.toArray(new GrantedAuthority[authsList.size()]),
            company.getId(),
            company.getCode(),
            company.getName(),
            user.getSecretGrade());
    userdetail.setLoginName(user.getLoginName());
    userdetail.setHonorificTitle(user.getHonorificName());
    userdetail.setTrueName(user.getName());
    userdetail.setRoleCodes(user.getRoleCodes());
    String theme = indexManager.getThemeByUser(user.getId(), company.getId());
    if (StringUtils.isEmpty(theme)) theme = getDefaultTheme();
    userdetail.setTheme(theme);

    String language =
        userCurrentLanguageManager.getUserLanguageByUserId(user.getId(), company.getId());
    if (StringUtils.isEmpty(language)) language = getDefaultLanguage();
    userdetail.setCurrentLanguage(language);

    userdetail.setSubCompanyId(user.getSubCompanyId());
    userdetail.setDepartmentId(user.getMainDepartmentId());
    if (subCompany != null) {
      userdetail.setSubCompanyCode(subCompany.getCode());
      userdetail.setSubCompanyName(subCompany.getName());
      userdetail.setSubCompanyShortTitle(subCompany.getShortTitle());
    }
    return userdetail;
  }