教育训练处考试制证系统后端
“djh”
2025-03-06 6061c45849de0f3ac6d05fdfa2bac4b09c21179b
exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalCategoryServiceImpl.java
@@ -1,13 +1,19 @@
package com.gkhy.exam.pay.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.pay.dto.rep.CateGoryTheory;
import com.gkhy.exam.pay.dto.rep.CategoryCount;
import com.gkhy.exam.pay.dto.rep.NonCategoryCount;
import com.gkhy.exam.pay.dto.req.NonCountCategoryReqDto;
import com.gkhy.exam.pay.entity.NonCoalCategory;
import com.gkhy.exam.pay.mapper.NonCoalCategoryMapper;
import com.gkhy.exam.pay.service.NonCoalCategoryService;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
@@ -43,7 +49,10 @@
    @Override
    public List<NonCoalCategory> selectNonCoalCategoryList(NonCoalCategory nonCoalCategory) {
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
            nonCoalCategory.setDistrictCode(SecurityUtils.getDeptDistrictCode());
            if (!Constants.DIS_XINJIANG_CODE.equals(SecurityUtils.getDeptDistrictCode())) {
                nonCoalCategory.setDistrictCode(SecurityUtils.getDeptDistrictCode());
            }
        }
        return nonCoalCategoryMapper.selectNonCoalCategoryList(nonCoalCategory);
    }
@@ -56,6 +65,15 @@
     */
    @Override
    public int insertNonCoalCategory(NonCoalCategory nonCoalCategory) {
        if (!nonCoalCategory.getDistrictCode().startsWith(Constants.DIS_XINJIANG_CODE)) {
            throw new RuntimeException("地州信息错误");
        }
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
            if (Constants.DIS_XINJIANG_CODE.equals(nonCoalCategory.getDistrictCode())) {
                throw new RuntimeException("仅可选择下级地州");
            }
        }
        checkSubjectName(nonCoalCategory);
        nonCoalCategory.setCreateBy(SecurityUtils.getUsername());
        return nonCoalCategoryMapper.insertNonCoalCategory(nonCoalCategory);
@@ -70,6 +88,7 @@
    @Override
    public int updateNonCoalCategory(NonCoalCategory nonCoalCategory) {
        checkSubjectName(nonCoalCategory);
        nonCoalCategory.setDistrictCode(null);
        nonCoalCategory.setUpdateBy(SecurityUtils.getUsername());
        return nonCoalCategoryMapper.updateNonCoalCategory(nonCoalCategory);
    }
@@ -103,4 +122,39 @@
    public int deleteNonCoalCategoryById(Long id) {
        return nonCoalCategoryMapper.deleteNonCoalCategoryById(id);
    }
    @Override
    public List<NonCategoryCount> countCategory(NonCountCategoryReqDto countCategoryReqDto) {
//        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
//            if (!Constants.DIS_XINJIANG_CODE.equals(SecurityUtils.getDeptDistrictCode())) {
//                countCategoryReqDto.setDistrictCode(SecurityUtils.getDeptDistrictCode());
//            }
//
//        }
        List<NonCategoryCount> nonCategoryCounts = nonCoalCategoryMapper.selectCountCategory(countCategoryReqDto);
        List<CateGoryTheory> cateGoryTheories = nonCoalCategoryMapper.selectCountTheory(countCategoryReqDto);
        for (CateGoryTheory cateGoryTheory : cateGoryTheories) {
            NonCategoryCount nonCategoryCount = new NonCategoryCount();
            nonCategoryCount.setCategoryType(1);
            nonCategoryCount.setAmount(cateGoryTheory.getAmount());
            nonCategoryCount.setNum(cateGoryTheory.getNum());
            nonCategoryCount.setSubjectName(cateGoryTheory.getPayTypeName());
            nonCategoryCounts.add(nonCategoryCount);
        }
        for (NonCategoryCount categoryCount : nonCategoryCounts) {
            categoryCount.setTotalMoney(categoryCount.getAmount().multiply(BigDecimal.valueOf(categoryCount.getNum())));
            if (categoryCount.getCategoryType()==1){
                categoryCount.setTurnContent(BigDecimal.valueOf(categoryCount.getNum()*6));
                categoryCount.setAutonomy(BigDecimal.valueOf(categoryCount.getNum()*8));
                categoryCount.setPrefecuture(categoryCount.getTotalMoney().subtract(categoryCount.getTurnContent().add(categoryCount.getAutonomy())));
            }else {
                categoryCount.setTurnContent(BigDecimal.valueOf(categoryCount.getNum()*3));
                categoryCount.setAutonomy(BigDecimal.valueOf(categoryCount.getNum()*13));
                categoryCount.setPrefecuture(categoryCount.getTotalMoney().subtract(categoryCount.getTurnContent().add(categoryCount.getAutonomy())));
            }
        }
        return nonCategoryCounts;
    }
}