Вы хотите рассчитать месяцы, а не годы. Итак, этот bean-компонент:
List<MVisitsBean> summaryScore = rDao.getdealer_performance(mvBean,mvBean.getYear(),mvBean.getMonth(),mvBean.getRegion_id(),mvBean.getOutlet_id(),mvBean.getBrand_id(),mvBean.getDealer_id(),mvBean.getLimit(),total);
Он вычисляет год и месяц. Я предполагаю, что если вы измените getYear на getMonth и getMonth на getDay (я предполагаю, что этот bean-компонент имеет что-то вроде "getDay"), все будет в порядке.
Затем в вашем потоке:
List<MVisitsBean> ranking =
summaryScore.stream().sorted(Comparator.comparingDouble(MVisitsBean::getYtd_dealer_avg1).reversed())
.map(p -> {
++no[0];
if (score[0] != p.getYtd_dealer_avg1()) rank[0] = no[0];
p.setYtd_dealer_rank(rank[0]);
return new MVisitsBean(rank[0], score[0] = p.getYtd_dealer_avg1());
})
Я не знаю точно, что делает каждый аргумент в компоненте. Но я предполагаю, что:
MVisitsBean::getYtd_dealer_avg1
Это что-то с годом фасоли. Вы должны найти что-то, относящееся к месяцу, например:
MVisitsBean::getMtd_dealer_avg1
в bean-компоненте и обновите получатель и сеттер в потоке (getYtd_dealer_avg1, setYtd_dealer_rank).
В противном случае сложно ответить точнее, не зная структуру MVisitsBean.
Надеюсь, это поможет.