インターン五日目。
今日も設備の期間スケジュールを登録できるようにするに取り組みました。
期間スケジュールで登録した設備を、DBで保存されるようにしました。
いただいたアドバイスから、データの管理はScheduleFormData.javaに入っていることが分かりました。
// 完全に隠すスケジュール以外の場合は、グループに設備を追加する if (("O".equals(public_flag.toString()) || "C".equals(public_flag .toString()))) { for (Object record : facilityList) { FacilityResultData frd = (FacilityResultData) record; EipTScheduleMap map = Database.create(EipTScheduleMap.class); int facilityid = (int) frd.getFacilityId().getValue(); map.setEipTSchedule(schedule); map.setUserId(Integer.valueOf(facilityid)); // O: 自スケジュール T: 仮スケジュール C: 確定スケジュール map.setStatus("O"); map.setType(ScheduleUtils.SCHEDULEMAP_TYPE_FACILITY); map.setEipTCommonCategory(category1); map.setCommonCategoryId(Integer.valueOf(1)); } }
を見つけて、ifの条件をか変えて、DBに保存できるようになった。
登録した設備が重複に使われてるかどうかをチェックするためのメソッドを探し、ScheduleUtils.javaの中のisDuplicateFacilityScheduleで見つかりましたが、期間で登録した設備の重複をチェックする条件はあらかじめ書かれてなかったみたいです。
期間で登録した設備の重複をチェックする条件を新たに作るために、
temp = Database.query( EipTSchedule.class, dexp1.andExp(dexp2).andExp(dexp3)).fetchList(); if (temp == null || temp.size() <= 0) { existFacility = true; break; }
ここでDBに問い合わせするときに新たな条件をつけるか、新しいSQL文を発行するのが必要です。
この一週間、たくさんのアドバイスやご指導ありがとうございます。 来週もどうぞよろしくお願いします。