From 04cb699081cb1e9bd4279b21c76f29138f7f5a01 Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Wed, 4 Feb 2026 17:28:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=A5=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=B8=8B=E5=B7=B2=E6=9C=89=E8=AE=BE=E5=A4=87=EF=BC=8C=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=90=8D=E7=A7=B0!!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fuyuanshen/SimpleQR.java | 81 ++++++++++++++++++ .../encrypt/utils/EncryptUtilsTest.java | 4 +- .../equipment/domain/DeviceRepairImages.java | 6 +- .../service/impl/DeviceTypeServiceImpl.java | 4 +- qr.png | Bin 0 -> 3017 bytes qrcode.png | Bin 0 -> 8387 bytes 6 files changed, 90 insertions(+), 5 deletions(-) create mode 100644 fys-admin/src/main/java/com/fuyuanshen/SimpleQR.java create mode 100644 qr.png create mode 100644 qrcode.png diff --git a/fys-admin/src/main/java/com/fuyuanshen/SimpleQR.java b/fys-admin/src/main/java/com/fuyuanshen/SimpleQR.java new file mode 100644 index 00000000..7f0b4b51 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/SimpleQR.java @@ -0,0 +1,81 @@ +package com.fuyuanshen; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; + +public class SimpleQR { + public static void main(String[] args) throws Exception { + String text = "HELLO"; + int size = 21; // 版本1的大小 + boolean[][] qr = new boolean[size][size]; + + // 1. 三个定位标记 + for (int i = 0; i < 7; i++) + for (int j = 0; j < 7; j++) { + boolean black = i == 0 || i == 6 || j == 0 || j == 6 || (i > 1 && i < 5 && j > 1 && j < 5); + qr[i][j] = qr[i][size - 1 - j] = qr[size - 1 - i][j] = black; + } + + // 2. 定时图案(简化) + for (int i = 8; i < 13; i++) qr[i][6] = qr[6][i] = (i % 2 == 0); + + // 3. 编码数据(极简编码) + byte[] data = text.getBytes(); + int x = 20, y = 20, up = 1; // 从右下角开始 + for (byte b : data) + for (int bit = 7; bit >= 0; bit--) { + while (qr[x][y] || (x == 6 && y < 9) || (y == 6 && x < 9) || (x < 9 && y < 9) || + (x < 9 && y > size - 10) || (y < 9 && x > size - 10)) { + if (up > 0) { + if (--y < 0) { + y = 0; + x -= 2; + up = -1; + } + } else { + if (++y >= size) { + y = size - 1; + x -= 2; + up = 1; + } + } + if (x == 6) x--; + } + qr[x][y] = ((b >> bit) & 1) == 1; + if (up > 0) { + if (--y < 0) { + y = 0; + x -= 2; + up = -1; + } + } else { + if (++y >= size) { + y = size - 1; + x -= 2; + up = 1; + } + } + if (x == 6) x--; + } + + // 4. 保存图像 + int scale = 10, margin = 4; + BufferedImage img = new BufferedImage( + size * scale + margin * 2, size * scale + margin * 2, BufferedImage.TYPE_INT_RGB); + for (int i = 0; i < img.getWidth(); i++) + for (int j = 0; j < img.getHeight(); j++) + img.setRGB(i, j, 0xFFFFFF); // 白色背景 + + for (int i = 0; i < size; i++) + for (int j = 0; j < size; j++) + if (qr[i][j]) + for (int di = 0; di < scale; di++) + for (int dj = 0; dj < scale; dj++) + img.setRGB(margin + i * scale + di, margin + j * scale + dj, 0x000000); + + ImageIO.write(img, "PNG", new File("qr.png")); + System.out.println("二维码已生成"); + } + +} \ No newline at end of file diff --git a/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java b/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java index c1b72532..f785cd45 100644 --- a/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java +++ b/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java @@ -39,8 +39,8 @@ public class EncryptUtilsTest { loginBody.setClientId("e5cd7e4891bf95d1d19206ce24a7b32e"); loginBody.setGrantType("password"); loginBody.setTenantId("894078"); - loginBody.setCode("15"); - loginBody.setUuid("28ecf3d396ce4e6db8eb414992235fad"); + loginBody.setCode("6"); + loginBody.setUuid("399d45194f3d4c7e9cbfb3294b198a9b"); // loginBody.setUsername("admin"); // loginBody.setPassword("admin123"); loginBody.setUsername("dyf"); diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceRepairImages.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceRepairImages.java index d26082de..25465814 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceRepairImages.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceRepairImages.java @@ -10,32 +10,36 @@ import lombok.EqualsAndHashCode; /** * 设备维修图片对象 device_repair_images * - * * @date 2025-09-02 */ @Data @EqualsAndHashCode(callSuper = true) @TableName("device_repair_images") public class DeviceRepairImages extends TenantEntity { + /** * 维修图片ID */ @TableId(value = "image_id", type = IdType.AUTO) @TableField(insertStrategy = FieldStrategy.NEVER) private Long imageId; + /** * 维修记录ID */ @Schema(title = "维修记录ID") private Long recordId; + /** * 图片类型(维修前/维修后) */ @Schema(title = "图片类型(维修前/维修后)") private RepairImageType imageType; + /** * 图片存储路径 */ @Schema(title = "图片存储路径") private String imageUrl; + } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java index 91c241db..00428948 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java @@ -244,10 +244,10 @@ public class DeviceTypeServiceImpl extends ServiceImpl 0) { - throw new RuntimeException("该设备类型下已有设备,无法修改设备类型名称!!!"); + throw new RuntimeException("该设备类型下已有设备,无法修改设备类型名称和路由跳转!!!"); } } diff --git a/qr.png b/qr.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5113e4df4a66179c06c9ed95c287cb660a9e85 GIT binary patch literal 3017 zcmeAS@N?(olHy`uVBq!ia0vp^w?LSK2}t_apYCB`;GW>=;uum9_x7e^-(3qHhKu|D zFP*HrnuVipR)=SI{&L5KnXj_Le*QFeleGWGpS&l1-eZjvAZ9uL@pZRqc+YjeKes*E#a6Gn@JOQew9+5iCrj(^O^CVv zV79y3KsVze7L^)<>(cI&cPnd%BWkc9t)3vWx+H}TD2D?fP z%oYZ@eN_3h(U2KbiC|FWCW4Lul_jT4cdA`~GAm|scF|pENumwq`>q3KX-MI;79zMc!B`-`2GAveUZ}j#oNBw&yZKxDYtd&|AT)R zPJUgn_Amc4c8_)Lxo_(Y>>Y}1v$Fp;|74u>IxzaT{2BfUG5xo0{ZFWCcv5xc+CTQs z%qmDmoaMjP^S@pB`rR$@56pl{cFq3AedicZPx?@_lRxT*k^z+YExvHv0#&qKf|z5fsM zH-b_IP!C6{P0z1C$&*0I1Zd{Mp7y}`^**39QVO(l%147&pZh&Q2?*$>79%;g+JA=N z)C6>Mz_G(C&fBYj(jm}Kf~P7ZzWzL}0!oBHKRZeCFSh$X1C&Bv1H(k)apINd@{@5| z+P6oBfTIUf__B|H7ud~z6^n9VsquHw0mp`-Yb4M}c zSNn4baHHT?-agr)zipL$;ve5mcx`^Bcuz-ud(8gCd5>Ldte^bi{Vb#Z=(ghZ{29+H z1n=|htUGLTy!%JliLcVnEaQ%BcV2hj;QU7=6eE_{xKLGRi=XCd)>*ecY*eU(gkvjzi&3saiG)zYOsWZ z5*#q~lz#@g9F#_YZI-8}Ko(wq0`?Xtd4ifPF(3^0+4c zAf-yYP{k0h>c0Gsz{VW1*TC&El;8um_XdR$U@ObP0l+XkK;k-hc literal 0 HcmV?d00001 diff --git a/qrcode.png b/qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea7023773f7ad1a0411c69f7bb9b2bc8940cae1 GIT binary patch literal 8387 zcmeHNZA@EL7_R<6Sz!A?VlqZx1|2eGBxA#=fo2PaApr)P!7|HCTvy3Z2&5GGY9eN4 zERL}O6$tdlKw_*Vp-u)vnvFQ5MVjGq8vE(=z^wl%GV7SBER_TF>9Kxd=!kzB~> z$-SrVdEe(e@B2Qt=Z~c)2X71ACK8E)Q;sHOi9}C4iT^zf{)?Jp(w`EEcGsjN9X?T- zJNsj1&9BC8(M|nInn9@w7>mg~a$xwFG;-;}?emvvFx85)%=6Iua7UNLaNiS@+vSWa z{ni!aU3%3%F{?H8F)o#%UwW=fKQJ}QoHx0hrU{vA13hvm$7Hr0Z&XM!u7BxsLD?;- z%(Jt?_(qfMy%_N)84^sEVAFN)vlCaKvcVx=h<;Ia?&`JWutb?e?fCeH(dVeB$u}|0 z%}#Co&WqTCVpqLPiiOPWB_Hi>E6kRt0yN!OXV&W%PfD!Q9h5H^gMpz`nKU{s?5lgD z?(ofxFga3cGvtW_KPpc`A^ znhZ;Pp(^h`fi>(OypuDh#n;MQuuY_Yj%81wlUB=d^->n z{&o?LN6G;N64@I=5ojXr=a>UM-m`rrRP`CcN(Qg1Qx&?Bwuhz|k9%6<&0BuCiRKH3y;kM!T(q7>Sg}j&ozdJ@ zUHMlRixht==s6qoOS&5m~G@Bl}ZE$p8U(uAZ}?-rt^}}V&*+F zb+7ZvX6yr4k?ha z&<8&fZ4l8D3nwkIXC_1xVG1Wj7NY+auJg$LoN$Y9)$>?xv)E2e?}(!$*tSATLT)qO z5jymT-IdGZbi)`j*Ef_3y;K!{)KDv)pp;p#4QFW{>>14gGtNbM3)NC)T(^hErs4Xp zdwjPi(VI`p1%b+`=?>^l@ve63kmh}==>+>N?>_)-l2<=ka_Qj$kPf3J6}4(;lPCXD zRfOsrsx1XBpIaP*Hfe&#=BLf^e{)j+j|Qu|1VtpOkb)>$B-Rg5_C`h4tTSxs9@S|9 zpiapvZ=hWPD)oZU1Erxyj{pvpLZjm!dL^9Q-&zl=6CdlJ3YmAN>hZ_0H-5 literal 0 HcmV?d00001