工资比例计算
This commit is contained in:
		| @@ -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"); | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user