package org.springblade.modules.training.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.api.R; import org.springblade.modules.apply.entity.Apply; import org.springblade.modules.apply.excel.ApplyInfoExcel; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IUserDeptService; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.training.entity.TrainingRegistration; import org.springblade.modules.training.excel.TrainingRegistrationExcel; import org.springblade.modules.training.mapper.TrainingRegistrationMapper; import org.springblade.modules.training.service.TrainingRegistrationService; import org.springblade.modules.training.util.LongTimeUtil; import org.springblade.modules.training.vo.TrainingRegistrationVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; /** * 报名培训服务实现类 * @author zhongrj */ @Service @AllArgsConstructor public class TrainingRegistrationServiceImpl extends ServiceImpl implements TrainingRegistrationService { private final IUserService userService; private final IUserDeptService userDeptService; @Override public IPage selectTrainingRegistrationPage(IPage page, TrainingRegistrationVo trainingRegistration) { List trainingRegistrationVos = baseMapper.selectTrainingRegistrationPage(page, trainingRegistration); // trainingRegistrationVos.forEach(trainingRegistrationVo -> { // trainingRegistrationVo.setRemainingTime(LongTimeUtil.getDistanceTime(trainingRegistrationVo.getTrainExamTime().getTime(), System.currentTimeMillis())); // }); return page.setRecords(trainingRegistrationVos); } /** * 详情 * @param trainingRegistration 报名培训信息对象 */ @Override public TrainingRegistrationVo selectTrainingRegistrationInfo(TrainingRegistration trainingRegistration) { return baseMapper.selectTrainingRegistrationInfo(trainingRegistration); } /** * 导出报名数数据 * @param trainingRegistration 培训报名对象 * @return */ @Override public List getTrainingRegistrationExcelList(TrainingRegistrationVo trainingRegistration) { return baseMapper.getTrainingRegistrationExcelList(trainingRegistration); } /** * 培训考试清册导入 * @param data * @param isCovered */ @Override @Transactional(rollbackFor = Exception.class) public void importTrainingRegistration(List data, Boolean isCovered) { if (data.size()>0){ data.forEach(trainingRegistrationExcel -> { TrainingRegistration trainingRegistration = new TrainingRegistration(); //通过准考证号 if (null!=trainingRegistrationExcel.getIdCardNo() && trainingRegistrationExcel.getIdCardNo()!=""){ trainingRegistration.setCandidateNo(trainingRegistrationExcel.getIdCardNo()); User user = userService.getUserInfoByIdCardNo(trainingRegistrationExcel.getIdCardNo()); trainingRegistration.setUserId(user.getId().toString()); //通过培训公司查组织机构id if (null!=trainingRegistrationExcel.getDeptName() && trainingRegistrationExcel.getDeptName()!=""){ trainingRegistration.setTrainingUnitId(userDeptService.selectIn(trainingRegistrationExcel.getDeptName())); } if(null==user.getIsTrain()){ trainingRegistration.setIsExam(1); trainingRegistration.setCancel(1); trainingRegistration.setTrainingTime(new Date()); //新增报名 this.save(trainingRegistration); //修改保安报名状态 user.setIsTrain(1); userService.updateById(user); }else { if (2 == user.getIsTrain() || -1==user.getIsTrain() || 3==user.getIsTrain()) { trainingRegistration.setIsExam(1); trainingRegistration.setCancel(1); trainingRegistration.setTrainingTime(new Date()); //新增报名 this.save(trainingRegistration); //修改保安报名状态 user.setIsTrain(1); userService.updateById(user); } } } }); } } /** * 查询准考证前缀相同的数量 * @param result * @return */ @Override public int getCandidateNoCount(String result) { return baseMapper.getCandidateNoCount(result); } /** * 查询培训报名信息 * @param trainingRegistration 培训报名对象信息 * @return */ @Override public Integer getTrainingRegistrationInfo(TrainingRegistration trainingRegistration) { return baseMapper.getTrainingRegistrationInfo(trainingRegistration); } /** * 查询已报名培训公司未关联考试的人员 * @return */ @Override public List getTrainIds() { return baseMapper.getTrainIds(); } }