From 2e8224782416e546a832aa8cff789bdc7505afa0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 30 一月 2024 19:24:53 +0800
Subject: [PATCH] 开发业务接口
---
server/service/src/main/java/com/doumee/core/utils/Constants.java | 407 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 381 insertions(+), 26 deletions(-)
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 820e961..f2b834f 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
@@ -3,12 +3,19 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
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 javax.servlet.ServletOutputStream;
+import java.io.*;
import java.math.BigDecimal;
+import java.net.URL;
import java.net.URLDecoder;
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.Date;
import java.util.regex.Matcher;
@@ -70,6 +77,10 @@
public static final String COMPANY_FILE ="COMPANY_FILE" ;
public static final String SMS_COMNAME = "SMS_COMNAME";
public static final String TAXES_FILE = "TAXES_FILE";
+ public static final String APPLY_FILE ="APPLY_FILE" ;
+ public static final String SETTLE_FILE ="SETTLE_FILE" ;
+ public static final String DU_FILE ="DU_FILE" ;
+ public static final String SIGN_DONE_NOTIFY_URL = "SIGN_DONE_NOTIFY_URL";
/**
* 浼佷笟鏁版嵁鏉ユ簮 0骞冲彴娉ㄥ唽 1鍚庡彴瀵煎叆
@@ -97,6 +108,15 @@
// d = d.setScale(2, BigDecimal.ROUND_HALF_UP);
return d;
}
+ public static BigDecimal formatBigdecimal2Float(BigDecimal d) {
+ if (d == null) {
+ d = new BigDecimal(0.0);
+ }
+ //淇濈暀涓や綅灏忔暟涓斿洓鑸嶄簲鍏�
+ d = d.setScale(2, BigDecimal.ROUND_HALF_UP);
+ return d;
+ }
+
public static BigDecimal formatBigdecimal4Float(BigDecimal d) {
if (d == null) {
d = new BigDecimal(0.0);
@@ -129,6 +149,35 @@
}
return d.intValue();
}
+
+ public static long getAgeByIdCard(String idCard){
+ int birthYear = Integer.parseInt(idCard.substring(6, 10));
+ int birthMonth = Integer.parseInt(idCard.substring(10, 12));
+ int birthDay = Integer.parseInt(idCard.substring(12, 14));
+
+ LocalDate birthDate = LocalDate.of(birthYear, birthMonth, birthDay);
+ LocalDate currentDate = LocalDate.now();
+ long age = ChronoUnit.YEARS.between(birthDate, currentDate);
+ return age;
+ }
+
+ public static Integer getSexByIdCard(String idCard){
+ Pattern pattern = Pattern.compile("\\d{17}[\\d|x]"); // 瀹氫箟韬唤璇佸彿鐮佹牸寮忕殑姝e垯琛ㄨ揪寮�
+ Matcher matcher = pattern.matcher(idCard);
+ Integer sex = 1;
+ if (matcher.matches()) {
+ int genderCode = Integer.parseInt(idCard.substring(16, 17)); // 浠庣17浣嶅紑濮嬫彁鍙栨�у埆缂栫爜锛堝鏁颁负鐢锋�э紝鍋舵暟涓哄コ鎬э級
+ if ((genderCode % 2 == 1) ) {
+ sex = 1;
+ } else {
+ sex = 2;
+ }
+ } else {
+ sex = -1;
+ }
+ return sex;
+ }
+
/**
* 鐘舵�� 0宸蹭繚瀛樸��1寰呭鏍搞��2瀹℃牳閫氳繃銆�3閫�鍥炰慨鏀广��4瀹℃牳椹冲洖銆�5寰呮湇鍔℃満鏋勭‘璁ゃ��6鏈嶅姟鏈烘瀯鎷掔粷銆�7宸插垎閰嶆湇鍔℃満鏋勩��8璇婃柇涓�
* 锛堟垚鍔熶笂浼犵涓�浠芥湇鍔¤祫鏂欙級銆�9鏈嶅姟瀹屾垚銆�10宸插垎閰嶈瘎鍒嗕笓瀹躲��11宸插畬鎴愶紙涓撳涓婁紶璇勫垎锛� 12閫�鍥炰慨鏀逛腑 13 宸插畬鎴愰��鍥炰慨鏀�
@@ -356,7 +405,10 @@
BD_APPLY_PDF(8, "淇濆崟鐢宠琛≒DF ", "淇濆崟鐢宠琛≒DF "),
BD_SIGNED_PDF(9, "绛剧讲鍚庝繚鍗曠敵璇疯〃PDF", "绛剧讲鍚庝繚鍗曠敵璇疯〃PDF"),
COM_SING_IMG(10, "浼佷笟鍗扮珷", "浼佷笟鍗扮珷"),
- BD_DONE_PDF(10, "鏈�缁堟姤鍗�", "鏈�缁堟姤鍗�"),
+ BD_DONE_PDF(11, "鏈�缁堟姤鍗�", "鏈�缁堟姤鍗�"),
+ CA_PD_PDF(12, "鏈�缁堟姤鍗�", "鏈�缁堟姤鍗�"),
+ CA_APPLY_JIAJIAN_SIGN(13, "鍔犲噺淇濈敵璇风绔犳枃浠�", "鍔犲噺淇濈敵璇风绔犳枃浠�"),
+ CA_APPLY_CHANGEUNIT_SIGN(14, "鎹㈠巶鐢宠绛剧珷鏂囦欢", "鎹㈠巶鐢宠绛剧珷鏂囦欢"),
;
@@ -607,10 +659,59 @@
}
+ public enum ApplyCollectStatus {
+ DSP(0, "寰呭鎵�"),
+ DCD(1, "寰呭嚭鍗�"),
+ BZZ(2, "淇濋殰涓�"),
+ YGQ(3, "宸茶繃鏈�"),
+ YTH(4, "宸查��鍥�"),
+ THSQZ(5, "鐢宠閫�鍥�"),
+ YGB(6, "宸插叧闂�"),
+ DQYQZ(7, "寰呯缃�"),
+ ;
+ // 鎴愬憳鍙橀噺
+ private String name;
+ private int key;
+
+ // 鏋勯�犳柟娉�
+ ApplyCollectStatus(int key, String name) {
+ this.name = name;
+ this.key = key;
+ }
+
+ // 鏅�氭柟娉�
+ public static String getName(int index) {
+ for (ApplyCollectStatus c : ApplyCollectStatus.values()) {
+ if (c.getKey() == index) {
+ return c.name;
+ }
+ }
+ return null;
+ }
+
+ // get set 鏂规硶
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getKey() {
+ return key;
+ }
+
+ public void setKey(int key) {
+ this.key = key;
+ }
+
+ }
+
public enum ApplyLogType {
UPLOAD(0, "鎻愪氦鎶曚繚","鎻愪氦鎰忚锛�${param}"),
- PLATFORM_RETURN(1, "鐢宠閫�鍥�","鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_RETURN(1, "閫�鍥炴姇淇�","鎻愪氦鎰忚锛�${param}"),
WAIT_SIGNATURE(2, "涓婁紶鎶曚繚鍗�","鎻愪氦鎰忚锛�${param}"),
SIGNATURE(3, "浼佷笟绛剧珷",""),
FAIL_RETURN(4, "淇濆崟鍑哄叿澶辫触閫�鍥�","鎻愪氦鎰忚锛�${param}"),
@@ -620,6 +721,21 @@
PLATFORM_AGREE_BACK(8, "鍚屾剰閫�鍥炵敵璇�",""),
PLATFORM_UN_AGREE_BACK(9, "椹冲洖閫�鍥炵敵璇�","鎻愪氦鎰忚锛�${param}"),
COMPANY_EDIT(10, "淇濆崟淇敼","鎻愪氦鎰忚锛�${param1}\n${param2}"),
+ PLATFORM_CHECK_PASS(11, "鎶曚繚瀹℃牳閫氳繃",""),
+ CA_PLATFORM_CHECK_PASS_NO(12, "閫�鍥炴姇淇�","鎻愪氦鎰忚锛�${param}"),
+ CA_PLATFORM_AGREE_BACK_APPLY(13, "鍚屾剰閫�鍥炵敵璇�","鎻愪氦鎰忚锛�${param}"),
+ CA_PLATFORM_APPROVE(14, "鎵瑰崟瀹屾垚","淇濋櫓鐢熸晥璧锋湡锛�${param1}鍙樻洿涓�${param2}"),
+ CA_PLATFORM_CHECK_SIGNATURE(15, "浼佷笟绛剧珷",""),
+ CA_COMPANY_EDIT(16, "鎵瑰崟淇敼","鎻愪氦鎰忚锛�${param1}\n${param2}"),
+ CA_COMPANY_COMMIT(17, "鎻愪氦鎶曚繚","鎻愪氦鎰忚锛�${param}"),
+ CA_COMPANY_BACK_APPLY(18, "鐢宠閫�鍥�","鎻愪氦鎰忚锛�${param}"),
+ CA_COMPANY_CLOSE(19, "鍏抽棴璁㈠崟",""),
+ CA_PALTFORM_REFUSE_APPLY(20, "椹冲洖閫�鍥炵敵璇�",""),
+ CA_PALTFORM_EDIT_PIDAN(21, "淇敼鎵瑰崟","淇敼鍘熷洜锛�${param}"),
+ PALTFORM_EDIT_BD(22, "淇敼淇濆崟","淇敼鍘熷洜锛�${param}"),
+ CA_JIAJIAN_APPLY_SIGN(23, "鍔犲噺淇濈敵璇蜂紒涓氱绔�",""),
+
+ CA_CHANGUNIT_APPLY_SIGN(24, "鎹㈡垚鐢宠浼佷笟绛剧珷",""),
;
// 鎴愬憳鍙橀噺
private String name;
@@ -678,26 +794,31 @@
}
public enum InsuranceApplyStatus {
- UPLOAD(0, "鎻愪氦鎶曚繚",""),
- PLATFORM_RETURN(1, "瀹℃牳涓嶉�氳繃","鎻愪氦鎰忚锛�${param}"),
- WAIT_SIGNATURE(2, "宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔�",""),
- SIGNATURE(3, "宸茬绔犲緟涓婁紶淇濋櫓鍗�",""),
- FAIL_RETURN(4, "淇濆崟鍑哄叿澶辫触閫�鍥�",""),
- UPLOAD_INSURANCE(5, "淇濆崟瀹屾垚","淇濋櫓鐢熸晥璧锋湡锛�${param}鍙樻洿涓�${param1}"),
- COMPANY_APPLY_RETURN(6, "浼佷笟鐢宠閫�鍥�","鎻愪氦鎰忚锛�${param}"),
- PLATFORM_AGREE(7, "骞冲彴鍚屾剰閫�鍥�",""),
- CLOSE(8, "璁㈠崟鍏抽棴",""),
+ UPLOAD(0, "鎻愪氦鎶曚繚","",0),
+ PLATFORM_RETURN(1, "瀹℃牳涓嶉�氳繃","鎻愪氦鎰忚锛�${param}",4),
+ WAIT_SIGNATURE(2, "宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔�","",7),
+ SIGNATURE(3, "宸茬绔犲緟涓婁紶淇濋櫓鍗�","",1),
+ FAIL_RETURN(4, "淇濆崟鍑哄叿澶辫触閫�鍥�","",4),
+ UPLOAD_INSURANCE(5, "淇濆崟瀹屾垚","淇濋櫓鐢熸晥璧锋湡锛�${param}鍙樻洿涓�${param1}",2),
+ COMPANY_BACK_APPLY_UPLOAD(6, "浼佷笟鐢宠閫�鍥�(鎻愪氦鎶曚繚)","鎻愪氦鎰忚锛�${param}",5),
+ COMPANY_BACK_APPLY_WAIT_SIGNATURE(7, "浼佷笟鐢宠閫�鍥�(寰呯绔�)","鎻愪氦鎰忚锛�${param}",5),
+ COMPANY_BACK_APPLY_SIGNATURE(8, "浼佷笟鐢宠閫�鍥�(宸茬绔�)","鎻愪氦鎰忚锛�${param}",5),
+ CLOSE(9, "璁㈠崟鍏抽棴","",6),
+ PLATFORM_CHECK_PASS(10,"骞冲彴鎶曚繚瀹℃牳閫氳繃","鎻愪氦鎰忚锛�${param}",1),
;
// 鎴愬憳鍙橀噺
private String name;
private String info;
private int key;
+ private int collectStatus;
+
// 鏋勯�犳柟娉�
- InsuranceApplyStatus(int key, String name,String info) {
+ InsuranceApplyStatus(int key, String name,String info,int collectStatus) {
this.name = name;
this.key = key;
this.info = info;
+ this.collectStatus = collectStatus;
}
// 鏅�氭柟娉�
@@ -705,6 +826,25 @@
for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) {
if (c.getKey() == index) {
return c.name;
+ }
+ }
+ return null;
+ }
+ public static List<Integer> getKesByStatus(Integer collectStatus) {
+ List<Integer> list = new ArrayList<>();
+ if(collectStatus!=null){
+ for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) {
+ if (Constants.equalsInteger(c.getCollectStatus() ,collectStatus)) {
+ list.add(c.getKey());
+ }
+ }
+ }
+ return list;
+ }
+ public static Integer getCollectStatus(Integer index) {
+ for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) {
+ if (Constants.equalsInteger(c.getKey() , index)) {
+ return c.collectStatus;
}
}
return null;
@@ -742,15 +882,32 @@
public void setInfo(String info) {
this.info = info;
}
+
+ public int getCollectStatus() {
+ return collectStatus;
+ }
+
+ public void setCollectStatus(int collectStatus) {
+ this.collectStatus = collectStatus;
+ }
}
public static BigDecimal countDetailFee(Solutions solutions,Date startDate, Date endDate){
//鏌ヨ淇濋櫓瀹為檯鍛ㄦ湡
- Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getDataType());
+ Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getTimeUnit());
if(cycle==-1){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃ユ湡淇℃伅閿欒!");
}
return solutions.getPrice().multiply(new BigDecimal(cycle));
+ }
+
+ public static BigDecimal countDetailFee(int timeUnit ,BigDecimal price,Date startDate, Date endDate){
+ //鏌ヨ淇濋櫓瀹為檯鍛ㄦ湡
+ Integer cycle = DateUtil.calculateBetween(endDate,startDate,timeUnit);
+ if(cycle==-1){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃ユ湡淇℃伅閿欒!");
+ }
+ return Constants.formatBigdecimal(price).multiply(new BigDecimal(cycle));
}
@@ -758,9 +915,12 @@
UPLOAD(0, "鎻愪氦鍔犲噺淇�/鎹㈠巶鐢宠"),
SIGNATURE(1, "宸茬绔�"),
APPROVE(2, "宸蹭笂浼犲鎵�"),
- RETURN_APPLY(3, "鍙戣捣閫�鍥炵敵璇�"),
- PLATFORM_AGREE(4, "骞冲彴鍚屾剰锛堝凡閫�鍥烇級"),
- CLOSE(5, "宸插叧闂�"),
+ RETURN_APPLY_UPLOAD(3, "鍙戣捣閫�鍥炵敵璇�(寰呭鏍�)"),
+ RETURN_APPLY_SIGNATURE(4, "鍙戣捣閫�鍥炵敵璇凤紙宸茬绔狅級"),
+ PLATFORM_AGREE(5, "骞冲彴鍚屾剰锛堝凡閫�鍥烇級"),
+ CLOSE(6, "宸插叧闂�"),
+ PALTFORM_CHECK_PASS(7, "瀹℃牳閫氳繃"),
+ PALTFORM_CHECK_PASS_NO(8, "瀹℃牳涓嶉�氳繃"),
;
// 鎴愬憳鍙橀噺
private String name;
@@ -774,7 +934,7 @@
// 鏅�氭柟娉�
public static String getName(int index) {
- for (ApplyLogType c : ApplyLogType.values()) {
+ for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) {
if (c.getKey() == index) {
return c.name;
}
@@ -801,21 +961,76 @@
}
-//3=閫�鍥炵敵璇凤紱4=骞冲彴瀹℃壒閫氳繃锛�0=瀹℃壒椹冲洖;5=骞冲彴瀹℃壒椹冲洖
- public enum ApplyChangeLogStatus {
- UPLOAD(0, "鍙戣捣鐢宠"),
- RETURN_APPLY(3, "鍙戣捣閫�鍥炵敵璇�"),
- PLATFORM_AGREE(4, "骞冲彴瀹℃壒閫氳繃"),
- PLATFORM_UN_AGREE(0, "瀹℃壒椹冲洖"),
- CLOSE(5, "鍏抽棴"),
+
+
+ public enum SettleClaimsStatus {
+ WAIT_ACCEPTANCE(0, "寰呭彈鐞�"),
+ RETURN_ACCEPTANCE(1, "閫�鍥炲彈鐞�"),
+ DEAL_ING(2, "鍙楃悊涓�"),
+ CONFIRM_INFORMATION(3, "纭璧勬枡"),
+ FINISH_ACCEPTANCE(4, "瀹屾垚鍙楃悊"),
;
// 鎴愬憳鍙橀噺
private String name;
private int key;
// 鏋勯�犳柟娉�
- ApplyChangeLogStatus(int key, String name) {
+ SettleClaimsStatus(int key, String name) {
this.name = name;
+ this.key = key;
+ }
+ // 鏅�氭柟娉�
+ public static String getName(int index) {
+ for (SettleClaimsStatus c : SettleClaimsStatus.values()) {
+ if (c.getKey() == index) {
+ return c.name;
+ }
+ }
+ return null;
+ }
+ // get set 鏂规硶
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getKey() {
+ return key;
+ }
+
+ public void setKey(int key) {
+ this.key = key;
+ }
+ }
+
+
+
+ public enum SettleClaimsLogType {
+ UPLOAD(0, "鎻愪氦鎶ユ","鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_RETURN(1, "骞冲彴閫�鍥�","鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_CONFIRM_INFORMATION(2, "骞冲彴纭璧勬枡",""),
+ PLATFORM_FINISH(3, "缁撴鎻愪氦","鎻愪氦鎰忚锛�${param}"),
+ UPDATE_DATA(4, "淇敼淇℃伅","鎻愪氦鎰忚锛�${param}"),
+ SUPPLEMENT(5, "琛ュ厖璇存槑","鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_LP_DEAL(6, "骞冲彴鐞嗚禂澶勭悊","鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_REMARK(7, "骞冲彴澶囨敞鏍囩","${param}"),
+ PLATFORM_ADDCODE(8, "骞冲彴娣诲姞鎶ユ鍙�","澶囨鍙凤細${param}"),
+ PLATFORM_UN_AGREE_BACK(9, "浼佷笟涓嬭浇璧勬枡",""),
+ PLATFORM_DOWNLOAD(10, "骞冲彴涓嬭浇璧勬枡",""),
+ PLATFORM_CHECK_PASS(11, "骞冲彴涓婁紶璧勬枡",""),
+ ;
+ // 鎴愬憳鍙橀噺
+ private String name;
+ private String info;
+ private int key;
+
+ // 鏋勯�犳柟娉�
+ SettleClaimsLogType(int key, String name,String info) {
+ this.name = name;
+ this.info = info;
this.key = key;
}
@@ -828,6 +1043,14 @@
}
return null;
}
+ public static String getInfo(int index) {
+ for (ApplyLogType c : ApplyLogType.values()) {
+ if (c.getKey() == index) {
+ return c.info;
+ }
+ }
+ return null;
+ }
// get set 鏂规硶
public String getName() {
@@ -846,7 +1069,83 @@
this.key = key;
}
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
}
+
+
+
+
+ public enum ApplyChangeLogStatus {
+ UPLOAD(0, "鍙戣捣鐢宠",""),
+ RETURN_APPLY(3, "鍙戣捣閫�鍥炵敵璇�","鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_AGREE(4, "骞冲彴瀹℃壒閫氳繃" ,"鎻愪氦鎰忚锛�${param}"),
+ PLATFORM_UN_AGREE(0, "瀹℃壒椹冲洖","鎻愪氦鎰忚锛�${param}"),
+ CLOSE(5, "鍏抽棴",""),
+ ;
+ // 鎴愬憳鍙橀噺
+ private String name;
+ private String info;
+ private int key;
+
+ // 鏋勯�犳柟娉�
+ ApplyChangeLogStatus(int key, String name,String info) {
+ this.name = name;
+ this.info = info;
+ this.key = key;
+ }
+
+ // 鏅�氭柟娉�
+ public static String getName(int index) {
+ for (ApplyChangeLogStatus c : ApplyChangeLogStatus.values()) {
+ if (c.getKey() == index) {
+ return c.name;
+ }
+ }
+ return null;
+ }
+ public static String getInfo(int index) {
+ for (ApplyChangeLogStatus c : ApplyChangeLogStatus.values()) {
+ if (c.getKey() == index) {
+ return c.info;
+ }
+ }
+ return null;
+ }
+
+ // get set 鏂规硶
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getKey() {
+ return key;
+ }
+
+ public void setKey(int key) {
+ this.key = key;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+
+ }
+
+
public enum ProjectRecord {
@@ -1050,4 +1349,60 @@
this.des = des;
}
}
+
+ public static File getFileByNetFile(String url,String fileName) {
+ //瀵规湰鍦版枃浠跺懡鍚�
+ File file = null;
+ try {
+ URL urlfile;
+ InputStream inStream = null;
+ OutputStream os = null;
+ try {
+ String tempDir = System.getProperty("java.io.tmpdir")+fileName;
+ file = new File(tempDir);
+ //涓嬭浇
+ urlfile = new URL(url);
+ inStream = urlfile.openStream();
+ os = new FileOutputStream(file);
+ int bytesRead = 0;
+ byte[] buffer = new byte[8192];
+ while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
+ os.write(buffer, 0, bytesRead);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (null != os) {
+ os.close();
+ }
+ if (null != inStream) {
+ inStream.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }catch (Exception e){
+
+ }
+
+ 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();
+ }
+ }
+ }
}
--
Gitblit v1.9.3