Commit 132c723b authored by 李博今's avatar 李博今

完善导入排课

parent 9a97ed2e
......@@ -84,7 +84,8 @@ public interface BArrangeRepository extends BaseMapper<BArrange> {
"LEFT JOIN b_teacher on b_teacher.`code` = b_schedule_dto.teacher_code " +
"LEFT JOIN s_user on s_user.login_name = b_teacher.`code` " +
"where sub_agency_id = #{subAgencyId} " +
"GROUP BY lesson_code,teacher_code,class_code " +
"ORDER BY class_code,week " +
//"GROUP BY lesson_code,teacher_code,class_code " +
"</script>")
@ResultMap(value = "scheduleDtoResultMap")
List<ScheduleDto> queryDtoBySubAgencyId(String subAgencyId);
......
......@@ -234,7 +234,12 @@ public class BArrangeServiceImpl implements BArrangeService {
@Transactional(propagation = Propagation.REQUIRED,readOnly = false)
@Override
public PersistModel importExcel(HSSFWorkbook hwb, String token , String subAgencyId) {
//String termCode = bArrangeRepository.selectTermCodeByBSubtaskId(subAgencyId);
//BTerm bTerm = bTermRepository.queryBtermByCode(termCode).get(0);
//获取学期信息
//List<String> list = Week.buildList(bTerm.getStartDate(),bTerm.getEndDate());
//获取周数
//int weekNum = list.size();
ArrayList<ScheduleDto> scheduleDtos = new ArrayList<ScheduleDto>();
Boolean contanSunday = ExcelUtil.containSunday(hwb);
String[] headers = {"方案计划名","方案人数","方案课组","课程号","课程名","开课院系","课程属性","总学分","总学时",
......@@ -246,7 +251,10 @@ public class BArrangeServiceImpl implements BArrangeService {
"周二", "周三", "周四", "周五", "周六","周日", "上课地点", "教室编号", "备注"};
}
ArrayList<String[]> values = ExcelUtil.importExcel(hwb, headers,true,2); //获取excel数据
if(values.get(0)[3]==null || values.get(0)[14]==null ||values.get(0)[16]==null ||values.get(0)[26]==null ||
values.get(0)[3].equals("") || values.get(0)[14].equals("") ||values.get(0)[16].equals("") ||values.get(0)[26].equals("")){
throw new ServiceException(ResultServiceEnums.EXCEL_IMPORT_DATA_HAS_NULL);
}
if (values.size()<=0){
throw new ServiceException(ResultServiceEnums.EXCEL_IMPORT_DATA_NOT_EXIST);
}
......@@ -255,6 +263,7 @@ public class BArrangeServiceImpl implements BArrangeService {
List<String> teacherCodes = new ArrayList<>();
List<String> classCodes = new ArrayList<>();
List<String> roomCodes = new ArrayList<>();
List<String> weekErrors = new ArrayList<>();
String[] wholeValue = new String[28];
for (String[] value : values) {
......@@ -316,6 +325,41 @@ public class BArrangeServiceImpl implements BArrangeService {
}
}
//判断5:判断周数是否超过学期最大周数;
// int location = value[17].indexOf("-");
// if(location != -1){
// String maxWeek = value[17].substring(location + 1,value[17].length());
// if(Integer.valueOf(maxWeek) > weekNum){
// weekErrors.add(value[17]);
// continue;
// }
// else{
// //如果是第一周
// if(value.equals(values.get(0))){
// //如果第一周不存在周一,并且周一又有数据的话,抛弃此条数据
// if(value[18] != null && !value[18].equals("")){
// String[] s = list.get(0).split(",");
// if(s[0].equals("0")){
// continue;
// }
// }
// if(value[19] != null && !value[19].equals("")){
// String[] s = list.get(0).split(",");
// if(s[1].equals("0")){
// continue;
// }
// }
//
// }
//
// }
// }else{
// if(Integer.valueOf(value[17]) > weekNum){
// weekErrors.add(value[17]);
// continue;
// }
// }
//合法:通过了四次判断,证明可建立该排课
scheduleDto.setLessonCode(value[3]);
......@@ -362,26 +406,38 @@ public class BArrangeServiceImpl implements BArrangeService {
}
}
int resultFlag = 1;
if(lessonCodes.size()>0){
result+="以下课程编号不存在:"+ JSON.toJSONString(lessonCodes)+"。";
resultFlag = 0;
}
if(teacherCodes.size()>0){
result+="以下教师编号不存在:"+ JSON.toJSONString(teacherCodes)+"。";
resultFlag = 0;
}
if(classCodes.size()>0){
result+="以下班级编号不存在:"+ JSON.toJSONString(classCodes)+"。";
resultFlag = 0;
}
if(roomCodes.size()>0){
result+="以下教室编号不存在:"+ JSON.toJSONString(roomCodes)+"。";
resultFlag = 0;
}
// if(weekErrors.size()>0){
// result+="以下周超过最大周数:"+ JSON.toJSONString(weekErrors)+"。";
// resultFlag = 0;
// }
return new PersistModel(1, result);
return new PersistModel(resultFlag, result);
}
@Override
public PersistModel importExcel2(HSSFWorkbook hwb, String token, String subAgencyId) {
String termCode = bArrangeRepository.selectTermCodeByBSubtaskId(subAgencyId);
BTerm bTerm = bTermRepository.queryBtermByCode(termCode).get(0);
//List list1 = Week.buildList(bTerm.getStartDate(),bTerm.getEndDate());
//int weekNum = list1.size();
//获取时间集合
Map<String,Date> timeMap = FindTime.findTime(bTerm.getStartDate(),bTerm.getEndDate());
Boolean contanSunday = ExcelUtil.containSunday(hwb);
......@@ -394,7 +450,8 @@ public class BArrangeServiceImpl implements BArrangeService {
"周二", "周三", "周四", "周五", "周六","周日", "上课地点", "教室编号", "备注"};
}
ArrayList<String[]> values = ExcelUtil.importExcel(hwb, headers,true,2); //获取excel数据
if(values.get(0)[3].equals("") || values.get(0)[14].equals("") ||values.get(0)[16].equals("") ||values.get(0)[26].equals("")){
if(values.get(0)[3]==null || values.get(0)[14]==null ||values.get(0)[16]==null ||values.get(0)[26]==null ||
values.get(0)[3].equals("") || values.get(0)[14].equals("") ||values.get(0)[16].equals("") ||values.get(0)[26].equals("")){
throw new ServiceException(ResultServiceEnums.EXCEL_IMPORT_DATA_HAS_NULL);
}
List<BSlSchedule> list = new ArrayList<>();
......@@ -405,6 +462,7 @@ public class BArrangeServiceImpl implements BArrangeService {
List<String> teacherCodes = new ArrayList<>();
List<String> classCodes = new ArrayList<>();
List<String> roomCodes = new ArrayList<>();
List<String> weekErrors = new ArrayList<>();
String[] wholeValue = new String[28];
for (String[] value : values) {
......@@ -471,6 +529,14 @@ public class BArrangeServiceImpl implements BArrangeService {
}
}
//判断5:判断周数是否超过学期最大周数;
// int subStringlocation = value[17].indexOf("-");
// String maxWeek = value[17].substring(subStringlocation + 1,value[17].length());
// if(Integer.valueOf(maxWeek) > weekNum){
// weekErrors.add(value[17]);
// continue;
// }
String week = value[17];
if(week.contains("-")){
int location = week.indexOf("-");
......@@ -572,6 +638,9 @@ public class BArrangeServiceImpl implements BArrangeService {
if(roomCodes.size()>0){
result+="以下教室编号不存在:"+ JSON.toJSONString(roomCodes)+"。";
}
// if(weekErrors.size()>0){
// result+="以下周超过最大周数:"+ JSON.toJSONString(weekErrors)+"。";
// }
return new PersistModel(1, result);
}
......
......@@ -156,11 +156,12 @@ public class BTermController extends PaginationController<BTerm> {
}
@ApiOperation(value="获取校历", notes="获取校历")
@ApiImplicitParam(name = "termCode", value = "termCode", required = true, dataType = "varchar")
@GetMapping(value = "/getSchoolWeek")
public Result getSchoolWeek(){
public Result getSchoolWeek(String termCode){
return Result.builder(new PersistModel(1),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_ERROR,
bTermService.getSchoolWeek());
bTermService.getSchoolWeek(termCode));
}
}
......@@ -66,8 +66,8 @@ public interface BTermRepository extends BaseMapper<BTerm> {
int insertList(List<BTeacher> bTeachers);
*/
@Select("select * from b_term where current = 1")
@Select("select * from b_term where code = #{termCode}")
@ResultMap(value = "BaseResultMap" )
BTerm queryCurrentTerm();
BTerm queryCurrentTerm(String termCode);
}
......@@ -7,6 +7,7 @@ import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.model.SelectModel;
import java.util.List;
import java.util.Map;
/**
* Created by CodeGenerator on 2017/07/12.
......@@ -59,5 +60,5 @@ public interface BTermService{
PersistModel changeCurrent(String id);
List<String> getSchoolWeek();
Map<String,Object> getSchoolWeek(String termCode);
}
......@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -141,11 +140,14 @@ public class BTermServiceImpl implements BTermService {
}
@Override
public List<String> getSchoolWeek(){
BTerm bTerm = bTermRepository.queryCurrentTerm();
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());
return list;
map.put("weekList",list);
map.put("termName",bTerm.getName());
return map;
}
}
......@@ -11,8 +11,8 @@ server:
# org.springframework.web: DEBUG
druid:
# url: jdbc:mysql://192.168.1.125:13318/new_edu_db?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
url: jdbc:mysql://127.0.0.1:3306/new_edu_db?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
url: jdbc:mysql://192.168.1.125:13318/new_edu_db?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
# url: jdbc:mysql://127.0.0.1:3306/new_edu_db?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
username: root
password: 123456
......
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