吴羡
4 天以前 8ad863082097ffdcab4a8e7f426d344a1fe6f892
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.personnel.dto.PersonTrainingRecordDto;
import com.ruoyi.personnel.dto.PersonTrainingRecordListDto;
@@ -90,8 +91,14 @@
    @Override
    public void exportTrainingRecordAddTrainingDate(Integer userId, Integer trainingDate, HttpServletResponse response) {
        if (userId == null) {
            throw new ErrorException("缺少人员id");
        }
        // 查询人员人信息
        PersonTrainingRecordListDto trainingRecordListDto = baseMapper.selectUserTraining(userId);
        if (trainingRecordListDto == null) {
            throw new ErrorException("人员不存在或已被删除,无法导出");
        }
        // 查询培训记录
        List<TrainingRecordPersonDetailedDto> personDetailedDtos = baseMapper.selectPersonDetailedDtosByTrainingDate(userId, trainingDate);
@@ -99,6 +106,9 @@
        // 获取路径
        InputStream inputStream = this.getClass().getResourceAsStream("/static/training-record.docx");
        if (inputStream == null) {
            throw new ErrorException("培训记录导出模板不存在");
        }
        Configure configure = Configure.builder()
                .bind("personnelDetailsLisat", new HackLoopTableRenderPolicy())
                .build();
@@ -130,6 +140,21 @@
     */
    @Override
    public void trainingAndAssessmentRecordsAdded(PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto) {
        if (personTrainingRecordSubmitDto == null || personTrainingRecordSubmitDto.getTrainingDetailedId() == null) {
            throw new ErrorException("缺少培训明细id");
        }
        if (personTrainingRecordSubmitDto.getState() == null) {
            throw new ErrorException("缺少培训状态");
        }
        PersonTrainingDetailed personPersonnelCapacity = personTrainingDetailedService.getById(personTrainingRecordSubmitDto.getTrainingDetailedId());
        if (personPersonnelCapacity == null) {
            throw new ErrorException("培训记录不存在或已被删除");
        }
        boolean waitEvaluate = Integer.valueOf(2).equals(personTrainingRecordSubmitDto.getState());
        if (waitEvaluate && personTrainingRecordSubmitDto.getAssessmentUserId() == null) {
            throw new ErrorException("请选择评价人");
        }
        personTrainingDetailedService.update(Wrappers.<PersonTrainingDetailed>lambdaUpdate()
                .eq(PersonTrainingDetailed::getId, personTrainingRecordSubmitDto.getTrainingDetailedId())
                .set(PersonTrainingDetailed::getAssessmentMethod, personTrainingRecordSubmitDto.getAssessmentMethod())
@@ -138,16 +163,17 @@
                .set(PersonTrainingDetailed::getAssessmentUserId, personTrainingRecordSubmitDto.getAssessmentUserId())
                .set(PersonTrainingDetailed::getState, personTrainingRecordSubmitDto.getState()));
        // 发送消息通知
        if (personTrainingRecordSubmitDto.getState().equals(2)) {
            PersonTrainingDetailed personPersonnelCapacity = personTrainingDetailedService.getById(personTrainingRecordSubmitDto.getTrainingDetailedId());
        // 只有提交待评价时才通知评价人
        if (!waitEvaluate) {
            return;
        }
            Integer userId = SecurityUtils.getUserId().intValue();
            User user = userMapper.selectById(userId);
            // 消息发送
            InformationNotification info = new InformationNotification();
            // 发送人
            info.setCreateUser(user.getName());
        info.setCreateUser(user != null ? user.getName() : "");
            info.setMessageType("6");
            info.setTheme("CNAS人员培训计划待评价");
            info.setContent("培训内容:" + personPersonnelCapacity.getTrainingContent() + "的人员培训待评价");
@@ -161,7 +187,9 @@
            threadPoolTaskExecutor.execute(() -> {
                // 查询接收人
                User personnel = userMapper.selectById(personTrainingRecordSubmitDto.getAssessmentUserId());
            if (personnel == null || personnel.getAccount() == null || personnel.getAccount().trim().isEmpty()) {
                return;
            }
                String message = "";
                message += "CNAS人员培训计划待评价";
                message += "\n请去资源管理-人员-人员培训计划";
@@ -170,10 +198,9 @@
                try {
                    WxCpUtils.inform(personnel.getAccount(), message, null);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                e.printStackTrace();
                }
            });
        }
    }
}