huangzhen
2023-09-26 28231163c688c379a688ce6878a1126ee218aa52
exam-system/src/main/java/com/gkhy/exam/coalmine/service/impl/CmStaffManagerServiceImpl.java
@@ -3,6 +3,7 @@
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.*;
@@ -13,11 +14,15 @@
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;
@@ -34,6 +39,9 @@
    @Resource
    private CmStaffTrainService cmStaffTrainService;
    @Resource
    private SysOperateTypeService sysOperateTypeService;
    @Resource
    private CmStaffResumeService cmStaffResumeService;
@@ -55,6 +63,9 @@
    @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());
@@ -81,7 +92,7 @@
        if (cmStaffResume == null)
            return AjaxResult.success("删除履历成功");
        cmStaffResume.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffResumeService.save(cmStaffResume);
        boolean save = cmStaffResumeService.updateById(cmStaffResume);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败");
        return AjaxResult.success("删除履历成功");
@@ -93,7 +104,7 @@
        if (cmStaffResume == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffResume,"id");
        boolean save = cmStaffResumeService.save(cmStaffResume);
        boolean save = cmStaffResumeService.updateById(cmStaffResume);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除履历失败");
        return AjaxResult.success("删除履历成功");
@@ -116,7 +127,7 @@
        if (cmStaffTrain == null)
            return AjaxResult.success("删除培训经历成功");
        cmStaffTrain.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffTrainService.save(cmStaffTrain);
        boolean save = cmStaffTrainService.updateById(cmStaffTrain);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除培训经历失败");
        return AjaxResult.success("删除培训经历成功");
@@ -128,7 +139,7 @@
        if (cmStaffTrain == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffTrain,"id");
        boolean save = cmStaffTrainService.save(cmStaffTrain);
        boolean save = cmStaffTrainService.updateById(cmStaffTrain);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改培训经历失败");
        return AjaxResult.success("修改培训经历成功");
@@ -151,7 +162,7 @@
        if (cmStaffExam == null)
            return AjaxResult.success("删除考试经历成功");
        cmStaffExam.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffExamService.save(cmStaffExam);
        boolean save = cmStaffExamService.updateById(cmStaffExam);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除考试经历失败");
        return AjaxResult.success("删除考试经历成功");
@@ -163,7 +174,7 @@
        if (cmStaffExam == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffExam,"id");
        boolean save = cmStaffExamService.save(cmStaffExam);
        boolean save = cmStaffExamService.updateById(cmStaffExam);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"修改考试经历失败");
        return AjaxResult.success("修改考试经历成功");
@@ -173,6 +184,10 @@
    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)
@@ -186,7 +201,7 @@
        if (cmStaffQa == null)
            return AjaxResult.success("删除资格证书成功");
        cmStaffQa.setDelFlag(DeleteStatusEnum.YES.getStatus());
        boolean save = cmStaffQaService.save(cmStaffQa);
        boolean save = cmStaffQaService.updateById(cmStaffQa);
        if (!save)
            throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"删除资格证书失败");
        return AjaxResult.success("删除资格证书成功");
@@ -198,7 +213,11 @@
        if (cmStaffQa == null)
            throw new BusinessException(this.getClass(),ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"数据不存在");
        BeanUtils.copyProperties(reqDTO,cmStaffQa,"id");
        boolean save = cmStaffQaService.save(cmStaffQa);
        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("修改资格证书成功");
@@ -210,10 +229,11 @@
        wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus());
        List<CmStaff> cmStaffs = cmStaffService.list(wrapper);
        if (CollectionUtils.isEmpty(cmStaffs)){
            return null;
            return new ArrayList<>();
        }
        List<CmStaffPageRespDTO> 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));
@@ -226,4 +246,91 @@
        }).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<CmStaffExam> 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<CmStaffQa> 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<CmStaffResume> 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<CmStaffTrain> 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<CmStaff> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(CmStaff::getDelFlag,DeleteStatusEnum.NO.getStatus())
                .eq(CmStaff::getCode,code);
        CmStaff cmStaff = cmStaffService.getOne(wrapper);
        if (wrapper == 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);
    }
}