package com.epmet.controller; import com.epmet.commons.tools.annotation.MaskResponse; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.PovertyManageDTO; import com.epmet.dto.form.povertyManage.PovertyManageFormDto; import com.epmet.excel.PovertyManageExcel; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.remote.EpmetUserRemoteService; import com.epmet.service.PovertyManageService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; /** * @author generator generator@elink-cn.com * @since v1.0.0 2023-06-16 */ @Slf4j @RestController @RequestMapping("povertyManage") public class PovertyManageController { @Autowired private PovertyManageService povertyManageService; @Autowired private EpmetAdminOpenFeignClient adminOpenFeignClient; @Autowired private EpmetUserRemoteService userRemoteService; @RequestMapping("page") @MaskResponse(fieldNames = {"mobile", "idCard"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD}) public Result> page(@RequestParam Map params) { PageData page = povertyManageService.page(params); if (null != page && page.getList().size() > 0) { buildData(page.getList()); } return new Result>().ok(page); } @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET}) public Result get(@PathVariable("id") String id) { PovertyManageDTO data = povertyManageService.get(id); return new Result().ok(data); } @NoRepeatSubmit @PostMapping("save") public Result save(@RequestBody PovertyManageFormDto dto) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); Boolean flag = povertyManageService.isExist(dto.getResiUserId()); if (!flag) { povertyManageService.save(dto); } else { return new Result().error(8000, "该人员已经是贫困户,请勿重复添加!"); } return new Result(); } @NoRepeatSubmit @PostMapping("update") public Result update(@RequestBody PovertyManageFormDto dto) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); povertyManageService.update(dto); return new Result(); } @PostMapping("delete") public Result delete(@RequestBody String[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); povertyManageService.delete(ids); return new Result(); } @RequestMapping(value = "/exportExcel") public void exportExcelByEasyExcel(@RequestBody PovertyManageFormDto formDTO, HttpServletResponse response) throws Exception { formDTO.setPageNo(NumConstant.ONE); formDTO.setPageSize(NumConstant.TEN_THOUSAND); // AgencyInfoCache agency = CustomerOrgRedis.getAgencyInfo(userRemoteService.getLoginUserDetails().getAgencyId()); // String agencyName = agency.getOrganizationName(); PageData data = povertyManageService.search(formDTO); formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); if (null != data && data.getList().size() > 0) { buildData(data.getList()); // for (PovertyManageDTO dto : data.getList()) { // dto.setAgencyId(agencyName); // dto.setGridId(CustomerOrgRedis.getGridInfo(dto.getGridId()).getGridName()); // } } ExcelUtils.exportExcelToTarget(response, "贫困人员名单.xls", data.getList(), PovertyManageExcel.class); } @PostMapping("search") @MaskResponse(fieldNames = {"mobile", "idCard"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD}) public Result> search(@RequestBody PovertyManageFormDto formDto) { PageData page = povertyManageService.search(formDto); if (null != page && page.getList().size() > 0) { buildData(page.getList()); } return new Result>().ok(page); } private void buildData(List dtoList) { Result> dictMapRes = adminOpenFeignClient.dictMap(DictTypeEnum.POVERTY_TYPE.getCode()); if (null != dictMapRes.getData() && dictMapRes.getData().size() > 0) { Map dictMap = dictMapRes.getData(); for (PovertyManageDTO dto : dtoList) { if (null != dto.getPovertyType()) { dto.setPovertyType(dictMap.get(dto.getPovertyType())); } } } } }