[수정] 아기건강 주간 월간 차트 계산 오류 수정

dev_bert
isol2011 3 years ago
parent 82af2886d8
commit 7e45717344

@ -24,8 +24,10 @@ public interface A_Bf_scoreBO {
public abstract List<DataMap> select_daily_list_for_graph(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_weekly_list_for_graph(DataMap paramMap) throws Exception;
public abstract List<DataMap> change_graph_to_daily_list(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_monthly_list_graph(DataMap paramMap) throws Exception;
public abstract int select_baby_month(DataMap paramMap) throws Exception;
}

@ -66,6 +66,19 @@ public class A_Bf_scoreBOImpl extends AbstractBOManager implements A_Bf_scoreBO
return lm;
}
public List<DataMap> change_graph_to_daily_list(DataMap paramMap) throws Exception {
List<DataMap> lm = null;
try {
generalDAO.setNamespace(SQLMAP_NAMESPACE);
lm = generalDAO.select_to_list("change_graph_to_daily_list", paramMap);
} catch (SQLException e) {
throw e;
}
return lm;
}
public List<DataMap> select_weekly_list_for_graph(DataMap paramMap) throws Exception {
List<DataMap> lm = null;

@ -1,13 +1,7 @@
package com.backoffice.m.bf_growth;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.*;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
@ -220,22 +214,26 @@ public class M_Bf_growthController extends AbstractControllerManager{
// 주간 균형 판정
List<DataMap> weak_lm = scoreBO.select_weekly_list_for_graph(paramMap);
for(DataMap week : weak_lm) {
List<DataMap> lm = scoreBO.select_daily_total(week);
for (DataMap week : weak_lm) {
List<DataMap> lm = scoreBO.change_graph_to_daily_list(week);
long totalNutrition = 0;
long totalFood = 0;
for(DataMap dm : lm) {
NutrientScoreCalculation nut = new NutrientScoreCalculation(dm);
DataMap nut_score = nut.getScore();
FoodScoreCalculation food = new FoodScoreCalculation(dm);
DataMap food_score = food.getScore();
totalNutrition += nut_score.getLong("totalNutrition");
totalFood += food_score.getLong("totalFood");
for (DataMap dm : lm) {
List<DataMap> lm2 = scoreBO.select_daily_total(dm);
for (DataMap dm2 : lm2) {
NutrientScoreCalculation nut = new NutrientScoreCalculation(dm2);
DataMap nut_score = nut.getScore();
FoodScoreCalculation food = new FoodScoreCalculation(dm2);
DataMap food_score = food.getScore();
totalNutrition += nut_score.getLong("totalNutrition");
totalFood += food_score.getLong("totalFood");
}
}
// 1주일 중 기록한 날짜 수
int day = lm.size();
// int day = lm.size();
int day = week.getInt("count");
DataMap data = new DataMap();
data.put("reg_dt",RenaStringUtil.getData(week, "week_str"));
@ -243,29 +241,33 @@ public class M_Bf_growthController extends AbstractControllerManager{
data.put("totalFood", Math.round(totalFood/day));
weekly.add(data);
}
// 월간 균형 판정
List<DataMap> month_lm = scoreBO.select_monthly_list_graph(paramMap);
for(DataMap month : month_lm) {
List<DataMap> lm = scoreBO.select_daily_total(month);
List<DataMap> lm = scoreBO.change_graph_to_daily_list(month);
long totalNutrition = 0;
long totalFood = 0;
for(DataMap dm : lm) {
NutrientScoreCalculation nut = new NutrientScoreCalculation(dm);
DataMap nut_score = nut.getScore();
FoodScoreCalculation food = new FoodScoreCalculation(dm);
DataMap food_score = food.getScore();
totalNutrition += nut_score.getLong("totalNutrition");
totalFood += food_score.getLong("totalFood");
List<DataMap> lm2 = scoreBO.select_daily_total(dm);
for (DataMap dm2 : lm2) {
NutrientScoreCalculation nut = new NutrientScoreCalculation(dm2);
DataMap nut_score = nut.getScore();
FoodScoreCalculation food = new FoodScoreCalculation(dm2);
DataMap food_score = food.getScore();
totalNutrition += nut_score.getLong("totalNutrition");
totalFood += food_score.getLong("totalFood");
}
}
// 한달 중 기록한 날짜 수
int day = lm.size();
// int day = lm.size();
int day = month.getInt("count");
DataMap data = new DataMap();
data.put("reg_dt",RenaStringUtil.getData(month, "month_str"));

@ -381,9 +381,14 @@
,#smc_no# AS smc_no
,CONCAT(DATE_FORMAT(reg_dt,'%Y.%m'),' ',WEEK(reg_dt)-WEEK(DATE_SUB(reg_dt,INTERVAL DAYOFMONTH(reg_dt)-1 DAY),5)+1,'주차') AS week_str
,CONCAT(YEAR(x.reg_dt),"/",WEEK(x.reg_dt)) AS reg_dt
,x.count as count
,x.start_day as start_day
,x.last_day as last_day
FROM(
SELECT DATE(x.reg_dt) AS reg_dt
,COUNT(*) as count
,DATE_ADD(reg_dt, INTERVAL(1-DAYOFWEEK(reg_dt)) DAY) as start_day
,DATE_ADD(reg_dt, INTERVAL(7-DAYOFWEEK(reg_dt)) day) as last_day
FROM(
SELECT *
FROM (
@ -435,6 +440,67 @@
LIMIT 10
</select>
<select id="change_graph_to_daily_list" resultClass="dataMap" parameterClass="dataMap">
select
"day" as scope,
#smc_no# as smc_no,
date(x.reg_dt) as reg_dt
from(
(
select
reg_dt
from
tbl_bf_daily_nutrition_1
where
smc_no = #smc_no#
)union all (
select
reg_dt
from
tbl_bf_daily_nutrition_2
where
smc_no = #smc_no#
and
(eat_qty-rem)>0
and
db_dn_no is not null
)union all (
select
reg_dt
from
tbl_bf_daily_nutrition_3
where
smc_no = #smc_no#
and
db_dn_no is not null
)union all (
select
reg_dt
from
tbl_bf_daily_nutrition_9
where
smc_no = #smc_no#
and
db_dhb_no is not null
)union all (
select
reg_dt
from
tbl_bf_daily_nutrition_10
where
smc_no = #smc_no#
and
db_dbc_no is not null
)
)x
where
reg_dt between
#start_day# and
#last_day#
group by
DATE(x.reg_dt)
</select>
<select id="select_monthly_baby_list_count" resultClass="Integer" parameterClass="dataMap">
SELECT COUNT(*)
@ -605,6 +671,9 @@
,#smc_no# AS smc_no
,CONCAT(DATE_FORMAT(reg_dt,'%Y.'), LPAD(MONTH(reg_dt),2,0)) AS month_str
,CONCAT(YEAR(x.reg_dt),"/",MONTH(x.reg_dt)) AS reg_dt
,x.count as count
,last_day(x.reg_dt - interval 1 month) + interval 1 day as start_day
,last_day(x.reg_dt) as last_day
FROM(
SELECT DATE(x.reg_dt) AS reg_dt
,COUNT(*) as count

Loading…
Cancel
Save