package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; import com.engine.salary.util.ResponseResult; import com.engine.salary.wrapper.SalaryArchiveWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jetbrains.annotations.Nullable; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.StreamingOutput; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 薪资档案 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public class SalaryArchiveController { private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) { return ServiceUtil.getService(SalaryArchiveWrapper.class, user); } // // @Autowired // private SalaryArchiveWrapper salaryArchiveWrapper; // @Autowired // private SalaryArchiveItemWrapper salaryArchiveItemWrapper; // private SalaryArchiveTaxAgentWrapper salaryArchiveTaxAgentWrapper; // /******** 薪资档案主表 start ***********************************************************************************************/ // /** // * 薪资档案列表的高级搜索 // * // * @return // */ // @GetMapping("/getSearchCondition") // @ApiOperation("薪资档案列表的高级搜索") // @WeaPermission // public WeaResult getSearchCondition() { // return WeaResult.success(salaryArchiveWrapper.getSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } /** * 薪资档案列表 * * @param queryParam * @return */ @POST @Path("/list") @Produces(MediaType.APPLICATION_JSON) public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>().run(getSalaryArchiveWrapper(user)::list, queryParam); } // /** // * 导出薪资档案 // * // * @param queryParam // * @return // */ // @PostMapping("/exportList") // @ApiOperation("导出薪资档案") // @WeaPermission // public WeaResult> exportList(@RequestBody SalaryArchiveQueryParam queryParam) throws Exception { // return WeaResult.success(salaryArchiveWrapper.exportList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } /** * 获取薪资档案详情表单 * * @return */ @GET @Path("/getForm") @Produces(MediaType.APPLICATION_JSON) public String getFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); String salaryArchiveIdStr = request.getParameter("salaryArchiveId"); Long salaryArchiveId = null; if (StringUtils.isNotBlank(salaryArchiveIdStr)) { salaryArchiveId = Long.valueOf(salaryArchiveIdStr); } return new ResponseResult>().run(getSalaryArchiveWrapper(user)::getFrom, salaryArchiveId); } /** * 获取离职时段设置表单 * * @return */ @GET @Path("/getDimissionSetForm") @Produces(MediaType.APPLICATION_JSON) public String getDimissionSetForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>().run(getSalaryArchiveWrapper(user)::getDimissionSetForm); } /** * 保存离职时段设置 * * @return */ @POST @Path("/saveDimissionSet") @Produces(MediaType.APPLICATION_JSON) public String saveDimissionSet(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveDimissionSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult().run(getSalaryArchiveWrapper(user)::saveDimissionSet, saveParam); } /** * 获取导入类型 * * @return */ @GET @Path("/getImportTypes") @Produces(MediaType.APPLICATION_JSON) public String getImportTypes(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>>().run(getSalaryArchiveWrapper(user)::getImportTypes); } /** * 下载导入模板 * * @return */ @GET @Path("/downloadTemplate") @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response downloadTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); SalaryArchiveQueryParam queryParam = buildParam(request); XSSFWorkbook workbook = getSalaryArchiveWrapper(user).downloadTemplate(queryParam); String fileName = null; try { fileName = URLEncoder.encode("累计情况.xlsx", "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } StreamingOutput output = outputStream -> { workbook.write(outputStream); outputStream.flush(); }; response.setContentType("application/octet-stream"); return Response.ok(output) .header("Content-disposition", "attachment;filename=" + fileName) .header("Cache-Control", "no-cache").build(); } @Nullable private SalaryArchiveQueryParam buildParam(HttpServletRequest request) { SalaryArchiveQueryParam param = new SalaryArchiveQueryParam(); String ids = request.getParameter("ids"); if (StringUtils.isNotBlank(ids)) { param.setIds(Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList())); } String keyword = request.getParameter("username"); if (StringUtils.isNotBlank(keyword)) { param.setUsername(keyword); } String taxAgentId = request.getParameter("taxAgentId"); if (StringUtils.isNotBlank(taxAgentId)) { param.setTaxAgentId(Long.valueOf(taxAgentId)); } String departmentIds = request.getParameter("departmentIds"); if (StringUtils.isNotBlank(departmentIds)) { param.setDepartmentIds(Arrays.stream(departmentIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); } String positionIds = request.getParameter("positionIds"); if (StringUtils.isNotBlank(positionIds)) { param.setPositionIds(Arrays.stream(positionIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); } String userstatus = request.getParameter("userstatus"); if (StringUtils.isNotBlank(userstatus)) { param.setUserstatus(userstatus); } String hiredate = request.getParameter("hiredate"); if (StringUtils.isNotBlank(hiredate)) { param.setHiredate(Arrays.asList(hiredate.split(","))); } String importType = request.getParameter("importType"); if (StringUtils.isNotBlank(importType)) { param.setImportType(importType); } return param; } // /** // * 获取导入参数 // * // * @return // */ // @GetMapping("/getImportParams") // @ApiOperation("获取导入参数") // @WeaPermission // public WeaResult getImportParams() { // return WeaResult.success(salaryArchiveWrapper.getImportParams()); // } // /******** 薪资档案主表 end ***********************************************************************************************/ // // /******** 薪资项目调整 start ***********************************************************************************************/ // /** // * 通过薪资档案id获取薪资项目调整表单 // * // * @param salaryArchiveId // * @return // */ // @GetMapping("/getSalaryItemForm") // @ApiOperation("获取薪资项目调整表单") // @WeaPermission // public WeaResult getSalaryItemForm(@RequestParam Long salaryArchiveId) { // return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemForm(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 获取薪资项目调整前的值 // * // * @param adjustBeforeParam // * @return // */ // @PostMapping("/getSalaryItemAdjustBeforeValue") // @ApiOperation("获取薪资项目调整前的值") // @WeaPermission // public WeaResult getSalaryItemAdjustBeforeValue(@RequestBody SalaryItemAdjustBeforeParam adjustBeforeParam) { // return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemAdjustBeforeValue(adjustBeforeParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 通过薪资档案的薪资项目id获取薪资项目调整表单 // * // * @param salaryArchiveItemId // * @return // */ // @GetMapping("/getSalaryItemFormBySalaryArchiveItemId") // @ApiOperation("获取薪资项目调整表单") // @WeaPermission // public WeaResult getSalaryItemFormBySalaryArchiveItemId(@RequestParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) { // return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemFormBySalaryArchiveItemId(salaryArchiveItemId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 保存薪资项目调整 // * // * @param saveParam // * @return // */ // @PostMapping("/saveSalaryItem") // @ApiOperation("保存薪资项目调整") // @WeaPermission // public WeaResult saveSalaryItem(@RequestBody SalaryArchiveItemSaveParam saveParam) { // return WeaResult.success(salaryArchiveItemWrapper.saveSalaryItem(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 删除薪资项目调整 // * // * @param salaryArchiveItemId // * @return // */ // @PostMapping("/deleteSalaryItem") // @ApiOperation("删除薪资项目调整") // @WeaPermission // public WeaResult deleteSalaryItem(@RequestParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) { // return WeaResult.success(salaryArchiveItemWrapper.deleteSalaryItem(salaryArchiveItemId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // /******** 薪资项目调整 end ***********************************************************************************************/ // // /******** 个税扣缴义务人调整 start ***********************************************************************************************/ // /** // * 获取个税扣缴义务人调整表单 // * // * @param salaryArchiveId // * @return // */ // @GetMapping("/getTaxAgentForm") // @ApiOperation("获取个税扣缴义务人调整表单") // @WeaPermission // public WeaResult getTaxAgentForm(@RequestParam(value = "salaryArchiveId") Long salaryArchiveId) { // SalaryArchiveTaxAgentFormDTO form = salaryArchiveTaxAgentWrapper.getTaxAgentForm(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()); // return WeaResult.success(form); // } // // /** // * 通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单 // * // * @param salaryArchiveTaxAgentId // * @return // */ // @GetMapping("/getTaxAgentFormBySalaryArchiveTaxAgentId") // @ApiOperation("获取薪资项目调整表单") // @WeaPermission // public WeaResult getTaxAgentFormBySalaryArchiveTaxAgentId(@RequestParam Long salaryArchiveTaxAgentId) { // SalaryArchiveTaxAgentFormDTO form = salaryArchiveTaxAgentWrapper.getTaxAgentFormBySalaryArchiveTaxAgentId(salaryArchiveTaxAgentId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()); // return WeaResult.success(form); // } // // /** // * 保存个税扣缴义务人调整 // * // * @param saveParam // * @return // */ // @PostMapping("/saveTaxAgent") // @ApiOperation("保存个税扣缴义务人调整") // @WeaPermission // public WeaResult saveTaxAgent(@RequestBody SalaryArchiveTaxAgentSaveParam saveParam) { // return WeaResult.success(salaryArchiveTaxAgentWrapper.saveTaxAgent(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 删除个税扣缴义务人调整 // * // * @param salaryArchiveTaxAgentId // * @return // */ // @PostMapping("/deleteTaxAgent") // @ApiOperation("删除个税扣缴义务人调整") // @WeaPermission // public WeaResult deleteTaxAgent(@RequestParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) { // return WeaResult.success(salaryArchiveTaxAgentWrapper.deleteTaxAgent(salaryArchiveTaxAgentId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // /******** 薪资项目调整 end ***********************************************************************************************/ // // /******** 薪资项目调整记录 start ***********************************************************************************************/ // /** // * 薪资项目调整记录列表的高级搜索 // * // * @return // */ // @GetMapping("/adjustRecord/getSalaryItemSearchCondition") // @ApiOperation("薪资项目调整记录列表的高级搜索") // @WeaPermission // public WeaResult getSalaryItemSearchCondition() { // return WeaResult.success(salaryArchiveItemWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 薪资项目调整记录列表 // * // * @param queryParam // * @return // */ // @PostMapping("/adjustRecord/salaryItemList") // @ApiOperation("薪资项目调整记录列表") // @WeaPermission // public WeaResult> salaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) { // return WeaResult.success(salaryArchiveItemWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 单个档案的薪资项目调整记录列表 // * // * @param queryParam // * @return // */ // @PostMapping("/adjustRecord/singleSalaryItemList") // @ApiOperation("单个档案的薪资项目调整记录列表") // @WeaPermission // public WeaResult> singleSalaryItemAdjustRecordList(@RequestBody SingleSalaryItemAdjustRecordQueryParam queryParam) { // return WeaResult.success(salaryArchiveItemWrapper.singleSalaryItemAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 导出薪资项目调整记录列表 // * // * @param queryParam // * @return // */ // @PostMapping("/adjustRecord/exportSalaryItemList") // @ApiOperation("导出薪资项目调整记录列表") // @WeaPermission // public WeaResult> exportSalaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) { // return WeaResult.success(salaryArchiveItemWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // /******** 薪资项目调整记录 end ***********************************************************************************************/ // // /******** 个税扣缴义务人调整记录 start ***********************************************************************************************/ // /** // * 个税扣缴义务人调整记录列表的高级搜索 // * // * @return // */ // @GetMapping("/adjustRecord/getTaxAgentSearchCondition") // @ApiOperation("个税扣缴义务人调整记录列表的高级搜索") // @WeaPermission // public WeaResult getTaxAgentSearchCondition() { // return WeaResult.success(salaryArchiveTaxAgentWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 个税扣缴义务人调整记录列表 // * // * @param queryParam // * @return // */ // @PostMapping("/adjustRecord/taxAgentList") // @ApiOperation("个税扣缴义务人调整记录列表") // @WeaPermission // public WeaResult> taxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) { // return WeaResult.success(salaryArchiveTaxAgentWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 单个档案的个税扣缴义务人调整记录列表 // * // * @param queryParam // * @return // */ // @PostMapping("/adjustRecord/singleTaxAgentList") // @ApiOperation("单个档案的个税扣缴义务人调整记录列表") // @WeaPermission // public WeaResult> SingleTaxAgentAdjustRecordList(@RequestBody SingleTaxAgentAdjustRecordQueryParam queryParam) { // return WeaResult.success(salaryArchiveTaxAgentWrapper.singleTaxAgentAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // // /** // * 导出个税扣缴义务人调整记录列表 // * // * @param queryParam // * @return // */ // @PostMapping("/adjustRecord/exportTaxAgentList") // @ApiOperation("导出个税扣缴义务人调整记录列表") // @WeaPermission // public WeaResult> exportTaxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) { // return WeaResult.success(salaryArchiveTaxAgentWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey())); // } // /******** 个税扣缴义务人调整记录 end ***********************************************************************************************/ }