weaver-hrm-salary/src/com/engine/salary/web/SalaryArchiveController.java

475 lines
20 KiB
Java
Raw Normal View History

2022-03-28 16:36:40 +08:00
package com.engine.salary.web;
2022-03-28 20:04:27 +08:00
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam;
2022-03-31 15:41:55 +08:00
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam;
2022-03-28 20:04:27 +08:00
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam;
2022-03-31 15:41:55 +08:00
import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
2022-03-28 20:04:27 +08:00
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;
2022-03-29 17:10:59 +08:00
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jetbrains.annotations.Nullable;
2022-03-28 20:04:27 +08:00
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;
2022-03-29 17:10:59 +08:00
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Arrays;
2022-03-28 20:04:27 +08:00
import java.util.List;
import java.util.Map;
2022-03-29 17:10:59 +08:00
import java.util.stream.Collectors;
2022-03-28 20:04:27 +08:00
2022-03-28 16:36:40 +08:00
/**
* 薪资档案
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class SalaryArchiveController {
2022-03-28 20:04:27 +08:00
private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) {
return ServiceUtil.getService(SalaryArchiveWrapper.class, user);
}
2022-03-28 16:36:40 +08:00
//
// @Autowired
// private SalaryArchiveWrapper salaryArchiveWrapper;
// @Autowired
// private SalaryArchiveItemWrapper salaryArchiveItemWrapper;
// private SalaryArchiveTaxAgentWrapper salaryArchiveTaxAgentWrapper;
2022-03-28 20:04:27 +08:00
2022-03-28 16:36:40 +08:00
// /******** 薪资档案主表 start ***********************************************************************************************/
// /**
// * 薪资档案列表的高级搜索
// *
// * @return
// */
// @GetMapping("/getSearchCondition")
// @ApiOperation("薪资档案列表的高级搜索")
// @WeaPermission
// public WeaResult<WeaSearchCondition> getSearchCondition() {
// return WeaResult.success(salaryArchiveWrapper.getSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
2022-03-28 20:04:27 +08:00
/**
* 薪资档案列表
*
* @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<SalaryArchiveQueryParam, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::list, queryParam);
}
2022-03-28 16:36:40 +08:00
// /**
// * 导出薪资档案
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/exportList")
// @ApiOperation("导出薪资档案")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportList(@RequestBody SalaryArchiveQueryParam queryParam) throws Exception {
// return WeaResult.success(salaryArchiveWrapper.exportList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
2022-03-28 20:04:27 +08:00
/**
* 获取薪资档案详情表单
*
* @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<Long, Map<String, Object>>().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<Long, Map<String, Object>>().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<SalaryArchiveDimissionSaveParam, String>().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<Long, List<Map<String, Object>>>().run(getSalaryArchiveWrapper(user)::getImportTypes);
}
2022-03-29 17:10:59 +08:00
/**
* 下载导入模板
*
* @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);
2022-03-31 15:41:55 +08:00
SalaryArchiveImportTypeEnum importTypeEnum = SalaryArchiveImportTypeEnum.parseByValue(queryParam.getImportType());
String fileName = "薪资档案导入模板-" + importTypeEnum.getDefaultLabel();
2022-03-29 17:10:59 +08:00
try {
2022-03-31 15:41:55 +08:00
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
2022-03-29 17:10:59 +08:00
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StreamingOutput output = outputStream -> {
workbook.write(outputStream);
outputStream.flush();
};
response.setContentType("application/octet-stream");
2022-03-31 15:41:55 +08:00
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
2022-03-29 17:10:59 +08:00
}
@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;
}
2022-03-31 15:41:55 +08:00
@POST
@Path("/preview")
@Produces(MediaType.APPLICATION_JSON)
public String preview(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportHandleParam importParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryArchiveImportHandleParam, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::preview, importParam);
}
@POST
@Path("/importSalaryArchive")
@Produces(MediaType.APPLICATION_JSON)
public String importSalaryArchive(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportHandleParam importParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryArchiveImportHandleParam, Map<String, Object>>().run(getSalaryArchiveWrapper(user)::importSalaryArchive, importParam);
}
2022-03-28 16:36:40 +08:00
// /******** 薪资档案主表 end ***********************************************************************************************/
//
// /******** 薪资项目调整 start ***********************************************************************************************/
// /**
// * 通过薪资档案id获取薪资项目调整表单
// *
// * @param salaryArchiveId
// * @return
// */
// @GetMapping("/getSalaryItemForm")
// @ApiOperation("获取薪资项目调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveItemFormDTO> getSalaryItemForm(@RequestParam Long salaryArchiveId) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemForm(salaryArchiveId, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 获取薪资项目调整前的值
// *
// * @param adjustBeforeParam
// * @return
// */
// @PostMapping("/getSalaryItemAdjustBeforeValue")
// @ApiOperation("获取薪资项目调整前的值")
// @WeaPermission
// public WeaResult<String> getSalaryItemAdjustBeforeValue(@RequestBody SalaryItemAdjustBeforeParam adjustBeforeParam) {
// return WeaResult.success(salaryArchiveItemWrapper.getSalaryItemAdjustBeforeValue(adjustBeforeParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 通过薪资档案的薪资项目id获取薪资项目调整表单
// *
// * @param salaryArchiveItemId
// * @return
// */
// @GetMapping("/getSalaryItemFormBySalaryArchiveItemId")
// @ApiOperation("获取薪资项目调整表单")
// @WeaPermission
// public WeaResult<SalaryArchiveItemFormDTO> 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<String> saveSalaryItem(@RequestBody SalaryArchiveItemSaveParam saveParam) {
// return WeaResult.success(salaryArchiveItemWrapper.saveSalaryItem(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 删除薪资项目调整
// *
// * @param salaryArchiveItemId
// * @return
// */
// @PostMapping("/deleteSalaryItem")
// @ApiOperation("删除薪资项目调整")
// @WeaPermission
// public WeaResult<String> 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<SalaryArchiveTaxAgentFormDTO> 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<SalaryArchiveTaxAgentFormDTO> 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<String> saveTaxAgent(@RequestBody SalaryArchiveTaxAgentSaveParam saveParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.saveTaxAgent(saveParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 删除个税扣缴义务人调整
// *
// * @param salaryArchiveTaxAgentId
// * @return
// */
// @PostMapping("/deleteTaxAgent")
// @ApiOperation("删除个税扣缴义务人调整")
// @WeaPermission
// public WeaResult<String> 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<WeaSearchCondition> getSalaryItemSearchCondition() {
// return WeaResult.success(salaryArchiveItemWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 薪资项目调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/salaryItemList")
// @ApiOperation("薪资项目调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<SalaryItemAdjustRecordListDTO>> salaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveItemWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 单个档案的薪资项目调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/singleSalaryItemList")
// @ApiOperation("单个档案的薪资项目调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<SingleSalaryItemAdjustRecordListDTO>> singleSalaryItemAdjustRecordList(@RequestBody SingleSalaryItemAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveItemWrapper.singleSalaryItemAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 导出薪资项目调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/exportSalaryItemList")
// @ApiOperation("导出薪资项目调整记录列表")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportSalaryItemList(@RequestBody SalaryItemAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveItemWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
// /******** 薪资项目调整记录 end ***********************************************************************************************/
//
// /******** 个税扣缴义务人调整记录 start ***********************************************************************************************/
// /**
// * 个税扣缴义务人调整记录列表的高级搜索
// *
// * @return
// */
// @GetMapping("/adjustRecord/getTaxAgentSearchCondition")
// @ApiOperation("个税扣缴义务人调整记录列表的高级搜索")
// @WeaPermission
// public WeaResult<WeaSearchCondition> getTaxAgentSearchCondition() {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.getAdjustRecordSearchCondition(UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 个税扣缴义务人调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/taxAgentList")
// @ApiOperation("个税扣缴义务人调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<TaxAgentAdjustRecordListDTO>> taxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.adjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 单个档案的个税扣缴义务人调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/singleTaxAgentList")
// @ApiOperation("单个档案的个税扣缴义务人调整记录列表")
// @WeaPermission
// public WeaResult<WeaTable<SingleTaxAgentAdjustRecordListDTO>> SingleTaxAgentAdjustRecordList(@RequestBody SingleTaxAgentAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.singleTaxAgentAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
//
// /**
// * 导出个税扣缴义务人调整记录列表
// *
// * @param queryParam
// * @return
// */
// @PostMapping("/adjustRecord/exportTaxAgentList")
// @ApiOperation("导出个税扣缴义务人调整记录列表")
// @WeaPermission
// public WeaResult<Map<String, Object>> exportTaxAgentList(@RequestBody TaxAgentAdjustRecordQueryParam queryParam) {
// return WeaResult.success(salaryArchiveTaxAgentWrapper.exportAdjustRecordList(queryParam, UserContext.getCurrentEmployeeId(), TenantContext.getCurrentTenantKey()));
// }
// /******** 个税扣缴义务人调整记录 end ***********************************************************************************************/
}