Ver Fonte

1.平台上涉及投保人名称的统一默认为:湖北远鹏众创空间科技有限公司;联系电话:13907216102。
2.投保人声明这里加上远鹏众创空间的电子签章,就是上面有两个电子签章:一个 是远鹏的,一个是客户的。

zhengqiang há 5 anos atrás
pai
commit
1383d744da

+ 5 - 1
picc-admin-server/src/main/java/com/jpsoft/picc/modules/base/controller/AttachmentController.java

@@ -37,6 +37,7 @@ import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.util.StringUtil;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -91,6 +92,9 @@ public class AttachmentController {
     @Autowired
     private CompanyMemberService companyMemberService;
 
+    @Value("${insurance.stampFileUrl}")
+    private String defaultStampFileUrl;
+
     @PostMapping("/base/attachment/upload")
     @ResponseBody
     @ApiOperation(value="附件上传")
@@ -268,7 +272,7 @@ public class AttachmentController {
                     try {
                         //水印背景变透明
                         transferAlpha2File(watermarkLogoPath,watermarkLogoPath2);
-                        Watermark.imageWatermark(filePath, watermarkFilePath, watermarkLogoPath2);
+                        Watermark.imageWatermark(filePath, watermarkFilePath, watermarkLogoPath2, defaultStampFileUrl);
                         filePath = watermarkFilePath;
                     }
                     catch (Exception e){

+ 5 - 0
picc-admin-server/src/main/resources/application.yml

@@ -113,3 +113,8 @@ pdf:
   logoUrl: C:/Users/Administrator/Desktop/picc/logo.png
   imageWaterMarkUrl: C:/Users/Administrator/Desktop/picc/logo.png
   downloadFilePath: C:/Users/Administrator/Desktop/投保单.pdf
+
+insurance:
+  insuredName: "湖北远鹏众创空间科技有限公司"
+  insuredTel: "13907216102"
+  stampFileUrl: "http://rccs.oss-cn-hangzhou.aliyuncs.com/picc/company/2020/3/%E6%B9%96%E5%8C%97%E8%BF%9C%E9%B9%8F%E4%BC%97%E5%88%9B%E7%A9%BA%E9%97%B4%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B830131324437.png"

+ 68 - 56
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/Watermark.java

@@ -7,6 +7,7 @@ import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
 import com.itextpdf.text.pdf.parser.RenderListener;
 import com.itextpdf.text.pdf.parser.TextRenderInfo;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 
 import java.io.FileOutputStream;
 import java.util.ArrayList;
@@ -41,9 +42,9 @@ public class Watermark extends PdfPageEventHelper {
         }
     }
 
-    public static void imageWatermark(String inputPath, String outputPath,String imageUrl) throws Exception{
+    public static void imageWatermark(String inputPath, String outputPath, String imageUrl, String defaultStampFileUrl) throws Exception {
 
-        try{
+        try {
             PdfReader reader = new PdfReader(inputPath);
             PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPath));
             PdfGState gs1 = new PdfGState();
@@ -51,6 +52,8 @@ public class Watermark extends PdfPageEventHelper {
 
             Image image = Image.getInstance(imageUrl);
 
+            Image defaultImage = Image.getInstance(defaultStampFileUrl);
+
             //设置白色背景图透明
             //如果是RGBImage,Image.Transparency数组的格式为{red起始值, red终止值, green起始值, green终止值, blue起始值, blue终止值};范围为0~255
             //image.setTransparency(new int[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF});
@@ -61,70 +64,77 @@ public class Watermark extends PdfPageEventHelper {
             int pageNumber = 0;
             final ArrayList<Float> posList = new ArrayList<>();
 
-            for (int m = 2;m<5;m++){
-                 pageNumber = m;
-
+            for (int m = 2; m < 5; m++) {
+                pageNumber = m;
 
-            under = stamper.getOverContent(pageNumber);
-            under.setGState(gs1);
-
-             pageRect = reader.getPageSizeWithRotation(pageNumber);
+                under = stamper.getOverContent(pageNumber);
+                under.setGState(gs1);
 
-            image.scaleToFit(pageRect.getWidth()/6,pageRect.getHeight()/6);
+                pageRect = reader.getPageSizeWithRotation(pageNumber);
 
-            //读取【投保人签名 / 签章】位置
-            PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(reader);
+                image.scaleToFit(pageRect.getWidth() / 6, pageRect.getHeight() / 6);
 
-            String keyword = "投保人签名 / 签章";
+                if (defaultImage != null) {
+                    defaultImage.scaleToFit(pageRect.getWidth() / 6, pageRect.getHeight() / 6);
+                }
 
+                //读取【投保人签名 / 签章】位置
+                PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(reader);
 
-            pdfReaderContentParser.processContent(pageNumber, new RenderListener() {
-                @Override
-                public void renderText(TextRenderInfo textRenderInfo) {
-                    String text = textRenderInfo.getText(); // 整页内容
+                String keyword = "投保人签名 / 签章";
 
-                    if (null != text && text.contains(keyword)) {
-                        com.itextpdf.awt.geom.Rectangle2D.Float boundingRectangle = textRenderInfo.getBaseline().getBoundingRectange();
-                        posList.add(boundingRectangle.x);
-                        posList.add(boundingRectangle.y);
+                pdfReaderContentParser.processContent(pageNumber, new RenderListener() {
+                    @Override
+                    public void renderText(TextRenderInfo textRenderInfo) {
+                        String text = textRenderInfo.getText(); // 整页内容
 
+                        if (null != text && text.contains(keyword)) {
+                            com.itextpdf.awt.geom.Rectangle2D.Float boundingRectangle = textRenderInfo.getBaseline().getBoundingRectange();
+                            posList.add(boundingRectangle.x);
+                            posList.add(boundingRectangle.y);
+                        }
                     }
-                }
 
-                @Override
-                public void renderImage(ImageRenderInfo arg0) {
-                    // TODO Auto-generated method stub
+                    @Override
+                    public void renderImage(ImageRenderInfo arg0) {
+                        // TODO Auto-generated method stub
 
-                }
+                    }
 
-                @Override
-                public void endTextBlock() {
-                    // TODO Auto-generated method stub
+                    @Override
+                    public void endTextBlock() {
+                        // TODO Auto-generated method stub
 
-                }
+                    }
 
-                @Override
-                public void beginTextBlock() {
-                    // TODO Auto-generated method stub
+                    @Override
+                    public void beginTextBlock() {
+                        // TODO Auto-generated method stub
 
+                    }
+                });
+                if (posList.size() > 0) {
+                    break;
+                } else {
+                    continue;
                 }
-            });
-            if (posList.size()>0){
-                break;
-            }else {
-                continue;
-            }
 
             }
 
-            if (posList.size()>0) {
+            if (posList.size() > 0) {
                 image.setAbsolutePosition(posList.get(0) + 100, posList.get(1));
                 under.addImage(image);
+
+                if (defaultImage != null) {
+                    float width = pageRect.getWidth() / 6;
+                    defaultImage.setAbsolutePosition(posList.get(0) + 100 + width + 10, posList.get(1));
+                    under.addImage(defaultImage);
+                }
             }
 
             int personListNumber = 0;
             final ArrayList<Integer> personList = new ArrayList<>();
-            for (int l=pageNumber+1;l<10;l++){
+            for (int l = pageNumber + 1; l < 10; l++) {
                 personListNumber = l;
                 //读取【投保人签名 / 签章】位置
                 PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(reader);
@@ -144,27 +154,23 @@ public class Watermark extends PdfPageEventHelper {
                     @Override
                     public void renderImage(ImageRenderInfo arg0) {
                         // TODO Auto-generated method stub
-
                     }
 
                     @Override
                     public void endTextBlock() {
                         // TODO Auto-generated method stub
-
                     }
 
                     @Override
                     public void beginTextBlock() {
                         // TODO Auto-generated method stub
-
                     }
                 });
-                if (personList.size()>0){
+                if (personList.size() > 0) {
                     break;
-                }else {
+                } else {
                     continue;
                 }
-
             }
 
             for (int i = personListNumber; i <= n; i++) {
@@ -172,15 +178,19 @@ public class Watermark extends PdfPageEventHelper {
                 under = stamper.getOverContent(i);
                 under.setGState(gs1);
 
-           //     Rectangle pageRect1 = reader.getPageSizeWithRotation(i);
+                //     Rectangle pageRect1 = reader.getPageSizeWithRotation(i);
 
                 //A4像素 842*596
                 float maxSize = 842;
-             //   image.setRotation(45);
-                image.scaleToFit(pageRect.getWidth()/6,pageRect.getHeight()/6);
-                image.setAbsolutePosition(2*pageRect.getWidth()/3,4*pageRect.getHeight()/5);
+                //   image.setRotation(45);
+                image.scaleToFit(pageRect.getWidth() / 6, pageRect.getHeight() / 6);
+                image.setAbsolutePosition(2 * pageRect.getWidth() / 3, 4 * pageRect.getHeight() / 5);
                 under.addImage(image);
 
+                defaultImage.scaleToFit(pageRect.getWidth() / 6, pageRect.getHeight() / 6);
+                defaultImage.setAbsolutePosition(80, 4 * pageRect.getHeight() / 5);
+                under.addImage(defaultImage);
+
 //                for (int y = 0; y < Math.min(pageRect.getHeight(), maxSize); y += imgHeight)
 //                {
 //                    for (int x = 0; x < Math.min(pageRect.getWidth(), maxSize); x += imgWidth)
@@ -200,20 +210,22 @@ public class Watermark extends PdfPageEventHelper {
             }
             stamper.close();
             reader.close();
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
         }
     }
 
-
     public static void main(String[] args) {
         try {
-            Watermark.imageWatermark("E:\\test.pdf","E:\\test2.pdf","C:\\picc\\logo.png");
+            String imageUrl = "http://rccs.oss-cn-hangzhou.aliyuncs.com/picc/company/2020/4/荆鹏公章08165131844.png";
+            String defaultStampFileUrl = "http://rccs.oss-cn-hangzhou.aliyuncs.com/picc/company/2020/3/湖北远鹏众创空间科技有限公司30131324437.png";
+
+            Watermark.imageWatermark("E:\\20200401100411414.pdf", "E:\\test2.pdf", imageUrl, defaultStampFileUrl);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        System.out.println("done");
 
+        System.out.println("done");
     }
 }
 

+ 13 - 2
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsuranceApplicationController.java

@@ -29,6 +29,7 @@ import org.joda.time.Days;
 import org.joda.time.Interval;
 import org.joda.time.Months;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -91,6 +92,12 @@ public class InsuranceApplicationController {
     @Autowired
     private TemplateMessageService templateMessageService;
 
+    @Value("${insurance.insuredName}")
+    private String defaultInsureName;
+
+    @Value("${insurance.insuredTel}")
+    private String defaultInsureTel;
+
     @ApiOperation(value="投保单列表")
     @RequestMapping(value = "pageList",method = RequestMethod.POST)
     @ApiImplicitParams({
@@ -215,8 +222,12 @@ public class InsuranceApplicationController {
                 insuranceApplicationDTO.setApplicationId(UUID.randomUUID().toString());
 
                 insuranceApplicationDTO.setCompanyId(company.getId());
-                insuranceApplicationDTO.setInsuredName(company.getName());
-                insuranceApplicationDTO.setInsuredTel(company.getLegalPhone());
+//                insuranceApplicationDTO.setInsuredName(company.getName());
+//                insuranceApplicationDTO.setInsuredTel(company.getLegalPhone());
+                //平台上涉及投保人名称的统一默认为:湖北远鹏众创空间科技有限公司;联系电话:13907216102
+                insuranceApplicationDTO.setInsuredName(defaultInsureName);
+                insuranceApplicationDTO.setInsuredTel(defaultInsureTel);
+
                 insuranceApplicationDTO.setCompanyName(company.getName());
                 insuranceApplicationDTO.setBusinessNature(company.getBusinessNature());
                 insuranceApplicationDTO.setUsccCode(company.getUsccCode());

+ 4 - 3
picc-enterprise-server/src/main/resources/application-dev.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8086
+  port: 8082
   servlet:
     context-path: /picc-enterprise-server
 
@@ -14,11 +14,12 @@ spring:
       enabled: true
 
 cas:
-#  server-url-prefix: http://localhost:8080/cas-server bn
+  #server-url-prefix: http://localhost:8080/cas-server
   server-url-prefix: http://gyxm.jing-zhou.gov.cn/jp-cloud-cas
   server-login-url: ${cas.server-url-prefix}/login
+  #nginx 端口号
   client-host-url: http://localhost:7070
-  # 如果不设则无法获取用户扩展信息
+  #如果不设则无法获取用户扩展信息
   validation-type: cas
 
 jpcloud:

+ 5 - 0
picc-enterprise-server/src/main/resources/application.yml

@@ -110,3 +110,8 @@ oss:
   bucketName: rccs
   urlPrefix: http://rccs.oss-cn-hangzhou.aliyuncs.com
   objectPre: picc
+
+insurance:
+  insuredName: "湖北远鹏众创空间科技有限公司"
+  insuredTel: "13907216102"
+  stampFileUrl: "http://rccs.oss-cn-hangzhou.aliyuncs.com/picc/company/2020/3/%E6%B9%96%E5%8C%97%E8%BF%9C%E9%B9%8F%E4%BC%97%E5%88%9B%E7%A9%BA%E9%97%B4%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B830131324437.png"