作成: 2026-09-07 / 作成者: DFA 対象DDL: clean_watch_20260907.sql(2026-09-07 10:29 受領)
修正版のDDLをありがとうございました。受領したその日に照合しています。
本書は次の3部構成です。
| 区分 | 件数 | 性質 |
|---|---|---|
| 1. 修正版DDLの照合結果 | 7件中2件が反映 | 5件がまだ入っていません。 状況をお知らせください |
| 2. 新しくお願いしたいこと | 2件 | W-1 は集計の食い違いに直結します |
| 3. 第3回からの継続 | 2件 | まだ回答をいただいていないもの |
第3回でお伺いした D-3(セキュリティ解除の判定)は当方で解決しました。 「制御盤の生死報告」と「セキュリティ解除の状態」は別の概念で、 生死報告が来ない場合はサーバーから制御盤異常としてエラーが上がるが、 セキュリティ解除はエラーにならず別の値で管理される、という整理です。
security_statuses.status = 0の継続から当方で導出します。回答は不要です。
clean_watch_20260902.sql との差分は14行でした。テーブル数は 39 で変化ありません。
| 内容 | 変化 |
|---|---|
customer_contacts.contact_type |
bigint unsigned → tinyint unsigned |
clean_task_reports の created_at / updated_at |
DEFAULT CURRENT_TIMESTAMP を付与(updated_at は ON UPDATE 付き) |
| # | お願いしていた内容 | 現在のDDL |
|---|---|---|
| A-1 | error_id を主キーと位置付けて対応 |
PRIMARY KEY 無しのまま。 UNIQUE KEY は error_id のみ |
| A-2 | 履歴テーブルの id を auto_increment で採番 |
clean_status_histories.id / clean_timetable_histories.id とも AUTO_INCREMENT 無し。ファイル全体の AUTO_INCREMENT 数が 50 で 09-02 版と同数 |
| A-3b | email を両テーブルとも varchar(100) |
facility_contacts.email が varchar(255) のまま(contact_type だけ直っています) |
| B-1 | 外部キー3本を追加 | 3本とも無し。 CONSTRAINT 総数が 48 で 09-02 版と同数。制約名(clean_statuses_clean_timetable_id_foreign 等)を全文検索しても見つかりません |
| B-2 | robot_task_versions.clean_schedule_id にインデックス |
KEY は robot_id のみ |
| B-3b | security_status_histories.reported_at に DEFAULT |
timestamp NOT NULL のまま |
照合は3つの方法(09-02版との全体差分 / 各 CREATE TABLE ブロックからの項目抽出 / 追加されるはずの制約名の全文検索)で行い、いずれも同じ結果でした。
伺いたいこと:
急かす意図はありません。 上記5件はいずれも当方の開発を止めていません。 こちらは受領したDDLをそのまま
prisma db pullで取り込む運用にしているため、 状況が分かれば十分です。
週次サマリを作成いただくのは TeamWorks 様側という理解です(毎週日曜 6:00 / 前週 日〜土)。 一方、進行中の週(当期)は当方が詳細テーブルから集計します。 両者で「週の帰属」が食い違うと、同じ週が別の月に集計されます。
当方は次のルールで実装します。
その月の1日を含む週が、その月の第1週。 言い換えると「1日でも翌月が混ざれば、その週は翌月の第1週」
具体例:
| 週 | 当方の扱い |
|---|---|
2026-08-23(日) 〜 08-29(土) |
8月の週 |
2026-08-30(日) 〜 09-05(土) |
★9月第1週★(8/30・8/31 を含むが 9月に数える) |
2026-09-06(日) 〜 09-12(土) |
9月第2週 |
伺いたいこと:
なお月次・年次は暦月・暦年の日単位で締める(週とは独立)認識です。
robot_error_reports.error_type に入る値の一覧をご作成いただけますか第3回でもお伺いした件です。実装は止めずに進めます(未知の値はすべて「その他」に寄せます)が、 一覧をいただければ分類の精度が上がります。
清掃詳細ログには、清掃開始の60分前・30分前のロボット状態を出す欄があります。 表示したい6種類のうち、いただいた robots.status のコード表と突き合わせると3つが対応先不明です。
| 画面に出す値 | robots.status の対応 |
|---|---|
| 待機中 | 0 Standby |
| 充電中 | 201 Charging Line / 202 Charging Pile |
| セキュリティ有効 | security_statuses.status = 1 から判定 |
| ハンドルアップ | 該当なし |
| 緊急停止 | 該当なし |
| オフライン | 該当なし |
網羅でなくて構いません。 実際に流れている値を、お手元で確認できる範囲で 書き出していただけると助かります(例: 直近1か月の SELECT DISTINCT error_type の結果など)。
急ぎではありません。 届いた時点で分類ルールに追加します。
| # | 内容 | 状態 |
|---|---|---|
| D-1 | link_schedules.intervals(VarChar(120))の書式。実際に入っている値の例を1〜2件 |
★これが分からないと D-Secログの通信断判定が実装できません★ 最優先でお願いします |
| D-4 | PrecheckItem.id の切替対象は「id と error_id のどちらを使うか」だけで、型は varchar のままという理解でよいか |
継続。数値型に変わる可能性があるなら、API の破壊的変更になるため事前に知りたいです |
継続(第1回から): DB更新用アカウントの発行(robot_error_reports / control_error_histories の status / comment / responded_at / resolved_at のみ UPDATE 可)。
優先度をつけるとすれば D-1 → W-1 → 1の5件 → W-2 の順です。
引き続きよろしくお願いします。