/*
* Aipo is a groupware program developed by TOWN, Inc.
* Copyright (C) 2004-2015 TOWN, Inc.
* http://www.aipo.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.aimluck.eip.timecard;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.jar.Attributes;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.jetspeed.portal.portlets.VelocityPortlet;
import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
import org.apache.jetspeed.services.logging.JetspeedLogger;
import org.apache.turbine.services.TurbineServices;
import org.apache.turbine.util.RunData;
import org.apache.velocity.context.Context;
import com.aimluck.commons.field.ALDateTimeField;
import com.aimluck.commons.field.ALNumberField;
import com.aimluck.commons.field.ALStringField;
import com.aimluck.commons.utils.ALDateUtil;
import com.aimluck.eip.cayenne.om.portlet.EipTTimecard;
import com.aimluck.eip.common.ALAbstractSelectData;
import com.aimluck.eip.common.ALDBErrorException;
import com.aimluck.eip.common.ALData;
import com.aimluck.eip.common.ALEipGroup;
import com.aimluck.eip.common.ALEipManager;
import com.aimluck.eip.common.ALEipPost;
import com.aimluck.eip.common.ALEipUser;
import com.aimluck.eip.common.ALPageNotFoundException;
import com.aimluck.eip.modules.actions.common.ALAction;
import com.aimluck.eip.orm.Database;
import com.aimluck.eip.orm.query.ResultList;
import com.aimluck.eip.orm.query.SelectQuery;
import com.aimluck.eip.services.accessctl.ALAccessControlConstants;
import com.aimluck.eip.services.accessctl.ALAccessControlFactoryService;
import com.aimluck.eip.services.accessctl.ALAccessControlHandler;
import com.aimluck.eip.timecard.util.TimecardUtils;
import com.aimluck.eip.util.ALEipUtils;
/**
* タイムカード集計の一覧を処理するクラスです。
*
*
*/
public class TimecardSummaryListSelectData extends
ALAbstractSelectData<EipTTimecard, EipTTimecard> implements ALData {
/** logger */
private static final JetspeedLogger logger = JetspeedLogFactoryService
.getLogger(TimecardSummaryListSelectData.class.getName());
/** <code>target_group_name</code> 表示対象の部署名 */
private String target_group_name;
/** <code>target_user_id</code> 表示対象のユーザ ID */
private String target_user_id;
/** <code>myGroupList</code> グループリスト(My グループと部署) */
private List<ALEipGroup> myGroupList = null;
/** <code>userList</code> 表示切り替え用のユーザリスト */
private List<ALEipUser> userList = null;
/** <code>userid</code> ユーザーID */
private String userid;
/** <code>TARGET_GROUP_NAME</code> グループによる表示切り替え用変数の識別子 */
private final String TARGET_GROUP_NAME = "target_group_name";
/** <code>TARGET_USER_ID</code> ユーザによる表示切り替え用変数の識別子 */
private final String TARGET_USER_ID = "target_user_id";
/** 集計日付 */
private ALDateTimeField view_date;
private String nowtime;
/** 日付マップ */
private Map<String, TimecardSummaryResultData> datemap;
private ALNumberField shugyoNissu;
private ALNumberField shugyoJikan;
private ALNumberField shugyoJikannaiNissu;
private ALNumberField shugyoJikannaiJikan;
private ALNumberField shugyoJikannai1Nissu;
private ALNumberField shugyoJikannai1Jikan;
private ALNumberField shugyoJikannai2Nissu;
private ALNumberField shugyoJikannai2Jikan;
private ALNumberField zangyoNissu;
private ALNumberField zangyoJikan;
private ALNumberField zangyoJikannaiNissu;
private ALNumberField zangyoJikannaiJikan;
private ALNumberField zangyoJikannai1Nissu;
private ALNumberField zangyoJikannai1Jikan;
private ALNumberField zangyoJikannai2Nissu;
private ALNumberField zangyoJikannai2Jikan;
private ALNumberField chikoku;
private ALNumberField sotai;
/** アクセス権限の機能名 */
private String aclPortletFeature = null;
/** 閲覧権限の有無 */
private boolean hasAclSummaryOther;
/**
*
*/
@Override
public void initField() {
shugyoNissu = new ALNumberField(0);
shugyoJikan = new ALNumberField(0);
shugyoJikannaiNissu = new ALNumberField(0);
shugyoJikannaiJikan = new ALNumberField(0);
shugyoJikannai1Nissu = new ALNumberField(0);
shugyoJikannai1Jikan = new ALNumberField(0);
shugyoJikannai2Nissu = new ALNumberField(0);
shugyoJikannai2Jikan = new ALNumberField(0);
zangyoNissu = new ALNumberField(0);
zangyoJikan = new ALNumberField(0);
zangyoJikannaiNissu = new ALNumberField(0);
zangyoJikannaiJikan = new ALNumberField(0);
zangyoJikannai1Nissu = new ALNumberField(0);
zangyoJikannai1Jikan = new ALNumberField(0);
zangyoJikannai2Nissu = new ALNumberField(0);
zangyoJikannai2Jikan = new ALNumberField(0);
chikoku = new ALNumberField(0);
sotai = new ALNumberField(0);
}
/**
*
* @param action
* @param rundata
* @param context
* @throws ALPageNotFoundException
* @throws ALDBErrorException
*/
@Override
public void init(ALAction action, RunData rundata, Context context)
throws ALPageNotFoundException, ALDBErrorException {
super.init(action, rundata, context);
this.initField();
Calendar cal = Calendar.getInstance();
view_date = new ALDateTimeField("yyyy-MM-dd");
if (rundata.getParameters().containsKey("view_date_year")
&& rundata.getParameters().containsKey("view_date_month")) {
int tmpViewDate_year =
Integer.parseInt(rundata.getParameters().getString("view_date_year"));
int tmpViewDate_month =
Integer.parseInt(rundata.getParameters().getString("view_date_month"));
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.YEAR, tmpViewDate_year);
cal.set(Calendar.MONTH, tmpViewDate_month - 1);
// cal.set(Calendar.DAY_OF_MONTH, 1);
// view_date.setValue(cal.getTime());
} else {
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
}
cal.set(Calendar.DAY_OF_MONTH, 1);
view_date.setValue(cal.getTime());
// ログインユーザの ID を設定する.
userid = Integer.toString(ALEipUtils.getUserId(rundata));
// My グループの一覧を取得する.
List<ALEipGroup> myGroups = ALEipUtils.getMyGroups(rundata);
myGroupList = new ArrayList<ALEipGroup>();
int length = myGroups.size();
for (int i = 0; i < length; i++) {
myGroupList.add(myGroups.get(i));
}
try {
// スケジュールを表示するユーザ ID をセッションに設定する.
String userFilter = ALEipUtils.getTemp(rundata, context, TARGET_USER_ID);
if (userFilter == null || userFilter.equals("")) {
VelocityPortlet portlet = ALEipUtils.getPortlet(rundata, context);
userFilter = portlet.getPortletConfig().getInitParameter("p3a-user");
}
if (userFilter != null && (!userFilter.equals(""))) {
int paramId = -1;
try {
paramId = Integer.parseInt(userFilter);
if (paramId > 3) {
ALEipUser user = ALEipUtils.getALEipUser(paramId);
if (user != null) {
// 指定したユーザが存在する場合,セッションに保存する.
ALEipUtils.setTemp(rundata, context, TARGET_USER_ID, userFilter);
} else {
ALEipUtils.removeTemp(rundata, context, TARGET_USER_ID);
}
}
} catch (NumberFormatException e) {
}
} else {
ALEipUtils.setTemp(rundata, context, TARGET_USER_ID, userid);
}
} catch (Exception ex) {
logger.error("timecard", ex);
}
// アクセス権
if (target_user_id == null
|| "".equals(target_user_id)
|| userid.equals(target_user_id)) {
aclPortletFeature =
ALAccessControlConstants.POERTLET_FEATURE_TIMECARD_TIMECARD_SELF;
} else {
aclPortletFeature =
ALAccessControlConstants.POERTLET_FEATURE_TIMECARD_TIMECARD_OTHER;
}
ALAccessControlFactoryService aclservice =
(ALAccessControlFactoryService) ((TurbineServices) TurbineServices
.getInstance()).getService(ALAccessControlFactoryService.SERVICE_NAME);
ALAccessControlHandler aclhandler = aclservice.getAccessControlHandler();
hasAclSummaryOther =
aclhandler.hasAuthority(
ALEipUtils.getUserId(rundata),
ALAccessControlConstants.POERTLET_FEATURE_TIMECARD_TIMECARD_OTHER,
ALAccessControlConstants.VALUE_ACL_LIST);
if (!hasAclSummaryOther) {
// 他ユーザーの閲覧権限がないときには、ログインユーザーのIDに変更する。
target_user_id = userid;
aclPortletFeature =
ALAccessControlConstants.POERTLET_FEATURE_TIMECARD_TIMECARD_SELF;
}
datemap = new LinkedHashMap<String, TimecardSummaryResultData>();
setupLists(rundata, context);
}
/**
*
* @param rundata
* @param context
* @return
* @throws ALPageNotFoundException
* @throws ALDBErrorException
*/
@Override
protected ResultList<EipTTimecard> selectList(RunData rundata, Context context)
throws ALPageNotFoundException, ALDBErrorException {
try {
// 指定グループや指定ユーザをセッションに設定する.
setupLists(rundata, context);
if (!"".equals(target_user_id)) {
SelectQuery<EipTTimecard> query = getSelectQuery(rundata, context);
buildSelectQueryForListView(query);
query.orderAscending(EipTTimecard.WORK_DATE_PROPERTY);
return query.getResultList();
} else {
return null;
}
} catch (Exception ex) {
logger.error("timecard", ex);
return null;
}
}
/**
*
* @param rundata
* @param context
* @return
* @throws ALPageNotFoundException
* @throws ALDBErrorException
*/
@Override
protected EipTTimecard selectDetail(RunData rundata, Context context)
throws ALPageNotFoundException, ALDBErrorException {
return null;
}
/**
*
* @param record
* @return
* @throws ALPageNotFoundException
* @throws ALDBErrorException
*/
@Override
protected Object getResultData(EipTTimecard record)
throws ALPageNotFoundException, ALDBErrorException {
try {
Date date = record.getWorkDate();
String checkdate = ALDateUtil.format(date, "yyyyMMdd");
Object value = datemap.get(checkdate);
if (value == null) {
TimecardSummaryResultData listrd = new TimecardSummaryResultData();
listrd.initField();
listrd.setDate(date);
datemap.put(checkdate, listrd);
}
TimecardSummaryResultData listrd = datemap.get(checkdate);
TimecardResultData rd = new TimecardResultData();
rd.initField();
rd.setWorkFlag(record.getWorkFlag());
rd.setWorkDate(record.getWorkDate());
rd.setRefixFlag(record.getCreateDate(), record.getUpdateDate());
rd.setTimecardId(record.getTimecardId().longValue());
rd.setReason(record.getReason());
if (rd.getStartWorkDate() == null) {
Date workdate = record.getWorkDate();
workdate.setTime(0);
rd.setStartWorkDate(workdate);
}
listrd.addTimecardResultData(rd);
return null;
} catch (Exception ex) {
logger.error("timecard", ex);
return null;
}
}
/**
*
* @param obj
* @return
* @throws ALPageNotFoundException
* @throws ALDBErrorException
*/
@Override
protected Object getResultDataDetail(EipTTimecard obj)
throws ALPageNotFoundException, ALDBErrorException {
return null;
}
/*
* (非 Javadoc)
*/
@Override
protected Attributes getColumnMap() {
return null;
}
/**
* 指定グループや指定ユーザをセッションに設定する.
*
* @param rundata
* @param context
* @throws ALDBErrorException
*/
private void setupLists(RunData rundata, Context context) {
target_group_name = getTargetGroupName(rundata, context);
if ((target_group_name != null)
&& (!target_group_name.equals(""))
&& (!target_group_name.equals("all"))) {
userList = ALEipUtils.getUsers(target_group_name);
} else {
userList = ALEipUtils.getUsers("LoginUser");
}
if (userList == null || userList.size() == 0) {
target_user_id = "";
ALEipUtils.removeTemp(rundata, context, TARGET_USER_ID);
return;
}
target_user_id = getTargetUserId(rundata, context);
}
/**
* 表示切り替えで指定したグループ ID を取得する.
*
* @param rundata
* @param context
* @return
*/
private String getTargetGroupName(RunData rundata, Context context) {
String target_group_name = null;
String idParam = null;
if (ALEipUtils.isMatch(rundata, context)) {
// 自ポートレットへのリクエストの場合に,グループ名を取得する.
idParam = rundata.getParameters().getString(TARGET_GROUP_NAME);
}
target_group_name = ALEipUtils.getTemp(rundata, context, TARGET_GROUP_NAME);
if (idParam == null && target_group_name == null) {
ALEipUtils.setTemp(rundata, context, TARGET_GROUP_NAME, "all");
target_group_name = "all";
} else if (idParam != null) {
ALEipUtils.setTemp(rundata, context, TARGET_GROUP_NAME, idParam);
target_group_name = idParam;
}
return target_group_name;
}
/**
* 表示切り替えで指定したユーザ ID を取得する.
*
* @param rundata
* @param context
* @return
*/
private String getTargetUserId(RunData rundata, Context context) {
String target_user_id = null;
String idParam = null;
if (ALEipUtils.isMatch(rundata, context)) {
// 自ポートレットへのリクエストの場合に,ユーザ ID を取得する.
idParam = rundata.getParameters().getString(TARGET_USER_ID);
}
target_user_id = ALEipUtils.getTemp(rundata, context, TARGET_USER_ID);
if (idParam == null && (target_user_id == null)) {
// ログインユーザのスケジュールを表示するため,ログイン ID を設定する.
ALEipUtils.setTemp(rundata, context, TARGET_USER_ID, userid);
target_user_id = userid;
} else if (idParam != null) {
if (idParam.equals("none")) {
// グループで表示を切り替えた場合,
// ログインユーザもしくはユーザリストの一番初めのユーザを
// 表示するため,ユーザ ID を設定する.
ALEipUser eipUser = null;
boolean found = false;
int length = userList.size();
for (int i = 0; i < length; i++) {
eipUser = userList.get(i);
String eipUserId = eipUser.getUserId().getValueAsString();
if (userid.equals(eipUserId)) {
ALEipUtils.setTemp(rundata, context, TARGET_USER_ID, userid);
target_user_id = userid;
found = true;
break;
}
}
if (!found) {
eipUser = userList.get(0);
String userId = eipUser.getUserId().getValueAsString();
ALEipUtils.setTemp(rundata, context, TARGET_USER_ID, userId);
target_user_id = userId;
}
} else {
// ユーザで表示を切り替えた場合,指定したユーザの ID を設定する.
ALEipUtils.setTemp(rundata, context, TARGET_USER_ID, idParam);
target_user_id = idParam;
}
}
return target_user_id;
}
/**
* 検索条件を設定した SelectQuery を返します。
*
* @param rundata
* @param context
* @return
*/
private SelectQuery<EipTTimecard> getSelectQuery(RunData rundata,
Context context) {
SelectQuery<EipTTimecard> query = Database.query(EipTTimecard.class);
Expression exp1 =
ExpressionFactory.matchExp(EipTTimecard.USER_ID_PROPERTY, Integer
.valueOf(target_user_id));
query.setQualifier(exp1);
Calendar cal = Calendar.getInstance();
Expression exp11 =
ExpressionFactory.greaterOrEqualExp(
EipTTimecard.WORK_DATE_PROPERTY,
view_date.getValue());
cal.setTime(view_date.getValue());
cal.add(Calendar.MONTH, +1);
ALDateTimeField view_date_add_month = new ALDateTimeField("yyyy-MM-dd");
view_date_add_month.setValue(cal.getTime());
Expression exp12 =
ExpressionFactory.lessOrEqualExp(
EipTTimecard.WORK_DATE_PROPERTY,
view_date_add_month.getValue());
query.andQualifier(exp11.andExp(exp12));
return buildSelectQueryForFilter(query, rundata, context);
}
/**
* @return
*/
public List<String> getDateListKeys() {
try {
List<String> list = new ArrayList<String>();
Set<String> set = datemap.keySet();
Iterator<String> iter = set.iterator();
while (iter.hasNext()) {
list.add(iter.next());
}
if (list.size() > 1) {
for (int i = 0; i < list.size() - 1; i++) {
TimecardSummaryResultData listrd1 = datemap.get(list.get(i));
TimecardSummaryResultData listrd2 = datemap.get(list.get(i + 1));
int listrd1_size = listrd1.getList().size();
if (listrd1_size > 0) {
TimecardResultData listrd1_lastrd =
listrd1.getList().get(listrd1_size - 1);
TimecardResultData listrd2_firstrd = listrd2.getList().get(0);
if (TimecardUtils.WORK_FLG_OFF.equals(listrd2_firstrd
.getWorkFlag()
.getValue())
&& TimecardUtils.WORK_FLG_ON.equals(listrd1_lastrd
.getWorkFlag()
.getValue())
&& !sameDay(
listrd1_lastrd.getWorkDate().getValue(),
listrd2_firstrd.getWorkDate().getValue())) {
Date d = listrd2_firstrd.getWorkDate().getValue();
Calendar cal = Calendar.getInstance();
cal.setTime(d);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
TimecardResultData dummyrd = new TimecardResultData();
dummyrd.initField();
dummyrd.setWorkFlag(TimecardUtils.WORK_FLG_DUMMY);
dummyrd.setWorkDate(cal.getTime());
listrd1.addTimecardResultData(dummyrd);
}
}
}
}
return list;
} catch (Exception e) {
logger.error("[TimecardSummaryListSelectData]", e);
return null;
}
}
/**
* @param date_str
* @return
*/
public TimecardSummaryResultData getDateListValue(String date_str) {
return datemap.get(date_str);
}
/**
* 指定した2つの日付を比較する.
*
* @param date1
* @param date2
* @param checkTime
* 時間まで比較する場合,true.
* @return 等しい場合,0. date1>date2の場合, 1. date1 <date2の場合, 2.
*/
private boolean sameDay(Date date1, Date date2) {
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
int date1Year = cal1.get(Calendar.YEAR);
int date1Month = cal1.get(Calendar.MONTH) + 1;
int date1Day = cal1.get(Calendar.DATE);
int date2Year = cal2.get(Calendar.YEAR);
int date2Month = cal2.get(Calendar.MONTH) + 1;
int date2Day = cal2.get(Calendar.DATE);
if (date1Year == date2Year
&& date1Month == date2Month
&& date1Day == date2Day) {
return true;
}
return false;
}
/**
*
*
*/
public void calc() {
if (datemap != null) {
int shugyoNissu_temp = 0;
int shugyoJikan_temp = 0;
int shugyoJikannaiNissu_temp = 0;
int shugyoJikannaiJikan_temp = 0;
int shugyoJikannai1Nissu_temp = 0;
int shugyoJikannai1Jikan_temp = 0;
int shugyoJikannai2Nissu_temp = 0;
int shugyoJikannai2Jikan_temp = 0;
int zangyoNissu_temp = 0;
int zangyoJikan_temp = 0;
int zangyoJikannaiNissu_temp = 0;
int zangyoJikannaiJikan_temp = 0;
int zangyoJikannai1Nissu_temp = 0;
int zangyoJikannai1Jikan_temp = 0;
int zangyoJikannai2Nissu_temp = 0;
int zangyoJikannai2Jikan_temp = 0;
int chikoku_temp = 0;
int sotai_temp = 0;
for (Object element : datemap.values()) {
TimecardSummaryResultData rd = (TimecardSummaryResultData) element;
rd.calc();
//
if (rd.getShugyo().getValue() > 0) {
shugyoNissu_temp++;
shugyoJikan_temp += rd.getShugyo().getValue();
}
if (rd.getJikannai().getValue() > 0) {
shugyoJikannaiNissu_temp++;
shugyoJikannaiJikan_temp += rd.getJikannai().getValue();
}
if (rd.getJikannai1().getValue() > 0) {
shugyoJikannai1Nissu_temp++;
shugyoJikannai1Jikan_temp += rd.getJikannai1().getValue();
}
if (rd.getJikannai2().getValue() > 0) {
shugyoJikannai2Nissu_temp++;
shugyoJikannai2Jikan_temp += rd.getJikannai2().getValue();
}
if (rd.getZangyo().getValue() > 0) {
zangyoNissu_temp++;
zangyoJikan_temp += rd.getZangyo().getValue();
}
if (rd.getZangyo1().getValue() > 0) {
zangyoJikannai1Nissu_temp++;
zangyoJikannai1Jikan_temp += rd.getZangyo1().getValue();
}
if (rd.getZangyo2().getValue() > 0) {
zangyoJikannai2Nissu_temp++;
zangyoJikannai2Jikan_temp += rd.getZangyo2().getValue();
}
if ("○".equals(rd.getChikoku().getValue())) {
chikoku_temp++;
}
if ("○".equals(rd.getSotai().getValue())) {
sotai_temp++;
}
}
shugyoNissu.setValue(shugyoNissu_temp);
shugyoJikan.setValue(shugyoJikan_temp);
shugyoJikannaiNissu.setValue(shugyoJikannaiNissu_temp);
shugyoJikannaiJikan.setValue(shugyoJikannaiJikan_temp);
shugyoJikannai1Nissu.setValue(shugyoJikannai1Nissu_temp);
shugyoJikannai1Jikan.setValue(shugyoJikannai1Jikan_temp);
shugyoJikannai2Nissu.setValue(shugyoJikannai2Nissu_temp);
shugyoJikannai2Jikan.setValue(shugyoJikannai2Jikan_temp);
zangyoNissu.setValue(zangyoNissu_temp);
zangyoJikan.setValue(zangyoJikan_temp);
zangyoJikannaiNissu.setValue(zangyoJikannaiNissu_temp);
zangyoJikannaiJikan.setValue(zangyoJikannaiJikan_temp);
zangyoJikannai1Nissu.setValue(zangyoJikannai1Nissu_temp);
zangyoJikannai1Jikan.setValue(zangyoJikannai1Jikan_temp);
zangyoJikannai2Nissu.setValue(zangyoJikannai2Nissu_temp);
zangyoJikannai2Jikan.setValue(zangyoJikannai2Jikan_temp);
chikoku.setValue(chikoku_temp);
sotai.setValue(sotai_temp);
}
}
/**
* 表示切り替え時に指定するグループ名
*
* @return
*/
public String getTargetGroupName() {
return target_group_name;
}
/**
* 表示切り替え時に指定するユーザ ID
*
* @return
*/
public String getTargetUserId() {
return target_user_id;
}
/**
* 指定グループに属するユーザの一覧を取得する.
*
* @param groupname
* @return
*/
public List<ALEipUser> getUsers() {
if (hasAclSummaryOther) {
return userList;
} else {
try {
List<ALEipUser> users = new ArrayList<ALEipUser>();
users.add(ALEipUtils.getALEipUser(Integer.parseInt(userid)));
return users;
} catch (Exception e) {
return null;
}
}
}
/**
* 部署の一覧を取得する.
*
* @return
*/
public Map<Integer, ALEipPost> getPostMap() {
if (hasAclSummaryOther) {
return ALEipManager.getInstance().getPostMap();
} else {
return null;
}
}
/**
* My グループの一覧を取得する.
*
* @return
*/
public List<ALEipGroup> getMyGroupList() {
if (hasAclSummaryOther) {
return myGroupList;
} else {
return null;
}
}
/**
* ログインユーザの ID を取得する.
*
* @return
*/
public String getUserId() {
return userid;
}
/**
*
* @param id
* @return
*/
public boolean isMatch(int id1, long id2) {
return id1 == (int) id2;
}
/**
* @return
*/
public ALDateTimeField getViewDate() {
return view_date;
}
public String getNowTime() {
return nowtime;
}
public ALNumberField getShugyoNissu() {
return shugyoNissu;
}
public ALNumberField getShugyoJikan() {
return shugyoJikan;
}
public ALStringField getShugyoJikanStr() {
return new ALStringField(minuteToHour(shugyoJikan.getValue()));
}
public ALNumberField getShugyoJikannaiNissu() {
return shugyoJikannaiNissu;
}
public ALNumberField getShugyoJikannaiJikan() {
return shugyoJikannaiJikan;
}
public ALStringField getShugyoJikannaiJikanStr() {
return new ALStringField(minuteToHour(shugyoJikannaiJikan.getValue()));
}
public ALNumberField getShugyoJikannai1Nissu() {
return shugyoJikannai1Nissu;
}
public ALNumberField getShugyoJikannai1Jikan() {
return shugyoJikannai1Jikan;
}
public ALStringField getShugyoJikannai1JikanStr() {
return new ALStringField(minuteToHour(shugyoJikannai1Jikan.getValue()));
}
public ALNumberField getShugyoJikannai2Nissu() {
return shugyoJikannai2Nissu;
}
public ALNumberField getShugyoJikannai2Jikan() {
return shugyoJikannai2Jikan;
}
public ALStringField getShugyoJikannai2JikanStr() {
return new ALStringField(minuteToHour(shugyoJikannai2Jikan.getValue()));
}
public ALNumberField getZangyoNissu() {
return zangyoNissu;
}
public ALNumberField getZangyoJikan() {
return zangyoJikan;
}
public ALStringField getZangyoJikanStr() {
return new ALStringField(minuteToHour(zangyoJikan.getValue()));
}
public ALNumberField getZangyoJikannaiNissu() {
return zangyoJikannaiNissu;
}
public ALNumberField getZangyoJikannaiJikan() {
return zangyoJikannaiJikan;
}
public ALStringField getZangyoJikannaiJikanStr() {
return new ALStringField(minuteToHour(zangyoJikannaiJikan.getValue()));
}
public ALNumberField getZangyoJikannai1Nissu() {
return zangyoJikannai1Nissu;
}
public ALNumberField getZangyoJikannai1Jikan() {
return zangyoJikannai1Jikan;
}
public ALStringField getZangyoJikannai1JikanStr() {
return new ALStringField(minuteToHour(zangyoJikannai1Jikan.getValue()));
}
public ALNumberField getZangyoJikannai2Nissu() {
return zangyoJikannai2Nissu;
}
public ALNumberField getZangyoJikannai2Jikan() {
return zangyoJikannai2Jikan;
}
public ALStringField getZangyoJikannai2JikanStr() {
return new ALStringField(minuteToHour(zangyoJikannai2Jikan.getValue()));
}
public ALNumberField getChikoku() {
return chikoku;
}
public ALNumberField getSotai() {
return sotai;
}
/**
*
* @param minute
* @return
*/
private String minuteToHour(long minute) {
BigDecimal decimal = new BigDecimal(minute / 60.0);
DecimalFormat dformat = new DecimalFormat("##.#");
String str =
dformat.format(decimal.setScale(1, BigDecimal.ROUND_FLOOR).doubleValue());
return str;
}
/**
* 表示する年の最大値を返します。
*
* @return
*/
public int getEndYear() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR) + 1;
}
/**
* アクセス権限チェック用メソッド。 アクセス権限の機能名を返します。
*
* @return
*/
@Override
public String getAclPortletFeature() {
return aclPortletFeature;
}
}