public final class SummaryUtil extends Object
集計で利用する汎用的な処理を提供します。
修飾子とタイプ | フィールドと説明 |
---|---|
static String |
API_ORIGIN_PREFIX
由来プレフィックス(API):"A".
|
static String |
COUNT_SUFFIX
回数サフィックス:"C".
|
static String |
DAILY_KEY_PREFIX
日次集計データの戻り値プレフィックス:"D".
|
static String |
DAY_COUNT_SUFFIX
日数サフィックス:"D".
|
static String |
DDC_L_ORG_PREFIX
由来プレフィックス(休憩・控除・時間年休大分類):"L".
|
static String |
DDC_M_ORG_PREFIX
由来プレフィックス(休憩・控除・時間年休中分類):"M".
|
static String |
DDC_ORG_PREFIX
由来プレフィックス(休憩・控除・時間年休):"D".
|
static String |
FIXED_S_EXCLUDE
固定文字列(exclude):"exclude".
|
static String |
FIXED_S_INCLUDE
固定文字列(include):"include".
|
static String |
FIXED_S_SUM
固定文字列(sum):"sum".
|
static String |
GLOBAL_KEY_PREFIX
大域データの戻り値プレフィックス.
|
static String |
JOIN_STR
格納キー結合用文字列:"_"アンダースコア.
|
static String |
LBR_ALLOWANCE_ORG_PREFIX
由来プレフィックス(勤務手当):"R".
|
static String |
LEAVE_TYPE_ORG_PREFIX
由来プレフィックス(休暇種別):"H".
|
static String |
MINUS
マイナス記号.
|
static String |
MINUTE_SUFFIX
分サフィックス:"M".
|
static String |
MONTHLY_KEY_PREFIX
月次集計データの戻り値プレフィックス:"M".
|
static String |
PERIOD_KEY_PREFIX
締め期間集計データの戻り値プレフィックス:"P".
|
static String |
SUM_TAG_ORG_PREFIX
由来プレフィックス(集計タグ):"T".
|
static String |
WEEKLY_KEY_PREFIX
週次集計データの戻り値プレフィックス:"W".
|
static String |
WK_STS_ORG_PREFIX
由来プレフィックス(勤務状況):"S".
|
修飾子とタイプ | メソッドと説明 |
---|---|
static void |
argsValidate(Object... target)
対象がnullかを精査します.
|
static BigDecimal |
calcIncludeMidnightMin(Timestamp targetStart,
Timestamp targetEnd,
List<NightWorkPeriod.NightWorkPeriodInfoDto> nightWorkPeriod)
対象開始時刻~終了時刻の内の深夜時間帯に含まれる時間(分)を合算した値を返却.
|
static BigDecimal |
calcOverlapMin(Timestamp targetStart,
Timestamp targetEnd,
Timestamp judgeStart,
Timestamp judgeEnd)
対象開始時刻~終了時刻の間で、判定開始時刻~終了時刻が重なっている時間(分)を算出.
|
static BigDecimal |
calcStepOverDateMin(Timestamp criteriaStart,
Timestamp criteriaEnd,
Timestamp[] tomorrowRenge)
基準開始時刻~終了時刻の内の翌日の時間帯に含まれる時間を返却.
|
static BigDecimal |
calcStepOverMidnightMin(Timestamp targetStart,
Timestamp targetEnd,
List<NightWorkPeriod.NightWorkPeriodInfoDto> nightWorkPeriod,
Timestamp[] tomorrowRenge)
対象開始時刻~終了時刻の内、翌日分の深夜時間帯に含まれる時間(分)を合算した値を返却.
|
static String |
editMMDD(Short month,
Short day)
mm/dd形式の文字列を返却.
|
static String |
formatSummaryValue(String sumKey,
BigDecimal sumValue)
集計値の書式変換.
|
static String |
formatSummaryValue(String sumKey,
BigDecimal sumValue,
String blankZeroValue)
集計値の書式変換.
|
static String |
formatSummaryValue(String sumKey,
BigDecimal sumValue,
String blankValue,
String zeroValue)
集計値の書式変換.
|
static String |
formatSummaryValueCountOrDay(BigDecimal sumValue)
集計値の変換処理.
|
static String |
formatSummaryValueForKeyCamel(String sumKey,
BigDecimal sumValue,
String blankValue,
String zeroValue)
集計値の書式変換.
|
static String |
formatSummaryValueMinute(BigDecimal sumValue)
集計値の変換処理.
|
static String |
getDailySummaryMapKey(String targetDate)
日次集計結果取得用キーを返却.
|
static String[] |
getKeyArray(SumCalcDefDto def)
集計定義より、集計キー内訳を取得し、集計キー配列に変換して返却.
|
static int |
getScale(String companyCd)
法定労働時間の総枠算出時スケールを返却.
|
static String |
getSumKeyPrefixSource(String sumKey)
集計キー接頭辞(由来)を返却.
|
static String |
getSumKeyPrefixTime(String sumKey)
集計キー接頭辞(時間)を返却.
|
static String |
getSumKeyStem(String sumKey)
集計キー語幹を返却.
|
static String |
getSumKeySuffixMeasure(String sumKey)
集計キー接尾辞(メジャー)を返却.
|
static Timestamp |
getTomorrow(Date criteria)
基準日の翌日を取得.
|
static Timestamp |
getTomorrow(Timestamp criteria)
基準日の翌日を取得.
|
static DayTypeCat |
getTomorrowDayTypeCat(SumDto.DailySumDto dailySumDto)
翌日の日付区分カテゴリーを返却.
|
static Timestamp[] |
getTomorrowRenge(Timestamp targetDate,
Timestamp criteria)
基準日の翌日時間帯(00:00~24:00)を返却.
|
static boolean |
isCorrectSumKeyFormat(String keyString)
集計キーの形式に合致するかを判定.
|
static boolean |
isFullIncludeTime(Timestamp targetStart,
Timestamp targetEnd,
Timestamp judgeStart,
Timestamp judgeEnd)
対象開始時刻~終了時刻の間に、判定開始時刻~判定終了時刻が完全に含まれているかを判定.
|
static boolean |
isPartIncludeTime(Timestamp targetStart,
Timestamp targetEnd,
Timestamp judgeStart,
Timestamp judgeEnd)
判定開始時刻~終了時刻が対象開始時刻~対象終了時刻の間に、一部でも含まれているかを判定.
|
static boolean |
isStemOverDate(Timestamp criteriaStart,
Timestamp criteriaEnd)
非推奨です。
|
static boolean |
isStemOverDate(Timestamp criteriaStart,
Timestamp criteriaEnd,
Timestamp[] tomorrowRenge)
基準開始時刻~終了時刻が日を跨いているかを返却.
|
static String |
join(String... strings)
String連想配列を"_"で結合した値を返却.
|
static Object[] |
makeArgs(SumCheckerGenericDto scgDto,
Object... args)
メッセージ引数を作成.
|
static String |
makeSumKey(String prefixTime,
String prefixSource,
String stem,
String suffix)
集計キーを作成.
|
static String |
makeSumKey(SumDiv sumDiv,
String sumKeyStem,
String sumKeySuffix)
/**
集計データに値を格納する際の集計キーを返却.
|
static String |
makeSumKeyForDaily(String prefixSource,
String stem,
String suffix)
集計キーを作成.
|
static String |
makeSumKeyForPeriod(String prefixSource,
String stem,
String suffix)
集計キーを作成.
|
static void |
margeSumData(Map<String,BigDecimal> sumData,
String sumKey,
BigDecimal sumValue)
集計値をマージ.
|
static BigDecimal |
negativeToZero(BigDecimal value)
nullをBigDecimal.ZEROに変換した値を返却.
|
static BigDecimal |
nullToZero(BigDecimal value)
nullをBigDecimal.ZEROに変換した値を返却.
|
static <T> T |
nullValidate(T target)
対象がnullかを精査します.
|
static BigDecimal |
proprtionalDivision(String companyCd,
BigDecimal target,
BigDecimal criteriaDaysCnt,
BigDecimal targetDaysCnt)
按分した基準値を返却.
|
static <ENTITY extends jp.co.slcs.kaiden.v2.base.foundation.model.entity.GenerateEntity> |
setSumKeyDetail(String sumKey,
ENTITY entity)
集計キーを分解してテーブルEntityに設定します.
|
static BigDecimal |
subtract(BigDecimal... values)
対象値を減算した値を返却.
|
static BigDecimal |
subtract(boolean isMinusToZero,
BigDecimal... values)
対象値を減算した値を返却.
|
static BigDecimal |
sum(BigDecimal... values)
対象値を合算値を返却.
|
static BigDecimal |
sum(boolean isMinusToZero,
BigDecimal... values)
対象値を合算値を返却.
|
static Map<String,BigDecimal> |
sum(String putKey,
BigDecimal... values)
対象値を合算値を返却.
|
static Map<String,BigDecimal> |
sum(String putKey,
boolean isMinusToZero,
BigDecimal... values)
対象値を合算値を返却.
|
static BigDecimal |
suppressExcessScale(BigDecimal value)
BigDecimalの余分なスケールを削除して返却.
|
static BigDecimal |
toBigDecimal(String value)
String型をBigDecimal型に変換した値を返却.
|
static String |
toMsgArg(Object obj,
String paramDataType)
メッセージ用の引数に変換します.
|
static String |
toMsgHHMM(BigDecimal targetMinute)
メッセージ用の時間に変換します.
|
static String |
toMsgSumKey(String sumKey)
メッセージ用の集計キーに変換します.
|
static String |
toMsgUniqueKey(String itemKey)
メッセージ用の固有項目キーに変換します.
|
static List<String> |
toStringList(Object... objs)
Object配列をStringのListに変換します.
|
public static final String PERIOD_KEY_PREFIX
public static final String WEEKLY_KEY_PREFIX
public static final String MONTHLY_KEY_PREFIX
public static final String DDC_M_ORG_PREFIX
public static final String DDC_L_ORG_PREFIX
public static final String SUM_TAG_ORG_PREFIX
public static final String LBR_ALLOWANCE_ORG_PREFIX
public static final String LEAVE_TYPE_ORG_PREFIX
public static <T> T nullValidate(T target)
nullの場合、KaidenIllegalParametersExceptionをスローします。
T
- 精査対象型target
- 精査対象public static void argsValidate(Object... target)
nullの場合、KaidenIllegalParametersExceptionをスローします。
target
- 精査対象public static final String join(String... strings)
strings
- String連想配列public static final String makeSumKey(SumDiv sumDiv, String sumKeyStem, String sumKeySuffix)
sumDiv
- 集計区分sumKeyStem
- 集計キー語幹sumKeySuffix
- 集計キー接尾辞(メジャー)public static final String makeSumKey(String prefixTime, String prefixSource, String stem, String suffix)
prefixTime + prefixSource + "_" + stem + "_" + suffix を返却
prefixTime
- 集計キー接頭辞(時間)prefixSource
- 集計キー接頭辞(由来)stem
- 集計キー語幹suffix
- 集計キー接尾辞(メジャー)public static final String makeSumKeyForDaily(String prefixSource, String stem, String suffix)
"D" + prefixSource + "_" + stem + "_" + suffix を返却
prefixSource
- 集計キー接頭辞(由来)stem
- 集計キー語幹suffix
- 集計キー接尾辞(メジャー)public static final String makeSumKeyForPeriod(String prefixSource, String stem, String suffix)
"P" + prefixSource + "_" + stem + "_" + suffix を返却
prefixSource
- 集計キー接頭辞(由来)stem
- 集計キー語幹suffix
- 集計キー接尾辞(メジャー)public static final String[] getKeyArray(SumCalcDefDto def)
集計キー内訳が存在しない場合は、空のString配列を返却します.
def
- 集計定義public static boolean isFullIncludeTime(Timestamp targetStart, Timestamp targetEnd, Timestamp judgeStart, Timestamp judgeEnd)
対象開始時刻~終了時刻の時間内に、判定開始日~終了日が収まっていない場合は、含まれてないないと判定します。
targetStart
- 対象開始時刻targetEnd
- 対象終了時刻judgeStart
- 判定開始時刻judgeEnd
- 判定終了時刻public static boolean isPartIncludeTime(Timestamp targetStart, Timestamp targetEnd, Timestamp judgeStart, Timestamp judgeEnd)
対象開始時刻~終了時刻の時間内に、判定開始時刻~終了時刻が一部でも含まれている場合は、含まれていると判定します。
targetStart
- 対象開始時刻targetEnd
- 対象終了時刻judgeStart
- 判定開始時刻judgeEnd
- 判定終了時刻public static BigDecimal calcIncludeMidnightMin(Timestamp targetStart, Timestamp targetEnd, List<NightWorkPeriod.NightWorkPeriodInfoDto> nightWorkPeriod)
targetStart
- 対象開始時刻targetEnd
- 対象終了時刻nightWorkPeriod
- 深夜時間帯情報public static BigDecimal calcStepOverMidnightMin(Timestamp targetStart, Timestamp targetEnd, List<NightWorkPeriod.NightWorkPeriodInfoDto> nightWorkPeriod, Timestamp[] tomorrowRenge)
targetStart
- 対象開始時刻targetEnd
- 対象終了時刻nightWorkPeriod
- 深夜時間帯情報tomorrowRenge
- 翌日時間帯(00:00~23:59)public static BigDecimal calcOverlapMin(Timestamp targetStart, Timestamp targetEnd, Timestamp judgeStart, Timestamp judgeEnd)
targetStart
- 対象開始時刻targetEnd
- 対象終了時刻judgeStart
- 判定開始時刻judgeEnd
- 判定終了時刻public static Map<String,BigDecimal> sum(String putKey, BigDecimal... values)
putKey
- 格納キーvalues
- 対象値public static Map<String,BigDecimal> sum(String putKey, boolean isMinusToZero, BigDecimal... values)
putKey
- 格納キーisMinusToZero
- マイナス値ZERO変換values
- 対象値public static BigDecimal sum(BigDecimal... values)
values
- 対象値public static BigDecimal sum(boolean isMinusToZero, BigDecimal... values)
values
- 対象値isMinusToZero
- マイナス値ZERO変換public static BigDecimal subtract(BigDecimal... values)
values
- 対象値public static BigDecimal subtract(boolean isMinusToZero, BigDecimal... values)
values
- 対象値isMinusToZero
- マイナス値ZERO変換public static BigDecimal nullToZero(BigDecimal value)
BigDecimal型がnullの場合に、BigDecimal.ZEROを返却します. nullではない場合、対象値をそのまま返却します.
value
- 対象値public static BigDecimal negativeToZero(BigDecimal value)
BigDecimal型がnullの場合に、BigDecimal.ZEROを返却します. nullではない場合、対象値をそのまま返却します.
value
- 対象値public static BigDecimal toBigDecimal(String value)
対象値がnull,空文字、BigDecimal型に変換できない値の場合は、BigDecimal.ZEROを返却します.
value
- 対象値public static <ENTITY extends jp.co.slcs.kaiden.v2.base.foundation.model.entity.GenerateEntity> void setSumKeyDetail(String sumKey, ENTITY entity)
ENTITY
- Entityの型sumKey
- 集計キーentity
- Entitypublic static String getSumKeyPrefixTime(String sumKey)
sumKey
- 集計キーpublic static String getSumKeyPrefixSource(String sumKey)
sumKey
- 集計キーpublic static String getSumKeyStem(String sumKey)
sumKey
- 集計キーpublic static String getSumKeySuffixMeasure(String sumKey)
sumKey
- 集計キーpublic static List<String> toStringList(Object... objs)
objs
- Object配列public static String toMsgHHMM(BigDecimal targetMinute)
targetMinute
- 変換対象分public static String toMsgSumKey(String sumKey)
sumKey
- 集計キーpublic static String toMsgUniqueKey(String itemKey)
itemKey
- 項目キーpublic static String toMsgArg(Object obj, String paramDataType)
obj
- 対象値paramDataType
- 項目データ種別public static Object[] makeArgs(SumCheckerGenericDto scgDto, Object... args)
scgDto
- 集計チェッカー汎用DTOargs
- 引数public static String editMMDD(Short month, Short day)
月を日をMM/ddの形式にして返却します。.
month
- 月day
- 日public static BigDecimal proprtionalDivision(String companyCd, BigDecimal target, BigDecimal criteriaDaysCnt, BigDecimal targetDaysCnt)
(基準値 * 基準日数) / 対象日数
companyCd
- 会社コードtarget
- 基準値criteriaDaysCnt
- 基準日数targetDaysCnt
- 対象日数public static int getScale(String companyCd)
companyCd
- 会社コードpublic static Timestamp getTomorrow(Timestamp criteria)
criteria
- 基準日public static Timestamp getTomorrow(Date criteria)
criteria
- 基準日public static Timestamp[] getTomorrowRenge(Timestamp targetDate, Timestamp criteria)
targetDate
- 対象日付criteria
- 基準日@Deprecated public static boolean isStemOverDate(Timestamp criteriaStart, Timestamp criteriaEnd)
criteriaStart
- 基準開始時刻criteriaEnd
- 基準終了時刻public static boolean isStemOverDate(Timestamp criteriaStart, Timestamp criteriaEnd, Timestamp[] tomorrowRenge)
criteriaStart
- 基準開始時刻criteriaEnd
- 基準終了時刻tomorrowRenge
- 翌日時間帯(00:00~23:59)public static BigDecimal calcStepOverDateMin(Timestamp criteriaStart, Timestamp criteriaEnd, Timestamp[] tomorrowRenge)
criteriaStart
- 基準開始時刻criteriaEnd
- 基準終了時刻tomorrowRenge
- 翌日時間帯(00:00~23:59)public static DayTypeCat getTomorrowDayTypeCat(SumDto.DailySumDto dailySumDto)
翌日の日次勤務データに付随する勤務状況コードが存在する場合は、翌日の日次勤務データに付随する勤務状況コードを返却 存在しない場合は、日別情報展開(翌日).日付区分カテゴリーを返却. 但し、日別情報展開(翌日).日付区分カテゴリーも存在しない場合は、固定で所定労働日を返却する.
dailySumDto
- 日次集計処理DTOpublic static void margeSumData(Map<String,BigDecimal> sumData, String sumKey, BigDecimal sumValue)
sumData
- 集計データsumKey
- 集計キーsumValue
- 集計値public static String formatSummaryValue(String sumKey, BigDecimal sumValue)
formatSummaryValue(String, BigDecimal, String, String)
のblankValueにnull,zeroValueに"0"を渡します
sumKey
- 集計キーsumValue
- 集計値public static String formatSummaryValue(String sumKey, BigDecimal sumValue, String blankZeroValue)
formatSummaryValue(String, BigDecimal, String, String)
のblankValue,zeroValueにblankZeroValueを渡します
sumKey
- 集計キーsumValue
- 集計値blankZeroValue
- ブランク(null)もしくはゼロの際の返却値public static String formatSummaryValue(String sumKey, BigDecimal sumValue, String blankValue, String zeroValue)
集計キーの終端が"_C" or "_D"の場合、小数点数をゼロサプレスして返却。
集計キーの終端が"_M"の場合、時刻形式に変換して返却。
sumKey
- 集計キーsumValue
- 集計値blankValue
- ブランク(null)の際の返却値zeroValue
- ゼロの際の返却値public static String formatSummaryValueForKeyCamel(String sumKey, BigDecimal sumValue, String blankValue, String zeroValue)
集計キーの終端が"C" or "D"の場合、小数点数をゼロサプレスして返却。
集計キーの終端が"M"の場合、時刻形式に変換して返却。
sumKey
- 集計キーsumValue
- 集計値blankValue
- ブランク(null)の際の返却値zeroValue
- ゼロの際の返却値public static String formatSummaryValueCountOrDay(BigDecimal sumValue)
回数または日数の集計値を受け取り、小数点以下をゼロサプレスして返却。
sumValue
- 値public static String formatSummaryValueMinute(BigDecimal sumValue)
時間数の集計値を受け取り、時刻形式に変換して返却。
集計値が0より小さいとき
集計値変換パターンが"0"のとき、ハイフンを返却。 集計値変換パターンが"0以外"のとき、マイナス値を返却。
sumValue
- 値public static boolean isCorrectSumKeyFormat(String keyString)
keyString
- 対象文字列public static BigDecimal suppressExcessScale(BigDecimal value)
value
- 値public static String getDailySummaryMapKey(String targetDate)
SumDiv.DAILY
+ 対象日付 + Summary.RESULT_SUM_DATA_SUFFIX
を返却
targetDate
- 対象日付Copyright © 2024 Sumitomo Life Information Systems Co., Ltd. All Rights Reserved.