| src/main/java/com/ruoyi/staff/controller/StaffSalaryMainController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/excel/StaffSalaryExportData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/service/StaffSalaryMainService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/staff/controller/StaffSalaryMainController.java
@@ -10,6 +10,7 @@ import com.ruoyi.staff.service.StaffSalaryMainService; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -74,6 +75,10 @@ return staffSalaryMainService.delete(ids); } @PostMapping("/export") @Operation(summary = "导åºåå·¥èªèµæç»") public void export(HttpServletResponse response, String salaryMonth) { staffSalaryMainService.exportSalaryDetail(response, salaryMonth); } } src/main/java/com/ruoyi/staff/excel/StaffSalaryExportData.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ package com.ruoyi.staff.excel; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import lombok.Data; import java.math.BigDecimal; /** * åå·¥èªèµå¯¼åºæ°æ® */ @Data public class StaffSalaryExportData { @Excel(name = "å·¥èµæä»½") private String salaryMonth; @Excel(name = "å·¥èµä¸»é¢") private String salaryTitle; @Excel(name = "åå·¥å§å") private String staffName; @Excel(name = "é¨é¨åç§°") private String deptName; @Excel(name = "åºæ¬å·¥èµ") private BigDecimal basicSalary; @Excel(name = "计件工èµ") private BigDecimal pieceSalary; @Excel(name = "计æ¶å·¥èµ") private BigDecimal hourlySalary; @Excel(name = "å ¶ä»æ¶å ¥") private BigDecimal otherIncome; @Excel(name = "社ä¿ä¸ªäºº") private BigDecimal socialPersonal; @Excel(name = "å ¬ç§¯é个人") private BigDecimal fundPersonal; @Excel(name = "å ¶ä»æ¯åº") private BigDecimal otherDeduct; @Excel(name = "社ä¿è¡¥ç¼´") private BigDecimal socialSupplementAmount; @Excel(name = "å·¥èµä¸ªç¨") private BigDecimal salaryTax; @Excel(name = "åºåå·¥èµ") private BigDecimal grossSalary; @Excel(name = "åºæ£å·¥èµ") private BigDecimal deductSalary; @Excel(name = "å®åå·¥èµ") private BigDecimal netSalary; @Excel(name = "夿³¨") private String remark; } src/main/java/com/ruoyi/staff/service/StaffSalaryMainService.java
@@ -5,6 +5,7 @@ import com.ruoyi.staff.dto.CalculateSalaryDto; import com.ruoyi.staff.dto.StaffSalaryCalculateDto; import com.ruoyi.staff.pojo.StaffSalaryMain; import jakarta.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -30,4 +31,6 @@ AjaxResult calculateSalary(CalculateSalaryDto calculateSalaryDto); AjaxResult calculateSalaryByEmployee(StaffSalaryCalculateDto staffSalaryCalculateDto); void exportSalaryDetail(HttpServletResponse response, String salaryMonth); } src/main/java/com/ruoyi/staff/service/impl/StaffSalaryMainServiceImpl.java
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.project.system.mapper.SysUserDeptMapper; import com.ruoyi.staff.excel.StaffSalaryExportData; import jakarta.servlet.http.HttpServletResponse; import com.ruoyi.staff.dto.CalculateSalaryDto; import com.ruoyi.staff.dto.StaffSalaryCalculateDto; import com.ruoyi.staff.mapper.StaffLeaveMapper; @@ -174,6 +177,47 @@ return AjaxResult.success(map); } @Override public void exportSalaryDetail(HttpServletResponse response, String salaryMonth) { LambdaQueryWrapper<StaffSalaryMain> mainWrapper = new LambdaQueryWrapper<>(); if (StringUtils.isNotEmpty(salaryMonth)) { mainWrapper.eq(StaffSalaryMain::getSalaryMonth, salaryMonth); } List<StaffSalaryMain> mainList = staffSalaryMainMapper.selectList(mainWrapper); List<StaffSalaryExportData> exportDataList = new ArrayList<>(); for (StaffSalaryMain main : mainList) { List<StaffSalaryDetail> detailList = staffSalaryDetailMapper.selectList( new LambdaQueryWrapper<StaffSalaryDetail>().eq(StaffSalaryDetail::getMainId, main.getId()) ); for (StaffSalaryDetail detail : detailList) { StaffSalaryExportData exportData = new StaffSalaryExportData(); exportData.setSalaryMonth(main.getSalaryMonth()); exportData.setSalaryTitle(main.getSalaryTitle()); exportData.setStaffName(detail.getStaffName()); exportData.setDeptName(detail.getDeptName()); exportData.setBasicSalary(detail.getBasicSalary()); exportData.setPieceSalary(detail.getPieceSalary()); exportData.setHourlySalary(detail.getHourlySalary()); exportData.setOtherIncome(detail.getOtherIncome()); exportData.setSocialPersonal(detail.getSocialPersonal()); exportData.setFundPersonal(detail.getFundPersonal()); exportData.setOtherDeduct(detail.getOtherDeduct()); exportData.setSocialSupplementAmount(detail.getSocialSupplementAmount()); exportData.setSalaryTax(detail.getSalaryTax()); exportData.setGrossSalary(detail.getGrossSalary()); exportData.setDeductSalary(detail.getDeductSalary()); exportData.setNetSalary(detail.getNetSalary()); exportData.setRemark(detail.getRemark()); exportDataList.add(exportData); } } ExcelUtil<StaffSalaryExportData> util = new ExcelUtil<>(StaffSalaryExportData.class); util.exportExcel(response, exportDataList, "åå·¥èªèµæç»"); } public List<Map<String, Object>> setSchemeApplicableStaffUserInfo(List<Long> ids) { if(CollectionUtils.isEmpty(ids)){ return new ArrayList<>();