From 069faaad2f86e570842e4717ea0419e2daef9924 Mon Sep 17 00:00:00 2001 From: 18756 <1875631620@qq.com> Date: 星期二, 20 八月 2024 11:00:45 +0800 Subject: [PATCH] 会议室功能优化8.20 --- src/main/java/com/product/administration/service/ide/IConferenceManagerService.java | 6 +++ src/main/java/com/product/administration/controller/ConferenceManagerController.java | 14 +++++++ src/main/java/com/product/administration/service/ConferenceManagerService.java | 60 ++++++++++++++++++++++++++++- 3 files changed, 77 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/product/administration/controller/ConferenceManagerController.java b/src/main/java/com/product/administration/controller/ConferenceManagerController.java index b61739f..2e5d6ce 100644 --- a/src/main/java/com/product/administration/controller/ConferenceManagerController.java +++ b/src/main/java/com/product/administration/controller/ConferenceManagerController.java @@ -2,6 +2,7 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSONObject; +import com.google.zxing.WriterException; import com.product.administration.config.CmnConst; import com.product.administration.config.SystemCode; import com.product.administration.service.ConferenceManagerService; @@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; +import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -484,4 +486,16 @@ } + @PostMapping("/get_QrCode/{version}") + @ApiVersion(1) + public String getQrCode(HttpServletRequest request) throws IOException, WriterException { + FieldSetEntity fse = null; + conferenceManagerService.getQrCode(fse); + return OK(); + } + + + + + } diff --git a/src/main/java/com/product/administration/service/ConferenceManagerService.java b/src/main/java/com/product/administration/service/ConferenceManagerService.java index cd024f7..5853818 100644 --- a/src/main/java/com/product/administration/service/ConferenceManagerService.java +++ b/src/main/java/com/product/administration/service/ConferenceManagerService.java @@ -2,6 +2,11 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.MultiFormatWriter; +import com.google.zxing.WriterException; +import com.google.zxing.common.BitMatrix; import com.product.administration.config.CmnConst; import com.product.administration.config.SystemCode; import com.product.administration.service.ide.IConferenceManagerService; @@ -24,6 +29,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; import java.text.DecimalFormat; import java.text.Format; import java.text.SimpleDateFormat; @@ -307,10 +316,10 @@ sb.append(" SELECT T1.*, "); sb.append(" SUBSTRING_INDEX( SUBSTRING_INDEX( T1.meeting_resource, ',', T2.digit + 1 ), ',',- 1 ) AS type "); sb.append(" FROM product_oa_conference_apply T1 "); - sb.append(" JOIN ( SELECT 0 AS digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 ) T2"); + sb.append(" LEFT JOIN ( SELECT 0 AS digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 ) T2"); sb.append(" ON T2.digit < ( length( T1.meeting_resource )- length( REPLACE ( T1.meeting_resource, ',', '' ))+ 1 )"); - sb.append(" WHERE t1.meeting_room = ? "); - sb.append(" and DATE_FORMAT(t1.start_time,\"%Y-%m-%d\")=? "); + sb.append(" WHERE T1.meeting_room = ? "); + sb.append(" and DATE_FORMAT(T1.start_time,\"%Y-%m-%d\")=? "); sb.append(" ) a"); sb.append(" LEFT JOIN product_sys_dict t ON a.type = t.dict_value "); sb.append(" AND t.dict_name = '浼氳瀹よ祫婧�'"); @@ -390,6 +399,51 @@ return hashMap; } + @Override + public String getQrCode(FieldSetEntity fse) throws BaseException, WriterException, IOException { + String uuid="96f161b4-6360-40ba-8dc1-72bb39d56be4"; + int BLACK = 0xFF000000; + int WHITE = 0xFFFFFFFF; + Date date = new Date(); + String text = "http://127.0.0.1:9998/lx/api/conference/get_QrCode_Info/v1?uuid=" + uuid+"&date="+date; + String path = "D:/QRCode"; // 鍥剧墖鐢熸垚鐨勪綅缃� + int width = 400; + int height = 400; + // 浜岀淮鐮佸浘鐗囨牸寮� + String format = "jpg"; + // 璁剧疆缂栫爜锛岄槻姝腑鏂囦贡鐮� + Hashtable<EncodeHintType, Object> ht = new Hashtable<EncodeHintType, Object>(); + ht.put(EncodeHintType.CHARACTER_SET, "UTF-8"); + // 璁剧疆浜岀淮鐮佸弬鏁�(缂栫爜鍐呭锛岀紪鐮佺被鍨嬶紝鍥剧墖瀹藉害锛屽浘鐗囬珮搴�,鏍煎紡) + BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, ht); + // 鐢熸垚浜岀淮鐮�(瀹氫箟浜岀淮鐮佽緭鍑烘湇鍔″櫒璺緞) + File outputFile = new File(path); + if (!outputFile.exists()) { + // 鍒涘缓鏂囦欢澶� + outputFile.mkdir(); + }else { + outputFile.delete(); + outputFile.mkdir(); + } + + int b_width = bitMatrix.getWidth(); + int b_height = bitMatrix.getHeight(); + // 寤虹珛鍥惧儚缂撳啿鍣� + BufferedImage image = new BufferedImage(b_width, b_height, BufferedImage.TYPE_3BYTE_BGR); + for (int x = 0; x < b_width; x++) { + for (int y = 0; y < b_height; y++) { + image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE); + } + } + // 鐢熸垚浜岀淮鐮� + ImageIO.write(image, format, new File(path + "/code." + format)); + // 浜岀淮鐮佺殑鍚嶇О + // code.jpg + + return path + "/code." + format; + } + + /** * 浼氳瀹や娇鐢ㄦ儏鍐� diff --git a/src/main/java/com/product/administration/service/ide/IConferenceManagerService.java b/src/main/java/com/product/administration/service/ide/IConferenceManagerService.java index 423fcd5..024800a 100644 --- a/src/main/java/com/product/administration/service/ide/IConferenceManagerService.java +++ b/src/main/java/com/product/administration/service/ide/IConferenceManagerService.java @@ -1,9 +1,11 @@ package com.product.administration.service.ide; +import com.google.zxing.WriterException; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; +import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -39,5 +41,9 @@ HashMap saveOrUpdateMeetingInfo(FieldSetEntity fse)throws BaseException; + String getQrCode(FieldSetEntity fse) throws BaseException, WriterException, IOException; + + + } -- Gitblit v1.9.2