package com.gkhy.exam.coalmine.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.gkhy.exam.coalmine.entity.*; import com.gkhy.exam.coalmine.model.dto.req.*; import com.gkhy.exam.coalmine.model.dto.resp.CmStaffByCodeRespDTO; import com.gkhy.exam.coalmine.model.dto.resp.CmStaffPageRespDTO; import com.gkhy.exam.coalmine.service.CmStaffManagerService; import com.gkhy.exam.coalmine.service.baseService.*; import com.gkhy.exam.noncoalmine.service.ViolationRegistrationService; import com.gkhy.exam.noncoalmine.service.WorkRegistrationService; import com.ruoyi.common.constant.ResultConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.coalmineEnums.DeleteStatusEnum; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.file.service.AttachmentInfoService; import com.ruoyi.system.domain.bo.SysOperateTypeWholeNameBO; import com.ruoyi.system.service.SysOperateTypeService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * @author Mr.huang * @decription * @date 2023/9/14 10:48 */ @Service public class CmStaffManagerServiceImpl implements CmStaffManagerService { @Resource private CmStaffService cmStaffService; @Resource private CmStaffTrainService cmStaffTrainService; @Resource private SysOperateTypeService sysOperateTypeService; @Resource private CmStaffResumeService cmStaffResumeService; @Resource private CmStaffExamService cmStaffExamService; @Resource private CmStaffQaService cmStaffQaService; @Resource private AttachmentInfoService attachmentInfoService; @Resource private ViolationRegistrationService violationRegistrationService; @Resource private WorkRegistrationService workRegistrationService; @Override public AjaxResult saveCmStaff(CmStaffAddReqDTO reqDTO) { CmStaff staff = cmStaffService.selectByCode(reqDTO.getCode()); if (staff != null) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"该身份证人员已存在"); CmStaff cmStaff = new CmStaff(); BeanUtils.copyProperties(reqDTO,cmStaff); cmStaff.setDelFlag(DeleteStatusEnum.NO.getStatus()); boolean save = cmStaffService.save(cmStaff); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增失败"); return AjaxResult.success("新增成功"); } @Override public AjaxResult saveCmStaffResume(CmStaffResumeAddReqDTO reqDTO) { CmStaffResume cmStaffResume = new CmStaffResume(); BeanUtils.copyProperties(reqDTO,cmStaffResume); cmStaffResume.setDelFlag(DeleteStatusEnum.NO.getStatus()); boolean save = cmStaffResumeService.save(cmStaffResume); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增履历失败"); return AjaxResult.success("新增履历成功"); } @Override public AjaxResult deleteCmStaffResume(Long id) { CmStaffResume cmStaffResume = cmStaffResumeService.getValidById(id); if (cmStaffResume == null) return AjaxResult.success("删除履历成功"); cmStaffResume.setDelFlag(DeleteStatusEnum.YES.getStatus()); boolean save = cmStaffResumeService.updateById(cmStaffResume); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败"); return AjaxResult.success("删除履历成功"); } @Override public AjaxResult updateCmStaffResume(CmStaffResumeUpdateReqDTO reqDTO) { CmStaffResume cmStaffResume = cmStaffResumeService.getValidById(reqDTO.getId()); if (cmStaffResume == null) throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在"); BeanUtils.copyProperties(reqDTO,cmStaffResume,"id"); boolean save = cmStaffResumeService.updateById(cmStaffResume); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败"); return AjaxResult.success("删除履历成功"); } @Override public AjaxResult saveCmStaffTrain(CmStaffTrainAddReqDTO reqDTO) { CmStaffTrain cmStaffTrain = new CmStaffTrain(); BeanUtils.copyProperties(reqDTO,cmStaffTrain); cmStaffTrain.setDelFlag(DeleteStatusEnum.NO.getStatus()); boolean save = cmStaffTrainService.save(cmStaffTrain); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增培训经历失败"); return AjaxResult.success("新增培训经历成功"); } @Override public AjaxResult deleteCmStaffTrain(Long id) { CmStaffTrain cmStaffTrain = cmStaffTrainService.getValidById(id); if (cmStaffTrain == null) return AjaxResult.success("删除培训经历成功"); cmStaffTrain.setDelFlag(DeleteStatusEnum.YES.getStatus()); boolean save = cmStaffTrainService.updateById(cmStaffTrain); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除培训经历失败"); return AjaxResult.success("删除培训经历成功"); } @Override public AjaxResult updateCmStaffTrain(CmStaffTrainUpdateReqDTO reqDTO) { CmStaffTrain cmStaffTrain = cmStaffTrainService.getValidById(reqDTO.getId()); if (cmStaffTrain == null) throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在"); BeanUtils.copyProperties(reqDTO,cmStaffTrain,"id"); boolean save = cmStaffTrainService.updateById(cmStaffTrain); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改培训经历失败"); return AjaxResult.success("修改培训经历成功"); } @Override public AjaxResult saveCmStaffExam(CmStaffExamAddReqDTO reqDTO) { CmStaffExam cmStaffExam = new CmStaffExam(); BeanUtils.copyProperties(reqDTO,cmStaffExam); cmStaffExam.setDelFlag(DeleteStatusEnum.NO.getStatus()); boolean save = cmStaffExamService.save(cmStaffExam); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增考试经历失败"); return AjaxResult.success("新增考试经历成功"); } @Override public AjaxResult deleteCmStaffExam(Long id) { CmStaffExam cmStaffExam = cmStaffExamService.getValidById(id); if (cmStaffExam == null) return AjaxResult.success("删除考试经历成功"); cmStaffExam.setDelFlag(DeleteStatusEnum.YES.getStatus()); boolean save = cmStaffExamService.updateById(cmStaffExam); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除考试经历失败"); return AjaxResult.success("删除考试经历成功"); } @Override public AjaxResult updateCmStaffExam(CmStaffExamUpdateReqDTO reqDTO) { CmStaffExam cmStaffExam = cmStaffExamService.getValidById(reqDTO.getId()); if (cmStaffExam == null) throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在"); BeanUtils.copyProperties(reqDTO,cmStaffExam,"id"); boolean save = cmStaffExamService.updateById(cmStaffExam); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改考试经历失败"); return AjaxResult.success("修改考试经历成功"); } @Override public AjaxResult saveCmStaffQa(CmStaffQaAddReqDTO reqDTO) { CmStaffQa cmStaffQa = new CmStaffQa(); BeanUtils.copyProperties(reqDTO,cmStaffQa); SysOperateTypeWholeNameBO operateTypeWholeName = sysOperateTypeService.getOperateTypeWholeNameById(reqDTO.getOperateTypeId()); if (operateTypeWholeName == null) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"作业与操作类型不存在"); BeanUtils.copyProperties(operateTypeWholeName,cmStaffQa); cmStaffQa.setDelFlag(DeleteStatusEnum.NO.getStatus()); boolean save = cmStaffQaService.save(cmStaffQa); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"新增资格证书失败"); return AjaxResult.success("新增资格证书成功"); } @Override public AjaxResult deleteCmStaffQa(Long id) { CmStaffQa cmStaffQa = cmStaffQaService.getValidById(id); if (cmStaffQa == null) return AjaxResult.success("删除资格证书成功"); cmStaffQa.setDelFlag(DeleteStatusEnum.YES.getStatus()); boolean save = cmStaffQaService.updateById(cmStaffQa); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除资格证书失败"); return AjaxResult.success("删除资格证书成功"); } @Override public AjaxResult updateCmStaffQa(CmStaffQaUpdateReqDTO reqDTO) { CmStaffQa cmStaffQa = cmStaffQaService.getValidById(reqDTO.getId()); if (cmStaffQa == null) throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在"); BeanUtils.copyProperties(reqDTO,cmStaffQa,"id"); SysOperateTypeWholeNameBO operateTypeWholeName = sysOperateTypeService.getOperateTypeWholeNameById(reqDTO.getOperateTypeId()); if (operateTypeWholeName == null) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"作业与操作类型不存在"); BeanUtils.copyProperties(operateTypeWholeName,cmStaffQa); boolean save = cmStaffQaService.updateById(cmStaffQa); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改资格证书失败"); return AjaxResult.success("修改资格证书成功"); } @Override public List selectPage() { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus()); List cmStaffs = cmStaffService.list(wrapper); if (CollectionUtils.isEmpty(cmStaffs)){ return new ArrayList<>(); } List dtos = cmStaffs.stream().map(cmStaff -> { CmStaffPageRespDTO dto = new CmStaffPageRespDTO(); BeanUtils.copyProperties(cmStaff,dto); Long id = cmStaff.getId(); dto.setPhotoAttachment(attachmentInfoService.getById(cmStaff.getPhotoAttachment())); dto.setWorkRegistrationVOS(workRegistrationService.getByIdCard(cmStaff.getCode(), (byte) 0)); dto.setViolationRegistrationVOS(violationRegistrationService.getByIdCard(cmStaff.getCode(),(byte)0)); dto.setCmStaffResumes(cmStaffResumeService.listValid(id)); dto.setCmStaffTrains(cmStaffTrainService.listValid(id)); dto.setCmStaffExams(cmStaffExamService.listValid(id)); dto.setCmStaffQas(cmStaffQaService.listValid(id)); return dto; }).collect(Collectors.toList()); return dtos; } @Override public AjaxResult editCmStaff(CmStaffUpdateReqDTO reqDTO) { CmStaff staff = cmStaffService.selectByCode(reqDTO.getCode()); if (staff != null && staff.getId() != reqDTO.getId()) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"该身份证人员已存在"); BeanUtils.copyProperties(reqDTO,staff); boolean save = cmStaffService.updateById(staff); if (!save) throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改失败"); return AjaxResult.success("修改成功"); } @Override @Transactional public AjaxResult deleteCmStaff(Long id) { CmStaff cmStaff = cmStaffService.getValidById(id); if (cmStaff == null) return AjaxResult.success("删除成功"); cmStaff.setDelFlag(DeleteStatusEnum.YES.getStatus()); boolean result = cmStaffService.updateById(cmStaff); if (!result) return AjaxResult.success("删除失败"); List cmStaffExams = cmStaffExamService.listValid(id); if (!CollectionUtils.isEmpty(cmStaffExams)){ cmStaffExams = cmStaffExams.stream().map(cmStaffExam -> { cmStaffExam.setDelFlag(DeleteStatusEnum.YES.getStatus()); return cmStaffExam; }).collect(Collectors.toList()); boolean cmStaffExamResult = cmStaffExamService.updateBatchById(cmStaffExams); if (!cmStaffExamResult) return AjaxResult.success("删除失败"); } List cmStaffQas = cmStaffQaService.listValid(id); if (!CollectionUtils.isEmpty(cmStaffQas)){ cmStaffQas = cmStaffQas.stream().map(cmStaffQa -> { cmStaffQa.setDelFlag(DeleteStatusEnum.YES.getStatus()); return cmStaffQa; }).collect(Collectors.toList()); boolean cmStaffQaResult = cmStaffQaService.updateBatchById(cmStaffQas); if (!cmStaffQaResult) return AjaxResult.success("删除失败"); } List cmStaffResumes = cmStaffResumeService.listValid(id); if (!CollectionUtils.isEmpty(cmStaffResumes)){ cmStaffResumes = cmStaffResumes.stream().map(cmStaffResume -> { cmStaffResume.setDelFlag(DeleteStatusEnum.YES.getStatus()); return cmStaffResume; }).collect(Collectors.toList()); boolean cmStaffResumeResult = cmStaffResumeService.updateBatchById(cmStaffResumes); if (!cmStaffResumeResult) return AjaxResult.success("删除失败"); } List cmStaffTrains = cmStaffTrainService.listValid(id); if (!CollectionUtils.isEmpty(cmStaffTrains)){ cmStaffTrains = cmStaffTrains.stream().map(cmStaffTrain -> { cmStaffTrain.setDelFlag(DeleteStatusEnum.YES.getStatus()); return cmStaffTrain; }).collect(Collectors.toList()); boolean cmStaffTrainResult = cmStaffTrainService.updateBatchById(cmStaffTrains); if (!cmStaffTrainResult) return AjaxResult.success("删除失败"); } return AjaxResult.success("删除成功"); } @Override public AjaxResult selectByCode(String code) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus()) .eq(CmStaff::getCode,code); CmStaff cmStaff = cmStaffService.getOne(wrapper); if (cmStaff == null){ return AjaxResult.success(); } CmStaffByCodeRespDTO dto = new CmStaffByCodeRespDTO(); BeanUtils.copyProperties(cmStaff,dto); Long id = cmStaff.getId(); dto.setPhotoAttachment(attachmentInfoService.getById(cmStaff.getPhotoAttachment())); dto.setWorkRegistrationVOS(workRegistrationService.getByIdCard(cmStaff.getCode(), (byte) 0)); dto.setViolationRegistrationVOS(violationRegistrationService.getByIdCard(cmStaff.getCode(),(byte)0)); dto.setCmStaffResumes(cmStaffResumeService.listValid(id)); dto.setCmStaffTrains(cmStaffTrainService.listValid(id)); dto.setCmStaffExams(cmStaffExamService.listValid(id)); dto.setCmStaffQas(cmStaffQaService.listValid(id)); return AjaxResult.success(dto); } }