|
|
|
|
@ -1,18 +1,30 @@ |
|
|
|
|
package org.springblade.desk.jobTransfer.service.impl; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.desk.jobTransfer.mapper.CertificateTypeMapper; |
|
|
|
|
import org.springblade.desk.jobTransfer.mapper.PostHandleMapper; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.entity.CertificateMaintenanceEntity; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.enums.PostHandleStatusEnum; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.enums.StaffTypeEnum; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceExcel; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceImport; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.request.CertificateLedgerQuery; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.vo.CertificateLedgerVO; |
|
|
|
|
import org.springblade.desk.jobTransfer.mapper.CertificateMaintenanceMapper; |
|
|
|
|
import org.springblade.desk.jobTransfer.service.ICertificateMaintenanceService; |
|
|
|
|
import org.springblade.system.cache.UserCache; |
|
|
|
|
import org.springblade.system.pojo.entity.UserInfo; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 证书维护 服务实现类 |
|
|
|
|
@ -23,6 +35,12 @@ import java.util.List; |
|
|
|
|
@Service |
|
|
|
|
public class CertificateMaintenanceServiceImpl extends BaseServiceImpl<CertificateMaintenanceMapper, CertificateMaintenanceEntity> implements ICertificateMaintenanceService { |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private PostHandleMapper postHandleMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private CertificateTypeMapper certificateTypeMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<CertificateLedgerVO> selectCertificateMaintenancePage(IPage<CertificateLedgerVO> page, CertificateLedgerQuery certificateLedgerQuery) { |
|
|
|
|
return page.setRecords(baseMapper.selectCertificateMaintenancePage(page, certificateLedgerQuery)); |
|
|
|
|
@ -53,7 +71,44 @@ public class CertificateMaintenanceServiceImpl extends BaseServiceImpl<Certifica |
|
|
|
|
return saved; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R saveExcelData(List<CertificateMaintenanceImport> certificateMaintenanceImports) { |
|
|
|
|
//获取全部用户codes,通过code获取用户ID,
|
|
|
|
|
Set<String> codes = certificateMaintenanceImports.stream().map(CertificateMaintenanceImport::getUserCode) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
Map<Long, String> idCodeMap = codes.stream() |
|
|
|
|
.map(code -> { |
|
|
|
|
UserInfo userInfo = UserCache.getUserByCode(code); |
|
|
|
|
return (userInfo != null && userInfo.getUser() != null) ? |
|
|
|
|
new AbstractMap.SimpleEntry<>(code, userInfo.getUser().getId()) : null; |
|
|
|
|
}) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getValue, AbstractMap.SimpleEntry::getKey)); |
|
|
|
|
//根据用户id获取人员岗位数据
|
|
|
|
|
Collection<Long> values = idCodeMap.keySet(); |
|
|
|
|
LambdaQueryWrapper<PostHandleEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
lambdaQueryWrapper.in(PostHandleEntity::getUserId, values) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode().shortValue()) |
|
|
|
|
.ne(PostHandleEntity::getPhStatus, PostHandleStatusEnum.DEPART.getCode().shortValue()); // 使用实体类的get方法引用
|
|
|
|
|
List<PostHandleEntity> postHandleEntities = postHandleMapper.selectList(lambdaQueryWrapper); |
|
|
|
|
Map<Long, Long> idMap = postHandleEntities.stream().collect(Collectors.toMap( |
|
|
|
|
entity -> entity.getUserId(), |
|
|
|
|
entity -> entity.getId())); |
|
|
|
|
//整合成一个用户code和PostHandleEntityId的map
|
|
|
|
|
Map<String, Long> codePostHandleIdMap = new HashMap<>(); |
|
|
|
|
for (Long l : idMap.keySet()) { |
|
|
|
|
codePostHandleIdMap.put(idCodeMap.get(l), idMap.get(l)); |
|
|
|
|
} |
|
|
|
|
codes.removeAll(codePostHandleIdMap.keySet()); |
|
|
|
|
if (codes.size() > 0) { |
|
|
|
|
return R.fail("工号:" + String.join(",", codes) + "不存在。"); |
|
|
|
|
} |
|
|
|
|
//获取全部证书类型
|
|
|
|
|
Set<String> certificateType = certificateMaintenanceImports.stream().map(CertificateMaintenanceImport::getCertificateType) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|