工资比例计算

This commit is contained in:
xiezhijun
2021-03-15 18:01:59 +08:00
parent 2e11a4a0ee
commit 0f03406d4c
10 changed files with 757 additions and 0 deletions

View File

@ -0,0 +1,86 @@
package com.stdiet.web.controller.custom;
import com.stdiet.common.annotation.Log;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
import com.stdiet.common.enums.BusinessType;
import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.custom.domain.SysSalaryComposeConfig;
import com.stdiet.custom.domain.SysSalaryRate;
import com.stdiet.custom.dto.request.SalaryRequest;
import com.stdiet.custom.service.ISysSalaryRateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 工资比例Controller
* @author xzj
* @date 2021-03-15
*/
@RestController
@RequestMapping("/custom/salaryRate")
public class SysSalaryRateController extends BaseController {
@Autowired
private ISysSalaryRateService sysSalaryRateService;
@Log(title = "工资比例管理", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('custom:salaryRate:list')")
@PostMapping("/importSalary")
public AjaxResult importData(MultipartFile file) throws Exception
{
AjaxResult result = AjaxResult.success();
ExcelUtil<SalaryRequest> util = new ExcelUtil<SalaryRequest>(SalaryRequest.class);
List<SalaryRequest> salaryList = util.importExcel(file.getInputStream());
if(salaryList == null && salaryList.size() > 0){
return AjaxResult.error("Excel数据格式错误");
}
//薪资比例集合
List<SysSalaryRate> sysSalaryRateList = new ArrayList<>();
Map<String, SysSalaryComposeConfig> configMap = sysSalaryRateService.getSalaryComposeConfigMap();
if(configMap != null && configMap.size() > 0){
for (SalaryRequest salaryRequest : salaryList) {
if(StringUtils.isEmpty(salaryRequest.getName()) || salaryRequest.getSalary() == null || salaryRequest.getSalary().doubleValue() < 0 ||
StringUtils.isEmpty(salaryRequest.getSalaryPostName()) || salaryRequest.getFullWork() == null
|| (!"".equals(salaryRequest.getFullWork().trim()) && !"".equals(salaryRequest.getFullWork().trim()))){
return AjaxResult.error("Excel中第"+(sysSalaryRateList.size()+1)+"条数据格式错误");
}
SysSalaryComposeConfig config = configMap.get(salaryRequest.getSalaryPostName().trim());
if(config == null){
return AjaxResult.error("Excel中第"+(sysSalaryRateList.size()+1)+"条数据的岗位不存在");
}
if(config.getBaseRateSum() > 100){
return AjaxResult.error("Excel中第"+(sysSalaryRateList.size()+1)+"条数据的岗位薪资配置比例超过100");
}
boolean fullWork = "".equals(salaryRequest.getFullWork().trim());
SysSalaryRate sysSalaryRate = sysSalaryRateService.calculateSingleRate(salaryRequest.getSalary(), fullWork, config);
sysSalaryRate.setName(salaryRequest.getName().trim());
sysSalaryRate.setSalaryPostName(salaryRequest.getSalaryPostName());
sysSalaryRateList.add(sysSalaryRate);
}
}
ExcelUtil<SysSalaryRate> sysSalaryRateExcelUtil = new ExcelUtil<SysSalaryRate>(SysSalaryRate.class);
return sysSalaryRateExcelUtil.exportExcel(sysSalaryRateList, "sysSalaryRate");
}
@PreAuthorize("@ss.hasPermi('custom:salaryRate:list')")
@GetMapping("/importTemplate")
public AjaxResult importTemplate() throws Exception{
List<SalaryRequest> sysSalaryRateList = new ArrayList<>();
ExcelUtil<SalaryRequest> util = new ExcelUtil<SalaryRequest>(SalaryRequest.class);
return util.exportExcel(sysSalaryRateList, "sysSalaryRateTemplate");
}
}