From d30f51ef23798fea6e83859684267cbb133fed9c Mon Sep 17 00:00:00 2001 From: heheng <heheng@123456> Date: 星期一, 20 一月 2025 10:17:31 +0800 Subject: [PATCH] 特种作业非煤缴费版本 --- exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java | 146 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 142 insertions(+), 4 deletions(-) diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java index 86af351..5ca08df 100644 --- a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java @@ -1,14 +1,23 @@ package com.gkhy.exam.pay.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gkhy.exam.pay.dto.req.NonCoalPayStudentReqDto; import com.gkhy.exam.pay.entity.NonCoalPayStudent; import com.gkhy.exam.pay.mapper.NonCoalPayStudentMapper; import com.gkhy.exam.pay.service.NonCoalPayStudentService; -import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** @@ -33,6 +42,7 @@ return nonCoalPayStudentMapper.selectNonCoalPayStudentById(id); } + /** * 查询【请填写功能名称】列表 * @@ -52,7 +62,8 @@ */ @Override public int insertNonCoalPayStudent(NonCoalPayStudent nonCoalPayStudent) { - nonCoalPayStudent.setCreateTime(DateUtils.getNowDate()); + checkSameData(nonCoalPayStudent); + nonCoalPayStudent.setCreateBy(SecurityUtils.getUsername()); return nonCoalPayStudentMapper.insertNonCoalPayStudent(nonCoalPayStudent); } @@ -64,9 +75,63 @@ */ @Override public int updateNonCoalPayStudent(NonCoalPayStudent nonCoalPayStudent) { - nonCoalPayStudent.setUpdateTime(DateUtils.getNowDate()); + checkData(nonCoalPayStudent.getId()); + checkSameData(nonCoalPayStudent); + nonCoalPayStudent.setUpdateBy(SecurityUtils.getUsername()); return nonCoalPayStudentMapper.updateNonCoalPayStudent(nonCoalPayStudent); } + + @Override + public int updateNonCoalStu(NonCoalPayStudentReqDto nonCoalPayStudent) { + + if (nonCoalPayStudent.getId() != null) { + NonCoalPayStudent nonCoalPayStudent1 = selectNonCoalPayStudentById(nonCoalPayStudent.getId()); + if (nonCoalPayStudent1 != null) { + nonCoalPayStudent1.setPayCode(nonCoalPayStudent.getPayCode()); + nonCoalPayStudent1.setPayStatus(1L); + nonCoalPayStudent1.setUpdateBy(SecurityUtils.getUsername()); + } else { + log.error("修改缴费学员失败,该缴费学员不存在:" + nonCoalPayStudent.getId()); + } + } else { + if (nonCoalPayStudent.getNonCoalPayId() != null) { + baseMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate() + .set(NonCoalPayStudent::getUpdateBy, SecurityUtils.getUsername()) + .set(NonCoalPayStudent::getPayCode, nonCoalPayStudent.getPayCode()) + .set(NonCoalPayStudent::getPayStatus, 1L) + .eq(NonCoalPayStudent::getNonCoalPayId, nonCoalPayStudent.getNonCoalPayId()) + .eq(NonCoalPayStudent::getPayStatus, 0L).eq(NonCoalPayStudent::getDelFlag, 0)); + } + } + return 0; + } + + private void checkSameData(NonCoalPayStudent nonCoalPay) { + LambdaQueryWrapper<NonCoalPayStudent> lambdaQueryWrapper = Wrappers.<NonCoalPayStudent>lambdaQuery() + .eq(NonCoalPayStudent::getNonCoalPayId, nonCoalPay.getNonCoalPayId()) + .eq(NonCoalPayStudent::getIdCard, nonCoalPay.getIdCard()) + .eq(NonCoalPayStudent::getDelFlag, 0); + if (nonCoalPay.getId() == null) { + lambdaQueryWrapper.ne(NonCoalPayStudent::getId, nonCoalPay.getId()); + } + Long l = baseMapper.selectCount(lambdaQueryWrapper); + if (l > 0) { + throw new ServiceException("该缴费学员已存在"); + } + } + + @Override + public void checkHavePayData(Long nonPayId) { + LambdaQueryWrapper<NonCoalPayStudent> lambdaQueryWrapper = Wrappers.<NonCoalPayStudent>lambdaQuery() + .eq(NonCoalPayStudent::getNonCoalPayId, nonPayId) + .eq(NonCoalPayStudent::getDelFlag, 0).eq(NonCoalPayStudent::getPayStatus, 1L); + + Long l = baseMapper.selectCount(lambdaQueryWrapper); + if (l > 0) { + throw new ServiceException("已开始缴费不可修改"); + } + } + /** * 批量删除【请填写功能名称】 @@ -87,6 +152,79 @@ */ @Override public int deleteNonCoalPayStudentById(Long id) { - return nonCoalPayStudentMapper.deleteNonCoalPayStudentById(id); + checkData(id); + return nonCoalPayStudentMapper.deleteNonCoalPayStudentById(id, SecurityUtils.getUsername()); + } + + @Override + public String importData(List<NonCoalPayStudent> nonCoalPayStudents, String operName, Long nonCoalPayId) { + if (StringUtils.isNull(nonCoalPayStudents) || nonCoalPayStudents.isEmpty()) { + throw new ServiceException("导入数据不能为空!"); + } + + Set<String> collect = nonCoalPayStudents.stream() + .map(NonCoalPayStudent::getIdCard) + .collect(Collectors.toSet()); + if (collect.size() != nonCoalPayStudents.size()) { + throw new ServiceException("导入数据不能有重复身份证号!"); + } + Map<String, String> idCardToNameMap = new HashMap<>(); + NonCoalPayStudent student = new NonCoalPayStudent(); + student.setNonCoalPayId(nonCoalPayId); + + List<NonCoalPayStudent> nonCoalPayStudents1 = nonCoalPayStudentMapper.selectNonCoalPayStudentList(student); + if (nonCoalPayStudents1 != null && !nonCoalPayStudents1.isEmpty()) { + idCardToNameMap = nonCoalPayStudents1.stream() + .collect(Collectors.toMap( + NonCoalPayStudent::getIdCard, + NonCoalPayStudent::getIdCard + )); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (NonCoalPayStudent stu : nonCoalPayStudents) { + try { + if (idCardToNameMap.get(stu.getIdCard().trim()) != null) { + failureMsg.append("<br/>" + failureNum + "、身份证号: " + stu.getIdCard() + " 数据已存在"); + } else { + stu.setPayType(1L); + stu.setPayStatus(0L); + stu.setNonCoalPayId(nonCoalPayId); + save(stu); + successNum++; + successMsg.append("<br/>" + successNum + "、身份证号 " + stu.getIdCard() + " 导入成功"); + idCardToNameMap.put(stu.getIdCard(), stu.getIdCard()); + } + + } catch (Exception e) { + failureNum++; + String msg = "<br/>" + failureNum + "、身份证号 " + stu.getIdCard() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + private NonCoalPayStudent checkData(Long id) { + NonCoalPayStudent byId = getById(id); + if (byId == null) { + throw new RuntimeException("该数据不存在"); + } + if (byId.getDelFlag() == 2) { + throw new RuntimeException("该数据已删除"); + } + if (byId.getPayStatus() == 1) { + throw new RuntimeException("该数据已缴费,不可操作"); + } + return byId; } } \ No newline at end of file -- Gitblit v1.9.2