|
|
@@ -3,31 +3,44 @@ package com.template.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.template.api.WelcomeStudentControllerAPI;
|
|
|
+import com.template.common.utils.ExcelUtils;
|
|
|
import com.template.common.utils.paramUtils;
|
|
|
+import com.template.model.enumModel.eFileType;
|
|
|
+import com.template.model.enumModel.eProjectType;
|
|
|
import com.template.model.pojo.*;
|
|
|
-import com.template.model.request.InfoCollectionRequest;
|
|
|
-import com.template.model.request.InsertAccompanyRequest;
|
|
|
-import com.template.model.request.InsertFamilyRequest;
|
|
|
-import com.template.model.request.InsertStudentRequest;
|
|
|
+import com.template.model.request.*;
|
|
|
import com.template.model.result.CommonResult;
|
|
|
import com.template.model.result.PageUtils;
|
|
|
import com.template.model.vo.*;
|
|
|
import com.template.services.*;
|
|
|
-import io.swagger.annotations.ApiModelProperty;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFRow;
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
+import org.apache.poi.ss.usermodel.DataFormatter;
|
|
|
+import org.apache.poi.ss.usermodel.Row;
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
-import springfox.documentation.spring.web.json.Json;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.text.ParseException;
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -55,6 +68,12 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
@Autowired
|
|
|
private WelcomeArriveSettingService welcomeArriveSettingService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private WelcomeOrgService welcomeOrgService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private WelcomeCityService welcomeCityService;
|
|
|
+
|
|
|
private static Logger logger = LoggerFactory.getLogger(WelcomeStudentController.class);
|
|
|
|
|
|
@Override
|
|
|
@@ -79,6 +98,7 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
ws.setCardId(isr.getCardId());
|
|
|
ws.setSex(isr.getSex());
|
|
|
ws.setBirthday(isr.getBirthday());
|
|
|
+ ws.setSchool(isr.getSchool());
|
|
|
ws.setCollege(isr.getCollege());
|
|
|
ws.setMajor(isr.getMajor());
|
|
|
ws.setClassstr(isr.getClassstr());
|
|
|
@@ -184,6 +204,147 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public CommonResult updateStudentInfo(updateStudentRequest usr, BindingResult bindingResult) throws Exception {
|
|
|
+ if (bindingResult.hasErrors()) {
|
|
|
+ String st = paramUtils.getParamError(bindingResult);
|
|
|
+ return CommonResult.fail(st);
|
|
|
+ }
|
|
|
+
|
|
|
+ WelcomeStudent student = welcomeStudentService.getManageById(usr.getId());
|
|
|
+ if (student == null) {
|
|
|
+ return CommonResult.fail("学生数据已失效,编辑失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ //region 学生信息
|
|
|
+ student.setAdmissNum(usr.getAdmissNum());
|
|
|
+ student.setName(usr.getName());
|
|
|
+ student.setPicture(usr.getPicture());
|
|
|
+ student.setCardId(usr.getCardId());
|
|
|
+ student.setSex(usr.getSex());
|
|
|
+ student.setBirthday(usr.getBirthday());
|
|
|
+ student.setSchool(usr.getSchool());
|
|
|
+ student.setCollege(usr.getCollege());
|
|
|
+ student.setMajor(usr.getMajor());
|
|
|
+ student.setClassstr(usr.getClassstr());
|
|
|
+ student.setCollegeId(usr.getCollegeId());
|
|
|
+ student.setMajorId(usr.getMajorId());
|
|
|
+ student.setClassstrId(usr.getClassstrId());
|
|
|
+ student.setExamNum(usr.getExamNum());
|
|
|
+ student.setEduSystem(usr.getEduSystem());
|
|
|
+ student.setGraduationSchool(usr.getGraduationSchool());
|
|
|
+ student.setBatchValue(usr.getBatchValue());
|
|
|
+ student.setPoliticalStatu(usr.getPoliticalStatu());
|
|
|
+ student.setNationality(usr.getNationality());
|
|
|
+ student.setPhone(usr.getPhone());
|
|
|
+ student.setOprovinceId(usr.getOprovinceId());
|
|
|
+ student.setOcityId(usr.getOcityId());
|
|
|
+ student.setOdistrictId(usr.getOdistrictId());
|
|
|
+ student.setProvinceId(usr.getProvinceId());
|
|
|
+ student.setCityId(usr.getCityId());
|
|
|
+ student.setDistrictId(usr.getDistrictId());
|
|
|
+ student.setAddress(usr.getAddress());
|
|
|
+ student.setTrafficMethod(usr.getTrafficMethod());
|
|
|
+ student.setArrive(usr.getArrive());
|
|
|
+ student.setArrvieDate(usr.getArrvieDate());
|
|
|
+ student.setArriveTime(usr.getArriveTime());
|
|
|
+ //ws.setAmountPayable(isr.getAmountPayable());
|
|
|
+ //ws.setPayAmount(isr.getPayAmount());
|
|
|
+ //ws.setIsDrive(isr.getIsDrive());
|
|
|
+ //ws.setCarNumber(isr.getCarNumber());
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 家庭成员数据
|
|
|
+
|
|
|
+ List<WelcomeFamily> wfs = new ArrayList<>();
|
|
|
+ if (usr.getFamilys() != null && usr.getFamilys().size() > 0) {
|
|
|
+ for (InsertFamilyRequest family : usr.getFamilys()) {
|
|
|
+ WelcomeFamily wf = new WelcomeFamily();
|
|
|
+ wf.setStudentCard(student.getCardId());
|
|
|
+ wf.setFamilyShip(family.getFamilyShip());
|
|
|
+ wf.setName(family.getName());
|
|
|
+ wf.setWorkUnit(family.getWorkUnit());
|
|
|
+ wf.setPhone(family.getPhone());
|
|
|
+ wfs.add(wf);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 陪同人员数据
|
|
|
+ List<WelcomeAccompany> was = new ArrayList<>();
|
|
|
+ if (usr.getAccompanys() != null && usr.getAccompanys().size() > 0) {
|
|
|
+ for (InsertAccompanyRequest accompany : usr.getAccompanys()) {
|
|
|
+ WelcomeAccompany wa = new WelcomeAccompany();
|
|
|
+ wa.setStudentCard(student.getCardId());
|
|
|
+ wa.setName(accompany.getName());
|
|
|
+ wa.setPhone(accompany.getPhone());
|
|
|
+ was.add(wa);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 宿舍信息
|
|
|
+ WelcomeStudentDormitory wsd = new WelcomeStudentDormitory();
|
|
|
+ wsd.setStudentCard(usr.getCardId());
|
|
|
+ wsd.setBuilding(usr.getBilding());
|
|
|
+ wsd.setDormitory(usr.getDormitory());
|
|
|
+ wsd.setBedNum(usr.getBednum());
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ int studentId = welcomeStudentService.updateWelcomeStudent(student);
|
|
|
+ if (studentId <= 0) {
|
|
|
+ logger.error("编辑学生失败,参数:" + JSON.toJSON(usr));
|
|
|
+ throw new Exception("编辑失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ int deleteF = welcomeFamilyService.deleteWelcomeFamilyByCard(student.getCardId());
|
|
|
+ if (wfs != null && wfs.size() > 0) {
|
|
|
+ boolean insertBatch = welcomeFamilyService.saveBatch(wfs);
|
|
|
+ if (!insertBatch) {
|
|
|
+ logger.error("编辑家庭成员失败,参数:" + JSON.toJSON(wfs));
|
|
|
+ throw new Exception("编辑失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ int deleteA = welcomeAccompanyService.deleteWelcomeAccompanyByCard(student.getCardId());
|
|
|
+ if (was != null && was.size() > 0) {
|
|
|
+ boolean insertBatch = welcomeAccompanyService.saveBatch(was);
|
|
|
+ if (!insertBatch) {
|
|
|
+ logger.error("编辑陪同人员失败,参数:" + JSON.toJSON(was));
|
|
|
+ throw new Exception("编辑失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ WelcomeStudentDormitory wsds = welcomeStudentDormitoryService.getManageByCardId(student.getCardId());
|
|
|
+ if(wsds == null){
|
|
|
+ int insertStudentDormitory = welcomeStudentDormitoryService.insertWelcomeStudentDormitory(wsd);
|
|
|
+ if (insertStudentDormitory <= 0) {
|
|
|
+ logger.error("添加宿舍信息失败,参数:" + JSON.toJSON(wsd));
|
|
|
+ throw new Exception("添加失败!");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ wsds.setStudentCard(usr.getCardId());
|
|
|
+ wsds.setBuilding(usr.getBilding());
|
|
|
+ wsds.setDormitory(usr.getDormitory());
|
|
|
+ wsds.setBedNum(usr.getBednum());
|
|
|
+ int updateStudentDormitory = welcomeStudentDormitoryService.updateWelcomeStudentDormitory(wsds);
|
|
|
+ if (updateStudentDormitory < 0) {
|
|
|
+ logger.error("编辑宿舍信息失败,参数:" + JSON.toJSON(wsd));
|
|
|
+ throw new Exception("编辑失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error(e.getMessage());
|
|
|
+ throw new Exception("编辑失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ return CommonResult.ok("编辑成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public CommonResult queryPageStudents(int currentPage, int pageCount, Integer collegeId, Integer majorId, Integer classstrId, String trafficMethod, String name) {
|
|
|
PageUtils<StudentPageVo> result = welcomeStudentService.queryStudentPageList(currentPage, pageCount, collegeId, majorId, classstrId, trafficMethod, name);
|
|
|
return CommonResult.ok(result);
|
|
|
@@ -254,6 +415,7 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
result.setAtvs(atvs);
|
|
|
|
|
|
result.setId(ws.getId());
|
|
|
+ result.setSchool(ws.getSchool());
|
|
|
result.setAdmissNum(ws.getAdmissNum());
|
|
|
result.setName(ws.getName());
|
|
|
result.setPicture(ws.getPicture());
|
|
|
@@ -312,6 +474,7 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
if (ws == null) {
|
|
|
ws = new WelcomeStudent();
|
|
|
}
|
|
|
+ ws.setSchool(icr.getSchool());
|
|
|
ws.setAdmissNum(icr.getAdmissNum());
|
|
|
ws.setName(icr.getName());
|
|
|
ws.setPicture(icr.getPicture());
|
|
|
@@ -350,8 +513,8 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
ws.setFillStatus("已填报");
|
|
|
//家庭成员
|
|
|
List<WelcomeFamily> wfs = new ArrayList<>();
|
|
|
- if(icr.getFvs() != null && icr.getFvs().size() > 0){
|
|
|
- for (FamilyVo fv:icr.getFvs()) {
|
|
|
+ if (icr.getFvs() != null && icr.getFvs().size() > 0) {
|
|
|
+ for (FamilyVo fv : icr.getFvs()) {
|
|
|
WelcomeFamily wf = new WelcomeFamily();
|
|
|
wf.setName(fv.getName());
|
|
|
wf.setPhone(fv.getPhone());
|
|
|
@@ -364,8 +527,8 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
|
|
|
//陪同人员
|
|
|
List<WelcomeAccompany> was = new ArrayList<>();
|
|
|
- if(icr.getAvs() != null && icr.getAvs().size() > 0){
|
|
|
- for (AccompanyVo av:icr.getAvs()) {
|
|
|
+ if (icr.getAvs() != null && icr.getAvs().size() > 0) {
|
|
|
+ for (AccompanyVo av : icr.getAvs()) {
|
|
|
WelcomeAccompany wa = new WelcomeAccompany();
|
|
|
wa.setName(av.getName());
|
|
|
wa.setPhone(av.getPhone());
|
|
|
@@ -374,23 +537,23 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- try{
|
|
|
+ try {
|
|
|
boolean resultWs = welcomeStudentService.saveOrUpdate(ws);
|
|
|
- if(!resultWs){
|
|
|
+ if (!resultWs) {
|
|
|
logger.error("采集学生信息失败,ws参数:" + JSON.toJSON(ws));
|
|
|
throw new Exception("采集学生信息失败!");
|
|
|
}
|
|
|
boolean resultWf = welcomeFamilyService.saveBatch(wfs);
|
|
|
- if(!resultWf){
|
|
|
+ if (!resultWf) {
|
|
|
logger.error("采集学生信息失败,wfs参数:" + JSON.toJSON(wfs));
|
|
|
throw new Exception("采集学生信息失败!");
|
|
|
}
|
|
|
boolean resultWa = welcomeAccompanyService.saveBatch(was);
|
|
|
- if(!resultWa){
|
|
|
+ if (!resultWa) {
|
|
|
logger.error("采集学生信息失败,was参数:" + JSON.toJSON(was));
|
|
|
throw new Exception("采集学生信息失败!");
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
logger.error(e.getMessage());
|
|
|
throw new Exception("采集失败!");
|
|
|
}
|
|
|
@@ -400,16 +563,16 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
- public CommonResult deleteStudentInfo( int id) throws Exception {
|
|
|
+ public CommonResult deleteStudentInfo(int id) throws Exception {
|
|
|
|
|
|
WelcomeStudent ws = welcomeStudentService.getManageById(id);
|
|
|
- if(ws == null){
|
|
|
+ if (ws == null) {
|
|
|
return CommonResult.fail("学生信息已失效,无法进行删除操作!");
|
|
|
}
|
|
|
try {
|
|
|
//删除学生数据
|
|
|
int deleteStudent = welcomeStudentService.deleteWelcomeStudentById(id);
|
|
|
- if(deleteStudent <= 0){
|
|
|
+ if (deleteStudent <= 0) {
|
|
|
logger.error("删除学生信息失败,id参数:" + JSON.toJSON(id));
|
|
|
throw new Exception("删除学生信息失败!");
|
|
|
}
|
|
|
@@ -420,12 +583,654 @@ public class WelcomeStudentController implements WelcomeStudentControllerAPI {
|
|
|
//删除家庭成员
|
|
|
int deletef = welcomeFamilyService.deleteWelcomeFamilyByCard(ws.getCardId());
|
|
|
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
logger.error(e.getMessage());
|
|
|
throw new Exception("删除失败!");
|
|
|
}
|
|
|
|
|
|
return CommonResult.ok("删除成功");
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonResult importStudentExcel(MultipartFile file) throws IOException, ParseException {
|
|
|
+ System.out.println("导入学生信息");
|
|
|
+ if (file.isEmpty() || file.getSize() == 0) {
|
|
|
+ return CommonResult.fail("导入文件不能为空");
|
|
|
+ }
|
|
|
+ String ContentType = file.getContentType();
|
|
|
+ InputStream inputStream = file.getInputStream();
|
|
|
+ List<WelcomeStudent> result = new ArrayList<>();
|
|
|
+
|
|
|
+ //xls格式文件
|
|
|
+ if (ContentType.equals(eFileType.Xls.getValue())) {
|
|
|
+
|
|
|
+ CommonResult<List<WelcomeStudent>> resultData = readXls(inputStream);
|
|
|
+ if (!resultData.isSuccess()) {
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+ result = resultData.getData();
|
|
|
+
|
|
|
+ } else if (ContentType.equals(eFileType.Xlsx.getValue())) {
|
|
|
+ CommonResult<List<WelcomeStudent>> resultData = readXlsx(inputStream);
|
|
|
+ if (!resultData.isSuccess()) {
|
|
|
+ return resultData;
|
|
|
+ }
|
|
|
+ result = resultData.getData();
|
|
|
+
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("学生信息数据导入只支持Xls或Xlsx格式文件");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> cardIds = result.stream().map(WelcomeStudent::getCardId).collect(Collectors.toList());
|
|
|
+ List<WelcomeStudent> existStudents = welcomeStudentService.queryStudentByCardId(cardIds);
|
|
|
+ if (existStudents != null && existStudents.size() > 0) {
|
|
|
+ for (WelcomeStudent ws : result) {
|
|
|
+ Optional<WelcomeStudent> ows = existStudents.stream().filter(e -> e.getCardId().equals(ws.getCardId())).findFirst();
|
|
|
+ if (ows != null && ows.isPresent()) {
|
|
|
+ ws.setId(ws.getId());
|
|
|
+ ws.setAdmissNum(ws.getAdmissNum());//录取号
|
|
|
+ ws.setName(ws.getName());//姓名
|
|
|
+ ws.setCardId(ws.getCardId());//身份证号
|
|
|
+ ws.setSchool(ws.getSchool());//校区
|
|
|
+ ws.setCollege(ws.getCollege());
|
|
|
+ ws.setCollegeId(ws.getCollegeId());
|
|
|
+ ws.setMajor(ws.getMajor());
|
|
|
+ ws.setMajorId(ws.getMajorId());
|
|
|
+ ws.setClassstr(ws.getClassstr());
|
|
|
+ ws.setClassstrId(ws.getClassstrId());
|
|
|
+ ws.setExamNum(ws.getExamNum());//考生号
|
|
|
+ ws.setEduSystem(ws.getEduSystem());//学制
|
|
|
+ ws.setGraduationSchool(ws.getGraduationSchool());//毕业中学
|
|
|
+ ws.setBatchValue(ws.getBatchValue());//批次
|
|
|
+ ws.setPoliticalStatu(ws.getPoliticalStatu());//政治面貌
|
|
|
+ ws.setNationality(ws.getNationality());//民族
|
|
|
+ ws.setPhone(ws.getPhone());//手机号码
|
|
|
+ ws.setOprovince(ws.getOprovince());
|
|
|
+ ws.setOprovinceId(ws.getOprovinceId());
|
|
|
+ ws.setOcity(ws.getOcity());
|
|
|
+ ws.setOcityId(ws.getOcityId());
|
|
|
+ ws.setOdistrict(ws.getOdistrict());
|
|
|
+ ws.setOdistrictId(ws.getOdistrictId());
|
|
|
+ ws.setProvince(ws.getProvince());
|
|
|
+ ws.setProvinceId(ws.getProvinceId());
|
|
|
+ ws.setCity(ws.getCity());
|
|
|
+ ws.setCityId(ws.getCityId());
|
|
|
+ ws.setDistrict(ws.getDistrict());
|
|
|
+ ws.setDistrictId(ws.getDistrictId());
|
|
|
+ ws.setAddress(ws.getAddress());
|
|
|
+ ws.setZipCode(ws.getZipCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean resultBool = welcomeStudentService.saveOrUpdateBatch(result);
|
|
|
+
|
|
|
+ System.out.println("导入学生1");
|
|
|
+ return resultBool ? CommonResult.ok("导入成功") : CommonResult.fail("导入失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * xls文件读取方法
|
|
|
+ *
|
|
|
+ * @param inputStream
|
|
|
+ * @return
|
|
|
+ * @throws IOException
|
|
|
+ * @throws ParseException
|
|
|
+ */
|
|
|
+ private CommonResult<List<WelcomeStudent>> readXls(InputStream inputStream) throws IOException, ParseException {
|
|
|
+ List<WelcomeStudent> result = new ArrayList<>();
|
|
|
+ HSSFWorkbook sheets = new HSSFWorkbook(inputStream);
|
|
|
+
|
|
|
+ List<WelcomeOrg> ws = welcomeOrgService.list(null);
|
|
|
+ List<WelcomeCity> citys = welcomeCityService.list(null);
|
|
|
+
|
|
|
+ //读取第一张sheet
|
|
|
+ HSSFSheet sheetAt = sheets.getSheetAt(0);
|
|
|
+ DataFormatter dataFormatter = new DataFormatter();
|
|
|
+
|
|
|
+ try {
|
|
|
+ //rowNum = 3 从第三行开始获取值
|
|
|
+ //sheetAt.getLastRowNum():从0开始统计数量 所以得+1
|
|
|
+ for (int rowNum = 0; rowNum < sheetAt.getLastRowNum() + 1; rowNum++) {
|
|
|
+
|
|
|
+ HSSFRow row = sheetAt.getRow(rowNum);
|
|
|
+
|
|
|
+ if (row != null) {
|
|
|
+ //使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。
|
|
|
+ //所以先使用setCellType()方法先将该单元格的类型设置为STRING
|
|
|
+ //然后poi会根据字符串读取它
|
|
|
+ //第一行数据获取月份
|
|
|
+ if (rowNum == 0) {
|
|
|
+ String number = dataFormatter.formatCellValue(row.getCell(0));//序号
|
|
|
+ if (!number.equals("序号")) {
|
|
|
+ return CommonResult.fail("导入数据第一列为序号");
|
|
|
+ }
|
|
|
+ String assNum = dataFormatter.formatCellValue(row.getCell(1));//录取号
|
|
|
+ if (!assNum.equals("录取号")) {
|
|
|
+ return CommonResult.fail("导入数据第二列为录取号");
|
|
|
+ }
|
|
|
+ String name = dataFormatter.formatCellValue(row.getCell(2));//姓名
|
|
|
+ if (!name.equals("姓名")) {
|
|
|
+ return CommonResult.fail("导入数据第三列为姓名");
|
|
|
+ }
|
|
|
+ String cardId = dataFormatter.formatCellValue(row.getCell(3));//身份证号
|
|
|
+ if (!cardId.equals("身份证号")) {
|
|
|
+ return CommonResult.fail("导入数据第四列为身份证号");
|
|
|
+ }
|
|
|
+ String school = dataFormatter.formatCellValue(row.getCell(4));//校区
|
|
|
+ if (!school.equals("校区")) {
|
|
|
+ return CommonResult.fail("导入数据第五列为校区");
|
|
|
+ }
|
|
|
+ String college = dataFormatter.formatCellValue(row.getCell(5));//院系
|
|
|
+ if (!college.equals("院系")) {
|
|
|
+ return CommonResult.fail("导入数据第六列为院系");
|
|
|
+ }
|
|
|
+ String major = dataFormatter.formatCellValue(row.getCell(6));//专业
|
|
|
+ if (!major.equals("专业")) {
|
|
|
+ return CommonResult.fail("导入数据第七列为专业");
|
|
|
+ }
|
|
|
+ String classstr = dataFormatter.formatCellValue(row.getCell(7));//班级
|
|
|
+ if (!classstr.equals("班级")) {
|
|
|
+ return CommonResult.fail("导入数据第八列为班级");
|
|
|
+ }
|
|
|
+ String examNum = dataFormatter.formatCellValue(row.getCell(8));//考生号
|
|
|
+ if (!examNum.equals("考生号")) {
|
|
|
+ return CommonResult.fail("导入数据第九列为考生号");
|
|
|
+ }
|
|
|
+ String eduSystem = dataFormatter.formatCellValue(row.getCell(9));//学制
|
|
|
+ if (!eduSystem.equals("学制")) {
|
|
|
+ return CommonResult.fail("导入数据第十列为学制");
|
|
|
+ }
|
|
|
+ String graSchool = dataFormatter.formatCellValue(row.getCell(10));//毕业中学
|
|
|
+ if (!graSchool.equals("毕业中学")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为毕业中学批次");
|
|
|
+ }
|
|
|
+ String batchValue = dataFormatter.formatCellValue(row.getCell(11));//批次
|
|
|
+ if (!batchValue.equals("批次")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为批次");
|
|
|
+ }
|
|
|
+ String politicalStatu = dataFormatter.formatCellValue(row.getCell(12));//政治面貌
|
|
|
+ if (!politicalStatu.equals("政治面貌")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为政治面貌");
|
|
|
+ }
|
|
|
+ String nationality = dataFormatter.formatCellValue(row.getCell(13));//民族
|
|
|
+ if (!nationality.equals("民族")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为民族");
|
|
|
+ }
|
|
|
+ String phone = dataFormatter.formatCellValue(row.getCell(14));//手机号码
|
|
|
+ if (!phone.equals("手机号码")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为手机号码");
|
|
|
+ }
|
|
|
+ String nativePlace = dataFormatter.formatCellValue(row.getCell(15));//籍贯
|
|
|
+ if (!nativePlace.equals("籍贯")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为籍贯");
|
|
|
+ }
|
|
|
+ String addressPlace = dataFormatter.formatCellValue(row.getCell(16));//家庭住址
|
|
|
+ if (!addressPlace.equals("家庭住址")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为家庭住址");
|
|
|
+ }
|
|
|
+ String addressDetail = dataFormatter.formatCellValue(row.getCell(17));//详细住址
|
|
|
+ if (!addressDetail.equals("详细住址")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为详细住址");
|
|
|
+ }
|
|
|
+ String zipCode = dataFormatter.formatCellValue(row.getCell(18));//邮编
|
|
|
+ if (!zipCode.equals("邮编")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为邮编");
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ WelcomeStudent studentData = new WelcomeStudent();
|
|
|
+
|
|
|
+ String assNum = dataFormatter.formatCellValue(row.getCell(1));//录取号
|
|
|
+ studentData.setAdmissNum(assNum);
|
|
|
+ String name = dataFormatter.formatCellValue(row.getCell(2));//姓名
|
|
|
+ studentData.setName(name);
|
|
|
+ String cardId = dataFormatter.formatCellValue(row.getCell(3));//身份证号
|
|
|
+ studentData.setCardId(cardId);
|
|
|
+
|
|
|
+ String school = dataFormatter.formatCellValue(row.getCell(4));//校区
|
|
|
+ studentData.setSchool(school);
|
|
|
+
|
|
|
+ //region 院系专业
|
|
|
+ String college = dataFormatter.formatCellValue(row.getCell(5));//院系
|
|
|
+ Optional<WelcomeOrg> owo = ws.stream().filter(e -> e.getName().equals(college)).findFirst();
|
|
|
+ if (owo != null && owo.isPresent()) {
|
|
|
+ studentData.setCollege(college);
|
|
|
+ studentData.setCollegeId(owo.get().getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ String major = dataFormatter.formatCellValue(row.getCell(6));//专业
|
|
|
+ Optional<WelcomeOrg> omwo = ws.stream().filter(e -> e.getName().equals(major)).findFirst();
|
|
|
+ if (omwo != null && omwo.isPresent()) {
|
|
|
+ studentData.setMajor(major);
|
|
|
+ studentData.setMajorId(omwo.get().getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ String classstr = dataFormatter.formatCellValue(row.getCell(7));//班级
|
|
|
+ Optional<WelcomeOrg> ocwo = ws.stream().filter(e -> e.getName().equals(classstr)).findFirst();
|
|
|
+ if (ocwo != null && ocwo.isPresent()) {
|
|
|
+ studentData.setClassstr(classstr);
|
|
|
+ studentData.setClassstrId(ocwo.get().getId());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ String examNum = dataFormatter.formatCellValue(row.getCell(8));//考生号
|
|
|
+ studentData.setExamNum(examNum);
|
|
|
+
|
|
|
+ String eduSystem = dataFormatter.formatCellValue(row.getCell(9));//学制
|
|
|
+ studentData.setEduSystem(eduSystem);
|
|
|
+
|
|
|
+ String graSchool = dataFormatter.formatCellValue(row.getCell(10));//毕业中学
|
|
|
+ studentData.setGraduationSchool(graSchool);
|
|
|
+
|
|
|
+ String batchValue = dataFormatter.formatCellValue(row.getCell(11));//批次
|
|
|
+ studentData.setBatchValue(batchValue);
|
|
|
+
|
|
|
+ String politicalStatu = dataFormatter.formatCellValue(row.getCell(12));//政治面貌
|
|
|
+ studentData.setPoliticalStatu(politicalStatu);
|
|
|
+
|
|
|
+ String nationality = dataFormatter.formatCellValue(row.getCell(13));//民族
|
|
|
+ studentData.setNationality(nationality);
|
|
|
+
|
|
|
+ String phone = dataFormatter.formatCellValue(row.getCell(14));//手机号码
|
|
|
+ studentData.setPhone(phone);
|
|
|
+
|
|
|
+ //region 籍贯
|
|
|
+ String nativePlace = dataFormatter.formatCellValue(row.getCell(15));//籍贯
|
|
|
+ String[] addressDatas = nativePlace.split("/");
|
|
|
+ if (citys != null && citys.size() > 0) {
|
|
|
+ if (addressDatas != null && addressDatas.length >= 1) {
|
|
|
+ if (!addressDatas[0].contains("省")) {
|
|
|
+ return CommonResult.fail("录取编号为\" + assNum + \"的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressDatas[0])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setOprovince(addressDatas[0]);
|
|
|
+ studentData.setOprovinceId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressDatas != null && addressDatas.length >= 2) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressDatas[1])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setOcity(addressDatas[1]);
|
|
|
+ studentData.setOcityId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressDatas != null && addressDatas.length >= 3) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressDatas[1]) && e.getDistrictZh().equals(addressDatas[2])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setOdistrict(addressDatas[2]);
|
|
|
+ studentData.setOdistrictId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 家庭住址
|
|
|
+ String addressPlace = dataFormatter.formatCellValue(row.getCell(16));//家庭住址
|
|
|
+ String[] addressPlaces = addressPlace.split("/");
|
|
|
+ if (citys != null && citys.size() > 0) {
|
|
|
+ if (addressPlaces != null && addressPlaces.length >= 1) {
|
|
|
+ if (!addressPlaces[0].contains("省")) {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressPlaces[0])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setProvince(addressPlaces[0]);
|
|
|
+ studentData.setProvinceId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressPlaces != null && addressPlaces.length >= 2) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressPlaces[1])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setCity(addressPlaces[1]);
|
|
|
+ studentData.setCityId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressPlaces != null && addressPlaces.length >= 3) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressPlaces[1]) && e.getDistrictZh().equals(addressPlaces[2])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setDistrict(addressPlaces[2]);
|
|
|
+ studentData.setDistrictId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ String addressDetail = dataFormatter.formatCellValue(row.getCell(17));//详细住址
|
|
|
+ studentData.setAddress(addressDetail);
|
|
|
+
|
|
|
+ String zipCode = dataFormatter.formatCellValue(row.getCell(18));//邮编
|
|
|
+ studentData.setZipCode(zipCode);
|
|
|
+
|
|
|
+ result.add(studentData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ return CommonResult.fail("请按模板格式导入数据");
|
|
|
+ }
|
|
|
+
|
|
|
+ return CommonResult.ok(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * xls文件读取方法
|
|
|
+ *
|
|
|
+ * @param inputStream
|
|
|
+ * @return
|
|
|
+ * @throws IOException
|
|
|
+ * @throws ParseException
|
|
|
+ */
|
|
|
+ private CommonResult<List<WelcomeStudent>> readXlsx(InputStream inputStream) throws IOException, ParseException {
|
|
|
+ List<WelcomeStudent> result = new ArrayList<>();
|
|
|
+ XSSFWorkbook sheets = new XSSFWorkbook(inputStream);
|
|
|
+
|
|
|
+ List<WelcomeOrg> ws = welcomeOrgService.list(null);
|
|
|
+ List<WelcomeCity> citys = welcomeCityService.list(null);
|
|
|
+
|
|
|
+ //读取第一张sheet
|
|
|
+ XSSFSheet sheetAt = sheets.getSheetAt(0);
|
|
|
+ DataFormatter dataFormatter = new DataFormatter();
|
|
|
+
|
|
|
+ try {
|
|
|
+ //rowNum = 3 从第三行开始获取值
|
|
|
+ //sheetAt.getLastRowNum():从0开始统计数量 所以得+1
|
|
|
+ for (int rowNum = 0; rowNum < sheetAt.getLastRowNum() + 1; rowNum++) {
|
|
|
+
|
|
|
+ XSSFRow row = sheetAt.getRow(rowNum);
|
|
|
+
|
|
|
+ if (row != null) {
|
|
|
+ //使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。
|
|
|
+ //所以先使用setCellType()方法先将该单元格的类型设置为STRING
|
|
|
+ //然后poi会根据字符串读取它
|
|
|
+ //第一行数据获取月份
|
|
|
+ if (rowNum == 0) {
|
|
|
+ String number = dataFormatter.formatCellValue(row.getCell(0));//序号
|
|
|
+ if (!number.equals("序号")) {
|
|
|
+ return CommonResult.fail("导入数据第一列为序号");
|
|
|
+ }
|
|
|
+ String assNum = dataFormatter.formatCellValue(row.getCell(1));//录取号
|
|
|
+ if (!assNum.equals("录取号")) {
|
|
|
+ return CommonResult.fail("导入数据第二列为录取号");
|
|
|
+ }
|
|
|
+ String name = dataFormatter.formatCellValue(row.getCell(2));//姓名
|
|
|
+ if (!name.equals("姓名")) {
|
|
|
+ return CommonResult.fail("导入数据第三列为姓名");
|
|
|
+ }
|
|
|
+ String cardId = dataFormatter.formatCellValue(row.getCell(3));//身份证号
|
|
|
+ if (!cardId.equals("身份证号")) {
|
|
|
+ return CommonResult.fail("导入数据第四列为身份证号");
|
|
|
+ }
|
|
|
+ String school = dataFormatter.formatCellValue(row.getCell(4));//校区
|
|
|
+ if (!school.equals("校区")) {
|
|
|
+ return CommonResult.fail("导入数据第五列为校区");
|
|
|
+ }
|
|
|
+ String college = dataFormatter.formatCellValue(row.getCell(5));//院系
|
|
|
+ if (!college.equals("院系")) {
|
|
|
+ return CommonResult.fail("导入数据第六列为院系");
|
|
|
+ }
|
|
|
+ String major = dataFormatter.formatCellValue(row.getCell(6));//专业
|
|
|
+ if (!major.equals("专业")) {
|
|
|
+ return CommonResult.fail("导入数据第七列为专业");
|
|
|
+ }
|
|
|
+ String classstr = dataFormatter.formatCellValue(row.getCell(7));//班级
|
|
|
+ if (!classstr.equals("班级")) {
|
|
|
+ return CommonResult.fail("导入数据第八列为班级");
|
|
|
+ }
|
|
|
+ String examNum = dataFormatter.formatCellValue(row.getCell(8));//考生号
|
|
|
+ if (!examNum.equals("考生号")) {
|
|
|
+ return CommonResult.fail("导入数据第九列为考生号");
|
|
|
+ }
|
|
|
+ String eduSystem = dataFormatter.formatCellValue(row.getCell(9));//学制
|
|
|
+ if (!eduSystem.equals("学制")) {
|
|
|
+ return CommonResult.fail("导入数据第十列为学制");
|
|
|
+ }
|
|
|
+ String graSchool = dataFormatter.formatCellValue(row.getCell(10));//毕业中学
|
|
|
+ if (!graSchool.equals("毕业中学")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为毕业中学批次");
|
|
|
+ }
|
|
|
+ String batchValue = dataFormatter.formatCellValue(row.getCell(11));//批次
|
|
|
+ if (!batchValue.equals("批次")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为批次");
|
|
|
+ }
|
|
|
+ String politicalStatu = dataFormatter.formatCellValue(row.getCell(12));//政治面貌
|
|
|
+ if (!politicalStatu.equals("政治面貌")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为政治面貌");
|
|
|
+ }
|
|
|
+ String nationality = dataFormatter.formatCellValue(row.getCell(13));//民族
|
|
|
+ if (!nationality.equals("民族")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为民族");
|
|
|
+ }
|
|
|
+ String phone = dataFormatter.formatCellValue(row.getCell(14));//手机号码
|
|
|
+ if (!phone.equals("手机号码")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为手机号码");
|
|
|
+ }
|
|
|
+ String nativePlace = dataFormatter.formatCellValue(row.getCell(15));//籍贯
|
|
|
+ if (!nativePlace.equals("籍贯")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为籍贯");
|
|
|
+ }
|
|
|
+ String addressPlace = dataFormatter.formatCellValue(row.getCell(16));//家庭住址
|
|
|
+ if (!addressPlace.equals("家庭住址")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为家庭住址");
|
|
|
+ }
|
|
|
+ String addressDetail = dataFormatter.formatCellValue(row.getCell(17));//详细住址
|
|
|
+ if (!addressDetail.equals("详细住址")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为详细住址");
|
|
|
+ }
|
|
|
+ String zipCode = dataFormatter.formatCellValue(row.getCell(18));//邮编
|
|
|
+ if (!zipCode.equals("邮编")) {
|
|
|
+ return CommonResult.fail("导入数据第十一列为邮编");
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ WelcomeStudent studentData = new WelcomeStudent();
|
|
|
+
|
|
|
+ String assNum = dataFormatter.formatCellValue(row.getCell(1));//录取号
|
|
|
+ studentData.setAdmissNum(assNum);
|
|
|
+ String name = dataFormatter.formatCellValue(row.getCell(2));//姓名
|
|
|
+ studentData.setName(name);
|
|
|
+ String cardId = dataFormatter.formatCellValue(row.getCell(3));//身份证号
|
|
|
+ studentData.setCardId(cardId);
|
|
|
+
|
|
|
+ String school = dataFormatter.formatCellValue(row.getCell(4));//校区
|
|
|
+ studentData.setSchool(school);
|
|
|
+
|
|
|
+ //region 院系专业
|
|
|
+ String college = dataFormatter.formatCellValue(row.getCell(5));//院系
|
|
|
+ Optional<WelcomeOrg> owo = ws.stream().filter(e -> e.getName().equals(college)).findFirst();
|
|
|
+ if (owo != null && owo.isPresent()) {
|
|
|
+ studentData.setCollege(college);
|
|
|
+ studentData.setCollegeId(owo.get().getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ String major = dataFormatter.formatCellValue(row.getCell(6));//专业
|
|
|
+ Optional<WelcomeOrg> omwo = ws.stream().filter(e -> e.getName().equals(major)).findFirst();
|
|
|
+ if (omwo != null && omwo.isPresent()) {
|
|
|
+ studentData.setMajor(major);
|
|
|
+ studentData.setMajorId(omwo.get().getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ String classstr = dataFormatter.formatCellValue(row.getCell(7));//班级
|
|
|
+ Optional<WelcomeOrg> ocwo = ws.stream().filter(e -> e.getName().equals(classstr)).findFirst();
|
|
|
+ if (ocwo != null && ocwo.isPresent()) {
|
|
|
+ studentData.setClassstr(classstr);
|
|
|
+ studentData.setClassstrId(ocwo.get().getId());
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ String examNum = dataFormatter.formatCellValue(row.getCell(8));//考生号
|
|
|
+ studentData.setExamNum(examNum);
|
|
|
+
|
|
|
+ String eduSystem = dataFormatter.formatCellValue(row.getCell(9));//学制
|
|
|
+ studentData.setEduSystem(eduSystem);
|
|
|
+
|
|
|
+ String graSchool = dataFormatter.formatCellValue(row.getCell(10));//毕业中学
|
|
|
+ studentData.setGraduationSchool(graSchool);
|
|
|
+
|
|
|
+ String batchValue = dataFormatter.formatCellValue(row.getCell(11));//批次
|
|
|
+ studentData.setBatchValue(batchValue);
|
|
|
+
|
|
|
+ String politicalStatu = dataFormatter.formatCellValue(row.getCell(12));//政治面貌
|
|
|
+ studentData.setPoliticalStatu(politicalStatu);
|
|
|
+
|
|
|
+ String nationality = dataFormatter.formatCellValue(row.getCell(13));//民族
|
|
|
+ studentData.setNationality(nationality);
|
|
|
+
|
|
|
+ String phone = dataFormatter.formatCellValue(row.getCell(14));//手机号码
|
|
|
+ studentData.setPhone(phone);
|
|
|
+
|
|
|
+ //region 籍贯
|
|
|
+ String nativePlace = dataFormatter.formatCellValue(row.getCell(15));//籍贯
|
|
|
+ String[] addressDatas = nativePlace.split("/");
|
|
|
+ if (citys != null && citys.size() > 0) {
|
|
|
+ if (addressDatas != null && addressDatas.length >= 1) {
|
|
|
+ if (!addressDatas[0].contains("省")) {
|
|
|
+ return CommonResult.fail("录取编号为\" + assNum + \"的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressDatas[0])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setOprovince(addressDatas[0]);
|
|
|
+ studentData.setOprovinceId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressDatas != null && addressDatas.length >= 2) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressDatas[1])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setOcity(addressDatas[1]);
|
|
|
+ studentData.setOcityId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressDatas != null && addressDatas.length >= 3) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressDatas[1]) && e.getDistrictZh().equals(addressDatas[2])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setOdistrict(addressDatas[2]);
|
|
|
+ studentData.setOdistrictId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的籍贯格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 家庭住址
|
|
|
+ String addressPlace = dataFormatter.formatCellValue(row.getCell(16));//家庭住址
|
|
|
+ String[] addressPlaces = addressPlace.split("/");
|
|
|
+ if (citys != null && citys.size() > 0) {
|
|
|
+ if (addressPlaces != null && addressPlaces.length >= 1) {
|
|
|
+ if (!addressPlaces[0].contains("省")) {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressPlaces[0])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setProvince(addressPlaces[0]);
|
|
|
+ studentData.setProvinceId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressPlaces != null && addressPlaces.length >= 2) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getDistrictZh().equals(addressPlaces[1])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setCity(addressPlaces[1]);
|
|
|
+ studentData.setCityId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (addressPlaces != null && addressPlaces.length >= 3) {
|
|
|
+ Optional<WelcomeCity> oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressPlaces[1]) && e.getDistrictZh().equals(addressPlaces[2])).findFirst();
|
|
|
+ if (oProvince != null && oProvince.isPresent()) {
|
|
|
+ studentData.setDistrict(addressPlaces[2]);
|
|
|
+ studentData.setDistrictId(oProvince.get().getId());
|
|
|
+ } else {
|
|
|
+ return CommonResult.fail("录取编号为" + assNum + "的家庭住址格式应该是 省/市/县");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ String addressDetail = dataFormatter.formatCellValue(row.getCell(17));//详细住址
|
|
|
+ studentData.setAddress(addressDetail);
|
|
|
+
|
|
|
+ String zipCode = dataFormatter.formatCellValue(row.getCell(18));//邮编
|
|
|
+ studentData.setZipCode(zipCode);
|
|
|
+
|
|
|
+ result.add(studentData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ return CommonResult.fail("请按模板格式导入数据");
|
|
|
+ }
|
|
|
+
|
|
|
+ return CommonResult.ok(result);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonResult downloadStudentExcel() {
|
|
|
+ return CommonResult.ok("200", "操作成功", "https://chtech.ncjti.edu.cn/alumnus/homeimage/学生信息管理.xlsx");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void jgcloudProjectExport(HttpServletResponse response, Integer collegeId, Integer majorId, Integer classstrId, String trafficMethod, String name) {
|
|
|
+ List<StudentPageVo> result = welcomeStudentService.queryStudentList(collegeId, majorId, classstrId, trafficMethod, name);
|
|
|
+ //导出
|
|
|
+ Workbook workbook = new XSSFWorkbook();
|
|
|
+ Sheet sheet = workbook.createSheet("学生信息");
|
|
|
+
|
|
|
+ Row headerRow = sheet.createRow(0);
|
|
|
+ headerRow.createCell(0).setCellValue("序号");
|
|
|
+ headerRow.createCell(1).setCellValue("录取号");
|
|
|
+ headerRow.createCell(2).setCellValue("姓名");
|
|
|
+ headerRow.createCell(3).setCellValue("身份证号");
|
|
|
+ headerRow.createCell(4).setCellValue("院系");
|
|
|
+ headerRow.createCell(5).setCellValue("专业");
|
|
|
+ headerRow.createCell(6).setCellValue("班级");
|
|
|
+ headerRow.createCell(7).setCellValue("交通方式");
|
|
|
+ headerRow.createCell(8).setCellValue("到站地点");
|
|
|
+ headerRow.createCell(9).setCellValue("陪同人数");
|
|
|
+ headerRow.createCell(10).setCellValue("填报状态");
|
|
|
+ headerRow.createCell(11).setCellValue("应缴金额");
|
|
|
+ headerRow.createCell(12).setCellValue("实付金额");
|
|
|
+ headerRow.createCell(13).setCellValue("宿舍信息");
|
|
|
+ for (int i = 0; i < result.size(); i++) {
|
|
|
+ StudentPageVo studentData = result.get(i);
|
|
|
+ Row dataRow = sheet.createRow(i + 1);
|
|
|
+ dataRow.createCell(0).setCellValue(i + 1);
|
|
|
+ dataRow.createCell(1).setCellValue(studentData.getAdmissNum());
|
|
|
+ dataRow.createCell(2).setCellValue(studentData.getName());
|
|
|
+ dataRow.createCell(3).setCellValue(studentData.getCardId());
|
|
|
+ dataRow.createCell(4).setCellValue(studentData.getCollege());
|
|
|
+ dataRow.createCell(5).setCellValue(studentData.getMajor());
|
|
|
+ dataRow.createCell(6).setCellValue(studentData.getClassstr());
|
|
|
+ dataRow.createCell(7).setCellValue(studentData.getTrafficMethod());
|
|
|
+ dataRow.createCell(8).setCellValue(studentData.getArrive());
|
|
|
+ dataRow.createCell(9).setCellValue(studentData.getAccompanyNum());
|
|
|
+ dataRow.createCell(10).setCellValue(studentData.getFillStatus());
|
|
|
+ dataRow.createCell(11).setCellValue(String.valueOf(studentData.getAmountPayable()));
|
|
|
+ dataRow.createCell(12).setCellValue(String.valueOf(studentData.getPayAmount()));
|
|
|
+ dataRow.createCell(13).setCellValue(studentData.getDormitory());
|
|
|
+ }
|
|
|
+ // 将工作簿写入文件
|
|
|
+ ExcelUtils.excelDownload(workbook, "学生信息.xlsx", response);
|
|
|
+ }
|
|
|
}
|
|
|
|