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

导入排课方法更新

parent 875dd83c
......@@ -84,7 +84,7 @@ 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} " +
"ORDER BY lesson_code,class_code,teacher_code,week " +
"ORDER BY seq,lesson_code,class_code,teacher_code,week " +
//"GROUP BY lesson_code,teacher_code,class_code " +
"</script>")
@ResultMap(value = "scheduleDtoResultMap")
......
......@@ -268,7 +268,7 @@ public class BArrangeServiceImpl implements BArrangeService {
"周二", "周三", "周四", "周五", "周六","周日", "上课地点", "教室编号", "备注"};
}
//ArrayList<String[]> values = ExcelUtil.importExcel(hwb, headers,true,2); //获取excel数据
ArrayList<String[]> values = ExcelUtil.importExcel(hwb, headers,true,2); //获取excel数据
ArrayList<String[]> values = ExcelUtil.importExcelv2(hwb, headers,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);
......@@ -281,81 +281,41 @@ public class BArrangeServiceImpl implements BArrangeService {
List<String> teacherCodes = new ArrayList<>();
List<String> classCodes = new ArrayList<>();
List<String> roomCodes = new ArrayList<>();
String[] wholeValue = new String[28];
int index = 0;
for (String[] value : values) {
ScheduleDto scheduleDto = new ScheduleDto();
//判断1:根据课程编号查询是否有此门课程;
if(value[3].equals("")){
value[3] = wholeValue[3];
}else{
if(bLessonRepository.selectOne(new BLesson(value[3].trim()))==null){
lessonCodes.add(value[3]);
continue;
}else{
wholeValue[3] = value[3];
}
if(bLessonRepository.selectOne(new BLesson(value[3].trim()))==null){
lessonCodes.add(value[3]);
continue;
}
//判断2:根据教师编号查询是否有此教师;
SysUser user1 =new SysUser();
if(value[14].equals("")){
value[14] = wholeValue[14];
}else{
user1.setLoginName(value[14]);
user1.setDelFlag("0");
user1.setFlag("1");
if (sysUserMapper.selectOne(user1) == null) {
teacherCodes.add(value[14]);
continue;
}else{
wholeValue[14] = value[14];
}
user1.setLoginName(value[14]);
user1.setDelFlag("0");
user1.setFlag("1");
if (sysUserMapper.selectOne(user1) == null) {
teacherCodes.add(value[14]);
continue;
}
//判断3:根据班级编号查询是否有此班级;
if(value[16].equals("")){
value[16] = wholeValue[16];
}else{
if (bEduClassRepository.selectOne(new BEduClass(value[16].trim())) == null) {
classCodes.add(value[16]);
continue;
}else{
wholeValue[16] = value[16];
}
if (bEduClassRepository.selectOne(new BEduClass(value[16].trim())) == null) {
classCodes.add(value[16]);
continue;
}
//判断4:根据教室编号查询是否有此教室;
//如果存在星期日,向后推一格
if(contanSunday){
if(value[27].equals("")){
value[27] = wholeValue[27];
}else{
if(bRoomsRepository.selectOne(new BRooms(value[27].trim()))==null){
roomCodes.add(value[27]);
continue;
}else{
wholeValue[27] = value[27];
}
if(bRoomsRepository.selectOne(new BRooms(value[27].trim()))==null){
roomCodes.add(value[27]);
continue;
}
}else {
if(value[26].equals("")){
value[26] = wholeValue[26];
}else{
if(bRoomsRepository.selectOne(new BRooms(value[26].trim()))==null){
roomCodes.add(value[26]);
continue;
}else{
wholeValue[26] = value[26];
}
if(bRoomsRepository.selectOne(new BRooms(value[26].trim()))==null){
roomCodes.add(value[26]);
continue;
}
}
//合法:通过了四次判断,证明可建立该排课
scheduleDto.setLessonCode(value[3]);
scheduleDto.setTeacherCode(value[14]);
......@@ -394,8 +354,6 @@ public class BArrangeServiceImpl implements BArrangeService {
bSlScheduleRepository.updateStatusBySubAgencyId(subAgencyId,"1");
}
String result = "";
if (scheduleDtos.size()>0){
bArrangeRepository.avoidRepeatDto(subAgencyId);
......@@ -443,8 +401,7 @@ public class BArrangeServiceImpl implements BArrangeService {
"授课学时", "上机学时", "实验学时", "考试类型", "任课教师", "教师编号", "教学班组名", "教学班组编号", "周次", "周学时", "周一",
"周二", "周三", "周四", "周五", "周六","周日", "上课地点", "教室编号", "备注"};
}
//ArrayList<String[]> values = ExcelUtil.importExcel(hwb, headers,true,2); //获取excel数据
ArrayList<String[]> values = ExcelUtil.importExcel(hwb, headers,true,2); //获取excel数据
ArrayList<String[]> values = ExcelUtil.importExcelv2(hwb, headers,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);
......@@ -459,80 +416,40 @@ public class BArrangeServiceImpl implements BArrangeService {
List<String> roomCodes = new ArrayList<>();
List<String> weekErrors = new ArrayList<>();
String[] wholeValue = new String[28];
for (String[] value : values) {
//判断1:根据课程编号查询是否有此门课程;
if(value[3].equals("")){
value[3] = wholeValue[3];
}else{
if(bLessonRepository.selectOne(new BLesson(value[3].trim()))==null){
lessonCodes.add(value[3]);
continue;
}else{
wholeValue[3] = value[3];
}
if(bLessonRepository.selectOne(new BLesson(value[3].trim()))==null){
lessonCodes.add(value[3]);
continue;
}
//判断2:根据教师编号查询是否有此教师;
SysUser user1 =new SysUser();
if(value[14].equals("")){
value[14] = wholeValue[14];
}else{
user1.setLoginName(value[14]);
user1.setDelFlag("0");
user1.setFlag("1");
if (sysUserMapper.selectOne(user1) == null) {
teacherCodes.add(value[14]);
continue;
}else{
wholeValue[14] = value[14];
}
user1.setLoginName(value[14]);
user1.setDelFlag("0");
user1.setFlag("1");
if (sysUserMapper.selectOne(user1) == null) {
teacherCodes.add(value[14]);
continue;
}
//判断3:根据班级编号查询是否有此班级;
if(value[16].equals("")){
value[16] = wholeValue[16];
}else{
if (bEduClassRepository.selectOne(new BEduClass(value[16].trim())) == null) {
classCodes.add(value[16]);
continue;
}else{
wholeValue[16] = value[16];
}
if (bEduClassRepository.selectOne(new BEduClass(value[16].trim())) == null) {
classCodes.add(value[16]);
continue;
}
//判断4:根据教室编号查询是否有此教室;
//如果存在星期日,向后推一格
if(contanSunday){
if(value[27].equals("")){
value[27] = wholeValue[27];
}else{
if(bRoomsRepository.selectOne(new BRooms(value[27].trim()))==null){
roomCodes.add(value[27]);
continue;
}else{
wholeValue[27] = value[27];
}
if(bRoomsRepository.selectOne(new BRooms(value[27].trim()))==null){
roomCodes.add(value[27]);
continue;
}
}else {
if(value[26].equals("")){
value[26] = wholeValue[26];
}else{
if(bRoomsRepository.selectOne(new BRooms(value[26].trim()))==null){
roomCodes.add(value[26]);
continue;
}else{
wholeValue[26] = value[26];
}
if(bRoomsRepository.selectOne(new BRooms(value[26].trim()))==null){
roomCodes.add(value[26]);
continue;
}
}
String week = value[17];
if(week.contains("-")){
int location = week.indexOf("-");
......
......@@ -189,6 +189,8 @@ public enum ResultServiceEnums {
DATA_HAS_USED(100,"当前数据被使用,不可删除"),
CAN_NOT_OVERLAP(101,"时间区间不可重叠"),
ROLE_HAS_USED(102,"当前角色被使用,不可删除")
;
private Integer code;
......
......@@ -52,14 +52,14 @@ public class JwtAuthenTokenFilter extends OncePerRequestFilter {
/**/
String lk = rcRedisServiceImpl.get("lk");
if(StringUtils.isBlank(lk) || !"1".equals(lk)){
if(permitRes==-1) {
Result result = new Result();
result.setCode(202);
ResponseUtil.responseResult(response, result);
return;
}
}
// if(StringUtils.isBlank(lk) || !"1".equals(lk)){
// if(permitRes==-1) {
// Result result = new Result();
// result.setCode(202);
// ResponseUtil.responseResult(response, result);
// return;
// }
// }
// 取得header
String authHeader = request.getHeader(this.tokenHeader);
//判断header头
......
......@@ -130,7 +130,8 @@ public class ExcelUtil {
return repeatMessage.toString();
}
public static ArrayList<String[]> importExcelv2(HSSFWorkbook hwb, String[] headers, boolean allowEmpty , int headNum){
public static ArrayList<String[]> importExcelv2(HSSFWorkbook hwb, String[] headers, int headNum){
String result = "";
ArrayList<String[]> values = new ArrayList<>();
for (int i = 0; i < hwb.getNumberOfSheets(); i++) {
HSSFSheet hs = hwb.getSheetAt(i);
......@@ -140,7 +141,6 @@ public class ExcelUtil {
List<CellRangeAddress> cellRangeAddressList = hs.getMergedRegions();
int firstrownum = hs.getFirstRowNum(); //第一行
int lastrownum = hs.getLastRowNum(); //最后一行
List<Integer> emptyColList=new ArrayList<>();
for (int j = firstrownum + headNum; j <= lastrownum; j++) {
HSSFRow hr = hs.getRow(j);
if(hr==null||hr.getLastCellNum()<0){
......@@ -149,42 +149,8 @@ public class ExcelUtil {
int firstcolumnnum = hr.getFirstCellNum();
int lastcolumnnum = hr.getLastCellNum();
String[] value = new String[lastcolumnnum + 2];
boolean hasEmpty = true;
//修改过!!!!!!!!!!!!
for (int k = 0; k < lastcolumnnum; k++) {
HSSFCell hc = hr.getCell(k);
if(hc == null){
value[k] = "";
continue;
}
if (j==firstrownum + headNum) {
//判断表头那一列为空数据并记录。
if(parseDB(hc).trim().equals("")) {
emptyColList.add(-1);
}else{
emptyColList.add(k);
}
}
else {
if(allowEmpty){//允许单元格为空,但不允许整行为空时
//hc != null &&
if (hc != null && !parseDB(hc).trim().equals("")&&emptyColList.get(k)!=-1&&hasEmpty) {
//只要一行中有一个值不为空,即为正确数据
hasEmpty = false;
}
}else{//不允许单元格为空,只要一行中有一个值为空,即为错误数据
hasEmpty = false;
//hc != null &&
if (hc != null && parseDB(hc) != null && parseDB(hc).trim().equals("")&&emptyColList.get(k)!=-1) {
//在第j行第k列有空数据,且该列表头不是空的,则舍弃本行数据。
hasEmpty = true;
break;
}
}
}
//如果此单元格为空则插入""
if(hc == null){
value[k] = "";
......@@ -195,67 +161,70 @@ public class ExcelUtil {
if(j==firstrownum + headNum){
for(int h=0;h<headers.length;h++){
if(!value[h].trim().equals(headers[h])){
System.out.println("导入头错误");
result += "导入头出现错误";
return null;
}
}
}else{
if (!hasEmpty) {
//判断是否是空数据并且存在空数据不是合并单元格
if(containSunday(hwb)){
CellRangeAddress value3 = belongBigCell(cellRangeAddressList,j,3,hs);
CellRangeAddress value14 = belongBigCell(cellRangeAddressList,j,14,hs);
CellRangeAddress value16 = belongBigCell(cellRangeAddressList,j,16,hs);
CellRangeAddress value27 = belongBigCell(cellRangeAddressList,j,27,hs);
if((value[3] == null || value[3].equals("")) && value3 == null
|| (value[14] == null || value[14].equals("")) && value14 == null
|| (value[16] == null || value[16].equals("")) && value16 == null
|| (value[27] == null || value[27].equals("")) && value27 == null){
//如果存在,跳过插入
continue;
}
if((value[3] == null || value[3].equals("")) && value3 != null){
value[3] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[14] == null || value[14].equals("")) && value3 != null){
value[14] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[16] == null || value[16].equals("")) && value3 != null){
value[16] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[27] == null || value[27].equals("")) && value3 != null){
value[27] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
}else{
CellRangeAddress value3 = belongBigCell(cellRangeAddressList,j,3,hs);
CellRangeAddress value14 = belongBigCell(cellRangeAddressList,j,14,hs);
CellRangeAddress value16 = belongBigCell(cellRangeAddressList,j,16,hs);
CellRangeAddress value26 = belongBigCell(cellRangeAddressList,j,26,hs);
if((value[3] == null || value[3].equals("")) && value3 == null
|| (value[14] == null || value[14].equals("")) && value14 == null
|| (value[16] == null || value[16].equals("")) && value16 == null
|| (value[26] == null || value[26].equals("")) && value26 == null){
//如果存在,跳过插入
continue;
}
//如果属于合并单元格并且为空,则插入此合并单元格数据
if((value[3] == null || value[3].equals("")) && value3 != null){
value[3] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
//判断是否是空数据并且存在空数据不是合并单元格
if(containSunday(hwb)){
CellRangeAddress value3 = belongBigCell(cellRangeAddressList,j,3,hs);
CellRangeAddress value14 = belongBigCell(cellRangeAddressList,j,14,hs);
CellRangeAddress value16 = belongBigCell(cellRangeAddressList,j,16,hs);
CellRangeAddress value27 = belongBigCell(cellRangeAddressList,j,27,hs);
if((value[3] == null || value[3].equals("")) && value3 == null
|| (value[14] == null || value[14].equals("")) && value14 == null
|| (value[16] == null || value[16].equals("")) && value16 == null
|| (value[27] == null || value[27].equals("")) && value27 == null){
//如果存在,跳过插入
if(j != hs.getLastRowNum()){
result += "第 "+ Integer.valueOf(j + 1) +" 行存在空数据";
}
if((value[14] == null || value[14].equals("")) && value3 != null){
value[14] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[16] == null || value[16].equals("")) && value3 != null){
value[16] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[26] == null || value[26].equals("")) && value3 != null){
value[26] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
continue;
}
if((value[3] == null || value[3].equals("")) && value3 != null){
value[3] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[14] == null || value[14].equals("")) && value3 != null){
value[14] = parseDB(hs.getRow(value14.getFirstRow()).getCell(value14.getFirstColumn()));
}
if((value[16] == null || value[16].equals("")) && value3 != null){
value[16] = parseDB(hs.getRow(value16.getFirstRow()).getCell(value16.getFirstColumn()));
}
if((value[27] == null || value[27].equals("")) && value3 != null){
value[27] = parseDB(hs.getRow(value27.getFirstRow()).getCell(value27.getFirstColumn()));
}
}else{
CellRangeAddress value3 = belongBigCell(cellRangeAddressList,j,3,hs);
CellRangeAddress value14 = belongBigCell(cellRangeAddressList,j,14,hs);
CellRangeAddress value16 = belongBigCell(cellRangeAddressList,j,16,hs);
CellRangeAddress value26 = belongBigCell(cellRangeAddressList,j,26,hs);
if((value[3] == null || value[3].equals("")) && value3 == null
|| (value[14] == null || value[14].equals("")) && value14 == null
|| (value[16] == null || value[16].equals("")) && value16 == null
|| (value[26] == null || value[26].equals("")) && value26 == null){
//如果存在,跳过插入
if(j != hs.getLastRowNum()){
result += "第 "+ Integer.valueOf(j + 1) +" 行存在空数据";
}
continue;
}
//如果属于合并单元格并且为空,则插入此合并单元格数据
if((value[3] == null || value[3].equals("")) && value3 != null){
value[3] = parseDB(hs.getRow(value3.getFirstRow()).getCell(value3.getFirstColumn()));
}
if((value[14] == null || value[14].equals("")) && value3 != null){
value[14] = parseDB(hs.getRow(value14.getFirstRow()).getCell(value14.getFirstColumn()));
}
if((value[16] == null || value[16].equals("")) && value3 != null){
value[16] = parseDB(hs.getRow(value16.getFirstRow()).getCell(value16.getFirstColumn()));
}
if((value[26] == null || value[26].equals("")) && value3 != null){
value[26] = parseDB(hs.getRow(value26.getFirstRow()).getCell(value26.getFirstColumn()));
}
values.add(value);
}
values.add(value);
}
}
}
......
......@@ -68,7 +68,7 @@ public class SysRoleServiceImpl implements SysRoleService {
int userCount = sysUserMapper.countUserByRole(id);
//如果仍然有用户(如果用户被逻辑删除,则忽略此角色,但如果用于被停用,则依然被计算)是此角色,则该角色不可删除
if(userCount > 0){
throw new ServiceException(ResultServiceEnums.DATA_HAS_USED);
throw new ServiceException(ResultServiceEnums.ROLE_HAS_USED);
}else{
//删除该角色所有的关联信息
sysRoleRepository.deleteRoleMenuByRoleId(id);
......
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