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;
|
}
|
}
|