1. 程式人生 > >專案中匯出功能實現

專案中匯出功能實現

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();
	}
}

然後需要配置匯出路徑和名稱: