| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- package com.xjrsoft.module.job;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.xjrsoft.common.enums.DeleteMark;
- import com.xjrsoft.common.enums.EnabledMark;
- import com.xjrsoft.common.enums.EnrollTypeEnum;
- import com.xjrsoft.common.enums.GenderDictionaryEnum;
- import com.xjrsoft.common.enums.StudentTypeEnum;
- import com.xjrsoft.common.enums.StudyStatusEnum;
- import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
- import com.xjrsoft.module.base.entity.BaseGrade;
- import com.xjrsoft.module.base.entity.BaseMajorSet;
- import com.xjrsoft.module.base.service.IBaseGradeService;
- import com.xjrsoft.module.base.service.IBaseMajorSetService;
- import com.xjrsoft.module.student.entity.BaseNewStudent;
- import com.xjrsoft.module.student.entity.EnrollmentPlan;
- import com.xjrsoft.module.student.entity.PbCseFeeobjupdate;
- import com.xjrsoft.module.student.service.IBaseNewStudentService;
- import com.xjrsoft.module.student.service.IEnrollmentPlanService;
- import com.xjrsoft.module.student.service.IPbCseFeeobjupdateService;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.stereotype.Component;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import java.util.stream.Collectors;
- /**
- * 从攀宝招生数据中同步新生数据
- *
- * @author dzx
- * @date 2025/3/4
- */
- @Component
- @Slf4j
- public class BaseNewStudentTask {
- // @Autowired
- // private IBaseNewStudentService newStudentService;
- //
- // @Autowired
- // private IPbCseFeeobjupdateService cseFeeobjupdateService;
- //
- // @Autowired
- // private IEnrollmentPlanService planService;
- //
- // @Autowired
- // private IBaseGradeService gradeService;
- //
- // @Autowired
- // private IBaseMajorSetService majorSetService;
- // @Async
- // @Scheduled(cron = "0 */15 * * * ?")
- // public void execute() {
- // doExecute();
- // }
- public void doExecute(IBaseNewStudentService newStudentService, IPbCseFeeobjupdateService cseFeeobjupdateService,
- IEnrollmentPlanService planService, IBaseGradeService gradeService, IBaseMajorSetService majorSetService) {
- List<PbCseFeeobjupdate> dataList = cseFeeobjupdateService.list();
- String sql = "select distinct enteryear, userdef6 from pb_cse_feeobjupdate";
- List<Map<String, Object>> gradeList = SqlRunnerAdapter.db().selectList(sql);
- List<EnrollmentPlan> planDataList = planService.list(
- new QueryWrapper<EnrollmentPlan>().lambda()
- .eq(EnrollmentPlan::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(EnrollmentPlan::getEnabledMark, EnabledMark.ENABLED.getCode())
- );
- Map<String, Long> planDataMap = planDataList.stream().collect(Collectors.toMap(x -> x.getEnrollType() + x.getGradeId(), EnrollmentPlan::getId));
- Map<String, Long> planMap = new HashMap<>();
- //插入招生计划数据
- gradeList.forEach((x) -> {
- EnrollmentPlan plan = new EnrollmentPlan();
- plan.setCreateDate(new Date());
- plan.setEnabledMark(EnabledMark.ENABLED.getCode());
- plan.setDeleteMark(DeleteMark.NODELETE.getCode());
- if(x.get("userdef6")==null){
- return;
- }
- if ("1".equals(x.get("userdef6").toString())) {
- plan.setEnrollType(EnrollTypeEnum.SPRING_ENROLLMENT.getCode());
- } else if ("2".equals(x.get("userdef6").toString())) {
- plan.setEnrollType(EnrollTypeEnum.AUTUMN_ENROLLMENT.getCode());
- }
- //查询年级
- BaseGrade grade = gradeService.getOne(
- new QueryWrapper<BaseGrade>().lambda()
- .eq(BaseGrade::getDeleteMark, DeleteMark.NODELETE.getCode())
- .like(BaseGrade::getTitle, x.get("enteryear").toString())
- );
- plan.setGradeId(grade.getId());
- Long oldPlanId = planDataMap.get(plan.getEnrollType() + plan.getGradeId());
- planMap.put(x.get("enteryear").toString() + x.get("userdef6").toString(), oldPlanId);
- //判断是否已经存在,不存在就新增
- if (oldPlanId == null) {
- planService.save(plan);
- planMap.put(x.get("enteryear").toString() + x.get("userdef6").toString(), plan.getId());
- }
- });
- //查询已存在的新生信息
- List<BaseNewStudent> existsNewStudentList = newStudentService.list(
- new QueryWrapper<BaseNewStudent>().lambda()
- .eq(BaseNewStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
- );
- Map<String, BaseNewStudent> existsNewStudentMap = existsNewStudentList.stream()
- .filter(x -> StrUtil.isEmpty(x.getDeleteReason()))
- .collect(Collectors.toMap(
- BaseNewStudent::getCredentialNumber,
- x -> x,
- (existing, replacement) -> existing
- ));
- List<BaseMajorSet> majorSetList = majorSetService.list(
- new QueryWrapper<BaseMajorSet>().lambda()
- .eq(BaseMajorSet::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(BaseMajorSet::getEnabledMark, EnabledMark.ENABLED.getCode())
- );
- Map<String, Long> majorSetNameMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getName, BaseMajorSet::getId));
- Set<String> insCredentialNumber = new HashSet<>();
- //循环攀宝的数据,准备更新到新生表中
- List<BaseNewStudent> updateList = new ArrayList<>();
- List<BaseNewStudent> insertList = new ArrayList<>();
- for (PbCseFeeobjupdate feeobjupdate : dataList) {
- BaseNewStudent existsNewStudent = existsNewStudentMap.get(feeobjupdate.getPersonalid());
- if(feeobjupdate.getUserdef6()==null){
- continue;
- }
- Long planId = planMap.get(feeobjupdate.getEnteryear() + feeobjupdate.getUserdef6());
- if (existsNewStudent != null) {
- if (existsNewStudent.getStatus() != null && existsNewStudent.getStatus() == 1) {
- continue;
- }
- existsNewStudent.setName(feeobjupdate.getFeeobjname());
- existsNewStudent.setPaymnystate(feeobjupdate.getPaymnystate());
- if ("未交费".equals(feeobjupdate.getPaymnystate())) {
- existsNewStudent.setIsCanBanding(0);
- } else {
- existsNewStudent.setIsCanBanding(1);
- }
- existsNewStudent.setPrevious(feeobjupdate.getPrevious());
- existsNewStudent.setProvince(feeobjupdate.getProvince());
- existsNewStudent.setCity(feeobjupdate.getCity());
- existsNewStudent.setMyarea(feeobjupdate.getMyarea());
- if (StrUtil.isNotEmpty(feeobjupdate.getSg())) {
- if (StringUtils.isNumeric(feeobjupdate.getSg())) {
- existsNewStudent.setHeight(BigDecimal.valueOf(Double.parseDouble(feeobjupdate.getSg())));
- }
- }
- if (StrUtil.isNotEmpty(feeobjupdate.getTz())) {
- if (StringUtils.isNumeric(feeobjupdate.getTz())) {
- existsNewStudent.setWeight(BigDecimal.valueOf(Double.parseDouble(feeobjupdate.getTz())));
- }
- }
- existsNewStudent.setGraduateSchool(feeobjupdate.getGraduations());
- existsNewStudent.setGraduateClass(feeobjupdate.getGradclass());
- existsNewStudent.setStduyStatus(StudyStatusEnum.getCode(feeobjupdate.getQuartername()));
- existsNewStudent.setSource(StudentTypeEnum.getCode(feeobjupdate.getResourcename()));
- existsNewStudent.setMobile(feeobjupdate.getTelephone());
- existsNewStudent.setFamilyMobile(feeobjupdate.getJzlxdh());
- existsNewStudent.setFamilyAddress(feeobjupdate.getAddress());
- existsNewStudent.setFirstAmbition(majorSetNameMap.get(feeobjupdate.getSpecname()));
- existsNewStudent.setFirstAmbitionId(majorSetNameMap.get(feeobjupdate.getSpecname()));
- existsNewStudent.setSecondAmbition(majorSetNameMap.get(feeobjupdate.getZytjspec()));
- existsNewStudent.setSecondAmbitionId(majorSetNameMap.get(feeobjupdate.getZytjspec()));
- existsNewStudent.setGender(GenderDictionaryEnum.getCode(feeobjupdate.getSex()));
- existsNewStudent.setModifyDate(new Date());
- if (!planId.equals(existsNewStudent.getEnrollmentPlanId())) {
- existsNewStudent.setStatus(0);
- }
- existsNewStudent.setEnrollmentPlanId(planId);
- updateList.add(existsNewStudent);
- continue;
- }
- if (insCredentialNumber.contains(feeobjupdate.getPersonalid())) {
- continue;
- }
- insertList.add(
- new BaseNewStudent() {{
- setCredentialNumber(feeobjupdate.getPersonalid());
- setName(feeobjupdate.getFeeobjname());
- setPaymnystate(feeobjupdate.getPaymnystate());
- setPrevious(feeobjupdate.getPrevious());
- setProvince(feeobjupdate.getProvince());
- setCity(feeobjupdate.getCity());
- setMyarea(feeobjupdate.getMyarea());
- if (StrUtil.isNotEmpty(feeobjupdate.getSg())) {
- if (StringUtils.isNumeric(feeobjupdate.getSg())) {
- setHeight(BigDecimal.valueOf(Double.parseDouble(feeobjupdate.getSg())));
- }
- }
- if (StrUtil.isNotEmpty(feeobjupdate.getTz())) {
- if (StringUtils.isNumeric(feeobjupdate.getTz())) {
- setWeight(BigDecimal.valueOf(Double.parseDouble(feeobjupdate.getTz())));
- }
- }
- setGraduateSchool(feeobjupdate.getGraduations());
- setGraduateClass(feeobjupdate.getGradclass());
- setStduyStatus(StudyStatusEnum.getCode(feeobjupdate.getQuartername()));
- setSource(StudentTypeEnum.getCode(feeobjupdate.getResourcename()));
- setMobile(feeobjupdate.getTelephone());
- setFamilyMobile(feeobjupdate.getJzlxdh());
- setFamilyAddress(feeobjupdate.getAddress());
- setFirstAmbition(majorSetNameMap.get(feeobjupdate.getSpecname()));
- setFirstAmbitionId(majorSetNameMap.get(feeobjupdate.getSpecname()));
- setSecondAmbition(majorSetNameMap.get(feeobjupdate.getZytjspec()));
- setSecondAmbitionId(majorSetNameMap.get(feeobjupdate.getZytjspec()));
- setGender(GenderDictionaryEnum.getCode(feeobjupdate.getSex()));
- setEnrollmentPlanId(planId);
- setCreateDate(new Date());
- setStatus(0);
- if ("未交费".equals(feeobjupdate.getPaymnystate())) {
- setIsCanBanding(0);
- } else {
- setIsCanBanding(1);
- }
- }}
- );
- insCredentialNumber.add(feeobjupdate.getPersonalid());
- }
- if (!updateList.isEmpty()) {
- newStudentService.updateBatchById(updateList);
- }
- if (!insertList.isEmpty()) {
- newStudentService.saveBatch(insertList);
- }
- }
- }
|