| | |
| | | package com.ots.project.exam.service.impl; |
| | | |
| | | import com.ots.common.enums.TestMemberStatusEnum; |
| | | import com.ots.common.enums.UsageCountEnum; |
| | | import com.ots.common.exception.BusinessException; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.ots.common.enums.ResponseCode.*; |
| | | import static com.ots.common.enums.TestMemberStatusEnum.*; |
| | | |
| | | /** |
| | | * 测评人员名单Service业务层处理 |
| | | * |
| | | * @author ots |
| | | * @date 2019-12-15 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class EntTestMemberServiceImpl implements IEntTestMemberService { |
| | | @Autowired |
| | | private EntTestMemberMapper entTestMemberMapper; |
| | | |
| | | @Autowired |
| | | private EntTestPackageMapper entTestPackageMapper; |
| | | |
| | | @Autowired |
| | | private SysUserExtendMapper sysUserExtendMapper; |
| | | @Autowired |
| | | private TExamReportMapper tReportTemplateMapper; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询测评人员名单 |
| | | * |
| | | * @param memberId 测评人员名单ID |
| | | * @return 测评人员名单 |
| | | */ |
| | | @Override |
| | | public EntTestMember selectEntTestMemberById(Long memberId) { |
| | | return entTestMemberMapper.selectEntTestMemberById(memberId); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询测评人员名单列表 |
| | | * |
| | | * @param entTestMember 测评人员名单 |
| | | * @return 测评人员名单 |
| | | */ |
| | | @Override |
| | | public List<EntTestMember> selectEntTestMemberList(EntTestMember entTestMember) { |
| | | return entTestMemberMapper.selectEntTestMemberList(entTestMember); |
| | | } |
| | | |
| | | @Override |
| | | public List<EntTestMember> selectEntTestMemberTopList(EntTestMember entTestMember) { |
| | | return entTestMemberMapper.selectEntTestMemberTopList(entTestMember); |
| | | } |
| | | |
| | | @Override |
| | | public List<EntTestMember> selectEntTestMemberQueryList(EntTestMember entTestMember) { |
| | | List<EntTestMember> entTestMembers = entTestMemberMapper.selectEntTestMemberQueryList(entTestMember); |
| | | |
| | | //查询报告表是否给HR发送邮件 |
| | | List<String> collect = entTestMembers.stream().map(p -> String.valueOf(p.getMemberId())).collect(Collectors.toList()); |
| | | if (Objects.isNull(collect)) { |
| | | return new ArrayList<>(); |
| | |
| | | if (Objects.isNull(memberIds) || memberIds.length == 0) { |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | List<TExamReport> tExamReports = tReportTemplateMapper.selectTReportTemplatesByMemberId(memberIds); |
| | | |
| | | |
| | | //补充repor表的HR邮箱发送状态 |
| | | Map<String, EntTestMember> map = new HashMap(); |
| | | for (EntTestMember testMember : entTestMembers) { |
| | | map.put(String.valueOf(testMember.getMemberId()), testMember); |
| | |
| | | } |
| | | return entTestMembers; |
| | | } |
| | | |
| | | @Override |
| | | public List<EntTestMember> selectEntTestMemberList(Map params) { |
| | | return entTestMemberMapper.selectEntTestMemberListByMap(params); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 新增测评人员名单,并减去可用次数 |
| | | * |
| | | * @param entTestMember 测评人员名单 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int insertEntTestMember(EntTestMember entTestMember) { |
| | |
| | | usageCount(entTestMember, UsageCountEnum.reduce); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 使用次数(根据传入的类型 判断次数是增加还是减少) |
| | | * 调用,增加或者扣减一次。 |
| | | * |
| | | * @param entTestMember |
| | | */ |
| | | private void usageCount(EntTestMember entTestMember, UsageCountEnum op) { |
| | | MISSING_PARAMETERS.assertNotNull(entTestMember.getTestId(), "测试包编码"); |
| | | EntTestPackage entTestPackage = entTestPackageMapper.selectEntTestPackageById(entTestMember.getTestId()); |
| | | |
| | | ERROR_MESSAGE_CHECK.assertNotNull(entTestPackage, "测试包信息不存在!"); |
| | | SysUserExtend sysUserExtend = sysUserExtendMapper.selectSysUserExtendById(entTestPackage.getUserId()); |
| | | |
| | | ERROR_MESSAGE_CHECK.assertNotNull(sysUserExtend, "未配置可使用次数!"); |
| | | USR_TIME_ISOVER.assertIsTrue(sysUserExtend.getTestNum() > 0, entTestPackage.getUserId()); |
| | | sysUserExtend.setTestNum(sysUserExtend.getTestNum() + op.getOp()); |
| | | |
| | | sysUserExtendMapper.updateSysUserExtend(sysUserExtend); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改测评人员名单 |
| | | * |
| | | * @param entTestMember 测评人员名单 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int updateEntTestMember(EntTestMember entTestMember) { |
| | | entTestMember.setUpdateTime(DateUtils.getNowDate()); |
| | | int reslut = entTestMemberMapper.updateEntTestMember(entTestMember); |
| | | |
| | | //回收状态,需要回收次数 |
| | | List<String> status = Arrays.asList(TestMemberStatusEnum.recover.getCode(), TestMemberStatusEnum.expiryRecovery.getCode()); |
| | | if (status.contains(entTestMember.getStatus())) { |
| | | usageCount(entTestMember, UsageCountEnum.add); |
| | | } |
| | | return reslut; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除测评人员名单对象 |
| | | * |
| | | * @param ids 需要删除的数据ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteEntTestMemberByIds(String ids) { |
| | | return entTestMemberMapper.deleteEntTestMemberByIds(Convert.toStrArray(ids)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除测评人员名单信息 |
| | | * |
| | | * @param memberId 测评人员名单ID |
| | | * @return 结果 |
| | | */ |
| | | public int deleteEntTestMemberById(Long memberId) { |
| | | return entTestMemberMapper.deleteEntTestMemberById(memberId); |
| | | } |
| | | |
| | | @Override |
| | | public String importEntTestMember(List<EntTestMember> entTestMemberList, Boolean isUpdateSupport) { |
| | | if (StringUtils.isNull(entTestMemberList) || entTestMemberList.size() == 0) { |
| | | throw new BusinessException("Import user data cannot be empty!"); |
| | | } |
| | | |
| | | int successNum = 0; |
| | | int failureNum = 0; |
| | | StringBuilder successMsg = new StringBuilder(); |
| | | StringBuilder failureMsg = new StringBuilder(); |
| | | |
| | | for (EntTestMember entTestMember : entTestMemberList) { |
| | | try { |
| | | insertEntTestMember(entTestMember); |
| | |
| | | successNum++; |
| | | successMsg.append("<br/>" + successNum + "、"+ MessageUtils.message("jsp.testPackage.name") +" " + entTestMember.getMemberName() + MessageUtils.message("imported.successfully")); |
| | | } |
| | | |
| | | |
| | | if (failureNum > 0) { |
| | | failureMsg.insert(0, MessageUtils.message("import.internationalization.001") + failureNum + MessageUtils.message("import.internationalization.002")); |
| | | |
| | | // throw new BusinessException(failureMsg.toString()); |
| | | } else { |
| | | successMsg.insert(0, MessageUtils.message("import.internationalization.003") + successNum + MessageUtils.message("import.internationalization.004")); |
| | | } |
| | | |
| | | return successMsg.toString(); |
| | | } |
| | | |
| | | |
| | | public EntTestMember findEntTestMember(String token, List<String> status) { |
| | | Map paramMap = new HashMap(); |
| | | paramMap.put("token", token); |
| | | paramMap.put("status", status); |
| | | return entTestMemberMapper.findEntTestMember(paramMap); |
| | | } |
| | | |
| | | @Override |
| | | public int updateTestMemberStatus(TestMemberStatusEnum statusEnum, long memberId) { |
| | | EntTestMember member = selectEntTestMemberById(memberId); |
| | |
| | | } else if (completed == statusEnum || timeOut == statusEnum) { |
| | | member.setEndTime(new Date()); |
| | | } |
| | | |
| | | int result = updateEntTestMember(member); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public boolean checkMemberHasReport(List<String> asList, Long testId) { |
| | | return false; |