Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

【長期インターン】再計算フラグと席数アラートの実装

Posted at

今後更新予定です!

はじめに

2024 年 6 月から大阪のベンチャー企業で週 1〜2 回ペースの長期インターンに参加しています。2025年5月から6月にかけて、デマンド交通システムオペレーター画面用の再計算フラグと席数アラート機能開発を担当しました。
既存システムではフロントエンドの JavaScript で料金を計算していましたが、サーバー側で処理をできるようにし、他のシステムからも利用できるようにするため、料金計算 API の PHP 版を実装しました。

デマンド交通システム

image.png

株式メタ・イズム公式HPより引用

再計算フラグ について

機能概要

再計算フラグとは、先程の画像におけるオペレーションセンターで働く方(以降、オペレーター)が使用する、「オペレーター画面」の新機能開発です。
オペレーターはデマンド交通を利用するお客様から配車予約の変更・キャンセル等を電話で受け付ける場合があります。その際、手動で送迎順を入れ替えたり別の号車(タクシーA → タクシーB)に予約を移動させたりといった操作を行いますが、その度に「再計算」を行わないでDBに保存してしまうと、誤った時間で予約が更新されてしまいます。
再計算フラグはそのような課題を解決するために、オペレーターが再計算をし忘れていることを画面上で通知する目的で開発をしました。
具体的には以下のイメージ図(雑ですみません、、)のようにオペレーターが操作を行います。

再計算フラグ

主なメソッド

メンバ変数 self.needRecalculationServiceIds = [ ] を定義し、再計算が必要な号車のIDはここに追加していく

メソッド名 機能 説明
1 getNeedRecalculationServiceIds() 再計算が必要な号車のIDを取得する self.needRecalculationServiceIds配列を取得する
2 setNeedRecalculationServiceIds() 再計算が必要な号車のフラグを立てる self.needRecalculationServiceIds配列に号車移動や並び替えが行われた号車のIDを追加する
3 unsetNeedRecalculationServiceIds() 再計算が行われた号車のフラグを下ろす self.needRecalculationServiceIds配列から対象の号車IDを削除する
4 clearNeedRecalculationServiceIds() フラグをリセットする self.needRecalculationServiceIds配列を空にする
5 hasMissingPasstimeRenderServiceIds() 配車時間がセットされていない予約が含まれる号車のフラグを立てる self.needRecalculationServiceIds配列に対象となる号車のIDを追加する
6 getNeedRecalculationVehicleNames() 再計算が必要な号車名を取得する getNeedRecalculationServiceIds()で取得したIDに紐づいた号車名を返す

席数アラート について

機能概要

席数アラート

主なメソッド

メソッド名 機能 説明
1 hasOverCapacity() 最大乗車人数を超えているかチェックする 一度に乗車している乗客の人数が最大乗車人数を超えていればTrueを返す

使用した技術

  • 言語: JavaScript
  • フレームワーク: Ext.js
  • バージョン管理: Git

できるようになったこと

うまくいかなかったこと

課題 対策
アラートの有無に関わらずDBに更新された予約データが保存されてしまう
関数や変数の命名がわかりづらく、何度か修正するよう指摘された
フラグの実装方法がスマートではなかった

検証表

検証表を作成し、実装した機能のブラックボックステストを行なった

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?