package com.zhongzheng.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhongzheng.bo.SysCertificateBo; import com.zhongzheng.common.filter.CustomException; import com.zhongzheng.common.model.TableDataInfo; import com.zhongzheng.common.util.DateUtils; import com.zhongzheng.common.util.EncryptHandler; import com.zhongzheng.domian.*; import com.zhongzheng.mapper.*; import com.zhongzheng.service.ISysCertificateAdditionService; import com.zhongzheng.service.ISysCertificateService; import com.zhongzheng.service.ISysCompanyService; import com.zhongzheng.service.ISysPersonService; import com.zhongzheng.vo.MajorVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * 菜单 业务层处理 * * @author zhongzheng */ @Service public class SysCertificateAdditionServiceImpl extends ServiceImpl implements ISysCertificateAdditionService { public static final String PREMISSION_STRING = "perms[\"{0}\"]"; @Autowired private SysPersonMapper personMapper; @Autowired private ISysCertificateService sysCertSeaService; @Autowired private ISysCompanyService sysCompanyService; @Autowired private ISysPersonService sysPersonService; @Autowired private SysCertificateMapper certMapper; @Autowired private SysCertificateAdditionMapper certAddMapper; @Autowired private MemoCertificateMapper memoCertMapper; @Override public long insertCertificateAddition(SysCertificateBo entity) { SysCertificateAddition p =null; p = getOne(new LambdaUpdateWrapper() .eq(SysCertificateAddition::getCertificateId, entity.getCertificateId()) .eq(ObjectUtils.isNotNull(entity.getMajorId()), SysCertificateAddition::getMajorId, entity.getMajorId()) .eq(SysCertificateAddition::getStatus, 1)); if(p!=null&&p.getCertificateAdditionId()>0){ throw new CustomException("证书对应的专业已存在"); } SysCertificateAddition p2 = getOne(new LambdaUpdateWrapper() .eq(SysCertificateAddition::getCertificateId,entity.getCertificateId()) .eq(SysCertificateAddition::getStatus,1)); SysCertificateAddition model = new SysCertificateAddition(); model.setCertificateId(entity.getCertificateId()); model.setExpiryDate(entity.getExpiryDate()); model.setCreateTime(DateUtils.getNowTime()); model.setMajorId(entity.getMajorId()); model.setCreator(entity.getUserId()); if(entity.getCertificateType()!=3) { model.setIsPrimary(0); if (p2 == null) { model.setIsPrimary(1); } }else { model.setIsPrimary(entity.getIsPrimary()); } return certAddMapper.insert(model); } @Override public void updateCertificateAddition(SysCertificateBo entity, long userid) { SysCertificateAddition model = new SysCertificateAddition(); model.setCertificateId(entity.getCertificateId()); model.setCreator(entity.getUserId()); model.setExpiryDate(entity.getExpiryDate()); model.setCreateTime(DateUtils.getNowTime()); model.setStatus(1); model.setMajorId(entity.getMajorId()); if(entity.getIsPrimary()>=0){ model.setIsPrimary(entity.getIsPrimary()); } model.setMajorName(entity.getMajorName()); model.setCertificateAdditionId(entity.getCertificateAdditionId()); String majorName = entity.getMajorName(); Integer majorId = entity.getMajorId(); if (model.getCertificateAdditionId() !=null&&model.getCertificateAdditionId() > 0) { certAddMapper.updateById(model); } else { SysCertificateAddition p =null; p = getOne(new LambdaUpdateWrapper() .eq(SysCertificateAddition::getCertificateId, entity.getCertificateId()) .eq(ObjectUtils.isNotNull(entity.getMajorId()), SysCertificateAddition::getMajorId, entity.getMajorId()) .eq(SysCertificateAddition::getStatus, 1)); if(p==null){ certAddMapper.insert(model); }else { model.setCertificateAdditionId(p.getCertificateAdditionId()); certAddMapper.updateById(model); } } } @Override public boolean deleteCertificateAdditionById(Long id, long userid) { SysCertificateAddition model = certAddMapper.selectById(id); model.setStatus(-1); model.setModifier(userid); model.setUpdateTime(DateUtils.getNowTime()); return certAddMapper.updateById(model)>0; } @Override public List selectCertificateAdditionByCertId(Long id) { return list(new LambdaUpdateWrapper() .eq(SysCertificateAddition::getCertificateId, id) .eq(SysCertificateAddition::getStatus, 1)); } @Override public List selectCertificateAdditionByCertIds(List ids) { return list(new LambdaUpdateWrapper() .in(SysCertificateAddition::getCertificateId, ids) .eq(SysCertificateAddition::getStatus, 1)); } @Override public void IntCertificateAdditionByTypeIdAndCompanyId(Long companyId, Integer certTypeId,Long momoId) { SysCertificateBo entity = new SysCertificateBo(); entity.setCompanyId(companyId); entity.setCertificateTypeId2(certTypeId); entity.setWarningState(1); entity.setPageNum(1); entity.setPageSize(10000); IPage pageinfo = certMapper.selectCerAdditionList(new Page<>(entity.getPageNum(), entity.getPageSize()), entity); pageinfo.getRecords().forEach(record -> { SysCertificateAddition model = new SysCertificateAddition(); model.setCertificateAdditionId(record.getCertificateAdditionId()); model.setWarningState(2); certAddMapper.updateById(model) ; MemoCertificate mCert=new MemoCertificate(); mCert.setMemoId(momoId); mCert.setCertificateAdditionId(record.getCertificateAdditionId()); mCert.setCreateTime(DateUtils.getNowTime()); }); } @Override public TableDataInfo selectPersonWarningList(SysCertificateBo entity) { if (ObjectUtil.isEmpty(entity.getPageSize()) || entity.getPageSize() < 1) { entity.setPageSize(-1); entity.setPageNum(1); } if(StringUtils.isNotBlank(entity.getCompanyName())){ SysCompany company = sysCompanyService.selectCompanyByName(entity.getCompanyName(),entity.getUserId()); if(ObjectUtil.isEmpty(company)){ return new TableDataInfo<>(); } entity.setCompanyId(entity.getCompanyId()); } if(StringUtils.isNotBlank(entity.getPersonName())) { List c_list = sysCompanyService.selectCompanyByUserid(entity.getUserId()); if (c_list.isEmpty()) { return new TableDataInfo<>(); } List companyIdList = c_list.stream().map(SysCompany::getCompanyId).collect(Collectors.toList()); List p_list = sysPersonService.selectPersonByName(entity.getPersonName(), companyIdList); if (p_list != null && p_list.size() == 0) { return new TableDataInfo<>(); } List uids = p_list.stream().map(SysPerson::getPersonId).collect(Collectors.toList()); entity.setPersonIds(uids); } IPage pageinfo = certMapper.selectCerAdditionList(new Page<>(entity.getPageNum(), entity.getPageSize()), entity); TableDataInfo info = new TableDataInfo(); info.setTotal(pageinfo.getTotal()); info.setRows(pageinfo.getRecords()); return info; } @Override public TableDataInfo selectEnterpriseWarningList(SysCertificateBo entity) { if (ObjectUtil.isEmpty(entity.getPageSize()) || entity.getPageSize() < 1) { entity.setPageSize(-1); entity.setPageNum(1); } if(StringUtils.isNotBlank(entity.getCompanyName())){ SysCompany company = sysCompanyService.selectCompanyByName(entity.getCompanyName(),entity.getUserId()); if(ObjectUtil.isEmpty(company)){ return new TableDataInfo<>(); } entity.setCompanyId(entity.getCompanyId()); } if(StringUtils.isNotBlank(entity.getPersonName())) { List c_list = sysCompanyService.selectCompanyByUserid(entity.getUserId()); if (c_list.isEmpty()) { return new TableDataInfo<>(); } List companyIdList = c_list.stream().map(SysCompany::getCompanyId).collect(Collectors.toList()); List p_list = sysPersonService.selectPersonByName(entity.getPersonName(), companyIdList); if (p_list != null && p_list.size() == 0) { return new TableDataInfo<>(); } List uids = p_list.stream().map(SysPerson::getPersonId).collect(Collectors.toList()); entity.setPersonIds(uids); } IPage pageinfo = certMapper.selectEnterpriseCerAdditionList(new Page<>(entity.getPageNum(), entity.getPageSize()), entity); TableDataInfo info = new TableDataInfo(); info.setTotal(pageinfo.getTotal()); info.setRows(pageinfo.getRecords()); return info; } }