| | |
| | | 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; |
| | | import com.ruoyi.staff.mapper.StaffSalaryDetailMapper; |
| | | import com.ruoyi.staff.mapper.StaffSalaryMainMapper; |
| | |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | staffSalaryMainLambdaQueryWrapper.eq(StaffSalaryMain::getStatus, staffSalaryMain.getStatus()); |
| | | } |
| | | } |
| | | staffSalaryMainLambdaQueryWrapper.orderByDesc(StaffSalaryMain::getId); |
| | | Page<StaffSalaryMain> page1 = staffSalaryMainMapper.selectPage(page, staffSalaryMainLambdaQueryWrapper); |
| | | page1.getRecords().forEach(main -> { |
| | | List<StaffSalaryDetail> staffSalaryDetailList = staffSalaryDetailMapper.selectList(new LambdaQueryWrapper<StaffSalaryDetail>().eq(StaffSalaryDetail::getMainId, main.getId())); |
| | |
| | | return AjaxResult.success(mapList); |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult calculateSalaryByEmployee(StaffSalaryCalculateDto calculateSalaryCalculateDto) { |
| | | if (calculateSalaryCalculateDto == null || calculateSalaryCalculateDto.getStaffOnJobId() == null |
| | | || StringUtils.isEmpty(calculateSalaryCalculateDto.getSalaryMonth())) { |
| | | return AjaxResult.error("参数错误"); |
| | | } |
| | | Map<String, Object> result = new HashMap<>(); |
| | | result.put("id", calculateSalaryCalculateDto.getStaffOnJobId().intValue()); |
| | | result.put("staffOnJobId", calculateSalaryCalculateDto.getStaffOnJobId()); |
| | | result.put("basicSalary", calculateSalaryCalculateDto.getBasicSalary()); |
| | | result.put("dayDays", calculateSalaryCalculateDto.getDayDays()); |
| | | result.put("nightDays", calculateSalaryCalculateDto.getNightDays()); |
| | | result.put("pieceSalary", calculateSalaryCalculateDto.getPieceSalary()); |
| | | result.put("hourlySalary", calculateSalaryCalculateDto.getHourlySalary()); |
| | | result.put("otherIncome", calculateSalaryCalculateDto.getOtherIncome()); |
| | | result.put("otherDeduct", calculateSalaryCalculateDto.getOtherDeduct()); |
| | | result.put("socialPersonal", calculateSalaryCalculateDto.getSocialPersonal()); |
| | | result.put("fundPersonal", calculateSalaryCalculateDto.getFundPersonal()); |
| | | result.put("socialSupplementAmount", calculateSalaryCalculateDto.getSocialSupplementAmount()); |
| | | result.put("salaryTax", calculateSalaryCalculateDto.getSalaryTax()); |
| | | result.put("grossSalary", calculateSalaryCalculateDto.getGrossSalary()); |
| | | result.put("deductSalary", calculateSalaryCalculateDto.getDeductSalary()); |
| | | result.put("netSalary", calculateSalaryCalculateDto.getNetSalary()); |
| | | result.put("remark", calculateSalaryCalculateDto.getRemark()); |
| | | result.put("salaryMonth", calculateSalaryCalculateDto.getSalaryMonth()); |
| | | schemeApplicableStaffService.calculateByEmployeeId( |
| | | calculateSalaryCalculateDto.getStaffOnJobId().intValue(), |
| | | result, |
| | | calculateSalaryCalculateDto.getSalaryMonth() |
| | | ); |
| | | return AjaxResult.success(result); |
| | | } |
| | | |
| | | @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<>(); |