easy Excel

导出实体类

@Data
@ColumnWidth(20)//表头宽度
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)//表头样式
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)//内容样式
@Service(value = "ReasonInfoExport")
public class InfoExport extends SuperModel
{
 
  @ApiModelProperty(value = "名称")
  @ExcelProperty("名称")
  private String Name;

controll

@ApiOperation(value = "导出",notes = "export data")
    @GetMapping({"/export"})
    public void exportAllEntity(EnforceReasonInfoParam param,
                                @RequestParam(value = "cols", required = false) List<String> cols,
                                @RequestParam(value = "ids", required = false) List<String> ids,
                                HttpServletResponse response) {
        QueryWrapper<EnforceReasonInfo> queryWrapper = new QueryWrapper<>();
        if (Objects.nonNull(param)) {
            queryWrapper = createQuery(param);
        }
        if (Objects.nonNull(ids) && !ids.isEmpty()) {
            queryWrapper.in(GridCaseHisParam.ID, ids);
        }
        List<EnforceReasonInfo> resultList = enforceReasonInfoService.list(queryWrapper);

        List<EnforceReasonInfoExport> exports = new ArrayList<>();
        for (EnforceReasonInfo record : resultList) {
            EnforceReasonInfoExport enforceReasonInfoExport = new EnforceReasonInfoExport();
         
            if (StringUtils.isNotEmpty(record.getPlotRatioFlag())) {
                String dictNameByKey = sysDictDataService.getDictNameByKey(DictConstants.YES_NO,record.getPlotRatioFlag());
                enforceReasonInfoExport.setPlotRatioFlag(dictNameByKey);
            }
            if (record.getNumFlag()!= null) {
                String dictNameByKey = sysDictDataService.getDictNameByKey(DictConstants.YES_NO,record.getNumFlag().toString());
                enforceReasonInfoExport.setNumFlag(dictNameByKey);
            }
            if (StringUtils.isNotEmpty(record.getCaseReasonChooseFlag())) {
                String dictNameByKey = sysDictDataService.getDictNameByKey(DictConstants.YES_NO,record.getCaseReasonChooseFlag());
                enforceReasonInfoExport.setCaseReasonChooseFlag(dictNameByKey);
            }
            exports.add(enforceReasonInfoExport);
        }
        try {
            this.excelService.export("明细-EXCEL", exports, EnforceReasonInfoExport.class, response, cols);
        } catch (IOException var11) {
            log.error("Export Error ", var11.fillInStackTrace());
            throw new ApiException(ExcelEnum.EXPORT_ERROR.transform());
        }
    }

导入实体类 及response

@Data
public class ReasonInfoImport {

    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    @ExcelProperty("名称")
    @NotNull(message = "名称不能为空")
    private String Name;
//response
@Data
public class ReasonInfoResponse implements java.io.Serializable {
  private static final long serialVersionUID = 6826701812573993439L;
  private int successTotal;
  private int errorTotal;
  private List<ColsDto> beans;
  private List<ImportError<InfoImport>> errors;
  private String fileName;
}

controller
@ApiOperation(value="案由类型 导入Excel",notes = "根据Excel导入数据")
    @PostMapping("/upload")
    public BaseResponse<ReasonInfoResponse> exportShift(@RequestParam MultipartFile file){
        BaseResponse<ReasonInfoResponse> baseResponse = new BaseResponse<>();
        ReasonInfoResponse reasonInfoResponse = new ReasonInfoResponse();
        if (file.isEmpty()) {
            throw new ApiException(ExcelEnum.NO_EXPORT_FILE.transform());
        }
        String filePath = excelService.importExcel(file);
        TongExcelListener<ReasonInfoImport> excelListener =
                new TongExcelListener(reasonInfoImportService,ReasonInfoImport.class);
        EasyExcel.read(filePath,ReasonInfoImport.class,excelListener).sheet().doRead();
        List<ImportError<ReasonInfoImport>> errorList = excelListener.getErrorList();
        reasonInfoResponse.setErrors(errorList.size() > 19 ? errorList.subList(0, 19) : errorList);
        reasonInfoResponse.setErrorTotal(errorList.size());
        reasonInfoResponse.setSuccessTotal(excelListener.getSuccessList().size());
        reasonInfoResponse.setBeans(ExcelDtoHelper.getCols(new ReasonInfoImport()));
        baseResponse.setData(reasonInfoResponse);
        return baseResponse;
    }

导入service

public ImportCheckResult<ReasonInfoImport> doImportData(
            Map<String, ReasonInfoImport> insertMap, boolean insertTrigger) {
        List<ReasonInfoImport> successData = new ArrayList<>();
        List<ImportError<ReasonInfoImport>> errorData = new ArrayList<>();
        List<EnforceReasonInfo> insertData = new ArrayList<>();
        for (String dataId : insertMap.keySet()) {
            ReasonInfoImport reasonInfoImport = insertMap.get(dataId);
            StringBuilder checkResult = checkImportData(reasonInfoImport);
            if (StringUtils.isNotEmpty(checkResult)) {
                ImportError importError =
                        ImportError.builder()
                                .errorMsg(checkResult.toString())
                                .lineNumber(Integer.parseInt(dataId))
                                .data(reasonInfoImport)
                                .build();
                errorData.add(importError);
            } else {
                EnforceReasonInfo converter = this.converter(reasonInfoImport);
                if (StringUtils.isNotEmpty(result)) {
                    ImportError importError = ImportError.builder().errorMsg(result.toString()).lineNumber(Integer.parseInt(dataId)).data(reasonInfoImport).build();
                    errorData.add(importError);
                } else {
                    successData.add(reasonInfoImport);
                    insertData.add(converter);
                }
            }
        }
        if (!insertData.isEmpty() && insertTrigger && result.toString().equals("")) {
            reasonInfoService.saveBatch(insertData);
        }
        return new ImportCheckResult<>(successData, errorData);
    }

    private EnforceReasonInfo converter(ReasonInfoImport reasonInfoImport) {
        EnforceReasonInfo enforceReasonInfo = BeanHelper.beanToBean(reasonInfoImport, EnforceReasonInfo.class);
        String userId =
                Optional.ofNullable((String) RequestUtil.getRequest().getAttribute(ApiConstants.CLAIM_KEY))
                        .orElse("test");
        SysUser user = sysUserService.getById(userId);
        String orgid = user.getOrgId();
        SysOrg org = sysOrgService.getById(orgid);
        enforceReasonInfo.setCreateBy(userId);
        enforceReasonInfo.setUpdateBy(userId);
        enforceReasonInfo.setCreateDate(LocalDateTime.now());
        enforceReasonInfo.setUpdateDate(LocalDateTime.now());
        enforceReasonInfo.setStatus(BizConstants.STATUS_ENABLE);
        enforceReasonInfo.setCaseReasonCode(enforceReasonInfo.getCaseReasonCode());
        enforceReasonInfo.setCaseReasonName(enforceReasonInfo.getCaseReasonName());
        QueryWrapper<EnforceReasonType> wrapper = new QueryWrapper<>();
        wrapper.eq(EnforceReasonType.CASE_REASON_TYPE_NAME, enforceReasonInfo.getCaseReasonTypeId());
        EnforceReasonType one = reasonTypeService.getOne(wrapper);
        if (Objects.nonNull(one)) {
            enforceReasonInfo.setCaseReasonTypeId(one.getId());
            enforceReasonInfo.setAllParentIds("0," + one.getId());
        } else {
            result.append("信息不存在;");
        }

      
        return enforceReasonInfo;
    }

    private StringBuilder checkImportData(ReasonInfoImport data) {
        result = result.delete(0, result.length());
        return result;
    }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值