教育训练处考试制证系统后端
“djh”
2025-03-06 6061c45849de0f3ac6d05fdfa2bac4b09c21179b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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;
 
 
/**
 * 非煤工种类别Service业务层处理
 *
 * @author hh
 * @date 2025-01-16
 */
@Service
public class NonCoalCategoryServiceImpl extends ServiceImpl<NonCoalCategoryMapper, NonCoalCategory> implements NonCoalCategoryService {
 
    @Resource
    private NonCoalCategoryMapper nonCoalCategoryMapper;
 
    /**
     * 查询非煤工种类别
     *
     * @param id 非煤工种类别主键
     * @return 非煤工种类别
     */
    @Override
    public NonCoalCategory selectNonCoalCategoryById(Long id) {
        return nonCoalCategoryMapper.selectNonCoalCategoryById(id);
    }
 
    /**
     * 查询非煤工种类别列表
     *
     * @param nonCoalCategory 非煤工种类别
     * @return 非煤工种类别
     */
    @Override
    public List<NonCoalCategory> selectNonCoalCategoryList(NonCoalCategory nonCoalCategory) {
        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
            if (!Constants.DIS_XINJIANG_CODE.equals(SecurityUtils.getDeptDistrictCode())) {
                nonCoalCategory.setDistrictCode(SecurityUtils.getDeptDistrictCode());
            }
 
        }
        return nonCoalCategoryMapper.selectNonCoalCategoryList(nonCoalCategory);
    }
 
    /**
     * 新增非煤工种类别
     *
     * @param nonCoalCategory 非煤工种类别
     * @return 结果
     */
    @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);
    }
 
    /**
     * 修改非煤工种类别
     *
     * @param nonCoalCategory 非煤工种类别
     * @return 结果
     */
    @Override
    public int updateNonCoalCategory(NonCoalCategory nonCoalCategory) {
        checkSubjectName(nonCoalCategory);
        nonCoalCategory.setDistrictCode(null);
        nonCoalCategory.setUpdateBy(SecurityUtils.getUsername());
        return nonCoalCategoryMapper.updateNonCoalCategory(nonCoalCategory);
    }
 
    private void checkSubjectName(NonCoalCategory nonCoalCategory) {
 
        int i = nonCoalCategoryMapper.checkUnite(nonCoalCategory);
        if (i > 0) {
            throw new RuntimeException("该工种类别已存在");
        }
    }
 
    /**
     * 批量删除非煤工种类别
     *
     * @param ids 需要删除的非煤工种类别主键
     * @return 结果
     */
    @Override
    public int deleteNonCoalCategoryByIds(Long[] ids) {
        return nonCoalCategoryMapper.deleteNonCoalCategoryByIds(ids);
    }
 
    /**
     * 删除非煤工种类别信息
     *
     * @param id 非煤工种类别主键
     * @return 结果
     */
    @Override
    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;
    }
}