package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.taxagent.dto.*; import com.engine.salary.entity.taxagent.param.*; import com.engine.salary.entity.taxagent.po.TaxAgentBasePO; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.TaxAgentBaseWrapper; import com.engine.salary.wrapper.TaxAgentSubAdminWrapper; import com.engine.salary.wrapper.TaxAgentWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; 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 java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; public class TaxAgentController { private TaxAgentService getService(User user) { return (TaxAgentService) ServiceUtil.getService(TaxAgentServiceImpl.class, user); } private TaxAgentBaseWrapper getTaxAgentBaseWrapper(User user) { return ServiceUtil.getService(TaxAgentBaseWrapper.class, user); } private TaxAgentSubAdminWrapper getTaxAgentSubAdminWrapper(User user) { return ServiceUtil.getService(TaxAgentSubAdminWrapper.class, user); } private TaxAgentWrapper getTaxAgentWrapper(User user) { return ServiceUtil.getService(TaxAgentWrapper.class, user); } /** * 是否是薪酬模块总管理员 */ @GET @Path("/isChief") @Produces(MediaType.APPLICATION_JSON) public String isChief(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::isChief, (long) user.getUID()); } /** * 权限信息 * @param request * @param response * @return */ @GET @Path("/permission") @Produces(MediaType.APPLICATION_JSON) public String permission(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentWrapper(user)::permission, (long) user.getUID()); } /* ****** 基础信息 start ***********************************************************************************************/ /** * 获取个税扣缴义务人基础信息表单 * * @return */ @GET @Path("/base/getForm") @Produces(MediaType.APPLICATION_JSON) public String getBaseFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentBaseWrapper(user)::getFrom); } /** * 保存个税扣缴义务人基础信息 * * @param saveBaseParam * @return */ @POST @Path("/base/save") @Produces(MediaType.APPLICATION_JSON) public String saveBase(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSaveBaseParam saveBaseParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentBaseWrapper(user)::save, saveBaseParam); } /* ******* 基础信息 end ***********************************************************************************************/ /* ******* 个税扣缴义务人 start ***********************************************************************************************/ /** * 个税扣缴义务人列表 * * @param queryParam * @return */ @POST @Path("/list") @Produces(MediaType.APPLICATION_JSON) public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentWrapper(user)::list, queryParam); } //查询个税扣缴义务人下面的代缴机构") @GET @Path("/paymentAgency/list") @Produces(MediaType.APPLICATION_JSON) public String paymentAgencyList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); TaxAgentQueryParam queryParam = new TaxAgentQueryParam(); queryParam.setIds(Collections.singleton(id)); return new ResponseResult>>(user).run(getTaxAgentWrapper(user)::paymentAgencyList, queryParam); } //保存个税扣缴义务人下的代缴机构") @POST @Path("/paymentAgency/save") @Produces(MediaType.APPLICATION_JSON) public String paymentAgencySave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::paymentAgencySave, saveParam); } /** * 获取个税扣缴义务人表单 * * @param id * @return */ @GET @Path("/getForm") @Produces(MediaType.APPLICATION_JSON) public String getFrom(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::getFrom, id); } /** * 新建个税扣缴义务人 * * @param saveParam * @return */ @POST @Path("/save") @Produces(MediaType.APPLICATION_JSON) public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::save, saveParam); } /** * 编辑个税扣缴义务人 * * @param saveParam * @return */ @POST @Path("/update") @Produces(MediaType.APPLICATION_JSON) public String update(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::update, saveParam); } /** * 更换管理员校验 * * @param checkParam * @return */ @POST @Path("/adminChangeCheck") @Produces(MediaType.APPLICATION_JSON) public String adminChangeCheck(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentAdminChangeCheckParam checkParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::adminChangeCheck, checkParam); } /** * 删除个税扣缴义务人 * * @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, String>(user).run(getTaxAgentWrapper(user)::delete, ids); } /** * 人员范围列表 * * @param queryParam * @return */ @POST @Path("/range/listInclude") @Produces(MediaType.APPLICATION_JSON) public String rangeListInclude(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentRangeQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentWrapper(user)::listRangeInclude, queryParam); } /** * 分管理员管理范围排除列表 * * @param queryParam * @return */ @POST @Path("/range/listExclude") @Produces(MediaType.APPLICATION_JSON) public String rangeListExclude(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentRangeQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentWrapper(user)::listRangeExclude, queryParam); } //获取人员范围表单") @POST @Path("/range/getForm") @Produces(MediaType.APPLICATION_JSON) public String getRangeFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::getRangeFrom); } //保存人员范围 @POST @Path("/range/save") @Produces(MediaType.APPLICATION_JSON) public String saveRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentRangeSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentWrapper(user)::saveRange, saveParam); } //删除人员范围 @POST @Path("/range/delete") @Produces(MediaType.APPLICATION_JSON) public String deleteRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection ids) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult, String>(user).run(getTaxAgentWrapper(user)::deleteRange, ids); } /** * 个税扣缴义务人下拉列表 * * @return */ @POST @Path("/selectList") @Produces(MediaType.APPLICATION_JSON) public String selectList(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult, List>>(user).run(getTaxAgentWrapper(user)::selectList); } /* ******* 个税扣缴义务人 end ***********************************************************************************************/ /* ******* 分管理员 start ***********************************************************************************************/ /** * 分管理员列表 * * @param queryParam * @return */ @POST @Path("/subAdmin/list") @Produces(MediaType.APPLICATION_JSON) public String subAdminList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSubAdminQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentSubAdminWrapper(user)::list, queryParam); } /** * 获取分管理员基础设置表单 * * @return */ @POST @Path("/subAdmin/getBaseForm") @Produces(MediaType.APPLICATION_JSON) public String getSubAdminBaseFrom(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSubAdminBaseFormParam baseFormParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentSubAdminWrapper(user)::getBaseFrom, baseFormParam); } /** * 分管理员基础设置保存 * * @param saveParam * @return */ @POST @Path("/subAdmin/saveBase") @Produces(MediaType.APPLICATION_JSON) public String saveSubAdminBase(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSubAdminBaseSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentSubAdminWrapper(user)::saveBase, saveParam); } /** * 删除个税扣缴义务人分管理员 * * @param ids * @return */ @POST @Path("/subAdmin/delete") @Produces(MediaType.APPLICATION_JSON) public String deleteSubAdmin(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection ids) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult, String>(user).run(getTaxAgentSubAdminWrapper(user)::delete, ids); } //分管理员的管理范围列表 @POST @Path("/subAdmin/range/listInclude") @Produces(MediaType.APPLICATION_JSON) public String subAdminRangeListInclude(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSubAdminRangeQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentSubAdminWrapper(user)::listRangeInclude, queryParam); } //分管理员的管理范围排除列表 @POST @Path("/subAdmin/range/listExclude") @Produces(MediaType.APPLICATION_JSON) public String subAdminRangeListExclude(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSubAdminRangeQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxAgentSubAdminWrapper(user)::listRangeExclude, queryParam); } //获取分管理员的管理范围表单 @POST @Path("/subAdmin/range/getForm") @Produces(MediaType.APPLICATION_JSON) public String getSubAdminRangeFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentSubAdminWrapper(user)::getRangeFrom); } //保存分管理员的管理范围 @POST @Path("/subAdmin/range/save") @Produces(MediaType.APPLICATION_JSON) public String saveSubAdminRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentSubAdminRangeSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxAgentSubAdminWrapper(user)::saveRange, saveParam); } //删除分管理员的管理范围 @POST @Path("/subAdmin/range/delete") @Produces(MediaType.APPLICATION_JSON) public String deleteSubAdminRange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection ids) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult, String>(user).run(getTaxAgentSubAdminWrapper(user)::deleteRange, ids); } /******** 分管理员 end ***********************************************************************************************/ // //------------------------------------------------------------------------------------------ // // //个税扣缴义务人列表 // @GET // @Path("/list") // @Produces(MediaType.APPLICATION_JSON) // public String list(@Context HttpServletRequest request, @Context HttpServletResponse response) { // User user = HrmUserVarify.getUser(request, response); // return new ResponseResult, Map>(user).run(getService(user)::list, ParamUtil.request2Map(request)); // } // // //获取个税扣缴义务人表单 // @GET // @Path("/getForm") // @Produces(MediaType.APPLICATION_JSON) // public String getForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { // User user = HrmUserVarify.getUser(request, response); // return new ResponseResult, Map>(user).run(getService(user)::getForm, ParamUtil.request2Map(request)); // } // // //新建个税扣缴义务人 // @POST // @Path("/save") // @Produces(MediaType.APPLICATION_JSON) // public String getFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { // User user = HrmUserVarify.getUser(request, response); // return new ResponseResult, Map>(user).run(getService(user)::save, ParamUtil.request2Map(request)); // } // // /** // * 编辑个税扣缴义务人 // */ // @POST // @Path("/update") // @Produces(MediaType.APPLICATION_JSON) // public String update(@Context HttpServletRequest request, @Context HttpServletResponse response) { // User user = HrmUserVarify.getUser(request, response); // return new ResponseResult, Map>(user).run(getService(user)::update, ParamUtil.request2Map(request)); // } }