From 55f9b16dcdaa97f4bc328f2ecb5096624d19c08e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 25 一月 2024 10:46:16 +0800
Subject: [PATCH] 开发业务接口
---
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 60 ++++++++
server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java | 4
server/service/src/main/java/com/doumee/service/business/third/SignService.java | 48 ++++++
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java | 15 ++
server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java | 16 ++
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java | 263 +++++++++++++++++++++++++++++++++++++
6 files changed, 400 insertions(+), 6 deletions(-)
diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
index 699d0de..b8b2d70 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -84,16 +84,28 @@
}
@ApiOperation("瀵煎嚭鍔犲噺淇濊鎯呭崟")
@PostMapping("/exportJiajianBaoExcel")
- @RequiresPermissions("business:insuranceapply:exportExcel")
+ @RequiresPermissions("business:applychange:exportExcel")
public void exportJiajianBaoExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcel(applyChangeService.exportJiajianBaoExcel(model), response);
}
@ApiOperation("瀵煎嚭鎹㈠巶鐢宠璇︽儏鍗�")
@PostMapping("/exportChangeUnitExcel")
- @RequiresPermissions("business:insuranceapply:exportExcel")
+ @RequiresPermissions("business:applychange:exportExcel")
public void exportChangeUnitExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
ExcelExporter.build(ApplyChange.class).exportChangeUnitExcel(applyChangeService.exportChangeUnitExcel(model), response);
}
+ @ApiOperation("鑾峰彇鍔犲噺淇濈绔犲湴鍧�")
+ @PostMapping("/getJiajianBaoSignLink")
+ @RequiresPermissions("business:applychange:sign")
+ public ApiResponse<String> getSignLinkJiajiabao (@RequestBody ApplyChange model, HttpServletResponse response) {
+ return ApiResponse.success( applyChangeService.getSignLinkJiajiabao(model));
+ }
+ @ApiOperation("鑾峰彇缂撳瓨鐢宠绛剧珷鍦板潃")
+ @PostMapping("/getChangeUnitSignLink")
+ @RequiresPermissions("business:applychange:sign")
+ public ApiResponse<String> getChangeUnitSignLink (@RequestBody ApplyChange model, HttpServletResponse response) {
+ return ApiResponse.success( applyChangeService.getSignLinkChangeUnit(model));
+ }
@ApiOperation("鏍规嵁ID鏌ヨ")
@GetMapping("/{id}")
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 2eb2d10..83268e3 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
@@ -17,8 +17,7 @@
import org.springframework.core.annotation.AnnotationConfigurationException;
import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URLEncoder;
@@ -313,7 +312,26 @@
// style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
// 瀛椾綋
Font font = workbook.createFont();
- font.setFontHeightInPoints((short)24);
+ font.setFontHeightInPoints((short)12);
+ font.setBold(true);
+ style.setFont(font);
+ // 璁剧疆杈规
+ configCellBorder(style);
+ cell.setCellStyle(style);
+ }
+ /**
+ * 閰嶇疆鍒楀ご鍗曞厓鏍�
+ */
+ private void configInfoCell (SXSSFWorkbook workbook, Cell cell,HorizontalAlignment p ) {
+ CellStyle style = workbook.createCellStyle();
+ style.setAlignment(p);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 璁剧疆鑳屾櫙
+ style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+// style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ // 瀛椾綋
+ Font font = workbook.createFont();
+ font.setFontHeightInPoints((short)12);
font.setBold(true);
style.setFont(font);
// 璁剧疆杈规
@@ -440,6 +458,9 @@
header1.createCell(3).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
header1.createCell(4).setCellValue("鎶曚繚浜烘暟");
header1.createCell(5).setCellValue("鎬昏垂鐢紙鍏冿級");
+ for (int i = 0; i < 6; i++) {
+ configFirstCell(sxssfWorkbook,header1.getCell(i));
+ }
Row header2 = sheet.createRow(2);
header2.createCell(0).setCellValue(data.getCompanyName());
header2.createCell(1).setCellValue(data.getSolutionsName());
@@ -458,6 +479,9 @@
header4.createCell(3).setCellValue("韬唤璇佸彿");
header4.createCell(4).setCellValue("娲鹃仯鍗曚綅");
header4.createCell(5).setCellValue("鎵�灞炲伐绉�");
+ for (int i = 0; i < 6; i++) {
+ configFirstCell(sxssfWorkbook,header4.getCell(i));
+ }
if(data.getApplyDetailList()!=null){
// 鍒涘缓鏁版嵁璁板綍
for (int rowIndex = 0; rowIndex < data.getApplyDetailList().size(); rowIndex++) {
@@ -550,6 +574,9 @@
header1.createCell(9).setCellValue("鍔犱繚浜烘暟");
header1.createCell(10).setCellValue("鍑忎繚浜烘暟");
header1.createCell(11).setCellValue("鏈熸湜鎵瑰崟鐢熸晥鏈�");
+ for (int i = 0; i < 12; i++) {
+ configFirstCell(sxssfWorkbook,header1.getCell(i));
+ }
sheet.addMergedRegion(new CellRangeAddress(1 ,1,0,2));
sheet.addMergedRegion(new CellRangeAddress(1 ,1,6,8));
@@ -571,7 +598,9 @@
header2.createCell(6).setCellValue("鍑忎繚浜哄憳");
sheet.addMergedRegion(new CellRangeAddress(3 ,3,0,5));
sheet.addMergedRegion(new CellRangeAddress(3 ,3,6,11));
-
+ for (int i = 0; i < 12; i++) {
+ configFirstCell(sxssfWorkbook,header2.getCell(i));
+ }
Row header4 = sheet.createRow(4);
header4.createCell(0).setCellValue("搴忓彿");
header4.createCell(1).setCellValue("鍛樺伐濮撳悕");
@@ -585,6 +614,9 @@
header4.createCell(9).setCellValue("韬唤璇佸彿");
header4.createCell(10).setCellValue("娲鹃仯鍗曚綅");
header4.createCell(11).setCellValue("鎵�灞炲伐绉�");
+ for (int i = 0; i < 12; i++) {
+ configFirstCell(sxssfWorkbook,header4.getCell(i));
+ }
int maxNum = data.getAddNum()>data.getDelNum()?data.getAddNum():data.getDelNum();
// 鍒涘缓鏁版嵁璁板綍
for (int rowIndex = 0; rowIndex <maxNum; rowIndex++) {
@@ -622,6 +654,128 @@
}
}
}
+
+ /**
+ * 瀵煎嚭鍔犲噺淇濈敵璇疯鍗�
+ * @param data 鏁版嵁
+ * @param sheetName Sheet鍚嶇О
+ */
+ public String exportJiajianBaoExcelToPdf (ApplyChange data, String sheetName) {
+ SXSSFWorkbook sxssfWorkbook;
+ try {
+ sxssfWorkbook = new SXSSFWorkbook();
+ Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+ sheet.createFreezePane(0, 1);
+ sheet.addMergedRegion(new CellRangeAddress(0 ,0,0,8));
+ Row title = sheet.createRow(0);
+ title.setHeight((short) 1000);
+ Cell c = title.createCell(0);
+ c.setCellValue(sheetName);
+ configFirstCell(sxssfWorkbook,c);
+ Row header1 = sheet.createRow(1);
+ header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
+ header1.createCell(3).setCellValue("淇濋櫓鏂规");
+ header1.createCell(4).setCellValue("淇濆崟鍙�");
+ header1.createCell(5).setCellValue("淇濋櫓鐢熸晥璧锋湡");
+ header1.createCell(6).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
+ header1.createCell(9).setCellValue("鍔犱繚浜烘暟");
+ header1.createCell(10).setCellValue("鍑忎繚浜烘暟");
+ header1.createCell(11).setCellValue("鏈熸湜鎵瑰崟鐢熸晥鏈�");
+ for (int i = 0; i < 12; i++) {
+ configFirstCell(sxssfWorkbook,header1.getCell(i));
+ }
+ sheet.addMergedRegion(new CellRangeAddress(1 ,1,0,2));
+ sheet.addMergedRegion(new CellRangeAddress(1 ,1,6,8));
+
+
+ Row header2 = sheet.createRow(2);
+ header2.createCell(0).setCellValue(data.getCompanyName());
+ header2.createCell(3).setCellValue(data.getSolutionsName());
+ header2.createCell(4).setCellValue(data.getApplyCode());
+ header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
+ header2.createCell(6).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
+ header2.createCell(9).setCellValue(data.getAddNum());
+ header2.createCell(10).setCellValue(data.getDelNum());
+ header2.createCell(11).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
+ sheet.addMergedRegion(new CellRangeAddress(2 ,2,0,2));
+ sheet.addMergedRegion(new CellRangeAddress(2 ,2,6,8));
+ //绌虹櫧琛�
+ Row header3 = sheet.createRow(3);
+ header2.createCell(0).setCellValue("鍔犱繚浜哄憳");
+ header2.createCell(6).setCellValue("鍑忎繚浜哄憳");
+ sheet.addMergedRegion(new CellRangeAddress(3 ,3,0,5));
+ sheet.addMergedRegion(new CellRangeAddress(3 ,3,6,11));
+ for (int i = 0; i < 12; i++) {
+ configFirstCell(sxssfWorkbook,header2.getCell(i));
+ }
+ Row header4 = sheet.createRow(4);
+ header4.createCell(0).setCellValue("搴忓彿");
+ header4.createCell(1).setCellValue("鍛樺伐濮撳悕");
+ header4.createCell(2).setCellValue("鎬у埆");
+ header4.createCell(3).setCellValue("韬唤璇佸彿");
+ header4.createCell(4).setCellValue("娲鹃仯鍗曚綅");
+ header4.createCell(5).setCellValue("鎵�灞炲伐绉�");
+ header4.createCell(6).setCellValue("搴忓彿");
+ header4.createCell(7).setCellValue("鍛樺伐濮撳悕");
+ header4.createCell(8).setCellValue("鎬у埆");
+ header4.createCell(9).setCellValue("韬唤璇佸彿");
+ header4.createCell(10).setCellValue("娲鹃仯鍗曚綅");
+ header4.createCell(11).setCellValue("鎵�灞炲伐绉�");
+ for (int i = 0; i < 12; i++) {
+ configFirstCell(sxssfWorkbook,header4.getCell(i));
+ }
+ int maxNum = data.getAddNum()>data.getDelNum()?data.getAddNum():data.getDelNum();
+ // 鍒涘缓鏁版嵁璁板綍
+ for (int rowIndex = 0; rowIndex <maxNum; rowIndex++) {
+ ApplyChagneDetail addModel = data.getAddDetailList().size()> rowIndex?data.getAddDetailList().get(rowIndex):null;
+ ApplyChagneDetail delModel = data.getDelDetailList().size()> rowIndex?data.getDelDetailList().get(rowIndex):null;
+ Row header5 = sheet.createRow(rowIndex + 5);
+ if(addModel!=null){
+ header5.createCell(0).setCellValue(rowIndex+1);
+ header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
+ header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"鐢�":(Constants.equalsInteger(addModel.getSex(),1)?"濂�":"-"));
+ header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
+ header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
+ header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
+ }
+ if(delModel!=null){
+ header5.createCell(6).setCellValue(rowIndex+1);
+ header5.createCell(7).setCellValue(StringUtils.defaultString(delModel.getMemberName(),""));
+ header5.createCell(8).setCellValue(Constants.equalsInteger(delModel.getSex(),0)?"鐢�":(Constants.equalsInteger(delModel.getSex(),1)?"濂�":"-"));
+ header5.createCell(9).setCellValue(StringUtils.defaultString(delModel.getIdcardNo(),""));
+ header5.createCell(10).setCellValue(StringUtils.defaultString(delModel.getDuName(),""));
+ header5.createCell(11).setCellValue(StringUtils.defaultString(delModel.getWorkTypeName(),""));
+ }
+ }
+ int rowIndex = 4+data.getChangeDetailList().size();
+ Row header6= sheet.createRow(4+data.getChangeDetailList().size());
+ header6.createCell(0).setCellValue("鎶曚繚浼佷笟鐢虫槑:\n" +
+ "1銆佸湪鐢宠涔︿笂濉啓鐨勪竴鍒囧唴瀹瑰睘瀹烇紝鍚﹀垯鏈紒涓氭壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
+ "2銆佺敱浜庡彉鏇村彈鐩婁汉浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
+ "3銆佹湰鐢宠琛ㄧ殑绛剧珷涓烘湰浼佷笟浜茶嚜绛剧讲锛屽鐢辨浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n");
+ configInfoCell(sxssfWorkbook,header6.getCell(0),HorizontalAlignment.LEFT);
+ sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,1,12));
+ Row header7= sheet.createRow(rowIndex+1);
+ header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛� \n" +"鏃ユ湡锛� 骞� 鏈� 鏃� ");
+ sheet.addMergedRegion(new CellRangeAddress(rowIndex+1 ,rowIndex+1,1,12));
+ configInfoCell(sxssfWorkbook,header7.getCell(0),HorizontalAlignment.RIGHT);
+ //涓存椂缂撳啿鍖�
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ //鍒涘缓涓存椂鏂囦欢
+ sxssfWorkbook.write(out);
+ byte [] bookByteAry = out.toByteArray();
+ InputStream in = new ByteArrayInputStream(bookByteAry);
+ String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf";
+ ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF
+ File f = new File(tempPdf);
+ if(f!=null && f.isFile()){
+ return tempPdf;
+ }
+ } catch (Exception e) {
+ // throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+ }
+ return null;
+ }
/**
* 瀵煎嚭鍔犲噺淇濈敵璇疯鍗�
* @param data 鏁版嵁
@@ -648,6 +802,9 @@
header1.createCell(5).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
header1.createCell(6).setCellValue("鎹㈠巶浜烘暟");
header1.createCell(7).setCellValue("鏈熸湜鎵瑰崟鐢熸晥鏈�");
+ for (int i = 0; i < 8; i++) {
+ configFirstCell(sxssfWorkbook,header1.getCell(i));
+ }
sheet.addMergedRegion(new CellRangeAddress(1 ,1,1,2));
Row header2 = sheet.createRow(2);
@@ -669,6 +826,9 @@
header4.createCell(5).setCellValue("鍘熸墍鎵�灞炲伐绉�");
header4.createCell(6).setCellValue("鏇存敼鍚庢淳閬e崟浣�");
header4.createCell(7).setCellValue("鏇存敼鍚庢墍灞炲伐绉�");
+ for (int i = 0; i < 8; i++) {
+ configFirstCell(sxssfWorkbook,header4.getCell(i));
+ }
// 鍒涘缓鏁版嵁璁板綍
for (int rowIndex = 0; rowIndex <data.getChangeDetailList().size(); rowIndex++) {
ApplyChagneDetail addModel = data.getChangeDetailList().get(rowIndex);
@@ -696,6 +856,101 @@
}
}
}
+ /**
+ * 瀵煎嚭鍔犲噺淇濈敵璇疯鍗�
+ * @param data 鏁版嵁
+ * @param sheetName Sheet鍚嶇О
+ */
+ public String exportChangeUnitExcelToPdf (ApplyChange data, String sheetName) {
+ SXSSFWorkbook sxssfWorkbook;
+ try {
+ sxssfWorkbook = new SXSSFWorkbook();
+ Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+ sheet.createFreezePane(0, 1);
+ sheet.addMergedRegion(new CellRangeAddress(0 ,0,0,8));
+ Row title = sheet.createRow(0);
+ title.setHeight((short) 1000);
+ Cell c = title.createCell(0);
+ c.setCellValue(sheetName);
+ configFirstCell(sxssfWorkbook,c);
+ Row header1 = sheet.createRow(1);
+ header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
+ header1.createCell(1).setCellValue("淇濋櫓鏂规");
+ header1.createCell(3).setCellValue("淇濆崟鍙�");
+ header1.createCell(4).setCellValue("淇濋櫓鐢熸晥璧锋湡");
+ header1.createCell(5).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
+ header1.createCell(6).setCellValue("鎹㈠巶浜烘暟");
+ header1.createCell(7).setCellValue("鏈熸湜鎵瑰崟鐢熸晥鏈�");
+ for (int i = 0; i < 8; i++) {
+ configFirstCell(sxssfWorkbook,header1.getCell(i));
+ }
+ sheet.addMergedRegion(new CellRangeAddress(1 ,1,1,2));
+
+ Row header2 = sheet.createRow(2);
+ header2.createCell(0).setCellValue(data.getCompanyName());
+ header2.createCell(1).setCellValue(data.getSolutionsName());
+ header2.createCell(3).setCellValue(data.getApplyCode());
+ header2.createCell(4).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
+ header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
+ header2.createCell(6).setCellValue(data.getChangeNum());
+ header2.createCell(7).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
+ sheet.addMergedRegion(new CellRangeAddress(2 ,2,1,2));
+
+ Row header4 = sheet.createRow(3);
+ header4.createCell(0).setCellValue("搴忓彿");
+ header4.createCell(1).setCellValue("鍛樺伐濮撳悕");
+ header4.createCell(2).setCellValue("鎬у埆");
+ header4.createCell(3).setCellValue("韬唤璇佸彿");
+ header4.createCell(4).setCellValue("鍘熸淳閬e崟浣�");
+ header4.createCell(5).setCellValue("鍘熸墍鎵�灞炲伐绉�");
+ header4.createCell(6).setCellValue("鏇存敼鍚庢淳閬e崟浣�");
+ header4.createCell(7).setCellValue("鏇存敼鍚庢墍灞炲伐绉�");
+ for (int i = 0; i < 8; i++) {
+ configFirstCell(sxssfWorkbook,header4.getCell(i));
+ }
+ // 鍒涘缓鏁版嵁璁板綍
+ for (int rowIndex = 0; rowIndex <data.getChangeDetailList().size(); rowIndex++) {
+ ApplyChagneDetail addModel = data.getChangeDetailList().get(rowIndex);
+ Row header5 = sheet.createRow(rowIndex + 4);
+ header5.createCell(0).setCellValue(rowIndex+1);
+ header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
+ header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"鐢�":(Constants.equalsInteger(addModel.getSex(),1)?"濂�":"-"));
+ header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
+ header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getOldDuName(),""));
+ header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getOldWorkTypeName(),""));
+ header5.createCell(6).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
+ header5.createCell(7).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
+ }
+ int rowIndex = 4+data.getChangeDetailList().size();
+ Row header6= sheet.createRow(4+data.getChangeDetailList().size());
+ header6.createCell(0).setCellValue("鎶曚繚浼佷笟鐢虫槑:\n" +
+ "1銆佸湪鐢宠涔︿笂濉啓鐨勪竴鍒囧唴瀹瑰睘瀹烇紝鍚﹀垯鏈紒涓氭壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
+ "2銆佺敱浜庡彉鏇村彈鐩婁汉浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
+ "3銆佹湰鐢宠琛ㄧ殑绛剧珷涓烘湰浼佷笟浜茶嚜绛剧讲锛屽鐢辨浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n");
+ configInfoCell(sxssfWorkbook,header6.getCell(0),HorizontalAlignment.LEFT);
+ sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,1,8));
+ Row header7= sheet.createRow(rowIndex+1);
+ header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛� \n" +"鏃ユ湡锛� 骞� 鏈� 鏃� ");
+ sheet.addMergedRegion(new CellRangeAddress(rowIndex+1 ,rowIndex+1,1,8));
+ configInfoCell(sxssfWorkbook,header7.getCell(0),HorizontalAlignment.RIGHT);
+ //涓存椂缂撳啿鍖�
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ //鍒涘缓涓存椂鏂囦欢
+ sxssfWorkbook.write(out);
+ byte [] bookByteAry = out.toByteArray();
+ InputStream in = new ByteArrayInputStream(bookByteAry);
+ String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf";
+ ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF
+ File f = new File(tempPdf);
+ if(f!=null && f.isFile()){
+ return tempPdf;
+ }
+ return tempPdf;
+ } catch (Exception e) {
+ // throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+ }
+ return null;
+ }
@Data
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
index 1e6d4e3..517deba 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
@@ -2,6 +2,8 @@
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
+import java.io.InputStream;
+
/**
* Excel瀵煎嚭瀹炵幇
* @author Eva.Caesar Liu
@@ -30,7 +32,20 @@
//鍒涘缓Workbook 瀹炰緥骞跺姞杞界ず渚嬫枃妗�
Workbook workbook = new Workbook();
workbook.loadFromFile(inputExcelPath);
+ //杞崲鏃惰缃伐浣滆〃閫傚簲瀹藉害
+ workbook.getConverterSetting().setSheetFitToWidth(true);
+ //鑾峰彇绗竴涓伐浣滆〃
+ Worksheet worksheet = workbook.getWorksheets().get(0);
+
+ //淇濆瓨涓篜DF鏂囨。鏍煎紡
+ worksheet.saveToPdf(outputPdfPath);
+
+ }
+ public static void excelToPdf(InputStream is,String outputPdfPath) {
+ //鍒涘缓Workbook 瀹炰緥骞跺姞杞界ず渚嬫枃妗�
+ Workbook workbook = new Workbook();
+ workbook.loadFromStream(is);
//杞崲鏃惰缃伐浣滆〃閫傚簲瀹藉害
workbook.getConverterSetting().setSheetFitToWidth(true);
diff --git a/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java b/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
index 0dbd51a..46f3def 100644
--- a/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
@@ -112,4 +112,8 @@
ApplyChange exportJiajianBaoExcel(ApplyChange model);
ApplyChange exportChangeUnitExcel(ApplyChange model);
+
+ String getSignLinkJiajiabao(ApplyChange model);
+
+ String getSignLinkChangeUnit(ApplyChange model);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 9264c44..d43ad88 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -1,6 +1,8 @@
package com.doumee.service.business.impl;
import com.alibaba.fastjson.JSONObject;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -21,6 +23,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.SignService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
@@ -56,6 +59,10 @@
@Autowired
private ApplyChangeJoinMapper applyChangeJoinMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private SignService signService;
@Autowired
private ApplyChagneDetailJoinMapper applyChagneDetailJoinMapper;
@@ -946,6 +953,59 @@
model.setChangeNum(model.getChangeDetailList().size());
return model;
}
+ /**
+ * 瀵煎嚭鎹㈠巶鐢宠琛�
+ * @param param
+ * @return
+ */
+ @Override
+ public String getSignLinkJiajiabao(ApplyChange param){
+ ApplyChange model = exportJiajianBaoExcel(param);
+ return getOnlineSignLink(model);
+ }
+ /**
+ * 瀵煎嚭鎹㈠巶鐢宠琛�
+ * @param param
+ * @return
+ */
+ @Override
+ public String getSignLinkChangeUnit(ApplyChange param){
+ ApplyChange model = exportChangeUnitExcel(param);
+ return getOnlineSignLink(model);
+ }
+
+ private String getOnlineSignLink(ApplyChange model) {
+ if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(Constants.ZERO,model.getStatus())){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔绛剧珷鎿嶄綔锛�");
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ Company company = user.getCompany();
+ if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
+ }
+
+ String fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"缂撳瓨鐢宠琛�");
+ String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
+ notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
+ String applyNo = signService.applySignLocalFile(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl);
+ if(StringUtils.isBlank(applyNo) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ String link = signService.signLink(applyNo,company.getEmail(),company.getCode());
+ if(StringUtils.isBlank(link) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ ApplyChange update= new ApplyChange();
+ update.setId(model.getId());
+ update.setEditor(user.getId());
+ update.setEditDate(new Date());
+ update.setSignApplyNo(applyNo);
+ applyChangeMapper.updateById(update);
+ return link;
+ }
/**
diff --git a/server/service/src/main/java/com/doumee/service/business/third/SignService.java b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
index bf22a3c..e2aabab 100644
--- a/server/service/src/main/java/com/doumee/service/business/third/SignService.java
+++ b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
@@ -295,6 +295,54 @@
return null;
}
+ /**
+ * 鍙戣捣绛剧害
+ * @param name
+ * @param fileUrl
+ * @param file
+ * @param creditCoe
+ * @param email
+ * @param postionJson
+ */
+ public String applySignLocalFile(String name,String fullname,String file,String creditCoe,String email,String postionJson,String singId,String notifyUrl){
+ try {
+ String url=SERVICE_URL+"/v2/sign/applySign";
+ Map<String, Object> params=bodyParams;
+ params.put("contractName",name); //鍚堝悓鍚嶇О
+ params.put("serverCa",1); //浣跨敤浜戣瘉涔�
+ params.put("file",new File(file));
+ params.put("dealType",5); //鎸囧畾鍚堝悓鏂囦欢绛剧讲鏂瑰紡 5 涓洪儴鍒嗚嚜鍔ㄧ
+ params.put("positionType",1); //鎸囧畾閫氳繃琛ㄥ崟鍩熸柟寮忚缃瀛椾綅缃�
+ params.put("fileType",0);
+ params.put("needQifengSign",1);
+ params.put("notifyUrl",notifyUrl);
+ JSONArray signatories=new JSONArray();
+ SignatoryReq sReq=new SignatoryReq();
+ sReq.setFullName(fullname); //浼佷笟濮撳悕
+ sReq.setIdentityType(11); //璇佷欢绫诲瀷
+ sReq.setIdentityCard(creditCoe);//钀ヤ笟鎵х収鍙�
+ sReq.setEmail(email); //鍦ㄥ悰瀛愮娉ㄥ唽璁よ瘉鐨勯偖绠�
+// sReq.setChapteJson("[{\"page\":0,\"chaptes\":[{\"offsetX\":0.12,\"offsetY\":0.23}]},{\"page\":1,\"chaptes\":[{\"offsetX\":0.45,\"offsetY\":0.67}]}]");
+// sReq.setChapteJson(postionJson);
+ sReq.setSearchKey(postionJson);
+ sReq.setSignId(singId);
+ sReq.setNoNeedVerify(1);
+ signatories.add(sReq);
+ params.put("signatories",signatories.toJSONString());
+ System.out.println(signatories.toJSONString());
+ String str= HttpClientUtils.init().getPost(url,null,params,true);
+ System.out.println(str);
+ saveInterfaceLog(url,"銆愮數瀛愮銆戝彂璧风绾�",JSONObject.toJSONString(params),str);
+ JSONObject json = JSONObject.parseObject(str);
+ if(json!=null && json.getBoolean("success")){
+ return json.getString("data");
+ }
+ }catch (Exception e){
+
+ }
+ return null;
+
+ }
/**
--
Gitblit v1.9.3