專案中匯出功能實現
阿新 • • 發佈:2019-01-09
js頁面實現:
var taskModelCode = 'configByOrgTypeExport'; $scope.export = function($event) { $scope.evt = $event; modalService.exportFileTemplateSelectPage(config.httpUrl+"osp/dispatcher/exportFileTemplate/selectPage", $scope.evt, taskModelCode, exportOperation); } function exportOperation(resObj) { var condition = $scope.config.initCondition($scope.config.condition); //把空的轉為 undefined condition = condition || {}; condition.scope = 1; condition.pageSize = 10; for (var v in condition) { if (condition[v] == '') { condition[v] = undefined; } } var params = { execHandle: "httpExportTask", exportFileName: resObj.templateName, paramJson: JSON.stringify({templateCode:resObj.templateCode,condition:condition}), taskModelCode: taskModelCode, exportCol:JSON.stringify($scope.config.getOutPutData()) }; var path = config.httpUrl + "osp/dispatcher/exportFileTask/createSelective"; ExcelExportService.exportExcelFunc(path, params); exportAnimate($scope.evt); }
後臺實現export介面
package com.pjbest.tps.biReport.exporttask; import com.alibaba.fastjson.JSON; import com.pjbest.freight.config.service.ServiceProductQueryRequest; import com.pjbest.freight.config.service.ServiceProductQueryResponse; import com.pjbest.freight.config.service.ServiceProductTypeService; import com.pjbest.freight.config.service.ValueAddedQueryRequest; import com.pjbest.freight.config.service.ValueAddedQueryResponse; import com.pjbest.freight.config.service.ValueAddedTypeService; import com.pjbest.freight.config.service.ValueAddedTypeServiceHelper; import com.pjbest.osp.cfg.common.service.BasePageModel; import com.pjbest.osp.cfg.orgduty.service.OrgDutyManageService; import com.pjbest.osp.cfg.orgduty.service.OrgDutyPageModel; import com.pjbest.osp.cfg.orgduty.service.OrgDutyQueryModel; import com.pjbest.tps.cfg.orgduty.vo.OrgDutyVO; import com.pjbest.tps.common.util.OspServiceUtil; import com.pjbest.tps.spmainframe.export.Export; import com.pjbest.tps.spmainframe.export.ExportRespone; import com.vip.tps.base.service.SbCodeDefModel; import com.vip.tps.base.service.SbCodeTypeService; import com.vip.venus.core.beans.mapping.BeanMapper; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *@program: pjbest-tps-v2 *@description: 分類機構匯出 *@author: chaochao03.gao *@create: 2018-10-14 13:32 */ public class ConfigByOrgTypeExportTask implements Export { @Autowired private BeanMapper beanMapper; @Override public ExportRespone getExportData(Map params) throws Exception { OrgDutyManageService orgDutyService = OspServiceUtil.getOrgDutyManageService(); ExportRespone exportRespone = new ExportRespone(); BasePageModel basePageModel = new BasePageModel(); basePageModel.setPageNo(Integer.valueOf(params.get("pageNo").toString())); basePageModel.setPageSize(Integer.valueOf(params.get("pageSize").toString())); OrgDutyPageModel dutyPageModel = new OrgDutyPageModel(); OrgDutyQueryModel queryModel = JSON.parseObject(JSON.toJSONString(params), OrgDutyQueryModel.class); dutyPageModel.setCondition(queryModel); dutyPageModel.setBasePageModel(basePageModel); OrgDutyPageModel orgDutyPageModel = orgDutyService.selectPage(dutyPageModel); List<OrgDutyVO> list = new ArrayList<>(); if(!orgDutyPageModel.getList().isEmpty()){ //查詢所有業務型別 SbCodeTypeService sbCodeTypeService = OspServiceUtil.getSbCodeTypeService(); List<SbCodeDefModel> businessFlags = sbCodeTypeService.findCodeDefList("BUSSINESS_FLAG"); //查詢所有服務產品 ServiceProductTypeService serviceProductTypeService = OspServiceUtil.getServiceProductTypeService(); ServiceProductQueryRequest request = new ServiceProductQueryRequest(); List<ServiceProductQueryResponse> serviceProductQueryResponses = serviceProductTypeService.queryServiceProduct(request); //查詢所有增值服務 ValueAddedTypeService valueAddedTypeService = new ValueAddedTypeServiceHelper.ValueAddedTypeServiceClient(); ValueAddedQueryRequest valueAddedQueryRequest = new ValueAddedQueryRequest(); List<ValueAddedQueryResponse> valueAddedQueryResponses = valueAddedTypeService.queryValueAddeds(valueAddedQueryRequest); for(OrgDutyQueryModel model : orgDutyPageModel.getList()){ OrgDutyVO vo = beanMapper.map(model, OrgDutyVO.class); vo.setSbCodeDefModels(businessFlags); vo.setProductQueryResponses(serviceProductQueryResponses); vo.setValueAddedQueryResponses(valueAddedQueryResponses); list.add(vo); } } List<OrgDutyVO> vos = this.beanMapper.mapAsList(list, OrgDutyVO.class); exportRespone.setExportDatas(vos); return exportRespone; } @Override public int getCount(Map params) throws Exception { OrgDutyManageService orgDutyService = OspServiceUtil.getOrgDutyManageService(); BasePageModel basePageModel = new BasePageModel(); OrgDutyPageModel dutyPageModel = new OrgDutyPageModel(); if(params.get("pageNo") != null ){ basePageModel.setPageNo(Integer.valueOf(params.get("pageNo").toString())); }else{ basePageModel.setPageNo(1); } if(params.get("pageSize") != null){ basePageModel.setPageSize(Integer.valueOf(params.get("pageSize").toString())); } dutyPageModel.setBasePageModel(basePageModel); OrgDutyQueryModel orgDutyQueryModel = JSON.parseObject(JSON.toJSONString(params), OrgDutyQueryModel.class); if (orgDutyQueryModel == null) { orgDutyQueryModel = new OrgDutyQueryModel(); } dutyPageModel.setCondition(orgDutyQueryModel); OrgDutyPageModel orgDutyPageModel = orgDutyService.selectPage(dutyPageModel); return orgDutyPageModel.getBasePageModel().getTotalRecord(); } }
然後需要配置匯出路徑和名稱: