引き続き設備の期間スケジュールの日表示の実装に取り組みました。
今日は設備の期間スケジュールを管理するscheduletermmapをveloityで受け取ることはできました。
選択された設備グループの設備リストはFacilityMemberListで受け取り、record4に逐次書き込む。
#if($termcolcount == 0) #foreach($record4 in $result.FacilityMemberList) #set($hoge = $hoge + 1) #if($termcolcount < ${result.getFacilityTermResultDataList($record4.FacilityId.Value).size()}) #set($termcolcount = ${result.getFacilityTermResultDataList($record4.FacilityId.Value).size()}) #end #if($todocolcount < ${result.getToDoResultDataList($record4.FacilityId.Value).size()}) #set($todocolcount = ${result.getToDoResultDataList($record4.FacilityId.Value).size()}) #end #end #end
前回作ったfacilitytermmapに期間スケジュールを書き込む部分は、自分が勝手にユーザーグループではない時(つまり、設備グループが選択されたとき)にulistの中身がnullであると思い込んでしまったため、以下のコードに変更しました。
if (usize == 0) { ulist.add(Integer.valueOf(-1)); List<Integer> flist = FacilitiesUtils.getFacilityGroupIds(Integer.valueOf(filter)); int fsize = flist.size(); for (int i = 0; i < fsize; i++) { Integer fid = flist.get(i); ScheduleOnedayContainer con = new ScheduleOnedayContainer(); con.initField(); con.initHour(startHour, endHour); this.facilitytermmap .put(fid, new ArrayList<ScheduleOnedayResultData>()); this.map.put(fid, con); this.todomap.put(fid, new ArrayList<ScheduleToDoResultData>()); } }
これで、無事データを設備の期間スケジュールを受け取るはできましたが、表示するところまで行かなかった。
ちなみに、グループに設備一覧を選択したとき、設備一覧は設備グループではないため、エラーが出ます。filtertypeがfacilityのときに新しい処理を作る可能性があるかもしれない。