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/NonCoalPayServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 129 insertions(+), 11 deletions(-) diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java index c0f46c7..30bf5de 100644 --- a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java +++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java @@ -1,13 +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.rep.NonCoalPayDetailH5RepDto; +import com.gkhy.exam.pay.dto.rep.NonCoalPayDetailRepDto; +import com.gkhy.exam.pay.dto.rep.NonCoalPayPageRepDto; +import com.gkhy.exam.pay.dto.rep.NonCoalPayStudentDetailRepDto; import com.gkhy.exam.pay.dto.req.NonCoalPayCategoryReqDto; import com.gkhy.exam.pay.dto.req.NonCoalPayReqDto; +import com.gkhy.exam.pay.dto.req.NonCoalPayTypeEditReqDto; import com.gkhy.exam.pay.entity.NonCoalPay; import com.gkhy.exam.pay.entity.NonCoalPayCategory; +import com.gkhy.exam.pay.entity.NonCoalPayStudent; import com.gkhy.exam.pay.mapper.NonCoalPayMapper; +import com.gkhy.exam.pay.mapper.NonCoalPayStudentMapper; import com.gkhy.exam.pay.service.NonCoalPayCategoryService; import com.gkhy.exam.pay.service.NonCoalPayService; +import com.gkhy.exam.pay.service.NonCoalPayStudentService; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.bean.BeanUtils; @@ -15,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -31,6 +42,10 @@ private NonCoalPayMapper nonCoalPayMapper; @Resource private NonCoalPayCategoryService nonCoalPayCategoryService; + @Resource + private NonCoalPayStudentService nonCoalPayStudentService; + @Resource + private NonCoalPayStudentMapper nonCoalPayStudentMapper; /** * 查询【请填写功能名称】 @@ -39,8 +54,13 @@ * @return 【请填写功能名称】 */ @Override - public NonCoalPay selectNonCoalPayById(Long id) { - return nonCoalPayMapper.selectNonCoalPayById(id); + public NonCoalPayDetailRepDto selectNonCoalPayById(Long id) { + return nonCoalPayMapper.getNonCoalPayById(id); + } + + @Override + public NonCoalPayDetailH5RepDto selectNonCoalPayByStu(String phone, String idCard) { + return nonCoalPayMapper.selectNonCoalPayByParam(phone, idCard); } @@ -51,8 +71,46 @@ * @return 【请填写功能名称】 */ @Override - public List<NonCoalPay> selectNonCoalPayList(NonCoalPay nonCoalPay) { - return nonCoalPayMapper.selectNonCoalPayList(nonCoalPay); + public List<NonCoalPayPageRepDto> selectNonCoalPayList(NonCoalPay nonCoalPay) { + if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) { + nonCoalPay.setDistrictCode(SecurityUtils.getDeptDistrictCode()); + } + return nonCoalPayMapper.getNonCoalPayList(nonCoalPay); + } + + @Override + public NonCoalPayStudentDetailRepDto getNonCoalPayStudentByPayId(Long id) { + NonCoalPayDetailRepDto nonCoalPayById = nonCoalPayMapper.getNonCoalPayById(id); + NonCoalPayStudentDetailRepDto data = new NonCoalPayStudentDetailRepDto(); + if (nonCoalPayById != null) { + BeanUtils.copyProperties(nonCoalPayById, data); + NonCoalPayStudent student = new NonCoalPayStudent(); + student.setNonCoalPayId(nonCoalPayById.getId()); + List<NonCoalPayStudent> nonCoalPayStudents = nonCoalPayStudentService.selectNonCoalPayStudentList(student); + data.setNonCoalPayStudentList(nonCoalPayStudents); + if (nonCoalPayStudents != null && !nonCoalPayStudents.isEmpty()) { + int payCount = (int) nonCoalPayStudents.stream() + .filter(stu -> stu.getPayStatus() == 1) + .count(); + int size = nonCoalPayStudents.size(); + data.setPayCount(payCount); + data.setUnPayCount(size - payCount); + data.setTotalCount(size); + data.setPayCountFee(new BigDecimal(payCount).multiply(data.getAmount())); + data.setUnPayCountFee(new BigDecimal(size - payCount).multiply(data.getAmount())); + data.setTotalCountFee(new BigDecimal(size).multiply(data.getAmount())); + } else { + data.setPayCount(0); + data.setUnPayCount(0); + data.setTotalCount(0); + data.setPayCountFee(new BigDecimal(0)); + data.setUnPayCountFee(new BigDecimal(0)); + data.setTotalCountFee(new BigDecimal(0)); + } + + return data; + } + return null; } /** @@ -64,27 +122,46 @@ @Override @Transactional public int insertNonCoalPay(NonCoalPayReqDto nonCoalPay) { - //todo 校验 + checkData(nonCoalPay); NonCoalPay nonCoalPay1 = new NonCoalPay(); BeanUtils.copyProperties(nonCoalPay, nonCoalPay1); nonCoalPay1.setCreateBy(SecurityUtils.getUsername()); int i = nonCoalPayMapper.insertNonCoalPay(nonCoalPay1); if (i > 0) { - saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList()); + saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList(), nonCoalPay1.getId()); } return i; } - private void saveNonCoalPayCategory(List<NonCoalPayCategoryReqDto> nonCoalPayCategoryList) { + private void saveNonCoalPayCategory(List<NonCoalPayCategoryReqDto> nonCoalPayCategoryList, Long id) { List<NonCoalPayCategory> nonCoalPayCategories = new ArrayList<>(); for (NonCoalPayCategoryReqDto nonCoalPayCategory : nonCoalPayCategoryList) { NonCoalPayCategory nonCoalPayCategory1 = new NonCoalPayCategory(); BeanUtils.copyProperties(nonCoalPayCategory, nonCoalPayCategory1); + nonCoalPayCategory1.setNonCoalPayId(id); nonCoalPayCategory1.setCreateBy(SecurityUtils.getUsername()); nonCoalPayCategories.add(nonCoalPayCategory1); } - nonCoalPayCategoryService.saveBacth(nonCoalPayCategories); + boolean b = nonCoalPayCategoryService.saveBatchData(nonCoalPayCategories); + if (!b) { + throw new ServiceException("保存失败"); + } + } + + + private void checkData(NonCoalPayReqDto nonCoalPay) { + LambdaQueryWrapper<NonCoalPay> lambdaQueryWrapper = Wrappers.<NonCoalPay>lambdaQuery() + .eq(NonCoalPay::getDistrictCode, nonCoalPay.getDistrictCode()) + .eq(NonCoalPay::getBatchName, nonCoalPay.getBatchName()) + .eq(NonCoalPay::getDelFlag, 0); + if (nonCoalPay.getId() == null) { + lambdaQueryWrapper.ne(NonCoalPay::getId, nonCoalPay.getId()); + } + Long l = baseMapper.selectCount(lambdaQueryWrapper); + if (l > 0) { + throw new ServiceException("该批次已存在"); + } } /** @@ -96,7 +173,8 @@ @Override @Transactional public int updateNonCoalPay(NonCoalPayReqDto nonCoalPay) { - //todo 校验 + checkData(nonCoalPay); + checkHavePay(nonCoalPay.getId()); NonCoalPay nonCoalPay1 = new NonCoalPay(); BeanUtils.copyProperties(nonCoalPay, nonCoalPay1); nonCoalPay1.setUpdateBy(SecurityUtils.getUsername()); @@ -106,7 +184,37 @@ if (i1 < 1) { throw new ServiceException("更新失败"); } - saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList()); + saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList(), nonCoalPay1.getId()); + } + return i; + } + + @Override + public int updateNonCoalPayType(NonCoalPayTypeEditReqDto nonCoalPay) { + NonCoalPay nonCoalPay1 = new NonCoalPay(); + BeanUtils.copyProperties(nonCoalPay, nonCoalPay1); + nonCoalPay1.setUpdateBy(SecurityUtils.getUsername()); + return nonCoalPayMapper.updateNonCoalPay(nonCoalPay1); + } + + @Override + @Transactional + public int updateNonCoalPayTypeStatus(int payPersonType, Long id) { + NonCoalPay byId = getById(id); + if (byId == null) { + throw new ServiceException("该数据不存在"); + } + if (byId.getPayPersonType() == 2) { + throw new ServiceException("已是团体缴费不可变更缴费方式!"); + } + NonCoalPay nonCoalPay1 = new NonCoalPay(); + nonCoalPay1.setPayPersonType(payPersonType); + nonCoalPay1.setId(id); + nonCoalPay1.setUpdateBy(SecurityUtils.getUsername()); + int i = nonCoalPayMapper.updateNonCoalPay(nonCoalPay1); + if (payPersonType == 2) { + //更新未缴费的为团体 + nonCoalPayStudentMapper.updateNonCoalPayStudentType(id, SecurityUtils.getUsername()); } return i; } @@ -130,6 +238,16 @@ */ @Override public int deleteNonCoalPayById(Long id) { - return nonCoalPayMapper.deleteNonCoalPayById(id); + NonCoalPay byId = getById(id); + if (byId == null) { + throw new ServiceException("该数据不存在"); + } + //验证是否有学员已缴费 + checkHavePay(id); + return nonCoalPayMapper.deleteNonCoalPayById(id, SecurityUtils.getUsername()); + } + + private void checkHavePay(Long id) { + nonCoalPayStudentService.checkHavePayData(id); } } \ No newline at end of file -- Gitblit v1.9.2