package com.template.controller;
import com.alibaba.fastjson.JSON;
import com.auth0.jwt.interfaces.Claim;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.template.annotation.PassToken;
import com.template.api.WelcomeStudentControllerAPI;
import com.template.common.utils.*;
import com.template.model.enumModel.eFileType;
import com.template.model.enumModel.eProjectType;
import com.template.model.enumModel.eSchool;
import com.template.model.pojo.*;
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.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.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
*
* 前端控制器
*
*
* @author ceshi
* @since 2025-06-13
*/
@RestController
public class WelcomeStudentController implements WelcomeStudentControllerAPI {
@Autowired
private WelcomeStudentService welcomeStudentService;
@Autowired
private WelcomeFamilyService welcomeFamilyService;
@Autowired
private WelcomeAccompanyService welcomeAccompanyService;
@Autowired
private WelcomeBedService welcomeBedService;
@Autowired
private WelcomeAccountService welcomeAccountService;
@Autowired
private WelcomeSettingService welcomeSettingService;
@Autowired
private WelcomeArriveSettingService welcomeArriveSettingService;
@Autowired
private WelcomeOrgService welcomeOrgService;
@Autowired
private WelcomeCityService welcomeCityService;
@Autowired
private WelcomeSchoolService welcomeSchoolService;
@Autowired
private WelcomeBuildService welcomeBuildService;
@Autowired
private WelcomeDormitoryService welcomeDormitoryService;
@Autowired
private WelcomeVisitorService welcomeVisitorService;
@Autowired
private WelcomePaySettingService welcomePaySettingService;
private static Logger logger = LoggerFactory.getLogger(WelcomeStudentController.class);
@Override
@Transactional(rollbackFor = {Exception.class})
public CommonResult insertStudentInfo(InsertStudentRequest isr, BindingResult bindingResult) throws Exception {
if (bindingResult.hasErrors()) {
String st = paramUtils.getParamError(bindingResult);
return CommonResult.fail(st);
}
int existCount = welcomeStudentService.existStudentInfo(isr.getAdmissNum(), isr.getCardId());
if (existCount > 0) {
return CommonResult.fail("当前录取号或身份证号已存在!");
}
//region 学生信息
WelcomeStudent ws = new WelcomeStudent();
ws.setAdmissNum(isr.getAdmissNum());
ws.setName(isr.getName());
ws.setPicture(isr.getPicture());
ws.setCardId(isr.getCardId());
//region 校验身份证号 并根据身份证号获取出生年月和性别
boolean isValidate = CardUtils.validateIdCard(isr.getCardId());//身份证是否合法
if (!isValidate) {
return CommonResult.fail("身份证不合法");
}
String sex = CardUtils.getSexByIdCard(isr.getCardId());
if (!StringUtils.hasText(isr.getSex())) {
ws.setSex(sex);
} else {
ws.setSex(isr.getSex());
}
String birthday = CardUtils.getBirthdayByIdCard(isr.getCardId());
if (!StringUtils.hasText(isr.getBirthday())) {
ws.setBirthday(birthday);
} else {
ws.setBirthday(isr.getBirthday());
}
//endregion
ws.setSchool(isr.getSchool());
ws.setSchoolId(isr.getSchoolId());
ws.setCollege(isr.getCollege());
ws.setMajor(isr.getMajor());
ws.setClassstr(isr.getClassstr());
ws.setCollegeId(isr.getCollegeId());
ws.setMajorId(isr.getMajorId());
ws.setClassstrId(isr.getClassstrId());
ws.setExamNum(isr.getExamNum());
ws.setEduSystem(isr.getEduSystem());
ws.setGraduationSchool(isr.getGraduationSchool());
ws.setBatchValue(isr.getBatchValue());
ws.setPoliticalStatu(isr.getPoliticalStatu());
ws.setNationality(isr.getNationality());
ws.setPhone(isr.getPhone());
ws.setOprovince(isr.getOprovince());
ws.setOcity(isr.getOcity());
ws.setOdistrict(isr.getOdistrict());
ws.setOprovinceId(isr.getOprovinceId());
ws.setOcityId(isr.getOcityId());
ws.setOdistrictId(isr.getOdistrictId());
ws.setProvinceId(isr.getProvinceId());
ws.setCityId(isr.getCityId());
ws.setDistrictId(isr.getDistrictId());
ws.setProvince(isr.getProvince());
ws.setCity(isr.getCity());
ws.setDistrict(isr.getDistrict());
ws.setAddress(isr.getAddress());
ws.setTrafficMethod(isr.getTrafficMethod());
ws.setArrive(isr.getArrive());
ws.setArrvieDate(isr.getArrvieDate());
ws.setArriveTime(isr.getArriveTime());
ws.setArriveTimeId(isr.getArriveTimeId());
ws.setZipCode(isr.getZipCode());
ws.setRegisterOntime(isr.getRegisterOntime());
ws.setIdenType(1);
ws.setIsPay(0);
ws.setFillStatus("未填报");
//ws.setAmountPayable(isr.getAmountPayable());
//ws.setPayAmount(isr.getPayAmount());
//ws.setIsDrive(isr.getIsDrive());
//ws.setCarNumber(isr.getCarNumber());
//endregion
//region 家庭成员数据
List wfs = new ArrayList<>();
if (isr.getFvs() != null && isr.getFvs().size() > 0) {
for (InsertFamilyRequest family : isr.getFvs()) {
if (!(StringUtils.hasText(family.getFamilyShip()) && StringUtils.hasText(family.getName())
&& StringUtils.hasText(family.getWorkUnit()) && StringUtils.hasText(family.getPhone()))) {
return CommonResult.fail("家庭成员信息不能为空!");
}
WelcomeFamily wf = new WelcomeFamily();
wf.setStudentCard(ws.getCardId());
wf.setFamilyShip(family.getFamilyShip());
wf.setName(family.getName());
wf.setWorkUnit(family.getWorkUnit());
wf.setPhone(family.getPhone());
wfs.add(wf);
}
}
//endregion
// //region 陪同人员数据
// List was = new ArrayList<>();
// if (isr.getAvs() != null && isr.getAvs().size() > 0) {
// for (InsertAccompanyRequest accompany : isr.getAvs()) {
// if (!(StringUtils.hasText(accompany.getName()) && StringUtils.hasText(accompany.getPhone()))) {
// return CommonResult.fail("陪同人员信息不能为空!");
// }
// WelcomeAccompany wa = new WelcomeAccompany();
// wa.setStudentCard(ws.getCardId());
// wa.setName(accompany.getName());
// wa.setPhone(accompany.getPhone());
// was.add(wa);
// }
// }
//
// //endregion
//
// //region 宿舍信息
// WelcomeBed bedData = welcomeBedService.queryBedData(isr.getSchool(), isr.getBuildId(), isr.getDormitoryId(), Integer.valueOf(isr.getBed()));
// if (bedData != null) {
// if (StringUtils.hasText(bedData.getStudentCard())) {
// return CommonResult.fail("当前床位已被他人入住,无法入住");
// }
// bedData.setStudentCard(isr.getCardId());
// bedData.setCollege(isr.getCollege());
// bedData.setCollegeId(isr.getCollegeId());
// bedData.setMajor(isr.getMajor());
// bedData.setMajorId(isr.getMajorId());
// bedData.setClassstr(isr.getClassstr());
// bedData.setClassstrId(isr.getClassstrId());
// bedData.setIsCheck(1);
// bedData.setCardNum(isr.getAdmissNum());
// bedData.setName(isr.getName());
// }
//
// //endregion
try {
int studentId = welcomeStudentService.insertWelcomeStudent(ws);
if (studentId <= 0) {
logger.error("添加学生失败,参数:" + JSON.toJSON(isr));
throw new Exception("添加失败!");
}
if (wfs != null && wfs.size() > 0) {
boolean insertBatch = welcomeFamilyService.saveBatch(wfs);
if (!insertBatch) {
logger.error("添加家庭成员失败,参数:" + JSON.toJSON(wfs));
throw new Exception("添加失败!");
}
}
// if (was != null && was.size() > 0) {
// boolean insertBatch = welcomeAccompanyService.saveBatch(was);
// if (!insertBatch) {
// logger.error("添加陪同人员失败,参数:" + JSON.toJSON(was));
// throw new Exception("添加失败!");
// }
// }
//
// int insertStudentDormitory = welcomeBedService.updateWelcomeBed(bedData);
// if (insertStudentDormitory <= 0) {
// logger.error("添加学生床位信息失败,参数:" + JSON.toJSON(bedData));
// throw new Exception("添加失败!");
// }
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("添加失败!");
}
return CommonResult.ok("添加成功");
}
@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.setSchoolId(usr.getSchoolId());
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.setOprovince(usr.getOprovince());
student.setOcity(usr.getOcity());
student.setOdistrict(usr.getOdistrict());
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.setProvince(usr.getProvince());
student.setCity(usr.getCity());
student.setDistrict(usr.getDistrict());
student.setAddress(usr.getAddress());
student.setTrafficMethod(usr.getTrafficMethod());
student.setArrive(usr.getArrive());
student.setArrvieDate(usr.getArrvieDate());
student.setArriveTime(usr.getArriveTime());
student.setArriveTimeId(usr.getArriveTimeId());
student.setZipCode(usr.getZipCode());
student.setRegisterOntime(usr.getRegisterOntime());
student.setIdenType(1);
//ws.setAmountPayable(isr.getAmountPayable());
//ws.setPayAmount(isr.getPayAmount());
//ws.setIsDrive(isr.getIsDrive());
//ws.setCarNumber(isr.getCarNumber());
//endregion
//region 家庭成员数据
List wfs = new ArrayList<>();
if (usr.getFvs() != null && usr.getFvs().size() > 0) {
for (InsertFamilyRequest family : usr.getFvs()) {
if (!(StringUtils.hasText(family.getFamilyShip()) && StringUtils.hasText(family.getName())
&& StringUtils.hasText(family.getWorkUnit()) && StringUtils.hasText(family.getPhone()))) {
return CommonResult.fail("家庭成员信息不能为空!");
}
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 was = new ArrayList<>();
// if (usr.getAvs() != null && usr.getAvs().size() > 0) {
// for (InsertAccompanyRequest accompany : usr.getAvs()) {
// if (!(StringUtils.hasText(accompany.getName()) && StringUtils.hasText(accompany.getPhone()))) {
// return CommonResult.fail("陪同人员信息不能为空!");
// }
// WelcomeAccompany wa = new WelcomeAccompany();
// wa.setStudentCard(student.getCardId());
// wa.setName(accompany.getName());
// wa.setPhone(accompany.getPhone());
// was.add(wa);
// }
// }
//
// //endregion
//
// //region 宿舍信息
// List bedDatas = new ArrayList<>();
// WelcomeBed bedData = welcomeBedService.queryBedData(usr.getSchool(), usr.getBuildId(), usr.getDormitoryId(), Integer.valueOf(usr.getBed()));
// if (bedData != null) {//新床位
// if (StringUtils.hasText(bedData.getStudentCard()) && !bedData.getStudentCard().equals(student.getCardId())) {
// return CommonResult.fail("当前床位已被他人入住,无法入住");
// }
// if (!StringUtils.hasText(bedData.getStudentCard())) {
// bedData.setStudentCard(student.getCardId());
// bedData.setCollege(student.getCollege());
// bedData.setCollegeId(student.getCollegeId());
// bedData.setMajor(student.getMajor());
// bedData.setMajorId(student.getMajorId());
// bedData.setClassstr(student.getClassstr());
// bedData.setClassstrId(student.getClassstrId());
// bedData.setIsCheck(1);
// bedData.setCardNum(student.getAdmissNum());
// bedData.setName(student.getName());
//
// //把旧床位清空
// WelcomeBed obedData = welcomeBedService.getBedByCardId(student.getCardId());
// if (obedData == null) {
// obedData = new WelcomeBed();
// obedData.setStudentCard(null);
// obedData.setCollege(null);
// obedData.setCollegeId(null);
// obedData.setMajor(null);
// obedData.setMajorId(null);
// obedData.setClassstr(null);
// obedData.setClassstrId(null);
// obedData.setIsCheck(0);
// obedData.setCardNum(null);
// obedData.setName(null);
// bedDatas.add(obedData);
// }
// } else {
// bedData.setStudentCard(student.getCardId());
// bedData.setCollege(student.getCollege());
// bedData.setCollegeId(student.getCollegeId());
// bedData.setMajor(student.getMajor());
// bedData.setMajorId(student.getMajorId());
// bedData.setClassstr(student.getClassstr());
// bedData.setClassstrId(student.getClassstrId());
// bedData.setIsCheck(1);
// bedData.setCardNum(student.getAdmissNum());
// bedData.setName(student.getName());
// }
// bedDatas.add(bedData);
//
// }
//
// //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("编辑失败!");
// }
// }
//
// boolean updateBatch = welcomeBedService.updateBatchById(bedDatas);
// if (!updateBatch) {
// logger.error("添加宿舍信息失败,参数:" + JSON.toJSON(bedDatas));
// throw new Exception("添加失败!");
// }
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("编辑失败!");
}
return CommonResult.ok("编辑成功");
}
@Override
public CommonResult queryPageStudents(String userId, int currentPage, int pageCount, Integer collegeId, Integer majorId, Integer classstrId, String trafficMethod, String name) {
IPage pages = new Page<>();
PageUtils result = new PageUtils<>(pages);
WelcomeAccount wa = welcomeAccountService.getManageById(userId);
if (wa == null) {
return CommonResult.fail("当前账户已失效,无权限查看");
}
List collegeIds = Arrays.asList(wa.getCollegeId().split(","));
if (collegeId != null && collegeId.intValue() > 0) {
if (!collegeIds.contains(String.valueOf(collegeId))) {
pages.setCurrent(currentPage);
pages.setSize(pageCount);
return CommonResult.ok(result);
} else {
collegeIds = new ArrayList<>();
collegeIds.add(String.valueOf(collegeId));
}
}
result = welcomeStudentService.queryStudentPageList(currentPage, pageCount, collegeIds, majorId, classstrId, trafficMethod, name);
return CommonResult.ok(result);
}
@Override
public CommonResult queryStudentDetail(int id) {
StudentDetailVo result = new StudentDetailVo();
WelcomeStudent ws = welcomeStudentService.getManageById(id);
if (ws == null) {
return CommonResult.ok("学生信息已失效,查看失败!");
}
//家庭成员
List fvs = new ArrayList<>();
List familys = welcomeFamilyService.getManageByCardId(ws.getCardId());
if (familys != null && familys.size() > 0) {
for (WelcomeFamily wf : familys) {
FamilyVo fv = new FamilyVo();
fv.setId(wf.getId());
fv.setFamilyShip(wf.getFamilyShip());
fv.setName(wf.getName());
fv.setPhone(wf.getPhone());
fv.setWorkUnit(wf.getWorkUnit());
fvs.add(fv);
}
}
result.setFvs(fvs);
//陪同人员
List avs = new ArrayList<>();
List accompanys = welcomeAccompanyService.getManageByCardId(ws.getCardId());
if (accompanys != null && accompanys.size() > 0) {
for (WelcomeAccompany ac : accompanys) {
AccompanyVo av = new AccompanyVo();
av.setId(ac.getId());
av.setName(ac.getName());
av.setPhone(ac.getPhone());
avs.add(av);
}
}
result.setAvs(avs);
//宿舍信息
WelcomeBed wsd = welcomeBedService.getBedByCardId(ws.getCardId());
if (wsd != null) {
result.setBuild(wsd.getBuild());
result.setBuildId(wsd.getBuildId());
result.setDormitory(wsd.getDormitory());//寝室号
result.setDormitoryId(wsd.getDormitoryId());//寝室号
result.setBed(String.valueOf(wsd.getNumber()));//床位号
result.setBedId(wsd.getId());//床位号
}
//时间段
List atvs = new ArrayList<>();
List wass = welcomeArriveSettingService.queryCheckDatas();
if (wass != null && wass.size() > 0) {
for (WelcomeArriveSetting was : wass) {
ArriveTimeVo atv = new ArriveTimeVo();
atv.setId(was.getId());
atv.setStartTime(was.getStartTime());
atv.setEndTime(was.getEndTime());
atv.setTimeStr(was.getStartTime() + "-" + was.getEndTime());
atv.setIsCheck((ws.getArriveTimeId() != null && was.getId().equals(ws.getArriveTimeId())) ? 1 : 0);
atvs.add(atv);
}
}
result.setAtvs(atvs);
result.setId(ws.getId());
result.setSchool(ws.getSchool());
result.setSchoolId(ws.getSchoolId());
result.setAdmissNum(ws.getAdmissNum());
result.setName(ws.getName());
result.setPicture(ws.getPicture());
result.setCardId(ws.getCardId());
result.setSex(ws.getSex());
result.setBirthday(ws.getBirthday());
result.setCollege(ws.getCollege());
result.setMajor(ws.getMajor());
result.setClassstr(ws.getClassstr());
result.setCollegeId(ws.getCollegeId());
result.setMajorId(ws.getMajorId());
result.setClassstrId(ws.getClassstrId());
result.setExamNum(ws.getExamNum());
result.setEduSystem(ws.getEduSystem());
result.setGraduationSchool(ws.getGraduationSchool());
result.setBatchValue(ws.getBatchValue());
result.setPoliticalStatu(ws.getPoliticalStatu());
result.setNationality(ws.getNationality());
result.setPhone(ws.getPhone());
result.setOprovinceId(ws.getOprovinceId());
result.setOprovince(ws.getOprovince());
result.setOcityId(ws.getOcityId());
result.setOcity(ws.getOcity());
result.setOdistrictId(ws.getOdistrictId());
result.setOdistrict(ws.getOdistrict());
result.setProvinceId(ws.getProvinceId());
result.setProvince(ws.getProvince());
result.setCityId(ws.getCityId());
result.setCity(ws.getCity());
result.setDistrictId(ws.getDistrictId());
result.setDistrict(ws.getDistrict());
result.setAddress(ws.getAddress());
result.setRegisterOntime(ws.getRegisterOntime());
result.setZipCode(ws.getZipCode());
result.setTrafficMethod(ws.getTrafficMethod());
result.setArrive(ws.getArrive());
result.setArrvieDate(ws.getArrvieDate());
result.setArriveTime(ws.getArriveTime());
result.setArriveTimeId(ws.getArriveTimeId());
result.setAmountPayable(ws.getAmountPayable());
result.setPayAmount(ws.getPayAmount());
result.setIsDrive(ws.getIsDrive());
result.setCarNumber(ws.getCarNumber());
return CommonResult.ok(result);
}
@Override
@Transactional(rollbackFor = {Exception.class})
public CommonResult infoCollection(InfoCollectionRequest icr, BindingResult bindingResult) throws Exception {
logger.info("采集学生信息失败,icr参数:" + JSON.toJSON(icr));
if (bindingResult.hasErrors()) {
String st = paramUtils.getParamError(bindingResult);
return CommonResult.fail(st);
}
WelcomeStudent ws = welcomeStudentService.getDataByIdcardOrNum(icr.getAdmissNum(), icr.getCardId());
if (ws == null) {
ws = new WelcomeStudent();
}
ws.setSchool(icr.getSchool());
ws.setAdmissNum(icr.getAdmissNum());
ws.setName(icr.getName());
ws.setPicture(icr.getPicture());
//ws.setCardId(icr.getCardId());
ws.setSex(icr.getSex());
ws.setBirthday(icr.getBirthday());
ws.setCollegeId(icr.getCollegeId());
ws.setMajorId(icr.getMajorId());
ws.setClassstrId(icr.getClassstrId());
ws.setExamNum(icr.getExamNum());
ws.setEduSystem(icr.getEduSystem());
ws.setGraduationSchool(icr.getGraduationSchool());
ws.setBatchValue(icr.getBatchValue());
ws.setPoliticalStatu(icr.getPoliticalStatu());
ws.setNationality(icr.getNationality());
ws.setPhone(icr.getPhone());
ws.setOprovinceId(icr.getOprovinceId());
ws.setOprovince(icr.getOprovince());
ws.setOcityId(icr.getOcityId());
ws.setOcity(icr.getOcity());
ws.setOdistrictId(icr.getOdistrictId());
ws.setOdistrict(icr.getOdistrict());
ws.setProvinceId(icr.getProvinceId());
ws.setProvince(icr.getProvince());
ws.setCityId(icr.getCityId());
ws.setCity(icr.getCity());
ws.setDistrictId(icr.getDistrictId());
ws.setDistrict(icr.getDistrict());
ws.setAddress(icr.getAddress());
ws.setRegisterOntime(icr.getRegisterOntime());
ws.setZipCode(icr.getZipCode());
ws.setTrafficMethod(icr.getTrafficMethod());
ws.setArrive(icr.getArrive());
ws.setArrvieDate(icr.getArrvieDate());
ws.setArriveTime(icr.getArriveTime());
ws.setArriveTimeId(icr.getArriveTimeId());
ws.setFillStatus("已填报");
//家庭成员
List wfs = new ArrayList<>();
if (icr.getFvs() != null && icr.getFvs().size() > 0) {
for (FamilyVo fv : icr.getFvs()) {
if (!(StringUtils.hasText(fv.getName()) && StringUtils.hasText(fv.getPhone()) && StringUtils.hasText(fv.getWorkUnit()) && StringUtils.hasText(fv.getFamilyShip()))) {
return CommonResult.fail("家庭成员信息不能为空!");
}
WelcomeFamily wf = new WelcomeFamily();
wf.setName(fv.getName());
wf.setPhone(fv.getPhone());
wf.setWorkUnit(fv.getWorkUnit());
wf.setFamilyShip(fv.getFamilyShip());
wf.setStudentCard(ws.getCardId());
wfs.add(wf);
}
}
//陪同人员
List was = new ArrayList<>();
if (icr.getAvs() != null && icr.getAvs().size() > 0) {
for (AccompanyVo av : icr.getAvs()) {
if (!(StringUtils.hasText(av.getName()) && StringUtils.hasText(av.getPhone()))) {
return CommonResult.fail("家庭成员信息不能为空!");
}
WelcomeAccompany wa = new WelcomeAccompany();
wa.setName(av.getName());
wa.setPhone(av.getPhone());
wa.setStudentCard(ws.getCardId());
was.add(wa);
}
}
if (!(ws.getIsPay() != null && ws.getIsPay().intValue() == 1)) {
System.out.println("进支付比较");
List payInfos = WelcomePayController.queryStudentPayInfo(ws.getAdmissNum(), TimeExchange.getYear());
BigDecimal payAmount = new BigDecimal(BigInteger.ZERO);//实缴金额
BigDecimal yjPayAmount = new BigDecimal(BigInteger.ZERO);//应缴金额
for (JsonPayVo pi : payInfos) {
payAmount = payAmount.add(pi.getSJJE());
yjPayAmount = yjPayAmount.add(pi.getYJJE());
}
ws.setPayAmount(payAmount);
ws.setAmountPayable(yjPayAmount);
System.out.println("进支付比较1" + JSON.toJSON(payInfos));
if (payInfos != null && payInfos.size() > 0) {
System.out.println("进支付比较2");
List paySettings = welcomePaySettingService.queryPaySettings(ws.getSchool());
System.out.println("进支付比较3" + JSON.toJSON(paySettings));
if (paySettings != null && paySettings.size() > 0) {
System.out.println("进支付比较4");
for (WelcomePaySetting pay : paySettings) {
System.out.println("进支付比较5");
BigDecimal money = pay.getPayAmount();
if (pay.getMethod().equals("全部")) {
BigDecimal totalSj = new BigDecimal(BigInteger.ZERO);
for (JsonPayVo jpv : payInfos) {
totalSj = totalSj.add(jpv.getSJJE());
}
if (totalSj.compareTo(money) >= 0) {
ws.setIsPay(1);
}
}
Optional ojpv = payInfos.stream().filter(e -> e.getSFXMMC().equals(pay.getMethod())).findFirst();
if (ojpv != null && ojpv.isPresent()) {
if (ojpv.get().getSJJE().compareTo(money) >= 0) {
ws.setIsPay(1);
}
}
}
} else {
ws.setIsPay(0);
}
} else {
ws.setIsPay(0);
}
}
if(ws.getIsPay() == null){
ws.setIsPay(0);
}
try {
System.out.println("信息采集1");
if (ws.getId() != null) {
int update = welcomeStudentService.updateWelcomeStudent(ws);
if (update < 0) {
System.out.println("信息采集1.1");
logger.error("采集学生信息失败,ws参数:" + JSON.toJSON(ws));
throw new Exception("采集学生信息失败!");
//return CommonResult.fail("采集学生信息失败1");
}
} else {
int insert = welcomeStudentService.insertWelcomeStudent(ws);
if (insert < 0) {
System.out.println("信息采集1.2");
logger.error("采集学生信息失败,ws参数:" + JSON.toJSON(ws));
throw new Exception("采集学生信息失败!");
//return CommonResult.fail("采集学生信息失败1");
}
}
System.out.println("信息采集2");
if (wfs != null && wfs.size() > 0) {
int deleteF = welcomeFamilyService.deleteWelcomeFamilyByCard(ws.getCardId());
boolean resultWf = welcomeFamilyService.saveBatch(wfs);
System.out.println("信息采集1.3");
if (!resultWf) {
System.out.println("信息采集1.4");
logger.error("采集学生信息失败,wfs参数:" + JSON.toJSON(wfs));
throw new Exception("采集学生信息失败!");
//return CommonResult.fail("采集学生信息失败2");
}
}
System.out.println("信息采集3");
if (was != null && was.size() > 0) {
int deleteF = welcomeAccompanyService.deleteWelcomeAccompanyByCard(ws.getCardId());
boolean resultWa = welcomeAccompanyService.saveBatch(was);
System.out.println("信息采集1.5");
if (!resultWa) {
System.out.println("信息采集1.6");
logger.error("采集学生信息失败,was参数:" + JSON.toJSON(was));
throw new Exception("采集学生信息失败!");
//return CommonResult.fail("采集学生信息失败3");
}
}
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("采集失败!");
//return CommonResult.fail("采集学生信息失败4");
}
System.out.println("信息采集1.7");
return CommonResult.ok("采集完成!");
}
@Override
@Transactional(rollbackFor = {Exception.class})
public CommonResult deleteStudentInfo(int id) throws Exception {
System.out.println("删除了学生信息:" + id);
WelcomeStudent ws = welcomeStudentService.getManageById(id);
if (ws == null) {
return CommonResult.fail("学生信息已失效,无法进行删除操作!");
}
//把旧床位清空
WelcomeBed obedData = welcomeBedService.getBedByCardId(ws.getCardId());
// if (obedData != null) {
// obedData.setStudentCard(null);
// obedData.setIsCheck(0);
// obedData.setCardNum(null);
// obedData.setName(null);
// }
try {
//删除学生数据
int deleteStudent = welcomeStudentService.deleteWelcomeStudentById(id);
if (deleteStudent <= 0) {
logger.error("删除学生信息失败,id参数:" + JSON.toJSON(id));
throw new Exception("删除学生信息失败!");
}
if (obedData != null) {
//删除宿舍数据
// int deleteSd = welcomeBedService.updateWelcomeBed(obedData);
// if (deleteSd < 0) {
// logger.error("删除宿舍失败,obedData参数:" + JSON.toJSON(obedData));
// throw new Exception("删除学生信息失败!");
// }
welcomeBedService.updateData(obedData.getId());
// 修改寝室信息
WelcomeDormitory welcomeDormitory = welcomeDormitoryService.getById(obedData.getDormitoryId());
if (ObjectUtils.isNotEmpty(welcomeDormitory)) {
Integer freeBedNumber = welcomeDormitory.getFreeBedNumber();
Integer bedNumber = welcomeDormitory.getBedNumber();
freeBedNumber = freeBedNumber + 1;
if (bedNumber.equals(freeBedNumber)) {
welcomeDormitory.setFreeBedNumber(freeBedNumber);
welcomeDormitory.setStatus(1);
} else if (bedNumber > freeBedNumber) {
welcomeDormitory.setFreeBedNumber(freeBedNumber);
welcomeDormitory.setStatus(3);
}
welcomeDormitoryService.updateById(welcomeDormitory);
}
}
//删除同行人员
int deleteWa = welcomeAccompanyService.deleteWelcomeAccompanyByCard(ws.getCardId());
//删除家庭成员
int deletef = welcomeFamilyService.deleteWelcomeFamilyByCard(ws.getCardId());
} 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 result = new ArrayList<>();
//xls格式文件
if (ContentType.equals(eFileType.Xls.getValue())) {
CommonResult> resultData = readXls(inputStream);
if (!resultData.isSuccess()) {
return resultData;
}
result = resultData.getData();
} else if (ContentType.equals(eFileType.Xlsx.getValue())) {
CommonResult> resultData = readXlsx(inputStream);
if (!resultData.isSuccess()) {
return resultData;
}
result = resultData.getData();
} else {
return CommonResult.fail("学生信息数据导入只支持Xls或Xlsx格式文件");
}
StringBuilder sb = new StringBuilder();
List cardIds = result.stream().map(WelcomeStudent::getCardId).collect(Collectors.toList());
List existStudents = welcomeStudentService.queryStudentByCardId(cardIds);
if (existStudents != null && existStudents.size() > 0) {
for (WelcomeStudent ws : result) {
Optional ows = existStudents.stream().filter(e -> e.getCardId().equals(ws.getCardId())).findFirst();
if (ows != null && ows.isPresent()) {
sb.append(ows.get().getName() + ows.get().getCardId() + "数据在数据库中已存在;");
ws.setId(ows.get().getId());
ws.setAdmissNum(ws.getAdmissNum());//录取号
ws.setName(ws.getName());//姓名
ws.setCardId(ws.getCardId());//身份证号
ws.setSchool(ws.getSchool());//校区
ws.setSchoolId(eSchool.stringOf(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());
ws.setIsPay(0);
}
}
}
boolean resultBool = welcomeStudentService.saveOrUpdateBatch(result);
System.out.println("导入学生1");
return resultBool ? CommonResult.ok("导入成功:" + sb.toString()) : CommonResult.fail("导入失败");
}
/**
* xls文件读取方法
*
* @param inputStream
* @return
* @throws IOException
* @throws ParseException
*/
private CommonResult> readXls(InputStream inputStream) throws IOException, ParseException {
List result = new ArrayList<>();
HSSFWorkbook sheets = new HSSFWorkbook(inputStream);
List ws = welcomeOrgService.list(null);
List 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.contains("籍贯")) {
return CommonResult.fail("导入数据第十六列为籍贯");
}
String addressPlace = dataFormatter.formatCellValue(row.getCell(16));//家庭住址
if (!addressPlace.contains("家庭住址")) {
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));//录取号
if (!StringUtils.hasText(assNum)) {
break;
}
studentData.setAdmissNum(assNum);
String name = dataFormatter.formatCellValue(row.getCell(2));//姓名
studentData.setName(name);
String cardId = dataFormatter.formatCellValue(row.getCell(3));//身份证号
//region 校验身份证号 并根据身份证号获取出生年月和性别
boolean isValidate = CardUtils.validateIdCard(cardId);//身份证是否合法
if (!isValidate) {
return CommonResult.fail("录取编号为" + assNum + "的身份证不合法");
}
String sex = CardUtils.getSexByIdCard(cardId);
if (sex != null) {
studentData.setSex(sex);
}
String birthday = CardUtils.getBirthdayByIdCard(cardId);
if (birthday != null) {
studentData.setBirthday(birthday);
}
//endregion
studentData.setCardId(cardId);
String school = dataFormatter.formatCellValue(row.getCell(4));//校区
studentData.setSchool(school);
studentData.setSchoolId(eSchool.stringOf(school));
//region 院系专业
String college = dataFormatter.formatCellValue(row.getCell(5));//院系
Optional 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 omwo = ws.stream().filter(e -> owo != null && owo.isPresent() && e.getParentId().intValue() == owo.get().getId().intValue() && 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 ocwo = ws.stream().filter(e -> omwo != null && omwo.isPresent() && e.getParentId().intValue() == omwo.get().getId().intValue() && 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 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 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 oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressDatas[1]) && addressDatas[2].contains(e.getDistrictZh())).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 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 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 oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressPlaces[1]) && addressPlaces[2].contains(e.getDistrictZh())).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);
studentData.setIdenType(1);
studentData.setFillStatus("未填报");
result.add(studentData);
}
}
}
} catch (Exception e) {
return CommonResult.fail("请按模板格式导入数据");
}
return CommonResult.ok(result);
}
/**
* xls文件读取方法
*
* @param inputStream
* @return
* @throws IOException
* @throws ParseException
*/
private CommonResult> readXlsx(InputStream inputStream) throws IOException, ParseException {
List result = new ArrayList<>();
XSSFWorkbook sheets = new XSSFWorkbook(inputStream);
List ws = welcomeOrgService.list(null);
List 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.contains("籍贯")) {
return CommonResult.fail("导入数据第十六列为籍贯");
}
String addressPlace = dataFormatter.formatCellValue(row.getCell(16));//家庭住址
if (!addressPlace.contains("家庭住址")) {
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));//录取号
if (!StringUtils.hasText(assNum)) {
break;
}
studentData.setAdmissNum(assNum);
String name = dataFormatter.formatCellValue(row.getCell(2));//姓名
studentData.setName(name);
String cardId = dataFormatter.formatCellValue(row.getCell(3));//身份证号
//region 校验身份证号 并根据身份证号获取出生年月和性别
boolean isValidate = CardUtils.validateIdCard(cardId);//身份证是否合法
if (!isValidate) {
return CommonResult.fail("录取编号为" + assNum + "的身份证不合法");
}
String sex = CardUtils.getSexByIdCard(cardId);
if (sex != null) {
studentData.setSex(sex);
}
String birthday = CardUtils.getBirthdayByIdCard(cardId);
if (birthday != null) {
studentData.setBirthday(birthday);
}
//endregion
studentData.setCardId(cardId);
String school = dataFormatter.formatCellValue(row.getCell(4));//校区
studentData.setSchool(school);
studentData.setSchoolId(eSchool.stringOf(school));
//region 院系专业
String college = dataFormatter.formatCellValue(row.getCell(5));//院系
Optional 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 omwo = ws.stream().filter(e -> owo != null && owo.isPresent() && e.getParentId().intValue() == owo.get().getId().intValue() && 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 ocwo = ws.stream().filter(e -> omwo != null && omwo.isPresent() && e.getParentId().intValue() == omwo.get().getId().intValue() && 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 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 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 oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressDatas[1]) && addressDatas[2].contains(e.getDistrictZh())).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 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 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 oProvince = citys.stream().filter(e -> e.getCityZh().equals(addressPlaces[1]) && addressPlaces[2].contains(e.getDistrictZh())).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);
studentData.setIdenType(1);
studentData.setFillStatus("未填报");
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/welcome/homeimage/学生信息管理.xlsx");
}
@Override
public void welcomeStudentExport(String userId, HttpServletResponse response, Integer collegeId, Integer majorId, Integer classstrId, String trafficMethod, String name) {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("学生信息");
WelcomeAccount wa = welcomeAccountService.getManageById(userId);
if (wa == null) {
System.out.println("当前账户已失效,无权限查看");
ExcelUtils.excelDownload(workbook, "学生信息.xlsx", response);
}
List collegeIds = Arrays.asList(wa.getCollegeId().split(","));
if (collegeId != null && collegeId.intValue() > 0) {
if (!collegeIds.contains(String.valueOf(collegeId))) {
ExcelUtils.excelDownload(workbook, "学生信息.xlsx", response);
} else {
collegeIds = new ArrayList<>();
collegeIds.add(String.valueOf(collegeId));
}
}
List result = welcomeStudentService.queryStudentList(collegeIds, majorId, classstrId, trafficMethod, name);
//导出
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);
}
@Override
public CommonResult studentOverview() {
// 录取总数
// LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
// queryWrapper.eq(WelcomeStudent::getIdenType,1);
int enrollmentTotal = 6352;//welcomeStudentService.count(queryWrapper);
// 缴费人数
int payCount = welcomeStudentService.payCount();
// 已入住寝室数
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WelcomeBed::getIsCheck, 1)
.eq(WelcomeBed::getRetentionState, 1);
int checkInBedTotal = welcomeBedService.count(wrapper);
// 报到率
// BigDecimal total = new BigDecimal(enrollmentTotal);
// BigDecimal bedTotal = new BigDecimal(checkInBedTotal);
// BigDecimal bigDecimal = bedTotal.divide(total).setScale(4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
Double result = ((double) checkInBedTotal / enrollmentTotal) * 100;
String registrationRate = String.format("%.2f", result);
LocalDateTime start = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
LocalDateTime end = start.plusDays(1);
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String startTime = start.format(dateTimeFormatter1);
String endTime = end.format(dateTimeFormatter1);
Integer mVisitorTotal = welcomeVisitorService.countTotal(startTime, endTime, 1);
Integer hVisitorTotal = welcomeVisitorService.countTotal(startTime, endTime, 2);
List wss = welcomeSettingService.list(null);
// 墨轩湖总车辆数
Integer mCarTotal = wss != null && wss.size() > 0 ? (wss.get(0).getMxhCarNum() == null ? 0 : wss.get(0).getMxhCarNum()) : 0;
// 黄家湖总车辆数
Integer hCarTotal = wss != null && wss.size() > 0 ? (wss.get(0).getHjhCarNum() == null ? 0 : wss.get(0).getHjhCarNum()) : 0;
StudentOverviewVo vo = new StudentOverviewVo();
vo.setEnrollmentTotal(enrollmentTotal);
vo.setPayCount(payCount);
vo.setCheckInBedTotal(checkInBedTotal);
vo.setRegistrationRate(registrationRate);
vo.setHCarTotal(hCarTotal - hVisitorTotal);
vo.setHVisitorTotal(hVisitorTotal);
vo.setMCarTotal(mCarTotal - mVisitorTotal);
vo.setMVisitorTotal(mVisitorTotal);
return CommonResult.ok(vo);
}
@Override
public CommonResult studentRegister() {
// 获取总数
Integer count = welcomeStudentService.totalCount();
List vos = welcomeStudentService.studentRegister();
StudentRegisterVo vo = new StudentRegisterVo();
vo.setCollegeName("报到总数");
vo.setCount(count);
vos.add(vo);
return CommonResult.ok(vos);
}
@Override
public CommonResult studentTraffic() {
List vos = welcomeStudentService.studentTraffic();
return CommonResult.ok(vos);
}
@Override
public CommonResult studentSexRatio() {
Integer manCount = welcomeStudentService.genderCount("男");
Integer girlCount = welcomeStudentService.genderCount("女");
StudentSexRatioVo vo = new StudentSexRatioVo();
vo.setCollegeName("全部");
vo.setManCount(manCount);
vo.setGirlCount(girlCount);
List vos = welcomeStudentService.studentSexRatio();
vos.add(vo);
return CommonResult.ok(vos);
}
@Override
public CommonResult studentStay() {
ArrayList vos = new ArrayList<>();
List list = welcomeSchoolService.list(new QueryWrapper<>());
for (WelcomeSchool welcomeSchool : list) {
Integer schoolId = welcomeSchool.getId();
List builds = welcomeBuildService.getBuild(schoolId);
for (WelcomeBuild build : builds) {
Integer buildId = build.getId();
StudentStayVo vo = welcomeDormitoryService.getTotalCount(buildId);
vo.setSchoolName(welcomeSchool.getSchool());
vo.setBuildName(build.getBuild());
vos.add(vo);
}
}
return CommonResult.ok(vos);
}
@Override
public CommonResult queryStudentByToken(String userId) {
WelcomeStudent student = welcomeStudentService.getManageById(Integer.valueOf(userId));
if (student == null) {
return CommonResult.fail("558", "学生信息已失效,查询失败");
}
//家庭成员
List fvs = new ArrayList<>();
List familys = welcomeFamilyService.getManageByCardId(student.getCardId());
if (familys != null && familys.size() > 0) {
for (WelcomeFamily wf : familys) {
FamilyVo fv = new FamilyVo();
fv.setId(wf.getId());
fv.setFamilyShip(wf.getFamilyShip());
fv.setName(wf.getName());
fv.setPhone(wf.getPhone());
fv.setWorkUnit(wf.getWorkUnit());
fvs.add(fv);
}
}
student.setFvs(fvs);
//陪同人员
List avs = new ArrayList<>();
List accompanys = welcomeAccompanyService.getManageByCardId(student.getCardId());
if (accompanys != null && accompanys.size() > 0) {
for (WelcomeAccompany ac : accompanys) {
AccompanyVo av = new AccompanyVo();
av.setId(ac.getId());
av.setName(ac.getName());
av.setPhone(ac.getPhone());
avs.add(av);
}
}
student.setAvs(avs);
//时间段
List atvs = new ArrayList<>();
List wass = welcomeArriveSettingService.queryCheckDatas();
if (wass != null && wass.size() > 0) {
for (WelcomeArriveSetting was : wass) {
ArriveTimeVo atv = new ArriveTimeVo();
atv.setId(was.getId());
atv.setStartTime(was.getStartTime());
atv.setEndTime(was.getEndTime());
atv.setTimeStr(was.getStartTime() + "-" + was.getEndTime());
atv.setIsCheck((student.getArriveTimeId() != null && was.getId().equals(student.getArriveTimeId())) ? 1 : 0);
atvs.add(atv);
}
}
student.setAtvs(atvs);
if (!(student.getIsPay() != null && student.getIsPay().intValue() == 1)) {
List payInfos = WelcomePayController.queryStudentPayInfo(student.getAdmissNum(), TimeExchange.getYear());
BigDecimal payAmount = new BigDecimal(BigInteger.ZERO);//实缴金额
BigDecimal yjPayAmount = new BigDecimal(BigInteger.ZERO);//应缴金额
for (JsonPayVo pi : payInfos) {
payAmount = payAmount.add(pi.getSJJE());
yjPayAmount = yjPayAmount.add(pi.getYJJE());
}
student.setPayAmount(payAmount);
student.setAmountPayable(yjPayAmount);
if (payInfos != null && payInfos.size() > 0) {
List paySettings = welcomePaySettingService.queryPaySettings(student.getSchool());
if (paySettings != null && paySettings.size() > 0) {
for (WelcomePaySetting pay : paySettings) {
BigDecimal money = pay.getPayAmount();
if (pay.getMethod().equals("全部")) {
BigDecimal totalSj = new BigDecimal(BigInteger.ZERO);
for (JsonPayVo jpv : payInfos) {
totalSj = totalSj.add(jpv.getSJJE());
}
if (totalSj.compareTo(money) >= 0) {
student.setIsPay(1);
}
}
Optional ojpv = payInfos.stream().filter(e -> e.getSFXMMC().equals(pay.getMethod())).findFirst();
if (ojpv != null && ojpv.isPresent()) {
if (ojpv.get().getSJJE().compareTo(money) >= 0) {
student.setIsPay(1);
}
}
}
} else {
student.setIsPay(0);
}
} else {
student.setIsPay(0);
}
if (payInfos != null && payInfos.size() > 0) {
int update = welcomeStudentService.updateWelcomeStudent(student);
if (update < 0) {
logger.error("获取支付信息导致学校信息查询失败");
return CommonResult.fail("查询失败");
}
}
}
if(student.getIsPay() == null){
student.setIsPay(0);
}
long expired = 1000 * 60 * 60 * 24 * 365;
TokenDateVo token = JWTUtil.getToken(student.getCardId(), student.getId(), expired);
student.setToken(token.getToken());
return CommonResult.ok(student);
}
@Override
public CommonResult queryStudentInfo(String admissNum) {
WelcomeStudent ws = welcomeStudentService.getDataByNum(admissNum);
if (ws == null) {
return CommonResult.fail("558", "当前学生信息已失效,查询失败");
}
//家庭成员
List fvs = new ArrayList<>();
List familys = welcomeFamilyService.getManageByCardId(ws.getCardId());
if (familys != null && familys.size() > 0) {
for (WelcomeFamily wf : familys) {
FamilyVo fv = new FamilyVo();
fv.setId(wf.getId());
fv.setFamilyShip(wf.getFamilyShip());
fv.setName(wf.getName());
fv.setPhone(wf.getPhone());
fv.setWorkUnit(wf.getWorkUnit());
fvs.add(fv);
}
}
ws.setFvs(fvs);
//陪同人员
List avs = new ArrayList<>();
List accompanys = welcomeAccompanyService.getManageByCardId(ws.getCardId());
if (accompanys != null && accompanys.size() > 0) {
for (WelcomeAccompany ac : accompanys) {
AccompanyVo av = new AccompanyVo();
av.setId(ac.getId());
av.setName(ac.getName());
av.setPhone(ac.getPhone());
avs.add(av);
}
}
ws.setAvs(avs);
//时间段
List atvs = new ArrayList<>();
List wass = welcomeArriveSettingService.queryCheckDatas();
if (wass != null && wass.size() > 0) {
for (WelcomeArriveSetting was : wass) {
ArriveTimeVo atv = new ArriveTimeVo();
atv.setId(was.getId());
atv.setStartTime(was.getStartTime());
atv.setEndTime(was.getEndTime());
atv.setTimeStr(was.getStartTime() + "-" + was.getEndTime());
atv.setIsCheck((ws.getArriveTimeId() != null && was.getId().equals(ws.getArriveTimeId())) ? 1 : 0);
atvs.add(atv);
}
}
ws.setAtvs(atvs);
List pdvs = new ArrayList<>();
System.out.println("进支付比较");
List payInfos = WelcomePayController.queryStudentPayInfo(ws.getAdmissNum(), TimeExchange.getYear());
BigDecimal payAmount = new BigDecimal(BigInteger.ZERO);//实缴金额
BigDecimal yjPayAmount = new BigDecimal(BigInteger.ZERO);//应缴金额
for (JsonPayVo pi : payInfos) {
payAmount = payAmount.add(pi.getSJJE());
yjPayAmount = yjPayAmount.add(pi.getYJJE());
PayDetailVO pdv = new PayDetailVO();
pdv.setPayName(pi.getSFXMMC());
pdv.setYJJE(pi.getYJJE());
pdv.setSJJE(pi.getSJJE());
pdvs.add(pdv);
}
ws.setPayAmount(payAmount);
ws.setAmountPayable(yjPayAmount);
System.out.println("进支付比较1" + JSON.toJSON(payInfos));
if (payInfos != null && payInfos.size() > 0) {
System.out.println("进支付比较2");
List paySettings = welcomePaySettingService.queryPaySettings(ws.getSchool());
System.out.println("进支付比较3" + JSON.toJSON(paySettings));
if (paySettings != null && paySettings.size() > 0) {
System.out.println("进支付比较4");
for (WelcomePaySetting pay : paySettings) {
System.out.println("进支付比较5");
BigDecimal money = pay.getPayAmount();
if (pay.getMethod().equals("全部")) {
BigDecimal totalSj = new BigDecimal(BigInteger.ZERO);
for (JsonPayVo jpv : payInfos) {
totalSj = totalSj.add(jpv.getSJJE());
}
if (totalSj.compareTo(money) >= 0) {
ws.setIsPay(1);
}
}
Optional ojpv = payInfos.stream().filter(e -> e.getSFXMMC().equals(pay.getMethod())).findFirst();
if (ojpv != null && ojpv.isPresent()) {
if (ojpv.get().getSJJE().compareTo(money) >= 0) {
ws.setIsPay(1);
}
}
}
} else {
ws.setIsPay(0);
}
} else {
ws.setIsPay(0);
}
if(ws.getIsPay() == null){
ws.setIsPay(0);
}
if (!(ws.getIsPay() != null && ws.getIsPay().intValue() == 1)) {
int updateResult = welcomeStudentService.updateWelcomeStudent(ws);
if (updateResult < 0) {
return CommonResult.fail("查询支付信息失败");
}
}
PayInfoVO result = new PayInfoVO();
result.setId(ws.getId());
result.setName(ws.getName());
result.setAdmissNum(ws.getAdmissNum());
result.setIsPay(ws.getIsPay());
result.setPays(pdvs);
return CommonResult.ok(result);
}
}