@Override
  public Response<Boolean> updateSolutionFile(
      Long requirementId, String solutionFile, BaseUser user) {
    Response<Boolean> result = new Response<Boolean>();

    if (requirementId == null) {
      log.error("update requirement solution need requirementId");
      result.setError("requirement.id.null");
      return result;
    }

    if (Strings.isNullOrEmpty(solutionFile)) {
      log.error("update requirement solution file can't be null.");
      result.setError("solution.file.null");
      return result;
    }

    // 验证用户是否已登入
    if (user == null) {
      log.error("create requirement solution, user must login.");
      result.setError("user.not.login");
      return result;
    }

    try {
      RequirementSolution solution =
          requirementSolutionDao.findByUserId(requirementId, user.getId());

      // 处理历史文档
      requirementSolutionDao.updateSolutionFile(solution.getId(), solutionFile);
      // 记录提交方案的供应商数量
      requirementCountService.setReqCountInfo(
          solution.getRequirementId(), RequirementCountType.SEND_SO, 1);
      result.setResult(true);
    } catch (Exception e) {
      log.error(
          "update requirement solution failed, requirementId={}, solutionFile={}, error code={}.",
          requirementId,
          solutionFile,
          Throwables.getStackTraceAsString(e));
    }

    return result;
  }