Administrator
2021-08-17 6beeb715fcef8db22b17c309ec8fecc45cc04b00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
 
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<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()));
//        });
        return page.setRecords(trainingRegistrationVos);
    }
 
    /**
     * 详情
     * @param trainingRegistration 报名培训信息对象
     */
    @Override
    public TrainingRegistrationVo selectTrainingRegistrationInfo(TrainingRegistration trainingRegistration) {
        return baseMapper.selectTrainingRegistrationInfo(trainingRegistration);
    }
 
    /**
     * 导出报名数数据
     * @param trainingRegistration 培训报名对象
     * @return
     */
    @Override
    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()!=""){
                    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<Long> getTrainIds() {
        return baseMapper.getTrainIds();
    }
}