package com.engine.salary.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.sicategory.dto.ICategoryFormDTO; import com.engine.salary.entity.sicategory.param.UpdateStatusParam; import com.engine.salary.entity.sischeme.dto.InsuranceSchemeDTO; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.service.SICategoryService; import com.engine.salary.service.impl.SICategoryServiceImpl; 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.Map; import java.util.Objects; /** * @Author weaver_cl * @Description: 社保自定义福利控制器 * @Date 2022/3/9 * @Version V1.0 **/ public class SICategoryController { private SICategoryService getService (User user) { return ServiceUtil.getService(SICategoryServiceImpl.class,user); } /** * 福利表单 * @param request * @param response * @return */ @GET @Path("/customCategoryForm") @Produces(MediaType.APPLICATION_JSON) public String getForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); map.put("id",id); return new ResponseResult< Map, Map>(user).run(getService(user)::getForm, map); } /** * 查询自定义福利列表 */ @GET @Path("/customCategoryList") @Produces(MediaType.APPLICATION_JSON) public String listPage(@Context HttpServletRequest request, @Context HttpServletResponse response, @DefaultValue("") @QueryParam(value = "welfareTypeEnum") WelfareTypeEnum welfareTypeEnum) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); if (Objects.nonNull(welfareTypeEnum)){ InsuranceSchemeDTO insuranceSchemeDTO = InsuranceSchemeDTO.builder().welfareType(welfareTypeEnum).build(); Integer welfareType = insuranceSchemeDTO.getWelfareType().getValue(); map.put("welfareType",welfareType); } return new ResponseResult< Map, Map>(user).run(getService(user)::listPage, map); } /** * 新增 * @param request * @param response * @return */ @POST @Path("/createSICategory") @Produces(MediaType.APPLICATION_JSON) public String insert(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ICategoryFormDTO iCategoryFormDTO) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); map.put("iCategoryFormDTO",iCategoryFormDTO); return new ResponseResult< Map, Map>(user).run(getService(user)::insert, map); } /** * 编辑 * @param request * @param response * @param iCategoryFormDTO * @return */ @POST @Path("/updateCustomCategory") @Produces(MediaType.APPLICATION_JSON) public String update(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody ICategoryFormDTO iCategoryFormDTO) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); map.put("iCategoryFormDTO",iCategoryFormDTO); return new ResponseResult< Map, Map>(user).run(getService(user)::update, map); } /** * 该接口暂时没用,删除福利类型对档案和台账核算都有很大的影响,暂时还没考虑好怎么做 * 删除福利类型 * * @param request * @param response * @return */ @POST @Path("/deleteCustomCategory") @Produces(MediaType.APPLICATION_JSON) public String deleteSoftById(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); return null; //return ResponseResult.run(getService(user)::delete, map); } /** * 更新自定义福利的启用停用状态 * @param request * @param response * @param updateStatusParam * @return */ @POST @Path("/updateCustomCategoryStatus") @Produces(MediaType.APPLICATION_JSON) public String updateStatusById(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody UpdateStatusParam updateStatusParam) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); map.put("id",updateStatusParam.getId()); map.put("isUse",updateStatusParam.getIsUse()); return new ResponseResult< Map, Map>(user).run(getService(user)::updateStatusById, map); } }