package com.engine.salary.report.web;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam;
import com.engine.salary.report.entity.param.SalaryStatisticsReportQueryParam;
import com.engine.salary.report.entity.param.SalaryStatisticsReportSaveParam;
import com.engine.salary.report.entity.param.SalaryStatisticsSearchConditionSaveParam;
import com.engine.salary.report.wrapper.SalaryStatisticsReportWrapper;
import com.engine.salary.util.ResponseResult;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
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;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 薪酬统计报表
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public class SalaryStatisticsReportController {
private SalaryStatisticsReportWrapper getSalaryStatisticsReportWrapper(User user) {
return ServiceUtil.getService(SalaryStatisticsReportWrapper.class, user);
}
/**
* 薪酬统计报表列表
*
* @return
*/
@POST
@Path("/list")
@Produces(MediaType.APPLICATION_JSON)
public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsReportQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult>>(user).run(getSalaryStatisticsReportWrapper(user)::list, queryParam);
}
/**
* 获取薪酬统计报表表单
*
* @return
*/
@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);
return new ResponseResult>(user).run(getSalaryStatisticsReportWrapper(user)::getFrom, id);
}
/**
* 保存薪酬统计报表
*
* @param param
* @return
*/
@POST
@Path("/save")
@Produces(MediaType.APPLICATION_JSON)
public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsReportSaveParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult(user).run(getSalaryStatisticsReportWrapper(user)::save, param);
}
/**
* 删除薪酬统计报表
*
* @param ids
* @return
*/
@POST
@Path("/delete")
@Produces(MediaType.APPLICATION_JSON)
public String delete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection ids) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult, Map>(user).run(getSalaryStatisticsReportWrapper(user)::delete, ids);
}
/**
* 获取薪酬统计报表查询条件
*
* @param request
* @param response
* @param id
* @return
*/
@GET
@Path("/getSearchCondition")
@Produces(MediaType.APPLICATION_JSON)
public String getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult>(user).run(getSalaryStatisticsReportWrapper(user)::getSearchCondition, id);
}
/**
* 保存薪酬统计报表查询条件
*
* @param param
* @return
*/
@POST
@Path("/saveSearchCondition")
@Produces(MediaType.APPLICATION_JSON)
public String saveSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsSearchConditionSaveParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult(user).run(getSalaryStatisticsReportWrapper(user)::saveSearchCondition, param);
}
/**
* 获取薪酬统计报表数据
*
* @param param
* @return
*/
@POST
@Path("/getData")
@Produces(MediaType.APPLICATION_JSON)
public String getData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsReportDataQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult>(user).run(getSalaryStatisticsReportWrapper(user)::getData, param);
}
// /**
// * 导出报表数据
// *
// * @param param
// * @return
// */
// @PostMapping("/exportData")
// @ApiOperation("导出报表数据")
// @WeaPermission(publicPermission = true)
// public WeaResult