Commit e4e62ce6 authored by 李博今's avatar 李博今

校历修改

parent d72d2c43
......@@ -5,6 +5,7 @@ import org.rcisoft.business.bterm.dao.BTermRepository;
import org.rcisoft.business.bterm.entity.BTerm;
import org.rcisoft.business.bterm.enums.BTermEnum;
import org.rcisoft.business.bterm.service.BTermService;
import org.rcisoft.business.bterm.utils.SchoolCalendarWeek;
import org.rcisoft.business.bterm.utils.Week;
import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.core.constant.MessageConstant;
......@@ -143,8 +144,9 @@ public class BTermServiceImpl implements BTermService {
public Map<String, Object> getSchoolWeek(String termCode){
Map<String,Object> map = new HashMap<>();
BTerm bTerm = bTermRepository.queryCurrentTerm(termCode);
List<String> list = new ArrayList<>();
list = Week.buildList(bTerm.getStartDate(),bTerm.getEndDate());
List<SchoolCalendarWeek> list = new ArrayList<>();
//list = Week.buildList(bTerm.getStartDate(),bTerm.getEndDate());
list = SchoolCalendarWeek.buildList(bTerm.getStartDate(),bTerm.getEndDate());
map.put("weekList",list);
map.put("termName",bTerm.getName());
return map;
......
package org.rcisoft.business.bterm.utils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.text.SimpleDateFormat;
import java.util.*;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SchoolCalendarWeek {
private Map<String,Object> month = new HashMap<>();
private Map<String,Object> mon = new HashMap<>();
private Map<String,Object> tue = new HashMap<>();
private Map<String,Object> wed = new HashMap<>();
private Map<String,Object> thu = new HashMap<>();
private Map<String,Object> fri = new HashMap<>();
private Map<String,Object> sat = new HashMap<>();
private Map<String,Object> sun = new HashMap<>();
private Map<String,Object> week = new HashMap<>();
//最大月数
private int MAX_MONTH = 0;
//通过开始时间与计算时间计算周数与具体信息
public static List<SchoolCalendarWeek> buildList(Date startDate1, Date endDate1){
String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<SchoolCalendarWeek> list = new ArrayList<>();
//转化起始时间
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate1);
//转化结束时间
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate1);
//遍历用时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate1);
int flag = 1;
String s = "";
SchoolCalendarWeek schoolCalendarWeek = new SchoolCalendarWeek();
while(!calendar.after(endCalendar)){
int weekOfDay = calendar.get(Calendar.DAY_OF_WEEK);
//第一周判断是否为完整的一周
if(flag == 1 && calendar.get(Calendar.DAY_OF_WEEK) != 2){
//如果不是时间往前推移,直到星期一,此间字符串添加','
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(startDate1);
int test = calendar2.get(Calendar.DAY_OF_WEEK);
//while(calendar2.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY){
while(calendar2.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY){
switch (calendar2.get(Calendar.DAY_OF_WEEK)){
//周日
case 1:
schoolCalendarWeek.sun.put("tag",7);
schoolCalendarWeek.sun.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
case 2:
schoolCalendarWeek.mon.put("tag",1);
schoolCalendarWeek.mon.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
case 3:
schoolCalendarWeek.tue.put("tag",2);
schoolCalendarWeek.tue.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
case 4:
schoolCalendarWeek.wed.put("tag",3);
schoolCalendarWeek.wed.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
case 5:
schoolCalendarWeek.thu.put("tag",4);
schoolCalendarWeek.thu.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
case 6:
schoolCalendarWeek.fri.put("tag",5);
schoolCalendarWeek.fri.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
case 7:
schoolCalendarWeek.sat.put("tag",6);
schoolCalendarWeek.sat.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
break;
}
//s += "0,";
calendar2.add(Calendar.DATE,-1);
}
schoolCalendarWeek.mon.put("tag",1);
schoolCalendarWeek.mon.put("index",sdf.format(calendar2.getTime()));
schoolCalendarWeek.setMaxMonth(calendar2.get(Calendar.MONTH) + 1);
flag = 0;
continue;
}
//平常周,判断是否为周日
if(weekOfDay != 1){
// String formatTime = sdf.format(calendar.getTime());
// s += formatTime+",";
// calendar.add(Calendar.DATE,1);
switch (weekOfDay){
case 2:
schoolCalendarWeek.mon.put("tag",1);
schoolCalendarWeek.mon.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 3:
schoolCalendarWeek.tue.put("tag",2);
schoolCalendarWeek.tue.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 4:
schoolCalendarWeek.wed.put("tag",3);
schoolCalendarWeek.wed.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 5:
schoolCalendarWeek.thu.put("tag",4);
schoolCalendarWeek.thu.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 6:
schoolCalendarWeek.fri.put("tag",5);
schoolCalendarWeek.fri.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 7:
schoolCalendarWeek.sat.put("tag",6);
schoolCalendarWeek.sat.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
}
calendar.add(Calendar.DATE,1);
}else{
// String formatTime = sdf.format(calendar.getTime());
// s += formatTime+",";
// s = s.substring(0,s.length() - 1);
schoolCalendarWeek.sun.put("tag",7);
schoolCalendarWeek.sun.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
//第几周
schoolCalendarWeek.week.put("tag",list.size() + 1);
//属于哪个月
schoolCalendarWeek.month.put("tag",schoolCalendarWeek.MAX_MONTH);
schoolCalendarWeek.month.put("index",months[schoolCalendarWeek.MAX_MONTH - 1]);
//因为是周日,所以List添加一条数据,开始下一周的遍历
list.add(schoolCalendarWeek);
schoolCalendarWeek = new SchoolCalendarWeek();
calendar.add(Calendar.DATE,1);
}
}
int flag2 = 0;
//因为最后一周如果没有周日的话会跳出循环,字符串s依然有值,将最后的值插入List中
while(calendar.get(Calendar.DAY_OF_WEEK) != 1 || flag2 == 1){
if(calendar.get(Calendar.DAY_OF_WEEK) == 1){
//s += "0,";
schoolCalendarWeek.sun.put("tag",7);
schoolCalendarWeek.sun.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
//s = s.substring(0,s.length() - 1);
//第几周
schoolCalendarWeek.week.put("tag",list.size() + 1);
//属于哪个月
schoolCalendarWeek.month.put("tag",schoolCalendarWeek.MAX_MONTH);
schoolCalendarWeek.month.put("index",months[schoolCalendarWeek.MAX_MONTH - 1]);
list.add(schoolCalendarWeek);
break;
}else {
//s += "0,";
switch (calendar.get(Calendar.DAY_OF_WEEK)){
case 2:
schoolCalendarWeek.mon.put("tag",1);
schoolCalendarWeek.mon.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 3:
schoolCalendarWeek.tue.put("tag",2);
schoolCalendarWeek.tue.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 4:
schoolCalendarWeek.wed.put("tag",3);
schoolCalendarWeek.wed.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 5:
schoolCalendarWeek.thu.put("tag",4);
schoolCalendarWeek.thu.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 6:
schoolCalendarWeek.fri.put("tag",5);
schoolCalendarWeek.fri.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
case 7:
schoolCalendarWeek.sat.put("tag",6);
schoolCalendarWeek.sat.put("index",sdf.format(calendar.getTime()));
schoolCalendarWeek.setMaxMonth(calendar.get(Calendar.MONTH) + 1);
break;
}
calendar.add(Calendar.DATE,1);
flag2 = 1;
}
}
return list;
}
public void setMaxMonth(int month){
if(month > this.getMAX_MONTH()){
this.setMAX_MONTH(month);
}
}
}
......@@ -191,4 +191,6 @@ public class Week {
}
return list;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment