/**
   * 更新或者插入新的部门.
   *
   * @param request
   * @return 操作结果
   */
  @RequestMapping("/saveDepartment")
  @ResponseBody
  @ControllerLogAnnotation(description = "查询用户")
  public String saveDepartment(HttpServletRequest request) {
    Department department = new Department();
    String result;
    String grade = request.getParameter("grade").trim();
    String depaId = request.getParameter("depa_id");
    String depaNo = request.getParameter("depaNo").trim();
    String depaName = request.getParameter("depaName").trim();
    String depaDescription = request.getParameter("depaDescription").trim();

    // 级别Id
    int gradId = Integer.parseInt(grade.split("%")[0]);
    // 级别编号
    int gradNo = Integer.parseInt(grade.split("%")[1]);
    int depDepaId;
    department.setDepaNo(depaNo);
    department.setDepaName(depaName);
    department.setDepaDescription(depaDescription);
    department.setGradId(gradId);

    if (gradNo > 1) {
      String parentIdStr = request.getParameter("" + (gradNo - 1));
      // 判断是否存在父部门
      if (StringUtils.isNotBlank(parentIdStr)) {
        depDepaId = Integer.parseInt(parentIdStr.trim());
        department.setDepDepaId(depDepaId);
      } else {
        result = "父部门不为空";
        return result;
      }
    } else {

      Department topDepartment = adminDepartmentService.getTopDepartment();
      if (topDepartment != null) { // 判断是否已经存在顶级部门
        if (StringUtils.isNotBlank(depaId)) {
          if (Integer.parseInt(depaId) != topDepartment.getDepaId().intValue()) { // 判断是否是新建顶级部门
            result = "不能存在多个顶级部门";
            return result;
          }
        }
      }
    }
    if (StringUtils.isNotBlank(depaId)) {
      // 更新操作
      try {
        department.setDepaId(Integer.parseInt(depaId.trim()));
        adminDepartmentService.updateDepartment(department);
        return "success";
      } catch (Exception e) {
        return "部门编号重复";
      }
    } else {
      // 插入操作
      try {
        adminDepartmentService.addDepartment(department);
        return "success";
      } catch (Exception e) {
        return "部门编号重复";
      }
    }
  }