2022-04-06 20:01:00 +08:00
|
|
|
package com.engine.salary.web;
|
|
|
|
|
|
2022-04-07 11:39:22 +08:00
|
|
|
import com.engine.common.util.ServiceUtil;
|
2022-04-19 19:32:09 +08:00
|
|
|
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
|
|
|
|
|
import com.engine.salary.entity.salaryacct.dto.SalaryAccEmployeeListDTO;
|
|
|
|
|
import com.engine.salary.entity.salaryacct.dto.SalaryAcctImportFieldDTO;
|
|
|
|
|
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO;
|
2022-04-07 18:41:40 +08:00
|
|
|
import com.engine.salary.entity.salaryacct.param.*;
|
2022-04-07 16:54:10 +08:00
|
|
|
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
2022-04-12 19:25:19 +08:00
|
|
|
import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum;
|
2022-04-13 14:18:00 +08:00
|
|
|
import com.engine.salary.service.SalaryAcctExcelService;
|
|
|
|
|
import com.engine.salary.service.impl.SalaryAcctExcelServiceImpl;
|
2022-04-07 11:39:22 +08:00
|
|
|
import com.engine.salary.util.ResponseResult;
|
2022-04-08 16:30:10 +08:00
|
|
|
import com.engine.salary.util.SalaryDateUtil;
|
2022-04-07 11:39:22 +08:00
|
|
|
import com.engine.salary.util.page.PageInfo;
|
2022-04-13 14:18:00 +08:00
|
|
|
import com.engine.salary.wrapper.*;
|
2022-04-07 11:39:22 +08:00
|
|
|
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
2022-04-12 19:25:19 +08:00
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
2022-04-07 11:39:22 +08:00
|
|
|
import weaver.hrm.HrmUserVarify;
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import javax.ws.rs.*;
|
|
|
|
|
import javax.ws.rs.core.Context;
|
|
|
|
|
import javax.ws.rs.core.MediaType;
|
2022-04-12 19:25:19 +08:00
|
|
|
import javax.ws.rs.core.Response;
|
|
|
|
|
import javax.ws.rs.core.StreamingOutput;
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.util.Arrays;
|
2022-04-07 16:54:10 +08:00
|
|
|
import java.util.Collection;
|
2022-04-12 19:25:19 +08:00
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.stream.Collectors;
|
2022-04-07 11:39:22 +08:00
|
|
|
|
2022-04-06 20:01:00 +08:00
|
|
|
/**
|
|
|
|
|
* 薪资核算
|
|
|
|
|
* <p>Copyright: Copyright (c) 2022</p>
|
|
|
|
|
* <p>Company: 泛微软件</p>
|
|
|
|
|
*
|
|
|
|
|
* @author qiantao
|
|
|
|
|
* @version 1.0
|
|
|
|
|
**/
|
|
|
|
|
public class SalaryAcctController {
|
|
|
|
|
|
2022-04-07 11:39:22 +08:00
|
|
|
private SalaryAcctRecordWrapper salaryAcctRecordWrapper;
|
|
|
|
|
|
|
|
|
|
private SalaryAcctRecordWrapper getSalaryAcctRecordWrapper(User user) {
|
|
|
|
|
return (SalaryAcctRecordWrapper) ServiceUtil.getService(SalaryAcctRecordWrapper.class, user);
|
|
|
|
|
}
|
2022-04-12 19:25:19 +08:00
|
|
|
|
2022-04-07 16:54:10 +08:00
|
|
|
private SalaryAcctEmployeeWrapper getSalaryAcctEmployeeWrapper(User user) {
|
|
|
|
|
return (SalaryAcctEmployeeWrapper) ServiceUtil.getService(SalaryAcctEmployeeWrapper.class, user);
|
|
|
|
|
}
|
2022-04-12 19:25:19 +08:00
|
|
|
|
|
|
|
|
private SalaryAcctResultWrapper getSalaryAcctResultWrapper(User user) {
|
|
|
|
|
return (SalaryAcctResultWrapper) ServiceUtil.getService(SalaryAcctResultWrapper.class, user);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// private SalaryAcctCheckResultWrapper salaryAcctCheckResultWrapper;
|
2022-04-13 14:18:00 +08:00
|
|
|
private SalaryComparisonResultWrapper getSalaryComparisonResultWrapper(User user) {
|
|
|
|
|
return (SalaryComparisonResultWrapper) ServiceUtil.getService(SalaryComparisonResultWrapper.class, user);
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-12 19:25:19 +08:00
|
|
|
private SalaryAcctExcelWrapper getSalaryAcctExcelWrapper(User user) {
|
|
|
|
|
return (SalaryAcctExcelWrapper) ServiceUtil.getService(SalaryAcctExcelWrapper.class, user);
|
|
|
|
|
}
|
2022-04-13 14:18:00 +08:00
|
|
|
|
|
|
|
|
private SalaryAcctExcelService getSalaryAcctExcelService(User user) {
|
|
|
|
|
return (SalaryAcctExcelService) ServiceUtil.getService(SalaryAcctExcelServiceImpl.class, user);
|
|
|
|
|
}
|
2022-04-18 17:28:34 +08:00
|
|
|
|
2022-04-06 20:01:00 +08:00
|
|
|
// /**********************************薪资核算记录相关 start*********************************/
|
2022-04-07 11:39:22 +08:00
|
|
|
|
|
|
|
|
//薪资核算列表
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/list")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctRecordQueryParam queryParam) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-08 16:30:10 +08:00
|
|
|
queryParam.setStartMonth(SalaryDateUtil.String2YearMonth(queryParam.getStartMonthStr()));
|
|
|
|
|
queryParam.setEndMonth(SalaryDateUtil.String2YearMonth(queryParam.getEndMonthStr()));
|
2022-04-07 11:39:22 +08:00
|
|
|
return new ResponseResult<SalaryAcctRecordQueryParam, PageInfo>().run(getSalaryAcctRecordWrapper(user)::listPage, queryParam);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//薪资核算详情
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getForm")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-19 19:32:09 +08:00
|
|
|
return new ResponseResult<Long, Map<String, Object>>().run(getSalaryAcctRecordWrapper(user)::getForm, id);
|
2022-04-07 11:39:22 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-07 16:54:10 +08:00
|
|
|
//获取薪资核算的薪资周期、考勤周期等
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/getSalarySobCycle")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getSalarySobCycle(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryAcctRecordId") Long salaryAcctRecordId) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, SalarySobCycleDTO>().run(getSalaryAcctRecordWrapper(user)::getSalarySobCycleById, salaryAcctRecordId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存薪资核算的基本信息
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/basic/save")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctRecordSaveParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-08 16:30:10 +08:00
|
|
|
param.setSalaryMonth(SalaryDateUtil.String2YearMonth(param.getSalaryMonthStr()));
|
2022-04-07 16:54:10 +08:00
|
|
|
return new ResponseResult<SalaryAcctRecordSaveParam, Long>().run(getSalaryAcctRecordWrapper(user)::save, param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//删除薪资核算记录
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/delete")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String deleteSalaryAcctRecord(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection<Long> ids) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Collection<Long>, Long>().run(getSalaryAcctRecordWrapper(user)::delete, ids);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//归档薪资核算记录
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/file")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String fileSalaryAcctRecord(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, Long>().run(getSalaryAcctRecordWrapper(user)::file, id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//重新核算
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/reAccounting")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String reAccounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctRecordReAccountParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, Long>().run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//判断是否存在合并计税
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/hasConsolidatedTax")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String hasConsolidatedTax(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, Integer>().run(getSalaryAcctRecordWrapper(user)::hasConsolidatedTax, id);
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-07 18:41:40 +08:00
|
|
|
/**********************************薪资核算记录相关 end*********************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**********************************薪资核算人员相关 start*********************************/
|
|
|
|
|
|
|
|
|
|
//薪资核算人员确认列表
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctemployee/list")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String listSalaryAccountingEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmployeeQueryParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctEmployeeQueryParam, PageInfo<SalaryAccEmployeeListDTO>>().run(getSalaryAcctEmployeeWrapper(user)::listPage, param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//薪资核算环比上期减少人员列表
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/reducedemployee/list")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String listReducedEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmployeeQueryParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-12 19:25:19 +08:00
|
|
|
return new ResponseResult<SalaryAcctEmployeeQueryParam, PageInfo<SalaryAccEmployeeListDTO>>().run(getSalaryAcctEmployeeWrapper(user)::listPage4Reduce, param);
|
2022-04-07 18:41:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//添加薪资核算人员
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctemployee/save")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String saveSalaryAcctEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmployeeSaveParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-12 19:25:19 +08:00
|
|
|
return new ResponseResult<SalaryAcctEmployeeSaveParam, String>().run(getSalaryAcctEmployeeWrapper(user)::save, param);
|
2022-04-07 18:41:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//删除薪资核算人员
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctemployee/delete")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String deleteSalaryAcctEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmployeeDeleteParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-12 19:25:19 +08:00
|
|
|
return new ResponseResult<SalaryAcctEmployeeDeleteParam, String>().run(getSalaryAcctEmployeeWrapper(user)::delete, param);
|
2022-04-07 18:41:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//检查薪资核算人员的个税扣缴义务人
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctemployee/checkTaxAgent")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String checkTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmpCheckTaxAgentParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-12 19:25:19 +08:00
|
|
|
return new ResponseResult<Long, String>().run(getSalaryAcctEmployeeWrapper(user)::checkTaxAgent, param.getSalaryAcctRecordId());
|
2022-04-07 18:41:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//刷新薪资核算人员的个税扣缴义务人
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctemployee/refreshTaxAgent")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String refreshTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmpRefreshTaxAgentParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-12 19:25:19 +08:00
|
|
|
return new ResponseResult<Long, String>().run(getSalaryAcctEmployeeWrapper(user)::refreshTaxAgent, param.getSalaryAcctRecordId());
|
2022-04-07 18:41:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//从环比上月减少添加薪资核算人员
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctemployee/addFromReduce")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String addFromReduce(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctEmployeeAddParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-12 19:25:19 +08:00
|
|
|
return new ResponseResult<SalaryAcctEmployeeAddParam, String>().run(getSalaryAcctEmployeeWrapper(user)::addFromReduce, param);
|
2022-04-07 18:41:40 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-12 19:25:19 +08:00
|
|
|
/**
|
|
|
|
|
* 导出人员范围
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/acctemployee/export")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportSalaryAcctEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
SalaryAcctEmployeeQueryParam param = buildSalaryAcctEmployeeQueryParam(request);
|
2022-04-07 18:41:40 +08:00
|
|
|
|
2022-04-12 19:25:19 +08:00
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportSalaryAcctEmployee(param);
|
|
|
|
|
String time = LocalDate.now().toString();
|
|
|
|
|
String fileName = "核算人员范围" + time;
|
|
|
|
|
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();
|
2022-04-07 18:41:40 +08:00
|
|
|
|
2022-04-12 19:25:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@NotNull
|
|
|
|
|
private SalaryAcctEmployeeQueryParam buildSalaryAcctEmployeeQueryParam(HttpServletRequest request) {
|
|
|
|
|
SalaryAcctEmployeeQueryParam param = new SalaryAcctEmployeeQueryParam();
|
|
|
|
|
|
|
|
|
|
String salaryAcctRecordId = request.getParameter("salaryAcctRecordId");
|
|
|
|
|
if (StringUtils.isNotBlank(salaryAcctRecordId)) {
|
|
|
|
|
param.setSalaryAcctRecordId(Long.parseLong(salaryAcctRecordId));
|
|
|
|
|
}
|
|
|
|
|
String employeeName = request.getParameter("employeeName");
|
|
|
|
|
if (StringUtils.isNotBlank(employeeName)) {
|
|
|
|
|
param.setEmployeeName(employeeName);
|
|
|
|
|
}
|
|
|
|
|
String taxAgentId = request.getParameter("taxAgentId");
|
|
|
|
|
if (StringUtils.isNotBlank(taxAgentId)) {
|
|
|
|
|
param.setTaxAgentId(Long.parseLong(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 status = request.getParameter("status");
|
|
|
|
|
if (StringUtils.isNotBlank(status)) {
|
|
|
|
|
param.setStatus(SalaryEmployeeStatusEnum.parseByValue(Integer.parseInt(status)));
|
|
|
|
|
}
|
|
|
|
|
//fixme 日期
|
|
|
|
|
request.getParameter("dismissDate");
|
|
|
|
|
String ids = request.getParameter("ids");
|
|
|
|
|
if (StringUtils.isNotBlank(ids)) {
|
|
|
|
|
param.setIds(Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
|
|
|
|
}
|
|
|
|
|
return param;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 导出环比减少人员
|
|
|
|
|
*/
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/reducedemployee/export")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportReducedEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
SalaryAcctEmployeeQueryParam param = buildSalaryAcctEmployeeQueryParam(request);
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportReducedEmployee(param);
|
|
|
|
|
String time = LocalDate.now().toString();
|
|
|
|
|
String fileName = "环比上月减少人员" + time;
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2022-04-13 14:18:00 +08:00
|
|
|
// **********************************薪资核算人员相关 end*********************************/
|
2022-04-12 19:25:19 +08:00
|
|
|
|
2022-04-13 14:18:00 +08:00
|
|
|
// **********************************薪资核算结果 start*********************************/
|
2022-04-12 19:25:19 +08:00
|
|
|
|
|
|
|
|
//薪资核算结果列表
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctresult/list")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String listSalaryAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctResultQueryParam, Map<String, Object>>().run(getSalaryAcctResultWrapper(user)::listPage, param);
|
|
|
|
|
}
|
2022-04-07 18:41:40 +08:00
|
|
|
|
|
|
|
|
|
2022-04-12 19:25:19 +08:00
|
|
|
//薪资核算结果详情
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/acctresult/detail")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getSalaryAcctResultDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, SalaryAcctResultDetailDTO>().run(getSalaryAcctResultWrapper(user)::getForm, id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//薪资核算结果详情
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/acctresult/getConsolidatedTaxDetail")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String getConsolidatedTaxDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryAcctEmpId") Long salaryAcctEmpId) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, ConsolidatedTaxDetailDTO>().run(getSalaryAcctResultWrapper(user)::getConsolidatedTaxDetail, salaryAcctEmpId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//编辑薪资核算结果
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctresult/save")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String saveSalaryAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultSaveParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctResultSaveParam, String>().run(getSalaryAcctResultWrapper(user)::save, param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//薪资核算
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/acctresult/accounting")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String accounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctCalculateParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctCalculateParam, String>().run(getSalaryAcctResultWrapper(user)::calculate, param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//导出核算结果
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/acctresult/export")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportSalaryAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
2022-04-13 14:18:00 +08:00
|
|
|
SalaryAcctResultQueryParam param = new SalaryAcctResultQueryParam();
|
2022-04-18 17:28:34 +08:00
|
|
|
setSalaryAcctResultQueryParam(request, param);
|
2022-04-12 19:25:19 +08:00
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportSalaryAcctResult(param);
|
|
|
|
|
String time = LocalDate.now().toString();
|
|
|
|
|
String fileName = "薪资核算结果" + time;
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2022-04-18 17:28:34 +08:00
|
|
|
//导入核算结果前生成导入模板时可选的薪资项目
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/acctresult/importField")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String accounting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salaryAcctRecordId") Long salaryAcctRecordId) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<Long, SalaryAcctImportFieldDTO>().run(getSalaryAcctExcelService(user)::getImportField, salaryAcctRecordId);
|
|
|
|
|
}
|
2022-04-13 14:18:00 +08:00
|
|
|
|
|
|
|
|
//导出导入模板
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/acctresult/importtemplate/export")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportImportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
SalaryAcctImportTemplateParam param = new SalaryAcctImportTemplateParam();
|
2022-04-18 17:28:34 +08:00
|
|
|
setSalaryAcctResultQueryParam(request, param);
|
2022-04-13 14:18:00 +08:00
|
|
|
|
|
|
|
|
String importType = request.getParameter("importType");
|
|
|
|
|
if (StringUtils.isNotBlank(importType)) {
|
|
|
|
|
param.setImportType(importType);
|
|
|
|
|
}
|
|
|
|
|
String salaryItemIds = request.getParameter("salaryItemIds");
|
|
|
|
|
if (StringUtils.isNotBlank(salaryItemIds)) {
|
|
|
|
|
param.setSalaryItemIds(Arrays.stream(salaryItemIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportImportTemplate(param);
|
|
|
|
|
String time = LocalDate.now().toString();
|
|
|
|
|
String fileName = "薪资核算导入模板" + time;
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-19 19:32:09 +08:00
|
|
|
//导入核算结果
|
|
|
|
|
@POST
|
2022-04-19 19:34:57 +08:00
|
|
|
@Path("/acctresult/importSalaryAcctResult")
|
2022-04-19 19:32:09 +08:00
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String importSalaryAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctImportParam, Map<String, Object>>().run(getSalaryAcctExcelService(user)::importSalaryAcctResult, param);
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-19 19:50:00 +08:00
|
|
|
@POST
|
|
|
|
|
@Path("/acctresult/preview")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String importSalaryAcctResultPreview(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctImportParam, Map<String, Object>>().run(getSalaryAcctExcelService(user)::preview, param);
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-13 14:18:00 +08:00
|
|
|
// **********************************薪资核算结果 end*********************************/
|
|
|
|
|
|
|
|
|
|
// **********************************检验异常 start*********************************/
|
|
|
|
|
|
2022-04-06 20:01:00 +08:00
|
|
|
// @GetMapping("/checkresult/getCount")
|
|
|
|
|
// @ApiOperation(("获取校验结果(异常)总数"))
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<Integer> getCheckResultCount(@RequestParam(value = "salaryAcctRecordId") Long salaryAcctRecordId) {
|
|
|
|
|
// Integer salaryCheckResultCount = salaryAcctCheckResultWrapper.countBySalaryAcctRecordId(salaryAcctRecordId, TenantContext.getCurrentTenantKey());
|
|
|
|
|
// return WeaResult.success(salaryCheckResultCount);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/checkresult/list")
|
|
|
|
|
// @ApiOperation("校验结果列表")
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<WeaTable<SalaryCheckResultListDTO>> listCheckResult(@RequestBody @Validated SalaryCheckResultQueryParam queryParam) {
|
|
|
|
|
// WeaTable<SalaryCheckResultListDTO> weaTable = salaryAcctCheckResultWrapper.listPage(queryParam, TenantContext.getCurrentTenantKey());
|
|
|
|
|
// return WeaResult.success(weaTable);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/checkresultdetail/list")
|
|
|
|
|
// @ApiOperation("校验结果明细列表")
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<WeaTable<SalaryCheckResultRecordListDTO>> listCheckResultRecord(@RequestBody @Validated SalaryCheckResultRecordQueryParam queryParam) {
|
|
|
|
|
// WeaTable<SalaryCheckResultRecordListDTO> weaTable = salaryAcctCheckResultWrapper.listPage4CheckResultRecord(queryParam, TenantContext.getCurrentTenantKey());
|
|
|
|
|
// return WeaResult.success(weaTable);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/checkresult/ignore")
|
|
|
|
|
// @ApiOperation("校验结果列表")
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<Object> ignoreCheckResult(@RequestParam(value = "id") Long id) {
|
|
|
|
|
// salaryAcctCheckResultWrapper.ignoreById(id, TenantContext.getCurrentTenantKey());
|
|
|
|
|
// return WeaResult.success(null);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/checkresult/ignoreAll")
|
|
|
|
|
// @ApiOperation("校验结果列表")
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<Object> ignoreAllCheckResult(@RequestParam(value = "salaryAcctRecordId") Long salaryAcctRecordId) {
|
|
|
|
|
// salaryAcctCheckResultWrapper.ignoreBySalaryAcctRecordId(salaryAcctRecordId, TenantContext.getCurrentTenantKey());
|
|
|
|
|
// return WeaResult.success(null);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/acctresult/check")
|
|
|
|
|
// @ApiOperation(("薪资核算结果校验"))
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<Object> check(@RequestBody @Validated SalaryAcctCheckParam checkParam) {
|
|
|
|
|
// salaryAcctResultWrapper.check(checkParam, UserContext.getCurrentUser(), TenantContext.getCurrentTenantKey());
|
|
|
|
|
// return WeaResult.success(null);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/checkresult/export")
|
|
|
|
|
// @ApiOperation("校验异常导出")
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<Map<String, Object>> exportCheckResult(@RequestBody @Validated SalaryCheckResultExportParam exportParam) {
|
|
|
|
|
// SimpleEmployee simpleEmployee = UserContext.getCurrentUser();
|
|
|
|
|
// String tenantKey = TenantContext.getCurrentTenantKey();
|
|
|
|
|
// String eteamsId = TenantRpcContext.getEteamsId();
|
|
|
|
|
// Map<String, Object> map = salaryAcctExcelWrapper.exportCheckResult(exportParam, simpleEmployee, tenantKey, eteamsId);
|
|
|
|
|
// return WeaResult.success(map);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @PostMapping("/checkresultRecord/export")
|
|
|
|
|
// @ApiOperation("校验异常明细导出")
|
|
|
|
|
// @WeaPermission
|
|
|
|
|
// public WeaResult<Map<String, Object>> exportCheckResultDetail(@RequestParam(value = "checkResultId") Long checkResultId) {
|
|
|
|
|
// SimpleEmployee simpleEmployee = UserContext.getCurrentUser();
|
|
|
|
|
// String tenantKey = TenantContext.getCurrentTenantKey();
|
|
|
|
|
// String eteamsId = TenantRpcContext.getEteamsId();
|
|
|
|
|
// Map<String, Object> map = salaryAcctExcelWrapper.exportCheckResultDetail(checkResultId, simpleEmployee, tenantKey, eteamsId);
|
|
|
|
|
// return WeaResult.success(map);
|
|
|
|
|
// }
|
|
|
|
|
//
|
2022-04-13 14:18:00 +08:00
|
|
|
// **********************************检验异常 end*********************************/
|
|
|
|
|
|
|
|
|
|
// **********************************线下对比 start*********************************/
|
|
|
|
|
|
|
|
|
|
//线上线下对比结果列表
|
|
|
|
|
@POST
|
|
|
|
|
@Path("/comparisonresult/list")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String listComparisonResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryComparisonResultQueryParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryComparisonResultQueryParam, Map<String, Object>>().run(getSalaryComparisonResultWrapper(user)::listPage, param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//导出线上线下对比结果
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/comparisonresult/export")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportComparisonResult(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
SalaryComparisonResultQueryParam param = new SalaryComparisonResultQueryParam();
|
|
|
|
|
|
|
|
|
|
setSalaryAcctResultQueryParam(request, param);
|
|
|
|
|
String onlyDiffEmployee = request.getParameter("onlyDiffEmployee");
|
2022-04-18 17:28:34 +08:00
|
|
|
if (StringUtils.isNotBlank(onlyDiffEmployee)) {
|
2022-04-13 14:18:00 +08:00
|
|
|
param.setOnlyDiffEmployee(Boolean.parseBoolean(onlyDiffEmployee));
|
|
|
|
|
}
|
|
|
|
|
String onlyDiffSalaryItem = request.getParameter("onlyDiffSalaryItem");
|
2022-04-18 17:28:34 +08:00
|
|
|
if (StringUtils.isNotBlank(onlyDiffSalaryItem)) {
|
2022-04-13 14:18:00 +08:00
|
|
|
param.setOnlyDiffSalaryItem(Boolean.parseBoolean(onlyDiffSalaryItem));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportComparisonResult(param);
|
|
|
|
|
String time = LocalDate.now().toString();
|
|
|
|
|
String fileName = "线下对比结果" + time;
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void setSalaryAcctResultQueryParam(HttpServletRequest request, SalaryAcctResultQueryParam param) {
|
|
|
|
|
String salaryAcctRecordId = request.getParameter("salaryAcctRecordId");
|
|
|
|
|
if (StringUtils.isNotBlank(salaryAcctRecordId)) {
|
|
|
|
|
param.setSalaryAcctRecordId(Long.parseLong(salaryAcctRecordId));
|
|
|
|
|
}
|
|
|
|
|
String employeeName = request.getParameter("employeeName");
|
|
|
|
|
if (StringUtils.isNotBlank(employeeName)) {
|
|
|
|
|
param.setEmployeeName(employeeName);
|
|
|
|
|
}
|
|
|
|
|
String taxAgentId = request.getParameter("taxAgentId");
|
|
|
|
|
if (StringUtils.isNotBlank(taxAgentId)) {
|
|
|
|
|
param.setTaxAgentId(Long.parseLong(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 status = request.getParameter("status");
|
|
|
|
|
if (StringUtils.isNotBlank(status)) {
|
|
|
|
|
param.setStatus(SalaryEmployeeStatusEnum.parseByValue(Integer.parseInt(status)));
|
|
|
|
|
}
|
|
|
|
|
//fixme 日期
|
|
|
|
|
request.getParameter("dismissDate");
|
|
|
|
|
String consolidatedTaxation = request.getParameter("consolidatedTaxation");
|
|
|
|
|
if (StringUtils.isNotBlank(consolidatedTaxation)) {
|
|
|
|
|
param.setConsolidatedTaxation(consolidatedTaxation);
|
|
|
|
|
}
|
|
|
|
|
String ids = request.getParameter("ids");
|
|
|
|
|
if (StringUtils.isNotBlank(ids)) {
|
|
|
|
|
param.setIds(Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2022-04-18 17:28:34 +08:00
|
|
|
//线下对比结果导入模板导出
|
|
|
|
|
@GET
|
|
|
|
|
@Path("/comparisonresult/importtemplate/export")
|
|
|
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
|
|
|
public Response exportComparisonResultTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
SalaryComparisonResultExportParam param = new SalaryComparisonResultExportParam();
|
|
|
|
|
String salaryAcctRecordId = request.getParameter("salaryAcctRecordId");
|
2022-04-19 19:32:09 +08:00
|
|
|
if (StringUtils.isNotBlank(salaryAcctRecordId)) {
|
2022-04-18 17:28:34 +08:00
|
|
|
param.setSalaryAcctRecordId(Long.parseLong(salaryAcctRecordId));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportComparisonResultTemplate(param);
|
|
|
|
|
String time = LocalDate.now().toString();
|
|
|
|
|
String fileName = "线下对比结果导入模板" + time;
|
|
|
|
|
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();
|
|
|
|
|
}
|
2022-04-06 20:01:00 +08:00
|
|
|
|
2022-04-19 19:32:09 +08:00
|
|
|
//导入线下核算结果
|
|
|
|
|
@POST
|
2022-04-19 19:50:00 +08:00
|
|
|
@Path("/comparisonresult/importExcelAcctResult/preview")
|
2022-04-19 19:32:09 +08:00
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String importExcelAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-19 19:50:00 +08:00
|
|
|
return new ResponseResult<SalaryAcctImportParam, Map<String, Object>>().run(getSalaryAcctExcelService(user)::preview, param);
|
2022-04-19 19:32:09 +08:00
|
|
|
}
|
|
|
|
|
|
2022-04-19 19:50:00 +08:00
|
|
|
@POST
|
|
|
|
|
@Path("/comparisonresult/preview")
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
public String importExcelAcctResultPreview(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) {
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
return new ResponseResult<SalaryAcctImportParam, Map<String, Object>>().run(getSalaryAcctExcelService(user)::preview, param);
|
|
|
|
|
}
|
2022-04-19 19:32:09 +08:00
|
|
|
|
2022-04-06 20:01:00 +08:00
|
|
|
/**********************************线下对比 end*********************************/
|
|
|
|
|
}
|