智慧保安后台管理-外网
Administrator
2021-11-27 dca2532f01dac86be25ad09fa9ee8035bccdca6a
src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -9,38 +9,32 @@
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import org.springblade.common.utils.arg;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.constant.AgeUtil;
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.apply.excel.ApplyImporter;
import org.springblade.modules.apply.excel.ApplyInfoExcel;
import org.springblade.modules.apply.vo.ApplyVO;
import org.springblade.modules.exam.entity.ExamPaper;
import org.springblade.modules.exam.entity.ExamScore;
import org.springblade.modules.exam.excel.ExamScoreExcel;
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.training.entity.TrainExam;
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.TrainExamService;
import org.springblade.modules.training.service.TrainingRegistrationService;
import org.springblade.modules.training.vo.TrainingRegistrationVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
 * @author zhongrj
@@ -284,28 +278,17 @@
   @PostMapping("/batchTrain")
   public R batchApply(@RequestBody TrainingRegistrationVo trainingRegistration){
      List<String> list = Arrays.asList(trainingRegistration.getUserIds().split(","));
      AtomicInteger count  = new AtomicInteger();
      //创建年龄部分对象集合
      List<String> errorList = new ArrayList<>();
      //遍历
      list.forEach(userId ->{
         User user = userService.getById(userId);
         //未报名的新增,已报名的不做处理
         if (null==user.getIsTrain()) {
            TrainingRegistration trainingRegistration1 = new TrainingRegistration();
            trainingRegistration1.setCancel(1);
            //默认为未考试状态
            trainingRegistration1.setIsExam(1);
            //未提交考试审核
            trainingRegistration1.setAuditStatus(4);
            trainingRegistration1.setTrainingTime(new Date());
            trainingRegistration1.setUserId(userId);
            trainingRegistration1.setTrainingUnitId(trainingRegistration.getTrainingUnitId());
            trainingRegistrationService.save(trainingRegistration1);
            //修改保安报名状态
            user.setIsTrain(1);
            userService.updateById(user);
            //数据同步
            saveTrainingRegistration(trainingRegistration1,user);
         }else {
            if (user.getIsTrain()!=1) {
         //判断年龄
         Integer age = AgeUtil.idCardToAge(user.getCardid());
         if (age>=18 && age<=60) {
            //未报名的新增,已报名的不做处理
            if (null == user.getIsTrain()) {
               TrainingRegistration trainingRegistration1 = new TrainingRegistration();
               trainingRegistration1.setCancel(1);
               //默认为未考试状态
@@ -321,10 +304,39 @@
               userService.updateById(user);
               //数据同步
               saveTrainingRegistration(trainingRegistration1,user);
               saveTrainingRegistration(trainingRegistration1, user);
            } else {
               if (user.getIsTrain() != 1) {
                  TrainingRegistration trainingRegistration1 = new TrainingRegistration();
                  trainingRegistration1.setCancel(1);
                  //默认为未考试状态
                  trainingRegistration1.setIsExam(1);
                  //未提交考试审核
                  trainingRegistration1.setAuditStatus(4);
                  trainingRegistration1.setTrainingTime(new Date());
                  trainingRegistration1.setUserId(userId);
                  trainingRegistration1.setTrainingUnitId(trainingRegistration.getTrainingUnitId());
                  trainingRegistrationService.save(trainingRegistration1);
                  //修改保安报名状态
                  user.setIsTrain(1);
                  userService.updateById(user);
                  //数据同步
                  saveTrainingRegistration(trainingRegistration1, user);
               }
            }
         }else {
            //count ++
            count.getAndIncrement();
            //放入集合
            errorList.add(user.getCardid());
         }
      });
      //如果存在年龄不符的,则抛出异常
      if (count.get()>0){
         String errorAccount = StringUtils.join(errorList, "\\\n");
         throw new ServiceException("保安员:[" + errorAccount + "]报名失败!年龄不符,报名年龄为[18-60]周岁!");
      }
      return R.data(200,"报名成功");
   }