package com.engine.salary.web;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.deductionamount.param.DeductionAmountAddParam;
import com.engine.salary.entity.deductionamount.param.DeductionAmountOnlineQueryParam;
import com.engine.salary.util.ResponseResult;
import com.engine.salary.wrapper.DeductionAmountWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
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;
/**
* 年收入不足6万元的纳税人暂不预扣预缴税款扣除名单
*
Copyright: Copyright (c) 2023
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
@Slf4j
public class DeductionAmountController {
private DeductionAmountWrapper getDeductionAmountWrapper(User user) {
return ServiceUtil.getService(DeductionAmountWrapper.class, user);
}
@POST
@Path("/add")
@Produces(MediaType.APPLICATION_JSON)
public String add(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeductionAmountAddParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult(user).run(getDeductionAmountWrapper(user)::add, param);
}
@POST
@Path("/query")
@Produces(MediaType.APPLICATION_JSON)
public String queryPreDeduct(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeductionAmountOnlineQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult(user).run(getDeductionAmountWrapper(user)::query, queryParam);
}
// @POST
// @Path("/confirmPreDeduct")
// @Produces(MediaType.APPLICATION_JSON)
// public String queryPreDeduct(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeductionAmountConfirmParam param) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult(user).run(getDeductionAmountWrapper(user)::confirm, param);
// }
// /**
// * 人员报送-个税扣缴义务人列表
// *
// * @param param 查询条件
// * @return
// */
// @POST
// @Path("/taxAgentDeclareList")
// @Produces(MediaType.APPLICATION_JSON)
// public String taxAgentDeclareList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentDeclareListQueryParam param) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult>(user).run(getEmployeeDeclareWrapper(user)::taxAgentDeclareList, param);
// }
//
// /**
// * 人员报送-全部人员列表
// *
// * @param queryParam 查询条件
// * @return
// */
// @POST
// @Path("/list")
// @Produces(MediaType.APPLICATION_JSON)
// public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeDeclareListQueryParam queryParam) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult>(user).run(getEmployeeDeclareWrapper(user)::list, queryParam);
// }
//
// /**
// * 人员报送-本月新增人员列表
// *
// * @param queryParam 查询条件
// * @return
// */
// @POST
// @Path("/list4Add")
// @Produces(MediaType.APPLICATION_JSON)
// public String list4Add(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeDeclareAddListQueryParam queryParam) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult>(user).run(getEmployeeDeclareWrapper(user)::list4Add, queryParam);
// }
//
// /**
// * 人员报送-本月信息变动列表
// *
// * @param queryParam 查询条件
// * @return
// */
// @POST
// @Path("/list4Update")
// @Produces(MediaType.APPLICATION_JSON)
// public String list4Update(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeDeclareListQueryParam queryParam) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult>(user).run(getEmployeeDeclareWrapper(user)::list4Update, queryParam);
// }
//
// /**
// * 人员报送-本月报送失败人员列表
// *
// * @param queryParam 查询条件
// * @return
// */
// @POST
// @Path("/list4Fail")
// @Produces(MediaType.APPLICATION_JSON)
// public String list4Fail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeDeclareFailListQueryParam queryParam) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult>(user).run(getEmployeeDeclareWrapper(user)::list4Fail, queryParam);
// }
//
// /**
// * 人员报送-获取新建或编辑的表单
// *
// * @param id 报送人员列表的主键id
// * @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(getEmployeeDeclareWrapper(user)::getForm, id);
// }
//
//// @GetMapping("/getBatchUpdateForm")
//// @ApiOperation("人员报送-获取批量编辑的表单")
//// @Produces(MediaType.APPLICATION_JSON)
//// public WeaResult getBatchUpdateForm() {
//// WeaForm weaForm = employeeDeclareWrapper.getBatchUpdateForm();
//// return WeaResult.success(weaForm);
//// }
////
//// @GetMapping("/getSearchCondition")
//// @ApiOperation("人员报送-获取高级搜索条件")
//// @Produces(MediaType.APPLICATION_JSON)
//// public WeaResult getSearchCondition() {
//// WeaSearchCondition searchCondition = employeeDeclareWrapper.getSearchCondition();
//// return WeaResult.success(searchCondition);
//// }
//
// /**
// * 人员报送-新增人员/编辑人员保存
// *
// * @param saveParam 保存参数
// * @return
// */
// @POST
// @Path("/save")
// @Produces(MediaType.APPLICATION_JSON)
// public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeDeclareSaveParam saveParam) {
// User user = HrmUserVarify.getUser(request, response);
// return new ResponseResult>(user).run(getEmployeeDeclareWrapper(user)::save, saveParam);
// }
//
//// /**
//// * 人员报送-批量编辑
//// *
//// * @param batchUpdateParam 批量编辑参数
//// * @return
//// */
//// @Path("/batchUpdate")
//// @ApiOperation("人员报送-批量编辑")
//// @Produces(MediaType.APPLICATION_JSON)
//// public WeaResult