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

494 lines
19 KiB
Java
Raw Normal View History

2024-08-28 17:42:16 +08:00
package com.engine.salary.web;
import com.engine.common.util.ServiceUtil;
2024-09-04 16:15:01 +08:00
import com.engine.salary.entity.ly.param.*;
import com.engine.salary.entity.ly.po.LyVoucherPO;
2024-08-28 17:42:16 +08:00
import com.engine.salary.util.ResponseResult;
2024-09-04 16:15:01 +08:00
import com.engine.salary.util.page.PageInfo;
2024-08-28 17:42:16 +08:00
import com.engine.salary.wrapper.LySalaryWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.time.LocalDate;
import java.util.List;
import java.util.Map;
/**
* @author Harryxzy
* @ClassName LySalaryController
* @date 2024/08/21 16:54
* @description 领悦二开
*/
@Slf4j
public class LySalaryController {
private LySalaryWrapper getLySalaryWrapper(User user) {
return ServiceUtil.getService(LySalaryWrapper.class, user);
}
2024-08-30 10:28:44 +08:00
/**
* 领悦报表权限
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/lyPermission")
@Produces(MediaType.APPLICATION_JSON)
public String lyReportPermission(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<User, Boolean>(user).run(getLySalaryWrapper(user)::lyReportPermission, user);
}
2024-08-28 17:42:16 +08:00
//---------------------------------------------------------薪酬汇总报表start------------------------------------------
/**
* 生成薪酬汇总报表
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/generate")
@Produces(MediaType.APPLICATION_JSON)
public String generateSalaryReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, String>(user).run(getLySalaryWrapper(user)::generateSalaryReport, param);
}
/**
* 查询薪酬汇总报表
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/list")
@Produces(MediaType.APPLICATION_JSON)
public String listSalaryReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::listSalaryReport, param);
}
2024-09-13 14:27:11 +08:00
/**
* 查询薪资汇总报表的发放公司下拉框
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/ffgsList")
@Produces(MediaType.APPLICATION_JSON)
public String salaryReportFfgsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, List<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::salaryReportFfgsList, param);
}
2024-08-28 17:42:16 +08:00
/**
* 薪酬统计报表 合计行
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/sum")
@Produces(MediaType.APPLICATION_JSON)
public String salaryReportSum(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::salaryReportSum, param);
}
/**
* 删除报表数据
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/batchDelete")
@Produces(MediaType.APPLICATION_JSON)
public String deleteSalaryReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<Long>, String>(user).run(getLySalaryWrapper(user)::deleteSalaryReport, param.getIds());
}
/**
* 导出报表数据
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/salaryReport/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response exportSalaryReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
try {
User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getLySalaryWrapper(user).exportSalaryReport(param);
String time = LocalDate.now().toString();
String fileName = param.getSalaryMonth() +"薪酬统计报表" + "-" + 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();
} catch (Exception e) {
log.error("薪酬统计报表导出异常", e);
throw e;
}
}
//---------------------------------------------------------薪酬汇总报表end--------------------------------------------
2024-10-21 18:02:04 +08:00
//---------------------------------------------------------社保汇总报表start-------------------------------------
2024-08-28 17:42:16 +08:00
/**
2024-10-21 18:02:04 +08:00
* 生成社保汇总报表
2024-08-28 17:42:16 +08:00
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/SIReport/generate")
@Produces(MediaType.APPLICATION_JSON)
public String generateSIReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, String>(user).run(getLySalaryWrapper(user)::generateSIReport, param);
}
/**
2024-10-21 18:02:04 +08:00
* 查询社保汇总报表
2024-08-28 17:42:16 +08:00
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/SIReport/list")
@Produces(MediaType.APPLICATION_JSON)
public String listSIReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::listSIReport, param);
}
2024-09-13 14:27:11 +08:00
/**
* 查询薪资汇总报表的发放公司下拉框
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/SIReport/gmgsList")
@Produces(MediaType.APPLICATION_JSON)
public String sIReportGmgsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, List<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::sIReportGmgsList, param);
}
2024-08-28 17:42:16 +08:00
/**
2024-10-21 18:02:04 +08:00
* 社保汇总报表 合计行
2024-08-28 17:42:16 +08:00
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/SIReport/sum")
@Produces(MediaType.APPLICATION_JSON)
public String sIReportSum(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::sIReportSum, param);
}
/**
* 删除报表数据
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/SIReport/batchDelete")
@Produces(MediaType.APPLICATION_JSON)
public String deleteSIReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<Long>, String>(user).run(getLySalaryWrapper(user)::deleteSIReport, param.getIds());
}
/**
* 导出报表数据
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/socialReport/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response exportSIReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
try {
User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getLySalaryWrapper(user).exportSIReport(param);
String time = LocalDate.now().toString();
String fileName = param.getSalaryMonth() +"社保公积金汇总报表" + "-" + 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();
} catch (Exception e) {
log.error("社保公积金汇总报表导出异常", e);
throw e;
}
}
2024-10-21 18:02:04 +08:00
//---------------------------------------------------------社保汇总报表end---------------------------------------
//---------------------------------------------------------公积金汇总报表start-------------------------------------
/**
* 生成公积金汇总报表
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/FundReport/generate")
@Produces(MediaType.APPLICATION_JSON)
public String generateFundReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, String>(user).run(getLySalaryWrapper(user)::generateFundReport, param);
}
/**
* 查询公积金汇总报表
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/FundReport/list")
@Produces(MediaType.APPLICATION_JSON)
public String listFundReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::listFundReport, param);
}
/**
* 查询公积金汇总报表的发放公司下拉框
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/FundReport/gmgsList")
@Produces(MediaType.APPLICATION_JSON)
public String fundReportGmgsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, List<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::fundReportGmgsList, param);
}
/**
* 公积金汇总报表 合计行
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/FundReport/sum")
@Produces(MediaType.APPLICATION_JSON)
public String fundReportSum(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::fundReportSum, param);
}
/**
* 删除公积金报表数据
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/FundReport/batchDelete")
@Produces(MediaType.APPLICATION_JSON)
public String deleteFundReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<Long>, String>(user).run(getLySalaryWrapper(user)::deleteFundReport, param.getIds());
}
/**
* 导出公积金报表数据
*
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/FundReport/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response exportFundReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) {
try {
User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getLySalaryWrapper(user).exportFundReport(param);
String time = LocalDate.now().toString();
String fileName = param.getSalaryMonth() +"公积金汇总报表" + "-" + 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();
} catch (Exception e) {
log.error("公积金汇总报表导出异常", e);
throw e;
}
}
//---------------------------------------------------------公积金汇总报表end---------------------------------------
2024-08-28 17:42:16 +08:00
//---------------------------------------------------------领悦生成凭证start------------------------------------------
@POST
@Path("/PZ/genAndPreveiw")
@Produces(MediaType.APPLICATION_JSON)
public String genAndPreveiwPZ(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyPZGenParam param) {
User user = HrmUserVarify.getUser(request, response);
2024-08-30 17:44:26 +08:00
return new ResponseResult<LyPZGenParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::genPZ, param);
2024-08-28 17:42:16 +08:00
}
2024-09-04 16:15:01 +08:00
// 推送UC并本地保存
@POST
@Path("/PZ/pushUCAndSave")
@Produces(MediaType.APPLICATION_JSON)
public String pushUCAndSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyVoucherPushParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LyVoucherPushParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::pushUCAndSave, param);
}
/**
* 辅助核算浏览框
* @param request
* @param response
* @return
*/
@POST
@Path("/PZ/fzhsBrowserList")
@Produces(MediaType.APPLICATION_JSON)
public String fzhsBrowserList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyFzhslxParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LyFzhslxParam, PageInfo<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::fzhsBrowserList, queryParam);
}
/**
* 本地历史凭证列表
* @param request
* @param response
* @return
*/
@POST
@Path("/PZ/historyVoucherList")
@Produces(MediaType.APPLICATION_JSON)
public String historyVoucherList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyVoucherQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LyVoucherQueryParam, PageInfo<LyVoucherPO>>(user).run(getLySalaryWrapper(user)::historyVoucherList, param);
}
/**
* 本地历史凭证列表
* @param request
* @param response
* @return
*/
@POST
@Path("/PZ/historyVoucherDetailList")
@Produces(MediaType.APPLICATION_JSON)
public String historyVoucherDetailList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyVoucherQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
2024-09-05 09:05:57 +08:00
return new ResponseResult<Long, Map<String, Object>>(user).run(getLySalaryWrapper(user)::historyVoucherDetailList, param.getId());
2024-09-04 16:15:01 +08:00
}
2024-09-06 15:36:20 +08:00
/**
* 删除历史凭证
* @param request
* @param response
* @return
*/
@POST
@Path("/PZ/deleteHistoryVoucher")
@Produces(MediaType.APPLICATION_JSON)
public String deleteHistoryVoucher(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyVoucherQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<Long, Map<String, Object>>(user).run(getLySalaryWrapper(user)::deleteHistoryVoucher, param.getId());
}
2024-08-28 17:42:16 +08:00
//---------------------------------------------------------领悦生成凭证end--------------------------------------------
}