package com.gkhy.system.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.common.enums.DeleteFlagEnum; import com.gkhy.common.exception.ServiceException; import com.gkhy.common.utils.SecurityUtils; import com.gkhy.system.domain.SysExpertInfo; import com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq; import com.gkhy.system.domain.vo.request.SysExpertSearchReqDto; import com.gkhy.system.domain.vo.response.ProjectExpertSectionResp; import com.gkhy.system.domain.vo.response.SysExpertSearchRep; import com.gkhy.system.mapper.SysExpertInfoMapper; import com.gkhy.system.service.SysExpertInfoService; import org.springframework.stereotype.Service; import java.util.List; /** *

* 系统专家信息表 服务实现类 *

* * @author kzy * @since 2023-11-27 16:33:33 */ @Service public class SysExpertInfoServiceImpl extends ServiceImpl implements SysExpertInfoService { @Override public List exportInfoList(SysExpertInfo expertInfo) { //todo 验证是否是管理不是管理只能看本部门 if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ expertInfo.setDeptId(SecurityUtils.getDeptId()); } return baseMapper.expertInfoList(expertInfo); } @Override public int addExpertInfo(SysExpertInfo expertInfo) { if(!checkIdCardUnique(new SysExpertInfo().setIdCard(expertInfo.getIdCard()))){ throw new ServiceException("该业务处室申请数据已存在"); } expertInfo.setCreateBy(expertInfo.getName()); boolean b=save(expertInfo); if(!b){ throw new ServiceException("新增专家信息失败"); } return 1; } @Override public int modExpertInfo(SysExpertInfo expertInfo) { if(!checkIdCardUnique(expertInfo)){ throw new ServiceException("该业务处室申请数据已存在"); } expertInfo.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(expertInfo); if(!b){ throw new ServiceException("修改专家信息失败"); } return 1; } @Override public int delExpertInfo(Long expertId) { SysExpertInfo expertInfo = new SysExpertInfo(); expertInfo.setId(expertId); expertInfo.setDelFlag(DeleteFlagEnum.DELETED.getCode()); expertInfo.setUpdateBy(SecurityUtils.getUsername()); boolean b= updateById(expertInfo); if(!b){ throw new ServiceException("删除专家信息失败"); } return 1; } @Override public int delExpertInfoBatch(Long[] expertIds) { return baseMapper.deleteBatchByIds(expertIds); } @Override public SysExpertInfo exportInfoDetail(Long expertId) { return baseMapper.getExpertInfoById(expertId); } public SysExpertInfo checkExpertInfoDataScope(Long expertId) { if(expertId==null){ throw new ServiceException("专家id为空!"); } SysExpertInfo expertInfo = baseMapper.getExpertInfoById(expertId); if (ObjectUtil.isNull(expertInfo)) { throw new ServiceException("专家数据不存在!"); } return expertInfo; } @Override public boolean changeApprove(SysExpertInfo expertInfo) { checkExpertInfoDataScope(expertInfo.getId()); SysExpertInfo se=new SysExpertInfo().setId(expertInfo.getId()).setState(expertInfo.getState()); se.setUpdateBy(SecurityUtils.getUsername()); return updateById(se); } @Override public SysExpertSearchRep queryApprove(SysExpertSearchReqDto expertInfo) { SysExpertSearchRep sysExpertSearchRep = baseMapper.queryApprove(expertInfo); if (null == sysExpertSearchRep){ throw new ServiceException("申请记录不存!"); } return sysExpertSearchRep; } @Override public List getExpertRound(SysExpertInfoRoundReq req) { return baseMapper.getExpertRound(req); } public boolean checkIdCardUnique(SysExpertInfo expertInfo){ Long expertId = expertInfo.getId()==null? -1L : expertInfo.getId(); SysExpertInfo info = baseMapper.checkIdcardUnique(expertInfo.getIdCard(),expertInfo.getDeptId()); if (info!=null && info.getId().longValue() != expertId.longValue()) { return false; } return true; } }