瀏覽代碼

产品参数配置导出功能

zhang_qk 6 月之前
父節點
當前提交
11c211714d

+ 11 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfigDataparam/action/ProductListAction.java

@@ -2,6 +2,7 @@ package com.sundata.product.rwa.rwaCalcConfigDataparam.action;
 
 import com.sundata.common.annotation.SysLog;
 import com.sundata.common.base.BaseAction;
+import com.sundata.product.rwa.parameter.model.SovereignModel;
 import com.sundata.product.rwa.resultList.model.RuleListModel;
 import com.sundata.product.rwa.rwaCalcConfigDataparam.model.ProductListModel;
 import com.sundata.product.rwa.rwaCalcConfigDataparam.model.RwaCalcConfProductrulesModel;
@@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -91,5 +93,14 @@ public class ProductListAction extends BaseAction {
     public void  product_addone2 (HttpServletRequest request, HttpServletResponse response, @RequestBody RwaCalcConfProductrulesModel RwaCalcConfProductrulesModelDemo){
         sendData(response,productListService.product_addone2(RwaCalcConfProductrulesModelDemo));
     }
+    @RequestMapping("/exportExcelModel")
+    public void exportExcelModel (HttpServletRequest request,
+                                  HttpServletResponse response, @RequestParam String fileName,@RequestBody List<ProductListModel> ProductListModelDemo) throws IOException {
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("text/html; charset=UTF-8");
+        String fileNameModel=fileName+"Model";
 
+        // 更新数据前行
+        sendData(response, productListService.exportExcelModel(fileName,response,ProductListModelDemo,fileNameModel));
+    }
 }

+ 53 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfigDataparam/service/ProductListService.java

@@ -1,18 +1,32 @@
 package com.sundata.product.rwa.rwaCalcConfigDataparam.service;
 
+import com.sundata.admin.excelmanage.mapper.RptDefineMapper;
+import com.sundata.admin.excelmanage.model.RptDefineModel;
+import com.sundata.common.base.BaseMapper;
+import com.sundata.common.base.BaseService;
+import com.sundata.common.util.DBExecutor;
+import com.sundata.product.rwa.parameter.model.SovereignModel;
+import com.sundata.product.rwa.parameter.utils.FilesValueCheckUtils;
 import com.sundata.product.rwa.rwaCalcConfigDataparam.mapper.ProductListMapper;
 import com.sundata.product.rwa.rwaCalcConfigDataparam.model.ProductListModel;
 import com.sundata.product.rwa.rwaCalcConfigDataparam.model.RwaCalcConfOffbalanceprotyperuleModel;
 import com.sundata.product.rwa.rwaCalcConfigDataparam.model.RwaCalcConfProductrulesModel;
+import jakarta.servlet.http.HttpServletResponse;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.*;
 import java.util.List;
 
 @Service
-public class ProductListService {
+public class ProductListService extends BaseService<RptDefineModel> {
     @Autowired
     ProductListMapper productListMapper;
+    @Autowired
+    // private RptReportInfoMapper<RptReportInfoModel> rptReportInfoMapper;
+    private RptDefineMapper<RptDefineModel> rptDefineMapper;
 
     public List<ProductListModel> productlist (ProductListModel ProductListModelDemo){
       return   productListMapper.productlist(ProductListModelDemo);
@@ -69,4 +83,42 @@ public class ProductListService {
         return "新增成功";
     }
 
+    // 导出数据
+    public boolean exportExcelModel(String fileName, HttpServletResponse response, List<ProductListModel> ProductListModelDemo, String fileNameModel ) throws IOException {
+        RptDefineModel fileName1 = this.queryOne(fileName);
+        RptDefineModel fileNamemodel = this.queryOne(fileNameModel);
+        String filename = DBExecutor.doQuery("select RPTNAME from SYS_RPTDEFINE where RPTCODE = '"+ fileName +"'");
+        String templatePath = DBExecutor.doQuery("select NOUNVALUE from sys_noun where NOUNITEM ='ATTACHPATH'");
+        File folder = new File(templatePath+"/"+fileName1.getRptcode());
+        if (!folder.exists()) {
+            // 创建文件夹
+            folder.mkdir();
+            System.out.println("文件夹创建成功。");
+        } else {
+            System.out.println("文件夹已存在。");
+        }
+        byte[] byteArr = fileName1.getReportinfo();
+        byte[] byteArr1 = fileNamemodel.getReportinfo();
+        InputStream in = new ByteArrayInputStream(byteArr);
+        InputStream in1 = new ByteArrayInputStream(byteArr1);
+        Workbook workbook = new XSSFWorkbook(); // 创建工作簿实例
+        FileOutputStream out = new FileOutputStream(new File(folder.getAbsolutePath()+"/"+fileName1.getRptname()+".xlsx"));
+        FileOutputStream out1 = new FileOutputStream(new File(folder.getAbsolutePath()+"/"+fileNamemodel.getRptname()+".xlsx"));
+        int byteValue=0;
+        int byteValue1=0;
+        while (-1 !=(byteValue=in.read()))
+            out.write(byteValue);
+        while (-1 !=(byteValue1=in1.read()))
+            out1.write(byteValue1);
+        workbook.close(); // 关闭工作簿
+        // Map<String, Object> data = new HashMap<>();
+        FilesValueCheckUtils.exportExcelModel(response,ProductListModelDemo,folder+"/",filename);
+        return true;
+    }
+
+
+
+    public BaseMapper<RptDefineModel> getMapper() {
+        return this.rptDefineMapper;
+    }
 }

+ 4 - 2
Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx

@@ -2,7 +2,7 @@ import React, { useEffect, useRef, useState } from 'react';
 import { Button, Form, FormInstance, Input, Space, Tooltip, Upload } from 'antd';
 import { ActionType, ProColumns, ProFormInstance, ProTable } from '@ant-design/pro-components';
 import { baseFun, EditType, SDAreaTtile, SDButton, SDForm, SDFormText, SDLayout, SDModal, SDModalForm, SDOperate, SDPage, SDSubmitButton, SDTable } from '@sundata/ui-frame';
-import { productlist, productListModel, product_addone, product_addone1, product_addone2, product_deleteone, product_deleteone1, product_modifyone, product_modifyone1, product_modifyone2, product_querylist,  rwaCalcConfOffbalanceprotyperuleModel,  rwaCalcConfProductrulesModel, select } from '@/services/rwa/product_list';
+import { exportExcelModel, productlist, productListModel, product_addone, product_addone1, product_addone2, product_deleteone, product_deleteone1, product_modifyone, product_modifyone1, product_modifyone2, product_querylist,  rwaCalcConfOffbalanceprotyperuleModel,  rwaCalcConfProductrulesModel, select } from '@/services/rwa/product_list';
 import { fetchDictList } from '@/services/sysMng/nounMng';
 import { useModel } from '@umijs/max';
 import { WomanOutlined } from '@ant-design/icons';
@@ -35,6 +35,8 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     var formDataList = new Array<productListModel>;
     var formDataList1 = new Array<rwaCalcConfProductrulesModel>;
     var formDataList2 = new Array<rwaCalcConfOffbalanceprotyperuleModel>;
+
+
  
     const [mockData, setMockData] = useState<rwaCalcConfProductrulesModel[]>([]);
     const [mockData1, setMockData1] = useState<rwaCalcConfOffbalanceprotyperuleModel[]>([]);
@@ -535,7 +537,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
           key="export"
         //  successMessage='导出成功'
           onClick={async () => {
-          //  exportExcelModel("fcLoan",formDataList);
+            exportExcelModel("productlist",formDataList);
             //baseFun.info('处理完成');
           }}
         >

+ 6 - 1
Procedure/frontend/projectb/src/services/rwa/product_list.ts

@@ -186,4 +186,9 @@ export async function select(productNo:String){
         params:{productNo}
     })
     ;
-}
+}
+
+  /** 全部导出 */
+  export async function exportExcelModel(fileName:string,body:any) {
+    baseFun.download('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/exportExcelModel.do?fileName='+fileName,body);
+ }