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;
|
2022-04-02 15:34:27 +08:00
|
|
|
import com.engine.salary.entity.salaryarchive.dto.*;
|
2022-04-01 10:26:28 +08:00
|
|
|
import com.engine.salary.entity.salaryarchive.param.*;
|
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;
|
2022-04-02 15:34:27 +08:00
|
|
|
import com.engine.salary.util.SalaryDateUtil;
|
|
|
|
|
import com.engine.salary.util.page.PageInfo;
|
2022-03-31 18:41:41 +08:00
|
|
|
import com.engine.salary.wrapper.SalaryArchiveItemWrapper;
|
2022-04-01 18:25:24 +08:00
|
|
|
import com.engine.salary.wrapper.SalaryArchiveTaxAgentWrapper;
|
2022-03-28 20:04:27 +08:00
|
|
|
import com.engine.salary.wrapper.SalaryArchiveWrapper;
|
|
|
|
|
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
2022-05-09 10:32:14 +08:00
|
|
|
import lombok.extern.slf4j.Slf4j;
|
2022-03-28 20:04:27 +08:00
|
|
|
import org.apache.commons.lang3.StringUtils;
|
2022-03-29 17:10:59 +08:00
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
2022-04-02 15:34:27 +08:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
2022-03-29 17:10:59 +08:00
|
|
|
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;
|
2022-04-01 18:25:24 +08:00
|
|
|
import javax.ws.rs.*;
|
2022-03-28 20:04:27 +08:00
|
|
|
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;
|
2022-04-02 15:34:27 +08:00
|
|
|
import java.time.LocalDate;
|
2022-03-29 17:10:59 +08:00
|
|
|
import java.util.Arrays;
|
2022-04-02 15:34:27 +08:00
|
|
|
import java.util.Date;
|
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
|
|
|
|
|
**/
|
2022-05-09 10:32:14 +08:00
|
|
|
@Slf4j
|
2022-03-28 16:36:40 +08:00
|
|
|
public class SalaryArchiveController {
|
2022-03-28 20:04:27 +08:00
|
|
|
private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) {
|
|
|
|
|
return ServiceUtil.getService(SalaryArchiveWrapper.class, user);
|
|
|
|
|
}
|
2022-03-31 18:41:41 +08:00
|
|
|
|
|
|
|
|
private SalaryArchiveItemWrapper getSalaryArchiveItemWrapper(User user) {
|
|
|
|
|
return ServiceUtil.getService(SalaryArchiveItemWrapper.class, user);
|
|
|
|
|
}
|
2022-04-01 18:25:24 +08:00
|
|
|
|
|
|
|
|
private SalaryArchiveTaxAgentWrapper getSalaryArchiveTaxAgentWrapper(User user) {
|
|
|
|
|
return ServiceUtil.getService(SalaryArchiveTaxAgentWrapper.class, user);
|
|
|
|
|
}
|
2022-03-28 20:04:27 +08:00
|
|
|
|
|
|
|
|
|
2022-03-28 16:36:40 +08:00
|
|
|
// /******** 薪资档案主表 start ***********************************************************************************************/
|
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);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryArchiveQueryParam, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::list, queryParam);
|
2022-03-28 20:04:27 +08:00
|
|
|
}
|
|
|
|
|
|
2022-03-31 18:41:41 +08:00
|
|
|
/**
|
|
|
|
|
* 导出薪资档案
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/exportList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
try {
|
2022-05-09 10:32:14 +08:00
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
SalaryArchiveQueryParam queryParam = buildParam(request);
|
|
|
|
|
|
|
|
|
|
XSSFWorkbook workbook = getSalaryArchiveWrapper(user).exportList(queryParam);
|
|
|
|
|
|
|
|
|
|
String fileName = "薪资档案" + LocalDate.now();
|
|
|
|
|
try {
|
|
|
|
|
fileName = URLEncoder.encode(fileName + ".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();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("薪资档案导出异常", e);
|
|
|
|
|
throw e;
|
2022-03-31 18:41:41 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
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);
|
|
|
|
|
}
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, SalaryArchiveFormDTO>(user).run(getSalaryArchiveWrapper(user)::getFrom, salaryArchiveId);
|
2022-03-28 20:04:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取离职时段设置表单
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getDimissionSetForm")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getDimissionSetForm(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::getDimissionSetForm);
|
2022-03-28 20:04:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 保存离职时段设置
|
|
|
|
|
*
|
|
|
|
|
* @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);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryArchiveDimissionSaveParam, String>(user).run(getSalaryArchiveWrapper(user)::saveDimissionSet, saveParam);
|
2022-03-28 20:04:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取导入类型
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getImportTypes")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getImportTypes(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, List<Map<String, Object>>>(user).run(getSalaryArchiveWrapper(user)::getImportTypes);
|
2022-03-28 20:04:27 +08:00
|
|
|
}
|
|
|
|
|
|
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) {
|
2022-05-09 10:32:14 +08:00
|
|
|
try {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
SalaryArchiveQueryParam queryParam = buildParam(request);
|
2022-03-29 17:10:59 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
XSSFWorkbook workbook = getSalaryArchiveWrapper(user).downloadTemplate(queryParam);
|
2022-03-29 17:10:59 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
SalaryArchiveImportTypeEnum importTypeEnum = SalaryArchiveImportTypeEnum.parseByValue(queryParam.getImportType());
|
2022-03-31 15:41:55 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
String fileName = "薪资档案导入模板-" + importTypeEnum.getDefaultLabel() + LocalDate.now();
|
2022-03-31 15:41:55 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
try {
|
|
|
|
|
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
|
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
2022-03-29 17:10:59 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
StreamingOutput output = outputStream -> {
|
|
|
|
|
workbook.write(outputStream);
|
|
|
|
|
outputStream.flush();
|
|
|
|
|
};
|
2022-03-29 17:10:59 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
response.setContentType("application/octet-stream");
|
|
|
|
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("薪资档案导入模板导出异常", e);
|
|
|
|
|
throw e;
|
|
|
|
|
}
|
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()));
|
|
|
|
|
}
|
2022-04-02 15:34:27 +08:00
|
|
|
String username = request.getParameter("username");
|
|
|
|
|
if (StringUtils.isNotBlank(username)) {
|
|
|
|
|
param.setUsername(username);
|
2022-03-29 17:10:59 +08:00
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
}
|
2022-06-13 15:37:52 +08:00
|
|
|
String hasData = request.getParameter("hasData");
|
|
|
|
|
if (StringUtils.isNotBlank(hasData)) {
|
|
|
|
|
param.setHasData(Boolean.valueOf(hasData));
|
|
|
|
|
}
|
2022-03-29 17:10:59 +08:00
|
|
|
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);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryArchiveImportHandleParam, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::preview, importParam);
|
2022-03-31 15:41:55 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-19 15:13:08 +08:00
|
|
|
//导入
|
2022-03-31 15:41:55 +08:00
|
|
|
@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);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryArchiveImportHandleParam, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchive, importParam);
|
2022-03-31 15:41:55 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-07 20:05:58 +08:00
|
|
|
//人员状态列表
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/searchCondition")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String searchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SingleTaxAgentAdjustRecordQueryParam, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::searchCondition);
|
2022-04-07 20:05:58 +08:00
|
|
|
}
|
2022-03-31 15:41:55 +08:00
|
|
|
|
2022-09-07 09:45:37 +08:00
|
|
|
//停薪
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/stopSalary")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String stopSalary(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveStopParam stopSalaryParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryArchiveStopParam, String>(user).run(getSalaryArchiveWrapper(user)::stopSalary,stopSalaryParam);
|
|
|
|
|
}
|
|
|
|
|
|
2022-03-31 18:41:41 +08:00
|
|
|
// ******** 薪资档案主表 end ***********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
// ******** 薪资项目调整 start ***********************************************************************************************/
|
2022-04-07 20:05:58 +08:00
|
|
|
|
2022-04-02 16:57:27 +08:00
|
|
|
/**
|
|
|
|
|
* 获取薪资项目调整表单
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getSalaryItemForm")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getSalaryItemForm(@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);
|
|
|
|
|
}
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, SalaryArchiveItemFormDTO>(user).run(getSalaryArchiveItemWrapper(user)::getSalaryItemForm, salaryArchiveId);
|
2022-04-02 16:57:27 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取薪资项目调整前的值
|
|
|
|
|
*
|
|
|
|
|
* @param adjustBeforeParam
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/getSalaryItemAdjustBeforeValue")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getSalaryItemAdjustBeforeValue(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemAdjustBeforeParam adjustBeforeParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryItemAdjustBeforeParam, String>(user).run(getSalaryArchiveItemWrapper(user)::getSalaryItemAdjustBeforeValue, adjustBeforeParam);
|
2022-04-01 10:26:28 +08:00
|
|
|
}
|
2022-03-31 18:41:41 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通过薪资档案的薪资项目id获取薪资项目调整表单
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getSalaryItemFormBySalaryArchiveItemId")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getSalaryItemFormBySalaryArchiveItemId(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
String salaryArchiveItemIdStr = request.getParameter("salaryArchiveItemId");
|
|
|
|
|
Long salaryArchiveItemId = null;
|
|
|
|
|
if (StringUtils.isNotBlank(salaryArchiveItemIdStr)) {
|
|
|
|
|
salaryArchiveItemId = Long.valueOf(salaryArchiveItemIdStr);
|
|
|
|
|
}
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, SalaryArchiveItemFormDTO>(user).run(getSalaryArchiveItemWrapper(user)::getSalaryItemFormBySalaryArchiveItemId, salaryArchiveItemId);
|
2022-03-31 18:41:41 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
/**
|
|
|
|
|
* 保存薪资项目调整
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/saveSalaryItem")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String saveSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveItemSaveParam saveParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryArchiveItemSaveParam, String>(user).run(getSalaryArchiveItemWrapper(user)::saveSalaryItem, saveParam);
|
2022-04-01 10:26:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除薪资项目调整
|
|
|
|
|
*/
|
2022-06-17 17:22:48 +08:00
|
|
|
@GET
|
2022-04-01 10:26:28 +08:00
|
|
|
@Path("/deleteSalaryItem")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
2022-06-17 17:22:48 +08:00
|
|
|
public String deleteSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveItemId") Long salaryArchiveItemId) {
|
2022-04-01 10:26:28 +08:00
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, String>(user).run(getSalaryArchiveItemWrapper(user)::deleteSalaryItem, salaryArchiveItemId);
|
2022-04-01 10:26:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ******** 薪资项目调整 end ***********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
// ******** 个税扣缴义务人调整 start ***********************************************************************************************/
|
2022-04-01 18:25:24 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取个税扣缴义务人调整表单
|
|
|
|
|
*
|
|
|
|
|
* @param salaryArchiveId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getTaxAgentForm")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getTaxAgentForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveId") Long salaryArchiveId) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, SalaryArchiveTaxAgentFormDTO>(user).run(getSalaryArchiveTaxAgentWrapper(user)::getTaxAgentForm, salaryArchiveId);
|
2022-04-01 18:25:24 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单`
|
|
|
|
|
*
|
|
|
|
|
* @param salaryArchiveTaxAgentId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getTaxAgentFormBySalaryArchiveTaxAgentId")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getTaxAgentFormBySalaryArchiveTaxAgentId(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, SalaryArchiveTaxAgentFormDTO>(user).run(getSalaryArchiveTaxAgentWrapper(user)::getTaxAgentFormBySalaryArchiveTaxAgentId, salaryArchiveTaxAgentId);
|
2022-04-01 18:25:24 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 保存个税扣缴义务人调整
|
|
|
|
|
*
|
|
|
|
|
* @param saveParam
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/saveTaxAgent")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String saveTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveTaxAgentSaveParam saveParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryArchiveTaxAgentSaveParam, String>(user).run(getSalaryArchiveTaxAgentWrapper(user)::saveTaxAgent, saveParam);
|
2022-04-01 18:25:24 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除个税扣缴义务人调整
|
|
|
|
|
*
|
|
|
|
|
* @param salaryArchiveTaxAgentId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
2022-06-17 17:22:48 +08:00
|
|
|
@GET
|
2022-04-01 18:25:24 +08:00
|
|
|
@Path("/deleteTaxAgent")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
2022-06-17 17:22:48 +08:00
|
|
|
public String deleteTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryArchiveTaxAgentId") Long salaryArchiveTaxAgentId) {
|
2022-04-01 18:25:24 +08:00
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<Long, String>(user).run(getSalaryArchiveTaxAgentWrapper(user)::deleteTaxAgent, salaryArchiveTaxAgentId);
|
2022-04-01 18:25:24 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ******** 薪资项目调整 end ***********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
// ******** 薪资项目调整记录 start ***********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 薪资项目调整记录列表
|
|
|
|
|
*
|
|
|
|
|
* @param queryParam
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/adjustRecord/salaryItemList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String adjustRecordList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemAdjustRecordQueryParam queryParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SalaryItemAdjustRecordQueryParam, PageInfo<SalaryItemAdjustRecordListDTO>>(user).run(getSalaryArchiveItemWrapper(user)::adjustRecordList, queryParam);
|
2022-04-01 18:25:24 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-02 15:34:27 +08:00
|
|
|
/**
|
|
|
|
|
* 单个档案的薪资项目调整记录列表
|
|
|
|
|
*
|
|
|
|
|
* @param queryParam
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/adjustRecord/singleSalaryItemList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String singleSalaryItemAdjustRecordList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SingleSalaryItemAdjustRecordQueryParam queryParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SingleSalaryItemAdjustRecordQueryParam, PageInfo<SingleSalaryItemAdjustRecordListDTO>>(user).run(getSalaryArchiveItemWrapper(user)::singleSalaryItemAdjustRecordList, queryParam);
|
2022-04-02 15:34:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 导出薪资项目调整记录列表
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/adjustRecord/exportSalaryItemList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportSalaryItemList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
2022-05-09 10:32:14 +08:00
|
|
|
try {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
SalaryItemAdjustRecordQueryParam param = getSalaryItemAdjustRecordQueryParam(request);
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
XSSFWorkbook workbook = getSalaryArchiveItemWrapper(user).exportAdjustRecordList(param);
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
String fileName = "薪资项目调整记录" + LocalDate.now();
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
try {
|
|
|
|
|
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
|
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
StreamingOutput output = outputStream -> {
|
|
|
|
|
workbook.write(outputStream);
|
|
|
|
|
outputStream.flush();
|
|
|
|
|
};
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
response.setContentType("application/octet-stream");
|
|
|
|
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("薪资项目调整记录导出异常", e);
|
|
|
|
|
throw e;
|
|
|
|
|
}
|
2022-04-02 15:34:27 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@NotNull
|
|
|
|
|
private SalaryItemAdjustRecordQueryParam getSalaryItemAdjustRecordQueryParam(HttpServletRequest request) {
|
|
|
|
|
SalaryItemAdjustRecordQueryParam param = new SalaryItemAdjustRecordQueryParam();
|
|
|
|
|
String ids = request.getParameter("ids");
|
|
|
|
|
if (StringUtils.isNotBlank(ids)) {
|
|
|
|
|
param.setIds(Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
|
|
|
|
}
|
|
|
|
|
String salaryArchiveId = request.getParameter("salaryArchiveId");
|
|
|
|
|
if (StringUtils.isNotBlank(salaryArchiveId)) {
|
|
|
|
|
param.setSalaryArchiveId(Long.parseLong(salaryArchiveId));
|
|
|
|
|
}
|
|
|
|
|
String keyword = request.getParameter("keyword");
|
|
|
|
|
if (StringUtils.isNotBlank(keyword)) {
|
|
|
|
|
param.setKeyword(keyword);
|
|
|
|
|
}
|
|
|
|
|
String username = request.getParameter("username");
|
|
|
|
|
if (StringUtils.isNotBlank(username)) {
|
|
|
|
|
param.setUsername(username);
|
|
|
|
|
}
|
|
|
|
|
String employeeId = request.getParameter("employeeId");
|
|
|
|
|
if (StringUtils.isNotBlank(employeeId)) {
|
|
|
|
|
param.setSalaryArchiveId(Long.parseLong(employeeId));
|
|
|
|
|
}
|
|
|
|
|
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 adjustItem = request.getParameter("adjustItem");
|
|
|
|
|
if (StringUtils.isNotBlank(adjustItem)) {
|
|
|
|
|
param.setAdjustItem(adjustItem);
|
|
|
|
|
}
|
|
|
|
|
String adjustReason = request.getParameter("adjustReason");
|
|
|
|
|
if (StringUtils.isNotBlank(adjustReason)) {
|
|
|
|
|
param.setAdjustReason(adjustReason);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String effectiveTime = request.getParameter("effectiveTime");
|
|
|
|
|
if (StringUtils.isNotBlank(effectiveTime)) {
|
|
|
|
|
List<Date> collect = Arrays.stream(effectiveTime.split(",")).map(time -> SalaryDateUtil.parse(time, SalaryDateUtil.DATE_FORMATTER_PATTERN)).collect(Collectors.toList());
|
|
|
|
|
param.setEffectiveTime(collect);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String operateTime = request.getParameter("operateTime");
|
|
|
|
|
if (StringUtils.isNotBlank(operateTime)) {
|
|
|
|
|
List<Date> collect = Arrays.stream(operateTime.split(",")).map(time -> SalaryDateUtil.parse(time, SalaryDateUtil.DATE_FORMATTER_PATTERN)).collect(Collectors.toList());
|
|
|
|
|
param.setOperateTime(collect);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String operatorIds = request.getParameter("operatorIds");
|
|
|
|
|
if (StringUtils.isNotBlank(operatorIds)) {
|
|
|
|
|
param.setOperatorIds(Arrays.stream(operatorIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String description = request.getParameter("description");
|
|
|
|
|
if (StringUtils.isNotBlank(description)) {
|
|
|
|
|
param.setUserstatus(description);
|
|
|
|
|
}
|
|
|
|
|
return param;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/******** 薪资项目调整记录 end ***********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
/******** 个税扣缴义务人调整记录 start ***********************************************************************************************/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 个税扣缴义务人调整记录列表
|
|
|
|
|
*
|
|
|
|
|
* @param queryParam
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/adjustRecord/taxAgentList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String taxAgentList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentAdjustRecordQueryParam queryParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<TaxAgentAdjustRecordQueryParam, PageInfo<TaxAgentAdjustRecordListDTO>>(user).run(getSalaryArchiveTaxAgentWrapper(user)::adjustRecordList, queryParam);
|
2022-04-02 15:34:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 单个档案的个税扣缴义务人调整记录列表
|
|
|
|
|
*
|
|
|
|
|
* @param queryParam
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/adjustRecord/singleTaxAgentList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String SingleTaxAgentAdjustRecordList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SingleTaxAgentAdjustRecordQueryParam queryParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
return new ResponseResult<SingleTaxAgentAdjustRecordQueryParam, PageInfo<SingleTaxAgentAdjustRecordListDTO>>(user).run(getSalaryArchiveTaxAgentWrapper(user)::singleTaxAgentAdjustRecordList, queryParam);
|
2022-04-02 15:34:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 导出个税扣缴义务人调整记录列表
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/adjustRecord/exportTaxAgentList")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportTaxAgentList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
2022-05-09 10:32:14 +08:00
|
|
|
try {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
TaxAgentAdjustRecordQueryParam param = new TaxAgentAdjustRecordQueryParam();
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
XSSFWorkbook workbook = getSalaryArchiveTaxAgentWrapper(user).exportAdjustRecordList(param);
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
String fileName = "个税扣缴义务人调整记录" + LocalDate.now();
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
try {
|
|
|
|
|
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
|
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
StreamingOutput output = outputStream -> {
|
|
|
|
|
workbook.write(outputStream);
|
|
|
|
|
outputStream.flush();
|
|
|
|
|
};
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
response.setContentType("application/octet-stream");
|
|
|
|
|
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
2022-04-02 15:34:27 +08:00
|
|
|
|
2022-05-09 10:32:14 +08:00
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("个税扣缴义务人调整记录导出异常", e);
|
|
|
|
|
throw e;
|
|
|
|
|
}
|
2022-04-02 15:34:27 +08:00
|
|
|
|
|
|
|
|
}
|
2022-04-07 20:05:58 +08:00
|
|
|
|
|
|
|
|
|
2022-04-02 15:34:27 +08:00
|
|
|
/******** 个税扣缴义务人调整记录 end ***********************************************************************************************/
|
2022-03-28 16:36:40 +08:00
|
|
|
}
|