public
void yearlyClickCallable() {
String year = getPara(
"year"
);
List<String> xList =
new
ArrayList<String>();
xList.add(
"January"
);
xList.add(
"February"
);
xList.add(
"March"
);
xList.add(
"April"
);
xList.add(
"May"
);
xList.add(
"June"
);
xList.add(
"July"
);
xList.add(
"August"
);
xList.add(
"September"
);
xList.add(
"October"
);
xList.add(
"November"
);
xList.add(
"December"
);
List<Integer> yList =
new
ArrayList<Integer>();
List<Future<List<Map<String, Object>>>> futureList =
new
ArrayList<Future<List<Map<String, Object>>>>();
int
count
= 0;
ExecutorService pool = Executors.newCachedThreadPool();
for
(int m = 1; m <= 12; m++) {
List<String> dateList =
new
ArrayList<String>();
String
date
=
""
;
int days = CalendarUtil.weekForMonth(Integer.valueOf(year), m);
for
(int i = 1; i <= days; i++) {
if
(i <= 9) {
if
(m <= 9) {
date
= year +
"-0"
+ m +
"-0"
+ i;
}
else
{
date
= year +
"-"
+ m +
"-0"
+ i;
}
}
else
{
if
(m <= 9) {
date
= year +
"-0"
+ m +
"-"
+ i;
}
else
{
date
= year +
"-"
+ m +
"-"
+ i;
}
}
dateList.add(
date
);
}
Future<List<Map<String, Object>>> future = pool.submit(
new
ReadLogFileCallableByYear(dateList));
futureList.add(future);
}
pool.shutdown();
for
(Future<List<Map<String, Object>>> future : futureList) {
try
{
List<Map<String, Object>> list = future.get(1, TimeUnit.SECONDS);
for
(int p = 0; p < list.size(); p++) {
count
+= (int) list.get(p).get(
"clickCount"
);
if
(list.get(p).get(
"month"
).equals(
"01"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"02"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"03"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"04"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"05"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"06"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"07"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"08"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"09"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"10"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"11"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
else
if
(list.get(p).get(
"month"
).equals(
"12"
)) {
yList.add((Integer) list.get(p).get(
"clickCount"
));
}
}
}
catch
(Exception e) {
e.printStackTrace();
}
}
setAttr(
"totalCount"
,
count
);
setAttr(
"x"
, xList);
setAttr(
"y"
, yList);
renderJson();
}