tangzy
2021-08-27 733edfcd6ad1c38dcf4aa761a417f4e4bfd754b2
src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
@@ -3,14 +3,26 @@
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.FTP.FtpUtil;
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.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
@@ -18,14 +30,20 @@
 * @author zhongrj
 */
@Service
@AllArgsConstructor
public class TrainingRegistrationServiceImpl extends ServiceImpl<TrainingRegistrationMapper, TrainingRegistration> implements TrainingRegistrationService {
   private final IUserService userService;
   private final IUserDeptService userDeptService;
   @Override
   public IPage<TrainingRegistrationVo> selectTrainingRegistrationPage(IPage<TrainingRegistrationVo> page, TrainingRegistrationVo trainingRegistration) {
      List<TrainingRegistrationVo> trainingRegistrationVos = baseMapper.selectTrainingRegistrationPage(page, trainingRegistration);
      trainingRegistrationVos.forEach(trainingRegistrationVo -> {
         trainingRegistrationVo.setRemainingTime(LongTimeUtil.getDistanceTime(trainingRegistrationVo.getTrainExamTime().getTime(), System.currentTimeMillis()));
      });
//      trainingRegistrationVos.forEach(trainingRegistrationVo -> {
//         trainingRegistrationVo.setRemainingTime(LongTimeUtil.getDistanceTime(trainingRegistrationVo.getTrainExamTime().getTime(), System.currentTimeMillis()));
//      });
      return page.setRecords(trainingRegistrationVos);
   }
@@ -47,4 +65,103 @@
   public List<ApplyInfoExcel> getTrainingRegistrationExcelList(TrainingRegistrationVo trainingRegistration) {
      return baseMapper.getTrainingRegistrationExcelList(trainingRegistration);
   }
   /**
    * 培训考试清册导入
    * @param data
    * @param isCovered
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void importTrainingRegistration(List<TrainingRegistrationExcel> data, Boolean isCovered) {
      if (data.size()>0){
         data.forEach(trainingRegistrationExcel -> {
            TrainingRegistration trainingRegistration = new TrainingRegistration();
            //通过身份证号
            if (null!=trainingRegistrationExcel.getIdCardNo() && 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);
                  //数据同步
                  saveTrainingRegistration(trainingRegistration,user);
               }else {
                  if (user.getIsTrain()!=1) {
                     trainingRegistration.setIsExam(1);
                     trainingRegistration.setCancel(1);
                     trainingRegistration.setTrainingTime(new Date());
                     //新增报名
                     this.save(trainingRegistration);
                     //修改保安报名状态
                     user.setIsTrain(1);
                     userService.updateById(user);
                     //数据同步
                     saveTrainingRegistration(trainingRegistration,user);
                  }
               }
            }
         });
      }
   }
   /**
    * 报名
    */
   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 s = "insert into sys_training_registration(id,training_unit_id,training_time,cancel,user_id,is_exam) " +
         "values(" + "'" + id + "'"
         + "," + "'" + trainingRegistration.getTrainingUnitId() +"'"
         + "," + "'" + formatStr +"'"
         + "," + "'" + trainingRegistration.getCancel() + "'"
         + "," + "'" + trainingRegistration.getUserId() + "'"
         + "," +"'" + trainingRegistration.getIsExam() + "'" + ");" +
         "update blade_user set is_train = " + user1.getIsTrain() + " " +"where id = " + "'" + user1.getId() + "'";
      FtpUtil.sqlFileUpload(s);
   }
   /**
    * 查询准考证前缀相同的数量
    * @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<Long> getTrainIds() {
      return baseMapper.getTrainIds();
   }
}