From 5b4b0b5b6462ca6da4dc8811663839b3045128f2 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 27 一月 2024 09:22:21 +0800
Subject: [PATCH] 开发业务接口
---
server/service/src/main/java/com/doumee/service/business/CompanyService.java | 4 +
server/platform/src/main/java/com/doumee/api/business/CompanyController.java | 12 ++++
server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java | 2
server/service/src/main/java/com/doumee/core/utils/Constants.java | 25 +++++++-
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 44 ++++++++++++++
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 2
company/src/api/business/company.js | 7 ++
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 18 -----
company/src/components/business/InsuranceDetails.vue | 27 +++++++-
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java | 18 +++--
company/src/views/business/insuranceApply.vue | 1
11 files changed, 125 insertions(+), 35 deletions(-)
diff --git a/company/src/api/business/company.js b/company/src/api/business/company.js
index 5131034..a109cd9 100644
--- a/company/src/api/business/company.js
+++ b/company/src/api/business/company.js
@@ -27,6 +27,13 @@
return request.post('/business/company/updateStatus', data)
}
+export function exportComFiles (data) {
+ return request.post('/business/company/exportFiles', data, {
+ trim: true,
+ download: true
+ })
+}
+
// 鏍规嵁ID鏌ヨ
export function getById (id) {
return request.get(`/business/company/${id}`)
diff --git a/company/src/components/business/InsuranceDetails.vue b/company/src/components/business/InsuranceDetails.vue
index ff1859a..a9139a2 100644
--- a/company/src/components/business/InsuranceDetails.vue
+++ b/company/src/components/business/InsuranceDetails.vue
@@ -55,9 +55,9 @@
</div>
</div>
<template v-slot:footer>
- <el-button type="primary">浼佷笟璇佷欢</el-button>
+ <el-button type="primary" :loading="isWorking.export" @click="exportComFiles">浼佷笟璇佷欢</el-button>
<el-button type="primary" :loading="isWorking.export" @click="exportDetail">瀵煎嚭璇﹀崟</el-button>
- <el-button>鍙栨秷</el-button>
+ <el-button @click="visible=false">鍙栨秷</el-button>
</template>
</GlobalWindow>
</template>
@@ -107,8 +107,7 @@
})
},
exportDetail(){
-
- this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ this.$dialog.exportConfirm('纭瀵煎嚭璇﹀崟鍚楋紵')
.then(() => {
this.isWorking = true
exportDetailExcel({ id: this.model.id })
@@ -127,6 +126,26 @@
})
},
+ exportComFiles(){
+ this.$dialog.exportConfirm('纭瀵煎嚭浼佷笟璇佷欢鍚楋紵')
+ .then(() => {
+ this.isWorking = true
+ exportComFiles({ id: this.model.companyId })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ console.log(e)
+ this.$message.error('鏁版嵁涓嬭浇澶辫触锛�')
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ .catch(() => {
+ })
+
+ },
handleSizeChange(val) {
console.log(`姣忛〉 ${val} 鏉);
},
diff --git a/company/src/views/business/insuranceApply.vue b/company/src/views/business/insuranceApply.vue
index 3818a2e..88b1f45 100644
--- a/company/src/views/business/insuranceApply.vue
+++ b/company/src/views/business/insuranceApply.vue
@@ -95,6 +95,7 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import { all as solutionAll} from '@/api/business/solutions'
+import {exportComFiles as exportComFiles} from '@/api/business/company'
import { pageAll as companyAll} from '@/api/business/company'
import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
export default {
diff --git a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
index 14d8f81..4f78a18 100644
--- a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
@@ -3,6 +3,8 @@
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
@@ -129,4 +131,14 @@
return ApiResponse.success(companyService.findById(id));
}
+
+ @ApiOperation("浼佷笟璇佷欢涓嬭浇")
+ @PostMapping("/exportFiles")
+ @RequiresPermissions("business:locks:exportExcel")
+ public void exportFiles(@RequestBody Company company,HttpServletResponse response) {
+ if(company.getId() == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ companyService.exportFiles(company.getId(),response);
+ }
}
diff --git a/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java b/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
index 548de7a..f4a688c 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
@@ -78,7 +78,7 @@
@ApiOperation("璧勬枡涓嬭浇")
@PostMapping("/exportFiles")
@RequiresPermissions("business:locks:exportExcel")
- public void exportExcel(@RequestParam Integer id,HttpServletResponse response) {
+ public void exportFiles(@RequestParam Integer id,HttpServletResponse response) {
if(id == null){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index 6473db7..3526bbe 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -350,6 +350,7 @@
style.setFont(font);
// 璁剧疆杈规
configCellBorder(style);
+// configCellBorder(style);
cell.setCellStyle(style);
}
/**
@@ -478,17 +479,18 @@
sxssfWorkbook = new SXSSFWorkbook();
Sheet sheet = sxssfWorkbook.createSheet(sheetName);
for (int i = 0; i < 6; i++) {
- sheet.setColumnWidth(i, 20 * 2 * 256);
+ sheet.setColumnWidth(i, (i==5?20:15) * 2 * 256);
}
sheet.createFreezePane(0, 1);
- sheet.addMergedRegion(new CellRangeAddress(0 ,0,0,5));
Row title = sheet.createRow(0);
title.setHeight((short) 800);
- Cell c = title.createCell(0);
- c.setCellValue(sheetName);
- configTitleCell(sxssfWorkbook,c);
+ for (int i = 0; i < 6; i++) {
+ title.createCell(i).setCellValue(i==0?sheetName:"");
+ configTitleCell(sxssfWorkbook,title.getCell(i));
+ }
+ sheet.addMergedRegion(new CellRangeAddress(0 ,0,0,5));
Row header1 = sheet.createRow(1);
- header1.setHeight((short) 400);
+ header1.setHeight((short) 500);
header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
header1.createCell(1).setCellValue("淇濋櫓鏂规");
header1.createCell(2).setCellValue("淇濋櫓鐢熸晥璧锋湡");
@@ -515,7 +517,7 @@
header4.createCell(3).setCellValue("韬唤璇佸彿");
header4.createCell(4).setCellValue("娲鹃仯鍗曚綅");
header4.createCell(5).setCellValue("鎵�灞炲伐绉�");
- header4.setHeight((short) 400);
+ header4.setHeight((short) 500);
for (int i = 0; i < 6; i++) {
configFirstCell(sxssfWorkbook,header4.getCell(i));
}
@@ -524,7 +526,7 @@
for (int rowIndex = 0; rowIndex < data.getApplyDetailList().size(); rowIndex++) {
ApplyDetail d = data.getApplyDetailList().get(rowIndex);
Row header5 = sheet.createRow(rowIndex + 4);
- header5.setHeight((short) 300);
+// header5.setHeight((short) 300);
header5.createCell(0).setCellValue(rowIndex+1);
header5.createCell(1).setCellValue(StringUtils.defaultString(d.getMemberName(),""));
header5.createCell(2).setCellValue(Constants.equalsInteger(d.getSex(),0)?"鐢�":(Constants.equalsInteger(d.getSex(),1)?"濂�":"-"));
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 89be6c5..5a5522c 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -5,12 +5,12 @@
import com.doumee.dao.business.model.Solutions;
import io.swagger.models.auth.In;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
+import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.lang3.StringUtils;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
+import javax.servlet.ServletOutputStream;
+import java.io.*;
import java.math.BigDecimal;
import java.net.URL;
import java.net.URLDecoder;
@@ -811,6 +811,7 @@
private int key;
private int collectStatus;
+
// 鏋勯�犳柟娉�
InsuranceApplyStatus(int key, String name,String info,int collectStatus) {
this.name = name;
@@ -1367,4 +1368,20 @@
return file;
}
+ public static void packFilesToZip(List<File> files, ServletOutputStream os) throws IOException {
+ try (ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(os)) {
+ for (File file : files) {
+ ZipArchiveEntry entry = new ZipArchiveEntry(file.getName());
+ zipOutputStream.putArchiveEntry(entry);
+ try (FileInputStream fileInputStream = new FileInputStream(file)) {
+ byte[] buffer = new byte[1024];
+ int length;
+ while ((length = fileInputStream.read(buffer)) > 0) {
+ zipOutputStream.write(buffer, 0, length);
+ }
+ }
+ zipOutputStream.closeArchiveEntry();
+ }
+ }
+ }
}
diff --git a/server/service/src/main/java/com/doumee/service/business/CompanyService.java b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
index c0a46ba..b1e4b2c 100644
--- a/server/service/src/main/java/com/doumee/service/business/CompanyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -3,6 +3,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Company;
+
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -103,4 +105,6 @@
void dealSignIdStatus();
void updateSolutions(Company company);
+
+ void exportFiles(Integer id, HttpServletResponse response);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 3d842ad..09fe4cb 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -31,9 +32,12 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import javax.servlet.http.HttpServletResponse;
import java.io.File;
+import java.io.IOException;
import java.lang.reflect.Array;
import java.net.URI;
+import java.net.URLEncoder;
import java.util.*;
/**
@@ -112,6 +116,46 @@
//澶勭悊鍏宠仈鏂规
dealSolutionsData(company);
}
+ @Transactional
+ public void exportFiles(Integer id, HttpServletResponse response){
+ try {
+ Company model = companyMapper.selectById(id);
+ if(model == null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ List<File> fileList = new ArrayList<>();
+ List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId,id)
+ .isNotNull(Multifile::getFileurl)
+ .in(Multifile::getObjType, Arrays.asList(new Integer[]{
+ Constants.MultiFile.COM_BUSINESS_LICENSE.getKey(),
+ Constants.MultiFile.COM_IDCARD_IMG.getKey(),
+ }))
+ );
+ if(multifileList== null || multifileList.size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode();
+ for(Multifile l : multifileList){
+ File f = Constants.getFileByNetFile(path + l.getFileurl(),StringUtils.defaultString(l.getName(),"鏈懡鍚�"));
+ if(f !=null && f.isFile()){
+ fileList.add(f);
+ }
+ }
+ if(fileList == null || fileList.size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String fileName = model.getName() +"鐞嗚禂璧勬枡涓媉"+System.currentTimeMillis()+".zip" ;
+ String encodeFileName = URLEncoder.encode(fileName);
+ response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
+ response.setContentType("application/octet-stream");
+ response.setHeader("eva-opera-type", "download");
+ response.setHeader("eva-download-filename", encodeFileName);
+ Constants. packFilesToZip(fileList,response.getOutputStream());
+ } catch (IOException e) {
+ throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+ }
+ }
private void dealSystemUserData(Company company) {
if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda()
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 6f15c4d..e13e60a 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -1014,7 +1014,7 @@
.selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
- .eq(InsuranceApply::getId,model.getId());
+ .eq(ApplyDetail::getApplyId,model.getId());
//鏌ヨ鏄庣粏
List<ApplyDetail> detailList =applyDetailJoinMapper.selectJoinList(ApplyDetail.class,wrapper1);
if(detailList!=null){
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index 09ea8da..c6d87a5 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -413,29 +413,13 @@
response.setContentType("application/octet-stream");
response.setHeader("eva-opera-type", "download");
response.setHeader("eva-download-filename", encodeFileName);
- packFilesToZip(fileList,response.getOutputStream());
+ Constants.packFilesToZip(fileList,response.getOutputStream());
} catch (IOException e) {
throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
}
}
- public static void packFilesToZip(List<File> files, ServletOutputStream os) throws IOException {
- try (ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(os)) {
- for (File file : files) {
- ZipArchiveEntry entry = new ZipArchiveEntry(file.getName());
- zipOutputStream.putArchiveEntry(entry);
- try (FileInputStream fileInputStream = new FileInputStream(file)) {
- byte[] buffer = new byte[1024];
- int length;
- while ((length = fileInputStream.read(buffer)) > 0) {
- zipOutputStream.write(buffer, 0, length);
- }
- }
- zipOutputStream.closeArchiveEntry();
- }
- }
- }
@Override
public SettleClaims getSettleClaimsDetail(Integer id){
--
Gitblit v1.9.3