From 56c8bc18def3992259da50948119259f571d04ee Mon Sep 17 00:00:00 2001
From: zhijie <1003392067@qq.com>
Date: 星期二, 08 六月 2021 23:25:39 +0800
Subject: [PATCH] MAQ简易版泰文支持,SAQ简易版支持

---
 src/main/java/com/ots/project/tool/exam/ImageUtil.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ots/project/tool/exam/ImageUtil.java b/src/main/java/com/ots/project/tool/exam/ImageUtil.java
index ff2b699..dcf2dcd 100644
--- a/src/main/java/com/ots/project/tool/exam/ImageUtil.java
+++ b/src/main/java/com/ots/project/tool/exam/ImageUtil.java
@@ -85,6 +85,15 @@
         }
         return width;
     }
+
+    /**
+     * 鍒涘缓姘存淮鍥剧墖
+     * @param key
+     * @param waterDrop
+     * @param scorceF
+     * @param member_id
+     * @param suffixDate
+     */
     public static void creteWaterDropPic(String key, String waterDrop, float scorceF, String member_id, String suffixDate) {
         int CANVAS_W = 1000; 
         int CANVAS_H = 96; 
@@ -95,10 +104,24 @@
         int barImageY = 30; 
         float scorce =  scorceF / 100;
         if (key.indexOf("ResponseFidelityDiagnosis") != -1) {
-            CANVAS_H = 105;
+        	CANVAS_H = 105;
             waterDropImageX = 2;
             scorce100 = 812;
             barImageY = 5;
+        }
+        if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1) {
+            CANVAS_H = 400;
+            waterDropImageX = -30;
+            scorce100 = 800;
+            barImageY = 5;
+            waterDropImageY = 0;
+        }
+        if (key.indexOf("ResponseFidelityDiagnosisSAQGs") != -1) {
+            CANVAS_H = 400;
+            waterDropImageX = -30;
+            scorce100 = 800;
+            barImageY = 5;
+            waterDropImageY = 0;
         }
         if (key.indexOf("RuilinTestResultValidityDiagnosisContext") != -1) {
             CANVAS_H = 105;
@@ -130,6 +153,9 @@
         } else {
             barName = "";
         }
+        if(StringUtils.isBlank(barName)){
+        	return;
+        }
         BufferedImage barImage = getImage(reportTemplates + barName);
         BufferedImage waterDropImage = getImage(reportTemplates + waterDrop);
         
@@ -153,7 +179,11 @@
         
         int waterDropOffsetX = setWaterDrop(waterDrop, waterDropImageX, waterDropImageY, scorce100, scorce, g2d, waterDropImage);
         
-        setText(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX);
+        if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1 || key.indexOf("ResponseFidelityDiagnosisSAQGs") != -1) {
+        	setTextV2(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX);
+        }else{
+        	setText(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX);
+        }
         g2d.dispose();
         
         outputBarWaterImage(key + "_" + member_id + "_" + String.valueOf(scorceF)+"_" + suffixDate, image);
@@ -165,6 +195,25 @@
         } catch (IOException e) {
             e.printStackTrace();
         }
+    }
+    private static void setTextV2(String value, Graphics2D g2d, int waterDropOffsetX) {
+        g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
+        
+        g2d.setColor(Color.BLACK);
+        Font font = new Font("", Font.BOLD, 16);
+        g2d.setFont(font);
+        
+        int numX = 0;
+        int numY = 17;
+        if (value.length() == 2) {
+            numX = 36;
+        } else if (value.length() == 3) {
+            numX = 32;
+        } else if (value.length() == 1) {
+            numX = 42;
+        }
+        
+        g2d.drawString(value, numX + waterDropOffsetX, numY);
     }
     private static void setText(String value, Graphics2D g2d, int waterDropOffsetX) {
         g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
@@ -207,6 +256,7 @@
             return image;
         } catch (IOException e) {
             log.info("寮傚父鍥剧墖锛�" + path);
+            log.error("{}鍙戠敓寮傚父:{}",path, e);
             throw new RuntimeException("鑾峰彇鍥剧墖璧勬簮寮傚父", e);
         }
     }

--
Gitblit v1.9.1