| | |
| | | import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; |
| | | import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springblade.common.constant.AgeConstant; |
| | | import org.springblade.common.constant.AgeUtil; |
| | | import org.springblade.common.utils.FtpSyncUtil; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.modules.FTP.FtpUtil; |
| | | import org.springblade.modules.apply.entity.Apply; |
| | |
| | | import org.springblade.modules.exam.service.ExamPaperService; |
| | | import org.springblade.modules.system.entity.User; |
| | | import org.springblade.modules.system.service.IUserService; |
| | | import org.springblade.modules.system.service.MyAsyncService; |
| | | import org.springblade.modules.system.vo.UserVO; |
| | | import org.springblade.modules.training.entity.TrainingRegistration; |
| | | import org.springblade.modules.training.excel.TrainingRegistrationExcel; |
| | | import org.springblade.modules.training.excel.TrainingRegistrationImporter; |
| | | import org.springblade.modules.training.service.TrainingRegistrationService; |
| | | import org.springblade.modules.training.vo.TrainingRegistrationVo; |
| | | import org.springblade.modules.vip.service.UserVipService; |
| | | import org.springblade.modules.vip.service.VipTopicService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | import java.util.concurrent.atomic.AtomicReference; |
| | | |
| | | /** |
| | | * @author zhongrj |
| | |
| | | private final IUserService userService; |
| | | |
| | | private final ExamPaperService examPaperService; |
| | | |
| | | private final UserVipService userVipService; |
| | | |
| | | private final VipTopicService vipTopicService; |
| | | private final MyAsyncService myAsyncService; |
| | | |
| | | |
| | | /** |
| | | * 自定义分页 |
| | |
| | | @ApiOperation(value = "新增", notes = "传入trainingRegistration") |
| | | public R save(@RequestBody TrainingRegistration trainingRegistration){ |
| | | //查询人员是否已报名 |
| | | User user = userService.getById(trainingRegistration.getUserId()); |
| | | User user = userService.getUserById(trainingRegistration.getUserId()); |
| | | if (null==user.getIsTrain()){ |
| | | //已报名 |
| | | trainingRegistration.setCancel(1); |
| | |
| | | /** |
| | | * 报名 |
| | | */ |
| | | private void saveTrainingRegistration(TrainingRegistration trainingRegistration,User user1){ |
| | | private StringBuilder batchSaveTrainingRegistration(TrainingRegistration trainingRegistration,User user1,StringBuilder builder){ |
| | | String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
| | | Long id = trainingRegistration.getId(); |
| | | String s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " + |
| | | String sql = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " + |
| | | "values(" + "'" + id + "'" |
| | | + "," + "'" + trainingRegistration.getTrainingUnitId() +"'" |
| | | + "," + "'" + formatStr +"'" |
| | |
| | | + "," + "'" + trainingRegistration.getIsExam() + "'" |
| | | + "," +"'" + trainingRegistration.getAuditStatus() + "'" + ");" + |
| | | "update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'"; |
| | | FtpUtil.sqlFileUpload(s); |
| | | return FtpSyncUtil.sqlHandler(builder, sql,500); |
| | | } |
| | | |
| | | /** |
| | | * 报名 |
| | | */ |
| | | private void saveTrainingRegistration(TrainingRegistration trainingRegistration,User user1){ |
| | | String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
| | | Long id = trainingRegistration.getId(); |
| | | String sql = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam,audit_status) " + |
| | | "values(" + "'" + id + "'" |
| | | + "," + "'" + trainingRegistration.getTrainingUnitId() +"'" |
| | | + "," + "'" + formatStr +"'" |
| | | + "," + "'" + trainingRegistration.getCancel() + "'" |
| | | + "," + "'" + trainingRegistration.getUserId() + "'" |
| | | + "," + "'" + trainingRegistration.getIsExam() + "'" |
| | | + "," +"'" + trainingRegistration.getAuditStatus() + "'" + ");" + |
| | | "update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'"; |
| | | //FtpUtil.sqlFileUpload(sql); |
| | | myAsyncService.dataSync(sql); |
| | | } |
| | | |
| | | |
| | |
| | | @PostMapping("/cancelTrain") |
| | | public R cancelApply(@RequestBody TrainingRegistration trainingRegistration){ |
| | | //查询人员是否已报名 |
| | | User user = userService.getById(trainingRegistration.getUserId()); |
| | | User user = userService.getUserById(trainingRegistration.getUserId()); |
| | | |
| | | if(null==user.getIsTrain()){ |
| | | trainingRegistration.setCancel(2); |
| | | boolean status = trainingRegistrationService.updateById(trainingRegistration); |
| | |
| | | if (status){ |
| | | return R.data(200,"取消报名成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | }else { |
| | | return R.data(201,"尚未报名"); |
| | | } |
| | | |
| | | } |
| | | return R.data(202,"取消报名失败"); |
| | | } |
| | |
| | | @PostMapping("/auditSucess") |
| | | public R auditSucess(@RequestBody TrainingRegistration trainingRegistration){ |
| | | //查询人员信息 |
| | | User user = userService.getById(trainingRegistration.getUserId()); |
| | | User user = userService.getUserById(trainingRegistration.getUserId()); |
| | | boolean status = false; |
| | | if (null!=user){ |
| | | //修改为已报名状态 |
| | |
| | | @PostMapping("/cancelTrainAudit") |
| | | public R cancelApplyAudit(@RequestBody TrainingRegistration trainingRegistration){ |
| | | //查询人员是否已报名 |
| | | User user = userService.getById(trainingRegistration.getUserId()); |
| | | User user = userService.getUserById(trainingRegistration.getUserId()); |
| | | if(null==user.getIsTrain()){ |
| | | trainingRegistration.setCancel(2); |
| | | trainingRegistration.setAuditStatus(2); |
| | |
| | | ",audit_status = " + "'" + trainingRegistration.getAuditStatus() + "'" + |
| | | " " +"where id = " + "'" + trainingRegistration.getId() + "';" + |
| | | "update blade_user set is_train = " + user.getIsTrain() + " " +"where id = " + "'" + user.getId() + "'"; |
| | | FtpUtil.sqlFileUpload(s); |
| | | //FtpUtil.sqlFileUpload(s); |
| | | myAsyncService.dataSync(s); |
| | | } |
| | | |
| | | /** |
| | |
| | | AtomicInteger count = new AtomicInteger(); |
| | | //创建年龄部分对象集合 |
| | | List<String> errorList = new ArrayList<>(); |
| | | // AtomicReference<StringBuilder> builder = new AtomicReference<>(new StringBuilder()); |
| | | //遍历 |
| | | list.forEach(userId ->{ |
| | | User user = userService.getById(userId); |
| | | User user = userService.getUserById(userId); |
| | | UserVO userVO = userService.getUserAgeById(Long.parseLong(userId)); |
| | | //判断年龄 |
| | | Integer age = AgeUtil.idCardToAge(user.getCardid()); |
| | | if (age>=18 && age<=60) { |
| | | if (userVO.getAge()>= AgeConstant.APPLY_MIN_AGE && userVO.getAge() <= AgeConstant.APPLY_MAX_AGE) { |
| | | //未报名的新增,已报名的不做处理 |
| | | if (null == user.getIsTrain()) { |
| | | TrainingRegistration trainingRegistration1 = new TrainingRegistration(); |
| | |
| | | userService.updateById(user); |
| | | |
| | | //数据同步 |
| | | saveTrainingRegistration(trainingRegistration1, user); |
| | | saveTrainingRegistration(trainingRegistration1,user); |
| | | // builder.set(batchSaveTrainingRegistration(trainingRegistration1, user, builder.get())); |
| | | } else { |
| | | if (user.getIsTrain() != 1) { |
| | | TrainingRegistration trainingRegistration1 = new TrainingRegistration(); |
| | |
| | | userService.updateById(user); |
| | | |
| | | //数据同步 |
| | | saveTrainingRegistration(trainingRegistration1, user); |
| | | saveTrainingRegistration(trainingRegistration1,user); |
| | | // builder.set(batchSaveTrainingRegistration(trainingRegistration1, user, builder.get())); |
| | | } |
| | | } |
| | | }else { |
| | |
| | | errorList.add(user.getCardid()); |
| | | } |
| | | }); |
| | | // //同步 |
| | | // if (builder.get().length()>0) { |
| | | // FtpSyncUtil.slqSync(builder.get()); |
| | | // } |
| | | //如果存在年龄不符的,则抛出异常 |
| | | if (count.get()>0){ |
| | | String errorAccount = StringUtils.join(errorList, "\\\n"); |
| | | throw new ServiceException("保安员:[" + errorAccount + "]报名失败!年龄不符,报名年龄为[18-60]周岁!"); |
| | | throw new ServiceException("保安员:[" + errorAccount + "]报名失败!年龄不符,报名年龄为[" + AgeConstant.APPLY_MIN_AGE + "-"+ AgeConstant.APPLY_MAX_AGE + "]周岁!"); |
| | | } |
| | | return R.data(200,"报名成功"); |
| | | } |
| | |
| | | return R.data(detail); |
| | | } |
| | | |
| | | // /** |
| | | // * 导出报名数数据 |
| | | // * @param response |
| | | // * @param trainingRegistration 培训报名对象 |
| | | // */ |
| | | // @GetMapping("export-apply") |
| | | // @ApiOperation(value = "导出报名清册") |
| | | // public void exportApply(HttpServletResponse response,TrainingRegistrationVo trainingRegistration) { |
| | | // List<TrainingRegistrationExcel> list = trainingRegistrationService.getTrainingRegistrationExcelList(trainingRegistration); |
| | | // ExcelUtil.export(response, "培训报名清册数据"+ DateUtil.time(), "培训报名清册数据表", list, TrainingRegistrationExcel.class); |
| | | // } |
| | | /** |
| | | * 导出报名数数据 |
| | | * @param response |
| | | * @param trainingRegistration 培训报名对象 |
| | | */ |
| | | @GetMapping("export-apply-info") |
| | | public void exportApplyInfo(HttpServletResponse response,TrainingRegistrationVo trainingRegistration) { |
| | | List<TrainingRegistrationExcel> list = trainingRegistrationService.getTrainingRegistrationExcelList(trainingRegistration); |
| | | ExcelUtil.export(response, "报名清册数据"+ DateUtil.time(), "报名清册数据表", list, TrainingRegistrationExcel.class); |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | "," + "'" + examPaper.getCreator() +"'" + |
| | | "," + "'" + creatorTimeFormat +"'" + |
| | | "," +"'" + examPaper.getAuditStatus() + "'" + ")"; |
| | | FtpUtil.sqlFileUpload(s); |
| | | //FtpUtil.sqlFileUpload(s); |
| | | myAsyncService.dataSync(s); |
| | | |
| | | |
| | | //修改报名信息 |
| | |
| | | "update sys_training_registration set train_exam_id = " + "'" + trainingRegistration.getTrainExamId() + "'" |
| | | + ",audit_status = " + "'" + trainingRegistration.getAuditStatus() + "'" |
| | | + " " + "where id = " + "'" + trainingRegistration.getId() + "'"; |
| | | FtpUtil.sqlFileUpload(s1); |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.dataSync(s1); |
| | | } |
| | | }); |
| | | } |
| | |
| | | int year = instance.get(Calendar.YEAR); |
| | | int month = instance.get(Calendar.MONTH)+1; |
| | | int day = instance.get(Calendar.DAY_OF_MONTH); |
| | | String examName = year + "年" + month+ "月"+ day +"日" +"保安员证培训考试"; |
| | | String examName = year + "年" + month+ "月"+ day +"日" +"保安员证考试"; |
| | | //考试名称 |
| | | examPaper.setExamName(examName); |
| | | //考试申请人 |
| | |
| | | "," + "'" + examPaper.getCreator() +"'" + |
| | | "," + "'" + creatorTimeFormat +"'" + |
| | | "," +"'" + examPaper.getAuditStatus() + "'" + ")"; |
| | | FtpUtil.sqlFileUpload(s); |
| | | //FtpUtil.sqlFileUpload(s); |
| | | myAsyncService.dataSync(s); |
| | | |
| | | //修改报名信息 |
| | | list.forEach(id ->{ |
| | |
| | | "update sys_training_registration set train_exam_id = " + "'" + trainingRegistration.getTrainExamId() + "'" |
| | | + ",audit_status = " + "'" + trainingRegistration.getAuditStatus() + "'" |
| | | + " " + "where id = " + "'" + trainingRegistration.getId() + "'"; |
| | | FtpUtil.sqlFileUpload(s1); |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.dataSync(s1); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 是否为会员标记 |
| | | * @param trainingRegistration |
| | | * @return |
| | | */ |
| | | @PostMapping("/vipSign") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R vipSign(@RequestBody TrainingRegistration trainingRegistration){ |
| | | //新增会员记录 |
| | | userVipService.insertUserVipInfo(trainingRegistration); |
| | | //新增会员题库记录 |
| | | vipTopicService.insertVipTopicInfo(trainingRegistration); |
| | | //内网报名信息同步 |
| | | String s1 = |
| | | "update sys_training_registration set vip_status = " + "'" + trainingRegistration.getVipStatus() + "'" |
| | | + " " + "where id = " + "'" + trainingRegistration.getId() + "'"; |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.dataSync(s1); |
| | | //更新并返回数据 |
| | | return R.data(trainingRegistrationService.updateById(trainingRegistration)); |
| | | } |
| | | |
| | | /** |
| | | * 批量将已报名人员标记为已缴费 |
| | | * @param trainingRegistration |
| | | * @return |
| | | */ |
| | | @PostMapping("/vipSignBatch") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R vipSignBatch(@RequestBody TrainingRegistrationVo trainingRegistration){ |
| | | //查询已报名,未考试的报名信息 |
| | | List<TrainingRegistration> trainingRegistrationList = trainingRegistrationService.getList(trainingRegistration); |
| | | if (trainingRegistrationList.size()>0){ |
| | | for (TrainingRegistration registration : trainingRegistrationList) { |
| | | if (registration.getVipStatus().equals(2)) { |
| | | registration.setVipStatus(1); |
| | | //新增会员记录 |
| | | userVipService.insertUserVipInfo(registration); |
| | | //新增会员题库记录 |
| | | vipTopicService.insertVipTopicInfo(registration); |
| | | //内网报名信息同步 |
| | | String s1 = |
| | | "update sys_training_registration set vip_status = " + "'" + registration.getVipStatus() + "'" |
| | | + " " + "where id = " + "'" + registration.getId() + "'"; |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.dataSync(s1); |
| | | //更新 |
| | | trainingRegistrationService.updateById(registration); |
| | | } |
| | | } |
| | | } |
| | | //返回数据 |
| | | return R.data(true); |
| | | } |
| | | } |