| | |
| | | package cn.iocoder.yudao.module.mes.service.safety; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | |
| | | @Resource |
| | | private SafetyTrainingMapper trainingMapper; |
| | | @Resource |
| | | private SafetyRefResolver refResolver; |
| | | @Resource |
| | | private SafetyDrillMapper drillMapper; |
| | | @Resource |
| | | private SafetyAccidentMapper accidentMapper; |
| | |
| | | SafetyTrainingDO training = BeanUtils.toBean(reqVO, SafetyTrainingDO.class); |
| | | training.setTitle(StrUtil.trim(reqVO.getTitle())); |
| | | training.setTrainingType(StrUtil.blankToDefault(reqVO.getTrainingType(), SafetyTrainingTypeEnum.SAFETY.getType())); |
| | | training.setTrainerId(reqVO.getTrainerId()); |
| | | training.setTrainer(reqVO.getTrainerId() == null ? "" |
| | | : refResolver.requireEmployee(reqVO.getTrainerId(), SAFETY_EMPLOYEE_REQUIRED).getName()); |
| | | training.setParticipantCount(resolveCount(reqVO.getParticipantCount(), reqVO.getParticipants())); |
| | | training.setRemark(reqVO.getRemark() == null ? "" : reqVO.getRemark().trim()); |
| | | trainingMapper.insert(training); |
| | |
| | | return trainingMapper.selectPage(reqVO); |
| | | } |
| | | |
| | | /** |
| | | * 事故的主数据引用:所属车间 + 登记人 |
| | | */ |
| | | private void applyAccidentRefs(SafetyAccidentDO accident, SafetyAccidentSaveReqVO reqVO) { |
| | | accident.setWorkshopId(reqVO.getWorkshopId()); |
| | | accident.setWorkshopName(reqVO.getWorkshopId() == null ? "" |
| | | : refResolver.requireWorkshop(reqVO.getWorkshopId()).getName()); |
| | | accident.setReporterId(reqVO.getReporterId()); |
| | | accident.setReporter(reqVO.getReporterId() == null ? "" |
| | | : refResolver.requireEmployee(reqVO.getReporterId(), SAFETY_EMPLOYEE_REQUIRED).getName()); |
| | | } |
| | | |
| | | /** 批量回填培训讲师最新姓名 */ |
| | | public void fillTrainers(List<SafetyTrainingDO> trainings) { |
| | | if (CollUtil.isEmpty(trainings)) return; |
| | | var employeeMap = refResolver.employeeMap(trainings.stream().map(SafetyTrainingDO::getTrainerId).toList()); |
| | | trainings.forEach(t -> { |
| | | var e = employeeMap.get(t.getTrainerId()); |
| | | if (e != null) t.setTrainer(e.getName()); |
| | | }); |
| | | } |
| | | |
| | | /** 批量回填演练组织人最新姓名 */ |
| | | public void fillOrganizers(List<SafetyDrillDO> drills) { |
| | | if (CollUtil.isEmpty(drills)) return; |
| | | var employeeMap = refResolver.employeeMap(drills.stream().map(SafetyDrillDO::getOrganizerId).toList()); |
| | | drills.forEach(d -> { |
| | | var e = employeeMap.get(d.getOrganizerId()); |
| | | if (e != null) d.setOrganizer(e.getName()); |
| | | }); |
| | | } |
| | | |
| | | /** 批量回填事故的车间名与登记人姓名 */ |
| | | public void fillAccidentRefs(List<SafetyAccidentDO> accidents) { |
| | | if (CollUtil.isEmpty(accidents)) return; |
| | | var workshopMap = refResolver.workshopMap(accidents.stream().map(SafetyAccidentDO::getWorkshopId).toList()); |
| | | var employeeMap = refResolver.employeeMap(accidents.stream().map(SafetyAccidentDO::getReporterId).toList()); |
| | | accidents.forEach(a -> { |
| | | var w = workshopMap.get(a.getWorkshopId()); |
| | | if (w != null) a.setWorkshopName(w.getName()); |
| | | var e = employeeMap.get(a.getReporterId()); |
| | | if (e != null) a.setReporter(e.getName()); |
| | | }); |
| | | } |
| | | |
| | | public static void fillTrainingDisplay(SafetyTrainingDO training, SafetyTrainingRespVO respVO) { |
| | | respVO.setTrainingTypeName(SafetyTrainingTypeEnum.getNameByType(training.getTrainingType())); |
| | | } |
| | |
| | | SafetyDrillDO drill = BeanUtils.toBean(reqVO, SafetyDrillDO.class); |
| | | drill.setTitle(StrUtil.trim(reqVO.getTitle())); |
| | | drill.setDrillType(StrUtil.blankToDefault(reqVO.getDrillType(), SafetyDrillTypeEnum.FIRE.getType())); |
| | | drill.setOrganizerId(reqVO.getOrganizerId()); |
| | | drill.setOrganizer(reqVO.getOrganizerId() == null ? "" |
| | | : refResolver.requireEmployee(reqVO.getOrganizerId(), SAFETY_EMPLOYEE_REQUIRED).getName()); |
| | | drill.setParticipantCount(resolveCount(reqVO.getParticipantCount(), reqVO.getParticipants())); |
| | | drill.setRemark(reqVO.getRemark() == null ? "" : reqVO.getRemark().trim()); |
| | | drillMapper.insert(drill); |
| | |
| | | accident.setTitle(StrUtil.trim(reqVO.getTitle())); |
| | | accident.setLevel(StrUtil.blankToDefault(reqVO.getLevel(), SafetyAccidentLevelEnum.GENERAL.getLevel())); |
| | | accident.setStatus(StrUtil.blankToDefault(reqVO.getStatus(), SafetyAccidentStatusEnum.REPORTED.getStatus())); |
| | | applyAccidentRefs(accident, reqVO); |
| | | accident.setReportTime(reqVO.getReportTime() == null ? LocalDateTime.now() : reqVO.getReportTime()); |
| | | accident.setRemark(reqVO.getRemark() == null ? "" : reqVO.getRemark().trim()); |
| | | accidentMapper.insert(accident); |
| | |
| | | validateAccidentExists(reqVO.getId()); |
| | | SafetyAccidentDO accident = BeanUtils.toBean(reqVO, SafetyAccidentDO.class); |
| | | accident.setCode(null); |
| | | applyAccidentRefs(accident, reqVO); |
| | | accidentMapper.updateById(accident); |
| | | } |
| | | |